584 просмотров
от (240 баллов) в категории Тонкая настройка
Установлена АТС версии 2020.2.857. Работает уже год, вроде всё было хорошо. Не так давно начались проблемы с исходящими вызовами. В основном при попытке позвонить через восьмёрку, но иногда и на городские. АТС отвечает "Извините, в данный момент соединение невозможно." АТС имеет два сетевых интерфейса, внешний, белый IP смотрит напрямую на SIP-сервер провайдера, без всяких промежуточных роутеров и маршрутизаторов. Внутренний, смотрит напрямую на сеть с телефонами. Фаервол на АТС, влючён. Вчера обновил АТС до версии 2021.1.54., не помогло, всё осталось по прежнему.  В логах никаких ошибок нет, всё штатно. В сетевых настройках включена опция "Станция находится за NAT-маршрутизатором", указан белый IP сетевого интерфейса. Можете подсказать в какую сторону копать?
от (122 тыс. баллов)

Я бы начал анализ с дампа SIP трафика. 

Выполните 10-20 звонков, должно воспроизвестись:

Приложите тут (или мне в личку) логи:

от (240 баллов)
А как файл дампа прицепить? Что-то кнопки загрузить не вижу.
от (122 тыс. баллов)
лучше приложить ссылку на файлообменник.
от (240 баллов)
https://yadi.sk/d/3VaT5m6IZOgRiw

Там два дампа, один от провайдера, скинули на прошлой неделе. Один снял сегодня с АТС.
от (240 баллов)
Удалось глянуть дампы?
от (122 тыс. баллов)

Дамп со стороны АТС не полный. 

Для каждого исходящего звонка должно быть два SIP диалога 

  1. Телефон - АТС (есть)
  2. АТС - Провайдер (не приложен)
Согласно дампу вызов сброшен на стороне телефона. 
В теории, второго диалога может и не быть, если "Провайдер не доступен" к примеру была ошибка регистрации или не прошел до провайдера пакет OPTIONS (проверка доступности). 
Согласно дампу от провайдера идет попытка дозвона 5 секунд, потом со стороны Mikopbx поступает сигнал завершения вызова. 
Для полноты картины можно обратиться к дополнительным логам:
от (240 баллов)
Сделал по инструкции. Возможно там больше чем надо, не совсем понимаю с какой именно строки нужно было копировать, поэтому взял больше. Последние записи как раз были при сбое. Звонил с внутреннего номера 127 на сотовый 89231235765.

Ссылка на текстовый файл:

https://yadi.sk/d/AXqZsZ5sjx-6jA
от (122 тыс. баллов)
В этом логе сообщение busy/congested. Линия занята или перегружена (достигнут предел по количеству занятых каналов).

В идеале, если вы пришлете два лога, sip и из консоли АТС, + от провайдера третий (все логи по одному звонку). Картина будет наиболее полной.
от (240 баллов)
ссылка на архив с логами

https://yadi.sk/d/LEWBl4rx1fLW7g

два лога с АТС, один лог от провайдера.
от (240 баллов)
Удалось посмотреть логи? Можете что-то подсказать, как исправить ситуацию?
от (240 баллов)
Будут какие-то рекомендации по моей проблеме? Мы с вами давно работаем. Купили у вас несколько платных модулей. Компания ООО "ТК Аврора".
от (122 тыс. баллов)

Порядок следующий:

  1. MikoPBX отправляет провайдеру INVITE
  2. Провайдер требует авторизацию (ошибка 401)
  3. MikoPBX повторяет INVITE c параметрами авторизации
  4. Провайдер сообщает об ошибке авторизации (ошибка 403)
Если ошибка исходящего проходит через раз, то вероятно проблема со стороны провайдера. 
Можно еще сравнить дамп удачного звонка с неудачным, мб, что то новое увидим, но со стороны АТС сообщения будут те же, скорее всего будут отличаться ответы со стороны провайдера. 
от (240 баллов)

Вот что ответил провайдер:

