Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес

Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес

Сегодня я расскажу как настроить и подключить ваш Asterisk к провайдеру МТТ при использовании подключения к виртуальной АТС МТТ Бизнес. Подключать будем Asterisk 13. Итак поехали:

Содержание

Настройка транка для работы по SIP ID МТТ Бизнес

Настраиваем файл /etc/asterisk/sip.conf

[general]
register=>SIP ID:пароль@login.mtt.ru
externip=Ваш внешний белый IP-адрес
[mtt]
type=friend
defaultexpiry=120
host=login.mtt.ru
defaultuser= SIP ID
fromuser= SIP ID
secret= пароль
context=incoming_calls
dtmfmode=rfc2833
disallow=all
allow=alaw,ulaw
insecure=invite,port
nat=force_rport,comedia
В версиях Asterisk ниже 11 параметр nat необходимо указывать nat=no или nat=yes.
Зачастую настройка диалпланов для входящей/исходящей связи производится в контексте [default]. Мы разграничим входящую и исходящую маршрутизацию разными правилами. Входящую маршрутизацию опишем в контексте [incoming_calls], а исходящую – в контексте [outgoing_calls].
SIP ID и пароль берутся из настроек рабочего места в личном кабинете МТТ Бизнес (Настройки -> Рабочие места):
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
Перезагрузим настройки транка. Для этого в командной строке *CLI> Asterisk выполним команду ‘sip reload’.
Проверим корректность регистрации транка. Проверяем командой ‘sip show registry’.
В данном случае регистрировался SIP ID 883140776419. Регистрация прошла успешно, так как в графе State обозначено Registred.
Если регистрация не прошла, то значение в графе State будет отличаться от Registered.

Настройка транка для работы по IP МТТ Бизнес

В файле /etc/asterisk/sip.conf настраиваем 2 транка для входящей и исходящей связи:

[general]
externip=Ваш внешний белый IP-адрес
[mtt_incoming]
type=peer
host=80.75.132.72
context=incoming_calls
dtmfmode=rfc2833
disallow=all
allow=alaw,ulaw
insecure=invite,port
nat=force_rport,comedia

[mtt_outgoing]
type=user
host=static.mtt.ru
fromuser= номер в формате E.164
dtmfmode=rfc2833
disallow=all
allow=alaw,ulaw
nat=force_rport,comedia
Соответственно, register в контексте [general] прописывать не нужно.
Если Вы подключаетесь по статическому IP-адресу, то не следует в транке для входящих вызовов прописывать параметр qualify, так как этот IP-адрес не отвечает на запросы, полученные с клиентских IP-адресов, и, соответственно, Ваш транк будет нерабочим.
Чтобы настроить простую маршрутизацию, создадим контекст 123 для внутреннего номера 123, который зарегистрируем на софтфоне или на любом другом устройстве, которое будет работать через Asterisk:
[123]
type=friend
secret=пароль
context=outgoing_calls
host=dynamic
nat=force_rport
dtmfmode=rfc2833
disallow=all
allow=alaw,ulaw
insecure=invite,port
На этот extension в дальнейшем будем направлять все входящие вызовы, поступающие с транка на Asterisk, а также с него будем совершать исходящие вызовы.
В нашем случае настройка будет осуществляться на софтфонe Zoiper:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
Username и Password – это extension номер и его пароль, которые мы прописывали в sip.conf.
Domain – это IP-адрес, на котором работает Asterisk. В данном случае это 10.0.2.15.
Теперь настроим диалпланы для входящих и исходящих вызовов в файле /etc/asterisk/extension.conf:
[globals]
[general]

[default]

[incoming_calls]
exten => s,1,Dial(SIP/123)
exten => s,n,Hangup()
[outgoing_calls]
exten => _X.,1,Dial(SIP/mtt/${EXTEN})
Таким образом, входящие вызовы мы направляем на добавочный номер 123. В контексте транка [mtt] для этого прописан context=incoming_calls.
Исходящие вызовы мы также будем совершать с добавочного 123. Для этого в контексте [123] прописан context=outgoing_calls.
После изменений в файле extension.conf необходимо в *CLI> Asterisk выполнить ‘dialplan reload‘. После изменений в файле sip.conf необходимо набрать ‘sip reload‘ также в *CLI> Asterisk.
Здесь необходимо уточнить правила набора:
  • Для звонков по России +7XXXXXXXXXX (+ и 11 цифр) или 8XXXXXXXXXX (11 цифр), т.е. +7 или 8 – код города или мобильной сети – номер абонента
  • Для звонков на международные направления 810 – код страны – код города или мобильной сети – номер абонента. Для Казахстана: 81077 (т.е. как минимум две цифры 7 подряд)

Проблемы, возникающие при входящих/исходящих вызовах

1. Проблемы, возникающие при настройке

