721 просмотров
от (470 баллов) в категории Настройка провайдеров

Собственно, сабж. 

Соединение устанавливается, разговор происходит, но BYE провайдер (Билайн) шлёт на наш внутренний адрес (который берёт из поля Contact) . В результате МИКО не получает BYE и продолжает разговор, хотя со стороны Билайна давно положили трубку. (((

Пробовал вставить конструкцию 

[endpoint]

rewrite_contact=yes

contact=sip:<user>@<наш_внешний_адрес>:<наш_внешний_порт>

в расширенных настройках провайдера - поле Contact не меняется. 
Что я делаю не так?
от (470 баллов)

Не в тот блок "Contact" засунул, видимо должно выглядеть так: 

[endpoint]

rewrite_contact=yes

[aor]

contact=sip:<user>@<наш_внешний_адрес>:<наш_внешний_порт>

, но всё-равно не срабатывает, адрес в поле "Contact" по-прежнему внутренний. 

Есть ещё красивые опции 

external_signaling_address=

external_signaling_port=

и

via_addr=

via_port=

, но они находятся в блоках [transport] и [contact] соответственно, а в инструкции по настройке расширенных параметров https://wiki.mikopbx.com/providers#dopolnitelnye_parametry такие блоки не упоминаются и как их прописать не понятно. 

Хелп ми... 

от (122 тыс. баллов)

Похоже на проблему NAT. 

Попробуйте в настройках сетевых интерфейсов установить флаг "АТС находится за NAT". 

В разделе "Сетевой экран" опишите все локальные подсети (см. флаг Это локальная сеть или. VPN). 

от (470 баллов)
редактировать от
Флаг "АТС находится за NAT" стоит, NAT работает, внешний адрес АТС определяется.

Сетевой экран включен, описаны две сети: локальная и "0.0.0.0/0 - Мико подсеть"(по умолчанию) .

При звонке в Билайн sngrep показывает внутренний адрес в строках Via, Contact, "o=- 2061619313 2061619313 IN IP4 <внутренний адрес>" и "c=IN IP4 <внутренний адрес>" блока Invite.

И ещё: для этого провайдера прописан нестандартный порт, а в Via и в Contact указывается порт 5060. (UPD: хотя,там же сообщается наш порт и он должен быть стандартным, так что тут вроде ок).

Вроде как external_media_address= и external_signaling_address= должны решать эту проблему, но они находятся в блоке [transport] и не понятно, как их правильно прописать. Или для этого надо лезть в кастомизацию системных файлов?
от (122 тыс. баллов)
А версия АТС точно актуальная? Я помню такую ошибку (с портом), была исправлена в 124 релизе точно.
от (470 баллов)
редактировать от
Версия свежая, специально ждали поддержку нескольких телефонов на одном номере.

В /etc/asterisk/pjsip.conf :

[transport-udp]

type = transport

protocol = udp

bind=0.0.0.0:5060

local_net=<внутренняя сеть>

external_media_address=<внешнее ИМЯ>

external_signaling_address=<внешнее ИМЯ>

external_signaling_port=5060

т.е. всё прописано правильно. Только следующий блок [REG-AUTH-SIP-1585300672] начинается не через пустую строчку а сразу ниже последней опции блока [transport-udp]. Не знаю, насколько это важно: добавление пустой строки заметно ускоряет регистрацию на провайдере, но адрес по-прежнему предъявляется внутренний.

У этого транка нет авторизации по логину/паролю и в его описании нет блока регистрации (type=registration), куда можно было бы вставить ссылку на блок [transport-udp]. Пробовал вставлять transport=transport-udp в блок [endpoint] провайдера (и кастомизацией и расширенными настройками) - строка вставляется, провайдеру предъявляется внутренний адрес. В общем, не прокатило. (

Наверное, попадаем в какое-то исключение. (( Готов выслать логи.
от (122 тыс. баллов)

поле contact можно попробовать поправить для AOR секции:

[aor]

contact = sip:<user>@<наш_внешний_адрес>:<наш_внешний_порт>

попробуйте прописать в расширенных настройках, в доп. параметрах учетной записи провайдера

от (470 баллов)
редактировать от
Не срабатывает. В Contact и Via по-прежнему внутренний адрес. (( Такое чувство, что адрес перекрывается где-то за пределами pjsip.conf

UPD: кроме того, в секции [aor] _до_ правок есть запись contact = sip:<адрес_провайдера>:<порт_провайдера>, так что, похоже, дело не в этом.

Надо как-то заставить работать секцию [transport-udp] и содержащиеся в ней записи

external_media_address=<внешнее ИМЯ нашей МИКО>

external_signaling_address=<внешнее ИМЯ нашей МИКО>

У этого провайдера в pjsip eсть блоки

[SIP-1591183266]

type = aor

[SIP-1591183266]

type = identify

[SIP-1591183266]

type = endpoint

Куда можно было бы прописать

external_media_address=

external_signaling_address=

?
от (470 баллов)
редактировать от

Текущая ситуация: 

если добавить в /etc/asterisk/modules.conf строку "noload => chan_sip.so", то Contact и Via передаёт в Invite ПРАВИЛЬНЫЙ (наш внешний, статический IP). 

Победа? Не думаю. 

Во-первых: передаётся IP, а в pjsip.conf прописан АДРЕС (FDQN). Откуда берётся IP - не ясно. 

Во-вторых: Звук пропал. (((( 

Собираюсь копать в сторону external_media_address=, но если pjsip.conf перекрывается какими-то другими конфигами (передаётся IP, вместо прописанного в pjsip.conf FDQN), то куда его приткнуть - БОЛЬШОЙ ВОПРОС. 

Хелп ми...

от (122 тыс. баллов)

приложите скрины настроек сетевого экрана и подсетей

явно не корректно настроен NAT на АТС. 

мб еще роутер пакеты переопределяет, на такое способна функция SIP ALG на некоторых маршрутизаторах. 

рекомендация все еще в силе

Похоже на проблему NAT. 

Попробуйте в настройках сетевых интерфейсов установить флаг "АТС находится за NAT". 

В разделе "Сетевой экран" опишите все локальные подсети (см. флаг Это локальная сеть или. VPN). 

от (470 баллов)
редактировать от

Сетевые интерфейсы

https://yadi.sk/i/xBGCPCYmHshAsQ

Сетевой экран: 

https://yadi.sk/i/77Y27jgtX17GqQ

Извините за нубское мнение: мне кажется, что проблема в настройках конфигов. В поле Contact передаётся неправильная информация. Убираем модуль chan_sip.so - начинает передаваться правильная... Не?

от (122 тыс. баллов)

chan_sip.so не используется в этой версии АТС. 

мне интересно для каких подсеете установлен флаг "Это локальная сеть или VPN"

от (470 баллов)
редактировать от

Для всех, кроме верхней "0.0.0.0/0 - Мико подсеть". Только что проверил...

> "chan_sip.so не используется в этой версии АТС. "

Да, я заметил "autoload=no" в /etc/asterisk/modules.conf, но откуда такая реакция на явное отключение модуля "noload => chan_sip.so" ? Может быть модуль и не используется, но какие-то настройки его (или связанных с ним модулей) остались?

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...