89 подписчиков

Asterisk PBX. Подключаемся к SIPNET

Всем привет. В этой публикации будем подключаться к провайдеру телефонии SIPNET. Это позволит подключить Asterisk PBX к ТфОП звонить на любые номера, мобильные или городские стационарные. Такое подключение позволит связать Asterisk PBX со внешним миром и осуществлять входящие и исходящие вызовы, причём в многоканальном режиме.

Для подключения я использовал Asterisk PBX версии 18, установленный на Linux Ubuntu 22 из коробки.
Asterisk PBX это современная безплатная программная телефонная станция с открытым исходным кодом малой и средней ёмкости, ориентированная на использование в офисе и в абонентском доступе на периферии. "Asterisk - будущее телефонии". Asterisk PBX устанавливается как служба в Linux в т.ч. Linux Ubuntu и при наличии соответствующего оборудования позволяет организовывать связь как внутри учреждения так и входящую-исходящую связь с "внешним миром", как посредством традиционных двухпроводных абонентских линий и цифровых ISDN линий так и через IP сеть т.е. через интернет.

Для чего это нужно? Звонки через SIPNET дешевле чем через Ростелеком, плюс такой вариант связи обладает большим функционалом и отвечает всем современным требованиям, таким как наличие голосовой почты, конференции, пикап группы и видеосвязь.

Схема связи Asterisk PBX + SIP NET - ТфОП
Схема связи Asterisk PBX + SIP NET - ТфОП

В первую очередь нужно завести аккаунт на сайте SIPNET и согласится с договором-офертой. Регистрация происходит ч\з мобильный телефон и аккаунт привязывается к номеру мобильного телефона. Также для звонков на городские номера потребуется авторизация через Госуслуги.

Для того чтобы подключиться к SIPNET потребуется имя пользователя, пароль и имя домена, это "sipnet.ru".

Всем привет. В этой публикации будем подключаться к провайдеру телефонии SIPNET. Это позволит подключить Asterisk PBX к ТфОП звонить на любые номера, мобильные или городские стационарные.-2

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

Для того чтобы звонить на номера ТфОП, мобильные и городские, нужно подключить городской номер. Стоимость подключения около 1000р плюс абонплата около 300р в месяц. Всё это делается в личном кабинете после верификации ч\з Госуслуги.

..

РЕГИСТРАЦИЯ

..

Для направления входящих вызовов регистрируемся на SIPNET. Если кто не знает, смысл регистрации заключается в том чтобы сообщить своё местоположение для направления входящих вызовов. Если будут только исходящие а входящие не нужны или даже не должны идти, то регистрацию не делаем.

Итак, для регистрации в файле конфигурации SIP'а в "/etc/asterisk/sip.conf" добавляем две строчки обязательно в разделе с примерами исх. регистраций, иначе не сработает:

nat=force_rport
register => udp://<SIP ID>@sipnet.ru:<пароль от ЛК>:<SIP ID>@212.53.40.40:5060/101~1800

Напомню, что здесь SIP ID, это ваш SIP ID из личного кабинета, в поле пароль указывается пароль от личного кабинета. В конце этой строки 1800 это желаемый срок регистрации в секундах, сервер SIPNET вправе проигнорировать его, но может и сделать такой срок. Также, "101" это куда направлять входящие вызовы, т.е. все вх. вызовы будут направляться на внутренний добавочный номер "101".

Перезагружаем конфигурацию и проверяем регистрацию:

$ sudo asterisk -rx "reload"
$ sudo asterisk -rx "sip show registry"

И видим что регистрация успешно выполнена.

Всем привет. В этой публикации будем подключаться к провайдеру телефонии SIPNET. Это позволит подключить Asterisk PBX к ТфОП звонить на любые номера, мобильные или городские стационарные.-3

Периодически будет выполнятся перерегистрация если Asterisk PBX будет работать.

Для входящих вызовов в "/etc/asterisk/extension.conf" добавляем контекст "inc" и все вх. вызовы независимо от вызываемого номера пока будем направлять на телефон "101":