1) Не проходит регистрация

Если у Вас возникли какие-то проблемы при настройке транка, то в первую очередь нужно проверить корректность введенных Вами данных. В качестве основных иструментов на данном этапе можно использовать:
  • Утилиту tshark;
tshark включена в дистрибутивы большинства современных Linux – систем и устанавливается при помощи стандартного менеджера пакетов:
$ sudo apt-get install tshark
С помощью tshark можно записать файл в формате .pcap, который в последующем можно посмотреть в Wireshark.
  • Wireshark;
Режим отладки Asterisk, запускается в консоли Asterisk командой ‘sip set debug on‘.
Отключить режим отладки можно с помощью ‘sip set debug off‘.
Мы будем использовать режим отладки Asterisk.
Если у Вас не прошла регистрация, то обратите внимание, что фиксируется в консоли Asterisk. Обычно в ответ на запрос регистрации Register с сервера МТТ приходит 401 Unauhtorized:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
Регистрация, как правило, не проходит по причине некорректно введенных данных. В строке Authorization должны быть указаны те данные, которые прописаны для данного рабочего места в личном кабинете МТТ Бизнес:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
В данном случае неверно указано username (username=83140776419316), не хватает одной восьмерки вначале. Поэтому заходим в файл sip.conf и проверяем строку регистрации:
register=>883140776419316:пароль@login.mtt.ru
В случае ошибки регистрации в первую очередь нужно обращать внимание на следующие строки в sip.conf:
  • register;
  • host;
  • defaultuser;
  • fromuser;
  • secret.

2) Не проходят входящие

В первую очередь проверяем наличие регистрации на сервере МТТ. Если регистрация имеется, то идем дальше.
Запускаем режим отладки Asterisk (sip set debug on) и совершаем тестовый входящий звонок.
Если в консоли Asterisk появилось сообщение INVITE, то до Вашего оборудования звонок дошел. Значит проблема в настройках Asterisk. Разберем несколько ситуаций:
  • Asterisk отвечает на INVITE 404 Not Found;
Полный лог из sip debug выглядит следующим образом:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
404 Not Found свидетельствует о некорректной настройке extensions.conf.
Как правило, Asterisk информирует о подобных ситуациях алармом NOTICE, из содержания которого можно понять, что конкретно не так:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
Asterisk направляет 480 Temporarily Unavailable в ответ на INVITE:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес

*CLI> Asterisk информирует нас следующим образом:

Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
Это свидетельствует о том, что внутренний номер, на который переадресовывается звонок (в нашем случае это 123 на Zoiper), не зарегистрирован на Asterisk. Нужно поднять регистрацию на устройстве.
При входящем звонке включается автоинформатор, в *CLI> Asterisk имеется следующая информация:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
Причина: в настройках транка [mtt] прописан type=user, который подразумевает только исходящую связь. Необходимо указать type=friend.
Также возможна ситуация, что type=user указан в настройках внутреннего номера. В этом случае Asterisk отбивает вызов 480 Temporarily Unavailable, а *CLI> информирует, что внутренний номер 123 не peer:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес
3) Не работает исходящая связь;
Регистрация транка есть, регистрация софтфона на Asterisk есть, но не проходят исходящие звонки. Asterisk выдает сообщение 404 Not Found:
Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес

*CLI> Asterisk подсказывает, что некорректно настроен контекст [outgoing_calls]:

Инструкция по настройке Asterisk для работы с ВАТС МТТ Бизнес

Открываем файл extensions.conf:

[outgoing_calls]
exten => X.,1,Dial(SIP/mtt/${EXTEN})
Вместо шаблона _X. прописан номер X., поэтому звонок не прошел. Правильно:
[outgoing_calls]
exten => _X.,1,Dial(SIP/mtt/${EXTEN})
Если Вы видите по логам (в sip debug или в Wireshark), что вызов отбивается со стороны МТТ, то необходимо обратиться в службу технической поддержки МТТ. К обращению нужно прикрепить пример неуспешного вызова (дата, время, А-номер и Б-номер), а также будет большим плюсом, если Вы предоставите лог проблемного звонка из ‘sip debug‘ или в формате .pcap.
Сервер МТТ login.mtt.ru передает сообщения с диапазона портов UDP/TCP 5060-5079 (для входящих звонков);

Сервер МТТ login.mtt.ru (80.75.130.83) слушает порт UDP/TCP 5060 (для исходящих звонков).
Для голоса необходим диапазон портов 1024-65535 UDP.

Если Вы подключаетесь по статическому IP-адресу:

Сервер МТТ 80.75.132.72 передает сообщения с диапазона портов UDP/TCP 5060-5079 (для входящих звонков);
Сервер МТТ static.mtt.ru (80.75.132.75) слушает порт UDP/TCP 5060 (для исходящих звонков).

Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.