Назад | Перейти на главную страницу

Сервер asterisk на базе Linux, программный телефон SIP, способный слышать звук, но не отправлять его другим

Запуск Ubuntu 14.04 LTS и Asterisk 11.7.0. Сервер настроен для SIP-телефонов на использование нашей магистрали SIP через voip.ms/didlogic (две разные службы, потому что нам нравятся международные тарифы на didlogic, но у него нет всех внутренних функций, которые есть в voip.ms; не относится к проблема под рукой). Достаточно сказать, что я плохо разбираюсь в IP-телефонии.

Когда программный телефон SIP от работающего на дому сотрудника пытается позвонить, скажем, на наземную линию, программный телефон SIP принимает звук, но не отправляет его. Абонент, подключенный к стационарной линии, не будет получать звук с софтфона SIP. Классическая проблема с односторонним звуком, которая беспокоит SIP.

Я не могу воссоздать проблему. 100% софтфонов сотрудников работают локально в офисе. Я также тестировал программный телефон из своего домашнего подключения, я использовал VPN для туннелирования и подключения через страны на полпути по всему миру, чтобы проверить проблемы с задержкой, и у меня был член семьи, который жил за много миль от теста, и он были успешными. Я сбит с толку.

Также имейте в виду, что я пробовал разные системы сотрудников, как Mac, так и ПК, и я открыл порты на их брандмауэрах, полностью отключил брандмауэры и так далее.

Для целей тестирования у меня нет правил в IPTables, и сервер не находится за NAT нашего локального маршрутизатора (потребительские маршрутизаторы называют это DMZ).

Конфигурация Asterisk является ванильной из коробки с двумя исключениями: порт привязки SIP - 5070 и диапазон портов RTP - 20001–30000. Это позволяет избежать рассылки спама при подключении от иностранных роботов-дозвонщиков, ищущих бесплатную поездку.

Ниже приведен отрывок из файла sip.conf от Asterisk (конкретные детали отредактированы, возможно, вам придется прокрутить этот образец).

[general]
register => REDACTED:REDACTED@sip.didlogic.net:5060
register => REDACTED:REDACTED@losangeles.voip.ms:5060

externip=REDACTED
localnet=192.168.0.0/255.255.255.0

bindaddr=0.0.0.0
bindport=5070

allowguest=no
alwaysauthreject=yes
cancallforward=yes
canreinvite=nonat
disallow=all
allow=g722
allow=ulaw
allow=alaw
qualify=yes
nat=force_rport,comedia

[didlogic]
host=sip.didlogic.net
username=REDACTED
authname=REDACTED
secret=REDACTED
insecure=port
type=peer

[vms-incoming]
host=losangeles.voip.ms
user=REDACTED
username=REDACTED
fromuser=REDACTED
authuser=REDACTED
secret=REDACTED
context=vms-incoming
insecure=invite
type=peer
trustrpid=yes
sendrpid=yes

[sip-softphone]
context=Sales
secret=REDACTED
type=friend
host=dynamic
fromuser=sip-softphone
authuser=sip-softphone
insecure=port

На ум приходят две мысли на стороне сервера: следует ли мне настраивать свои магистральные службы на type = friend? И мои настройки конфигурации, связанные с NAT, правильные и в нужном месте? Особенно canreinvite = nonat и nat = force_rport, comedia

Мне не повезло с заменой софтфонов. Для нашего теста давайте рассмотрим установку Zoiper из коробки. Он настроен для подключения к нашему IP-адресу и нестандартному порту SIP 5070 и настроен на использование службы STUN по умолчанию, stun.zoiper.com. Он отлично регистрирует и набирает номер, поэтому кажется, что с сигнализацией SIP все в порядке, это просто проблема со звуком RTP. У меня есть подозрение, что мне следует выбрать фиксированный порт RTP («Настройки»> «Дополнительно»), который находится в диапазоне 20001–30000, но, опять же, личное тестирование, похоже, подтверждает, что установка «из коробки» работает.

Я открыт для публикации отрывков отладки SIP, когда я могу протестировать с сотрудником, но есть идеи, почему это сработает для меня и моего родственника в нескольких ситуациях, но не для моих обычных сотрудников? Может быть, у некоторых людей дома есть маршрутизаторы с ужасно сломанными реализациями NAT, или мне следует переключиться на кодек с гораздо меньшей пропускной способностью, такой как iLBC?

Другая возможность состоит в том, что мой дом, мои родственники (40 миль) и наш офис - все используют Time Warner в качестве нашего интернет-провайдера. Возможно, есть некоторые проблемы с интернет-провайдером, которые необходимо решить с помощью умной настройки.

Редактировать: Мне удалось провести интересное тестирование, обнаружив случайную открытую сеть Wi-Fi. В rtp.conf я установил strictrtp = no. В sip.conf я переместил настройки nat и canreinvite для отдельных пользователей, так что это не общий параметр, примерно так:

[sip-softphone]
context=Sales
secret=REDACTED
type=friend
host=dynamic
fromuser=sip-softphone
authuser=sip-softphone
insecure=port
canreinvite=nonat
nat=force_rport,comedia

На программном телефоне я отключил Stun (отключен в Zoiper, установлен на ICE в X-Lite), и я надежно получаю двусторонний звук. Я еще не тестировал с сотрудником, но все выглядит интересно.

Как и вы, я ничего не знаю о мире voip, но попробуйте следующее в sip.conf:

[general]
  directmedia=no

Если это сработает, тогда отлично, но я не могу предложить объяснения, так как я не проверял это, начните Вот хотя.