1 | изначальная версия редактировать | |
Имеется астериск за статическим NAT. То есть, все порты открыты, но сервер расположен на IP локальной сети. В такой конфигурации удалось его настроить для звонилок. Сначала долго боролся со звуком, пока не пришла в голову мысль прописать externipaddr и localnet. Как выяснилось, Астериск подсовывал клиенту свой локальный IP, и все RTP пакеты шли на него, то есть вникуда. После установки етих двух параметров RTP пакеты теперь идут на внешний IP, там его АТС и ловит.
Проблема теперь в звонке с sipml. Настраивал по инструкции с http://code.google.com/p/sipml5/wiki/Asterisk. Проблема тут та же. Астериск в параметрах даёт альтернативные адреса для коннекта. В том числе свой локальный и щё один внешний, который является у меня запасным, но привязан к моему серверу. В итоге браузер пытается коннектится на локальный IP, несмотря на то, что явно присутствует строка "Contact: <sip:89189764924@11.22.33.44:0;transport=ws>", а остальные адреса прописаны в виде "a=candidate:Ha01a4de 1 udp 2130706431 10.1.164.222 15054 typ host generation 0 svn 165".
Почему браузерная звонилка выбирает в качестве коннекта для передачи звука именно локальный адрес и игнорит внешний?
В sip.conf указано:
icesupport=yes
В rtp.conf:
icesupport=yes
stunaddr=stun.l.google.com:19302
В users.conf:
[10000]
host = dynamic
callgroup = 1
type = peer
transfer = yes
context = outgoing
threewaycalling = no
callwaiting = no
hasmanager = no
hassip = yes
hasiax = no
nat = force_rport,comedia
autoprov = no
directmedia = no
fullname = 10000 WebRTC Client
hasvoicemail = no
vmsecret =
email =
secret = ***********
macaddress = 10000
fromuser = 10000
avpf = yes
encryption = yes
icesupport = yes
videosupport = no
directmedia = no
К слову, клиент тоже находится за натом, но звонилки с него работают нормально
2 | No.2 Revision редактировать |
Имеется астериск за статическим NAT. То есть, все порты открыты, но сервер расположен на IP локальной сети. В такой конфигурации удалось его настроить для звонилок. Сначала долго боролся со звуком, пока не пришла в голову мысль прописать externipaddr и localnet. Как выяснилось, Астериск подсовывал клиенту свой локальный IP, и все RTP пакеты шли на него, то есть вникуда. После установки етих двух параметров RTP пакеты теперь идут на внешний IP, там его АТС и ловит.
Проблема теперь в звонке с sipml. Настраивал по инструкции с http://code.google.com/p/sipml5/wiki/Asterisk. Проблема тут та же. Астериск в параметрах даёт альтернативные адреса для коннекта. В том числе свой локальный и щё один внешний, который является у меня запасным, но привязан к моему серверу. В итоге браузер пытается коннектится на локальный IP, несмотря на то, что явно присутствует строка "Contact: <sip:89189764924@11.22.33.44:0;transport=ws>", "c=IN IP4 178.159.249.146", а остальные адреса прописаны в виде "a=candidate:Ha01a4de 1 udp 2130706431 10.1.164.222 15054 typ host generation 0 svn 165".
Почему браузерная звонилка выбирает в качестве коннекта для передачи звука именно локальный адрес и игнорит внешний?
В sip.conf указано:
icesupport=yes
В rtp.conf:
icesupport=yes
stunaddr=stun.l.google.com:19302
В users.conf:
[10000]
host = dynamic
callgroup = 1
type = peer
transfer = yes
context = outgoing
threewaycalling = no
callwaiting = no
hasmanager = no
hassip = yes
hasiax = no
nat = force_rport,comedia
autoprov = no
directmedia = no
fullname = 10000 WebRTC Client
hasvoicemail = no
vmsecret =
email =
secret = ***********
macaddress = 10000
fromuser = 10000
avpf = yes
encryption = yes
icesupport = yes
videosupport = no
directmedia = no
К слову, клиент тоже находится за натом, но звонилки с него работают нормально
3 | No.3 Revision редактировать |
Имеется астериск за статическим NAT. То есть, все порты открыты, но сервер расположен на IP локальной сети. В такой конфигурации удалось его настроить для звонилок. Сначала долго боролся со звуком, пока не пришла в голову мысль прописать externipaddr и localnet. Как выяснилось, Астериск подсовывал клиенту свой локальный IP, и все RTP пакеты шли на него, то есть вникуда. После установки етих двух параметров RTP пакеты теперь идут на внешний IP, там его АТС и ловит.
Проблема теперь в звонке с sipml. Настраивал по инструкции с http://code.google.com/p/sipml5/wiki/Asterisk. Проблема тут та же. Астериск в параметрах даёт альтернативные адреса для коннекта. В том числе свой локальный и щё один внешний, который является у меня запасным, но привязан к моему серверу. В итоге браузер пытается коннектится на локальный IP, несмотря на то, что явно присутствует строка "c=IN IP4 178.159.249.146", 11.22.33.44", а остальные адреса прописаны в виде "a=candidate:Ha01a4de 1 udp 2130706431 10.1.164.222 15054 typ host generation 0 svn 165".
Почему браузерная звонилка выбирает в качестве коннекта для передачи звука именно локальный адрес и игнорит внешний?
В sip.conf указано:
icesupport=yes
В rtp.conf:
icesupport=yes
stunaddr=stun.l.google.com:19302
В users.conf:
[10000]
host = dynamic
callgroup = 1
type = peer
transfer = yes
context = outgoing
threewaycalling = no
callwaiting = no
hasmanager = no
hassip = yes
hasiax = no
nat = force_rport,comedia
autoprov = no
directmedia = no
fullname = 10000 WebRTC Client
hasvoicemail = no
vmsecret =
email =
secret = ***********
macaddress = 10000
fromuser = 10000
avpf = yes
encryption = yes
icesupport = yes
videosupport = no
directmedia = no
К слову, клиент тоже находится за натом, но звонилки с него работают нормально
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.