[inc]
exten => s,1,Dial(SIP/101,60,L(1800000))
exten => s,n,Hangup()

..

ТРАНК ВЫЗОВОВ

..

Для того чтобы совершать исходящие вызова в сеть SIPNET и в ТфОП в файле конфигурации SIP'а в "/etc/asterisk/sip.conf" в самый конец добавляем транк с именем "T1":

[T1]
type=peer
host=sipnet.ru
port=5060
defaultuser=<SIP ID>
fromuser=<SIP ID>
fromdomain=sipnet.ru
secret=<пароль от ЛК>
qualify=no
qualifyfreq=60
call-limit=2
nat=force_rport,comedia
directmedia=no
context=inc
disallow=all
allow=alaw,ulaw

А чтобы делать исходящие вызова на номера ТфОП ч\з этот транк в контекст "loc" добавляем 2 строчки:

exten => _8XXXXXXXXXX,1,Dial(SIP/T1/${EXTEN},60,L(1800000))
exten => _8XXXXXXXXXX,n,Hangup()

Почему то при указании параметра "qualify=yes" несмотря на ответы "200 OK" на соответствующие запросы доступности "OPTIONS" транк на SIPNET имел статус "НЕДОСТУПНО". Поэтому пришлось отключить эту квалификацию установив параметр "qualify=no". Если бы я этого не сделал, то мой транк "T1" платформой Asteisk PBX на корню считался бы недоступным и сообщения о желании установить соединение на SIPNET не отправлялись бы вообще, поэтому так. В общем, проверяем.

Всем привет. В этой публикации будем подключаться к провайдеру телефонии SIPNET. Это позволит подключить Asterisk PBX к ТфОП звонить на любые номера, мобильные или городские стационарные.-4

Чуть не забыл, в файле "/etc/asterisk/sip.conf" в разделе с закомментированными параметрами "NAT SUPPORT" нужно указать параметр "localnet" с вашей локальной сетью, в 99% случаев это "192.168.0.0/16", и ваш внешний видимый адрес в параметре "externaddr". Его можно узнать если зайти на сайт "2ip.ru" где под строчкой "Ваш IP адрес:" он будет указан крупными буквами.

Всем привет. В этой публикации будем подключаться к провайдеру телефонии SIPNET. Это позволит подключить Asterisk PBX к ТфОП звонить на любые номера, мобильные или городские стационарные.-5

Для тестовых вызовов я использовал софтфон Zoiper 5й версии под ОС Windows, который зарегистрировался на Asterisk PBX на внутреннем номере "101".

Всем привет. В этой публикации будем подключаться к провайдеру телефонии SIPNET. Это позволит подключить Asterisk PBX к ТфОП звонить на любые номера, мобильные или городские стационарные.-6

Делаем тестовый вызов на мой мобильный номер 8961594****, сервер SIPNET отвечает голосовым сообщением что "Услуга ограничена, для возобновления доступа необходимо обратиться в службу поддержки".

Вызов прошёл и голос автоответчика был хорошо слышен. Значит мы всё настроили правильно. Как уже написал выше, теперь осталось только подключить городской номер в личном кабинете.

Всем привет. В этой публикации будем подключаться к провайдеру телефонии SIPNET. Это позволит подключить Asterisk PBX к ТфОП звонить на любые номера, мобильные или городские стационарные.-7

Также отмечу, что для правильной маршрутизации сигнальных сообщений и голоса был включен полный NAT параметром "nat=force_rport,comedia", без этого работать не будет (если у вас конечно не белый IP адрес, который смотрит во внешнюю сеть, что бывает редко). В этом параметре метка "force_rport" указывает чтобы в SIP сообщения в верхний заголовок "Via" добавлялся параметр "rport". Это делается для того чтобы ответ приходил на тот порт с которого ушло сообщение запроса. Метка "comedia" указывает что голосовые пакеты следует направлять на тот порт и адрес, с которого они были получены.

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