Одностороннее аудио только при регистрации на OpenSIP перед Asterisk

Давний пользователь Asterisk, но новичок в OpenSIP. У меня есть SIP-телефон, работающий со звуком в обоих направлениях при регистрации и получении звонков непосредственно из Asterisk. Тот же телефон работает с двухсторонним звуком, если я регистрируюсь на OpenSIP и получаю звонок от OpenSIP, но только ЕСЛИ звонок исходил из другого места, а не из нашего сервера Asterisk.

Пример, который работает:

Звонок из PSTN > OpenSIP> SIP-телефон (зарегистрированный на OpenSIP)

Звонок из PSTN > Asterisk > SIP-телефон (зарегистрирован в Asterisk)

Пример, который НЕ работает, проблемы со звуком в одну сторону:

Звонок из PSTN > Asterisk > OpenSIP> SIP-телефон (зарегистрированный на OpenSIP)

Я пытаюсь выгрузить все наши регистрации из Asterisk в OpenSIP, но когда мы передаем вызов из Asterisk в OpenSIP, звонок идет на телефон, зарегистрированный в OpenSIP, но с односторонним звуком.

Не верьте, что это проблема брандмауэра, потому что мы тестировали, когда брандмауэры как на Asterisk, так и на OpenSIP отключены.

Я проверил множество теорий, но сейчас у меня нет идей. Я думал, что попрошу здесь умных людей.

Заранее благодарю за любую помощь.

1 ответ

Я исправил это, установив nat=yes в sip.conf на сервере Asterisk в конфигурации для сервера OpenSIPs.

Я заметил, что когда я тестировал более новую версию Asterisk, у меня было больше ошибок в консоли Asterisk. Я заметил, что Asterisk пытается отправить RTP на частный IP-адрес локальной сети конечной точки (мой sip-телефон) вместо общедоступного IP-адреса моего интернет-соединения, где находится телефон. Не знаю, почему он пытался это сделать. Мне интересно, нужно ли модифицировать OpenSIP. Меня озадачило то, что мне НИКОГДА не приходилось устанавливать nat=yes на Asterisk при отправке вызовов на серверы со статическим публичным IP. В этом случае я отправляю вызовы на добавочный номер, например 456@xxx.xxx.xxx.xxx, где xxx - это общедоступный статический IP-адрес моего сервера OpenSIP, поэтому NAT не задействован. NAT вступает в игру, когда вызов отправляется в конечную точку, которая находится за NAT. Для меня не имеет смысла, почему я должен был установить nat=yes, чтобы эта работа работала, но это было немедленное исправление.Позже исследую подробнее, возможно, потребуется изменить на стороне OpenSIP вместо nat=yes на стороне Asterisk.

Другие вопросы по тегам