Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2013-09-12 17:22:49 +0400

abr_asterisk Gravatar abr_asterisk

Asterisk SVN-trunk-r379070M за NAT, звонок по sipml. Нет звука

Имеется астериск за статическим 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

К слову, клиент тоже находится за натом, но звонилки с него работают нормально

Asterisk SVN-trunk-r379070M за NAT, звонок по sipml. Нет звука

Имеется астериск за статическим 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

К слову, клиент тоже находится за натом, но звонилки с него работают нормально

Asterisk SVN-trunk-r379070M за NAT, звонок по sipml. Нет звука

Имеется астериск за статическим 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.