Астериск
НЕ будет использовать прямой медиапоток (native bridge для RTP) между двумя SIP endpoint'ами когда:
- есть активный monitor (recording) на любом из каналов
- есть активные audio hooks на любом из каналов
- каналы используют разные dtmfmode's
- на каналах есть активные фичи (включены) связанные с DTMF'ами - см. features.conf
- SIP каналы не имеют общего(их) кодека(ов) (не совместимы по кодекам) или ReINVITE или UPDATE (если поддерживается) (переключение медии) не проходит в обоих направлениях на общие кодеки если он необходим .
- Jitter buffer включен в force режиме (jbforce=yes)
- Symmetric RTP включено (nat=route или nat=always) и NAT реально существует между астериском и удаленной стороной (RTP поток реально идет с другого адреса чем адрес прописанный в SDP) и canreinvite != yes.
- canreinvite != yes или canreinvite != update или canreinvite != nonat
Вопрос1:
Как пойдет медиапоток в схеме IpPhone1<-SIP->(*)<-SIP->IpPhone2, если телефоны находятся в разных сетях, но при этом могут пинговать друг друга и коннектиться на порты UDP 10000-20000 к друг другу
См. ответ на Вопрос0. Подсети не влияют на решение астериска о том как посылать медиапоток. Если маршрут между конечными точками есть и UDP там проходит в заявленных диапазонах тогда голос будет слышно иначе будет тишина но сессия (звонок) все равно в любом случае успешно установится.
Вопрос2:
Как пойдет медиапоток в схеме IpPhone1<-SIP->(*)<-SIP->IpPhone2, если телефоны находятся в разных сетях, но при этом не могут пинговать друг друга и не могут коннектиться на порты UDP 10000-20000 к друг другу
Если в ответе на Ворос0 нет условия для этого звонка - то звонок будет успешно установлен и мадиапоток пойдет напрямую между двумя SIP устройствами но звука не будет (или слышимость будет односторонней) из за тогда что конфигурация сети не будет пропускать RTP пакеты.
Вопрос3:
Как пойдет медиапоток в схеме IpPhone1<-SIP->(*)1<-IAX->(*)2<-SIP->IpPhone2, если телефоны находятся в разных сетях, но при этом не могут пинговать друг друга и не могут коннектиться на порты UDP 10000-20000 к друг другу
Сложно сказать - проще поставить на всех пирах canreinvite=no и не париться так как тут все равно напрямую ходить RTP пакеты не могут...