"Добрый день, проверили конкретно логи на нашей АТС, в момент этого вызова (и других не состоявшихся в это-же время с 403 ошибкой) наша АТС отбивала ошибку аутентификации. Учитывая что БД с логином и паролем к которой обращается наша АТС одна и user / secret для данного номер только один и других данных в ней быть не может - то единственная причина ошибки в том, что ваше оборудование присылало неверный либо user, либо secret. К сожалению и в логах и в пакетах эти данные зашифрованы и указать что именно не так отправляется вашей АТС в момент неудачных вызовов мы не можем - остается только проверять настройки. Собственно лог с нашей АТС для данных вызовов:

[2021-06-23 11:53:37.008] NOTICE[22303][C-00046898] chan_sip.c: Failed to authenticate device <sip:83832091588@sipserver.novotelecom.ru>;tag=da4c985c-c34a-4147-a4b8-a603e84f1ad3 for INVITE, code = -1

[2021-06-23 11:53:37.241] NOTICE[22303][C-00046899] chan_sip.c: Failed to authenticate device <sip:83832091588@sipserver.novotelecom.ru>;tag=da178c21-1488-4c47-91d9-1481d6078391 for INVITE, code = -1

[2021-06-23 11:53:51.487] NOTICE[22303][C-000468ae] chan_sip.c: Failed to authenticate device <sip:83832091588@sipserver.novotelecom.ru>;tag=a5f000e6-c5c4-4640-8226-cdc5da16e5f7 for INVITE, code = -1

[2021-06-23 11:53:52.083] NOTICE[22303][C-000468b0] chan_sip.c: Failed to authenticate device <sip:83832091588@sipserver.novotelecom.ru>;tag=080c3254-f9cf-44d7-8c75-33d8bc0189f3 for INVITE, code = -1

Как такое может быть? И с какой стороны в итоге проблема?

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

ТП провайдера вероятно лукавит

В первую очередь можно проверить сгенерированный хэш авторизации. 

Это может сделать сам провайдер, но можете и попробовать проверить самостоятельно. 

Часть необходимой информации доступна в INVITE сообещении от MikoPBX

Authorization: Digest username="3832091588", realm="sipserver.novotelecom.ru", nonce="1ea47cb8", uri="sip:89231235765@sipserver.novotelecom.ru:5060", response="3a535f6d9d0961c32a2db9a9a46feb30", algorithm=MD5

Проверить необходимо параметр "response". 

Алгоритм неплохо был описан на форуме и в документе rfc-2617

Простой php скрипт:

<?php
$username = '3832091588';
$realm    = 'sipserver.novotelecom.ru';
$password = '????';
$url      = 'sip:89231235765@sipserver.novotelecom.ru:5060';
$nonce    = '1ea47cb8';
$a1     = md5("$username:$realm:$password");
$a2     = md5("md5:$url");
print_r(md5("$a1:$nonce:$a2"));
  • Сохраните скрипт по пути /root/test.php
  • Поправьте в нем значение пароля (не выкладывайте его нигде в открытом виде)  
  • Запустите его исполнение php -f /root/test.php 

Кэш должен совпасть со значением "response". 

Если кэш совпадает, то на стороне вашей АТС все ок, а вот у провайдера явно сбой. 

от (240 баллов)
Я так понимаю мне нужно с консоли АТС запустить этот скрипт, и потом воспроизвести ситуацию с отбоем звонка, верно?
от (122 тыс. баллов)
Воспроизвести ничего не нужно. Дамп уже есть. Просто запустить у себя скрип поправив значение переменной "password".

Сравнить вычисленный параметр response.
от (240 баллов)
Собственно провайдер родил наконец-то. Написали что в поле from, в настройках линии нужно убрать префикс. Ещё позавчера убрал. Вроде после этого обоев звонков не было. На следующей неделе помониторю ещё пару дней, если будет всё нормально, считай что вопрос решён.
от (122 тыс. баллов)
Хорошо, надеюсь это поможет.

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

На этом сайте можно бесплатно задать вопрос разработчикам 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 тыс. пользователей

...