Подключение INFINITY по SIP к оператору связи с ипользованием ASTERISK, Республика Казахстан

Однажды осенним тёплым днём, оператор в РК решил, что им нужно сменить оборудование, на котором мы авторизуемся и получаем услуги телефонии по SIP.
Ну разве проблема? Давайте сменим сказал я, получил новые лог/пасс, адрес сервера, прописал новые настройки в инфинити. Казалось бы, что может быть проще?
Не тут-то было. В кратце: Потребовалась установка Asterisk в качестве прослойки. Инфинити подключается к Астериску, Астериск подключается к оператору.
Кратко, скорее для себя. Как велась диагностика, с какими проблемами столкнулись, как настроен теперь инфинити, как настроен Астериск. Все настройки для сборки Elastix

Вводные: (фейк, на всякий случай)
Адрес сервера оператора: 217.196.11.11
Адрес сервера клиента: 95.180.11.11(внешний) 192.168.11.11 (внутренний)
Логин: ChotoTam (Оно же должно быть в поле FROM)
Пароль: Password
CID(А-номер): - 3455555
АТС: Infinity, находится за NAt, АТС на стороне оператора не имею права назвать, к слову она тоже за NAT :-)

После перенастройки транка в инфинити мы видим следующую ситуацию:
2016-09-23_21-54-02
Казалось бы, всё хорошо и сервер зарегистрировался и жизнь удалась, но не тут-то было. Через пару минут регистрация слетает, сервер пытается повторить регу, получает сообщение об отказе и перестаёт предпринимать какие-либо попытки регистрации на ближайшие N минут, который заданы в настройках. После чего снова получает отказ и снова откладывает попытки регистрации. Короче цикл бесконечен, помогает только ребут.
Далее, для исходящих вызовов обязательно делать подмену поля FROM, на логин (инфинити по умолчанию во фром пихает тоже, что и в контакт, а значит это наш CID)

Так как проблема с регистрацией не была решена, пришлось делать «прослойку из астериска»
Коротко схема такая: инфинити — астериск — оператор
Теперь по шагам.
Asterisk
1. В Астериск создаём extension, указываем логин, пароль, адреса с которых можно регистрироваться. Обязательно настроить поле Call Waiting = Enabled иначе не видать вам многоканальности. К слову, она всё-же не заработала, пока не ребутнул сам астериск.

2. Далее создаём транк, указываем след. параметры:

Trunk Name: Ваше имя (любое)
Outbound Caller ID: 3455555
Outgoing Settings
username=ChotoTam
secret=Password
type=friend
qualify=yes
nat=yes
insecure=port,invite
host=217.196.11.11
fromdomain=217.196.11.11
dtmfmode=rfc2833
disallow=all
context=from-trunk
canreinvite=no
allow=alaw&ulaw
fromuser=ChotoTam

Register String: ChotoTam:Password@217.196.11.11/ChotoTam
Жмём сабмит, применяем конфиг.

3. Далее нам надо поправить файл sip.conf, вносим туда следующую запись
[general]
externip = 95.181.11.11
localnet=192.168.0.0/255.255.0.0

4. Добавляем Incoming Route. Указываем имя. т.к в нашем случае не планируется принимать что-либо, кроме трафика от одного оператора, то не заполняем ничего кроме Set Destination, прописываем EXTENSIONS = 20009 (Название транка для инфинити).

5. Настраиваем Outbound Routes
2016-09-23_20-03-49

На этом настройка Asterisk завершена.

INFINITY

1. Стандартно настраиваем транк, на всякий случай:
2016-09-23_20-08-50

2. Создаём устройство: Астериск, тип Ip-Провайдер
2016-09-23_20-14-14

2016-09-23_20-13-46

3. Создаём маршрут в маршрутизации, задаём правила исходящих маршрутов.

Всё, теперь при поступлении звонка от оператора связи, он попадает на Астериск, тот передаёт его в инфинити. Набранный номер в инфинити станет равен 20009, если где-то есть привязка к набранному номеру — нужно будет указать.
При исходящем вызове — вызов попадает в инфинити, далее идёт в астериск, а потом уже в сеть оператора.
ВАЖНО! Если у вас ограниченное кол-во одновременных соединений, то при достижении потолка вы услышите не занято, а «Абонент занят пожалуйста подождите», т.е АТС оператора отдаст код ответа 486. Обычно у всех просто встречал короткие гудки занятости, а тут какое-то ожидание прям включается 🙂
А так проверил, всё работает 🙂

P.S. Спасибо терпеливым сотрудникам компании, которые указывали на огромное кол-во ошибок, допущенных при настройке, а так же за некоторые изменения правил набора номеров по РК. Основная проблема в том, что сервер в России и использует Российских операторов для внутренних звонков и операторов РК, для звонков по РК, а код страны у нас один +7, только в РК все коды начинаются с +7 7хх

P.P.S Вполне вероятно я рукожоп, и можно было допилить инфинити, если кто-то знает как — пишите, буду благодарен.

Запись опубликована в рубрике Софт, Телефония с метками , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *