Задача: Разворачиваю собственный сервис телефонии на базе Asterisk
под Ubuntu 18.04 Server amd64
В виду того факта, то работа моей домашней АТС
на базе Asterisk
с использованием SIP
транка от Мультифон желает лучшего, я принял решение перейти на сервис от Zadarma
. И пока не жалею об этом, плюс прокачиваю дополнительные навыки и оформляю, как заметки интересующие меня вещи по части конфигурирования.
Отправная точка эта заметка: tips_ubuntu_18_04_asterisk_v1.odt
ekzorchik@srv-bionic:~$ sudo asterisk -rx "core show version" Asterisk 15.7.1 built by root @ srv-bionic on a x86_64 running Linux on 2019-01-06 12:04:30 UTC
Далее в личном кабинете https://my.zadarma.com
Login: <LOGIN>
Pass: <PASSWORD>
Настройки — SIP настройки
, получаю необходимые аутентификационные данные.
Сервер: sip.zadarma.com
Login: <LOGIN_SIP>
Pass: <PASSWORD_SIP>
Отображаемое имя: zadarma
CallerID: +74996775464 (номер купленный)
ekzorchik@srv-bionic:~$ sudo mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.backup ekzorchik@srv-bionic:~$ sudo mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.backup ekzorchik@srv-bionic:~$ sudo nano /etc/asterisk/sip.conf [general] srvlookup=yes [<LOGIN_SIP>] host=sip.zadarma.com ;invite → Не требовать аутентификации входящих сообщений INVITE ; port → разрешить проверку соответствия пира по ip-адреса без проверки соответствия номера порта insecure=invite,port type=friend fromdomain=sip.zadarma.com disallow=all allow=alaw allow=ulaw dtmfmode=auto secret=<PASSWORD_SIP> username=<LOGIN_SIP> trunkname=<LOGIN_SIP> fromuser=<LOGIN_SIP> callbackextension=<LOGIN_SIP> context=zadarma-incoming qualify=400 directmedia=no nat=force_rport,comedia [zadarma-sip](!) host=dynamic type=friend srvlookup=yes context=phones [1002](zadarma-sip) username=1002 secret=pbx1002 [1003](zadarma-sip) username=1003 secret=pbx1003
Теперь настроим правила набора звонков:
ekzorchik@srv-bionic:~$ sudo nano /etc/asterisk/extensions.conf [general] [globals] [default] ;Вешаем трубку [handup-sip] exten => _X!,1,HangUp() [zadarma-incoming] ;все входящие на транк <LOGIN_SIP> будут направлены на номер 1002 exten => <LOGIN_SIP>,Dial(SIP/1002) ;exten => 74996775464,1,Dial(SIP/1002) [zadarma-outgoing] ;звонки на трехзначные номера через транк <LOGIN_SIP> exten => _XXX,1,Dial(SIP/${EXTEN}@<LOGIN_SIP>) ;Номер для эхо-теста на сервис Zadarma exten => 4444,1,Dial(SIP/${EXTEN}@<LOGIN_SIP>) ;Маска XXX. допускает любой набор — 8, 7 или +7. ;exten => _XXX.,1,Dial(SIP/${EXTEN}@<LOGIN_SIP>) ;звонки на оператора Megafon через транк <LOGIN_SIP> ;exten => _7926XXXXXXX,1,Dial(SIP/${EXTEN}@<LOGIN_SIP>) ;либо звонки которые провайдер SIP разрешает у себя exten => _8XX.,1,Dial(SIP/7${EXTEN:1}@<LOGIN_SIP>) exten => _7XX.,1,Dial(SIP/${EXTEN}@<LOGIN_SIP>) exten => _+7X.,1,Dial(SIP/${EXTEN:1}@<LOGIN_SIP>) include => handup-sip [zadarma-local] ;звонки на четырехзначные внутренние номера asterisk exten => _1XXX,1,Dial(SIP/${EXTEN}) [test] exten => 1111,1,Dial(SIP/${EXTEN}@<LOGIN_SIP>) [phones] include => zadarma-incoming include => zadarma-local include => zadarma-outgoing include => test
На заметку: Для перезагрузки диалплана (extensions.conf ) |
ekzorchik@srv-bionic:~$ sudo asterisk -rx "dialplan reload" ekzorchik@srv-bionic:~$ sudo systemctl restart asterisk && sudo systemctl status asterisk | head -n 5 ● asterisk.service - LSB: Asterisk PBX Loaded: loaded (/etc/init.d/asterisk; generated) Active: active (exited) since Sun 2019-01-06 15:33:47 MSK; 30ms ago Docs: man:systemd-sysv-generator(8) Process: 2967 ExecStart=/etc/init.d/asterisk start (code=exited, status=0/SUCCESS) ekzorchik@srv-bionic:~$ sudo asterisk -rx "core reload" ekzorchik@srv-bionic:~$ sudo asterisk -rx "sip show registry" Host dnsmgr Username Refresh State Reg.Time sip.zadarma.com:5060 N <LOGIN_SIP> 105 Registered Sun, 06 Jan 2019 15:41:03 1 SIP registrations.
Для безопасности с каких IP
адресов провайдера Zadarma
инициализировать подключение c моей сетью:
/ip firewall address-list add address=185.45.152.0/24 list=zadarma add address=185.45.155.0/24 list=zadarma add address=37.139.38.0/24 list=zadarma add address=195.122.19.0/27 list=zadarma /ip firewall filter add action=accept chain=forward comment=SIP dst-address=172.33.33.25 dst-port=5060,10000-20000 log=yes log-prefix=_zadarma protocol=udp src-address-list=zadarma
После на смартфоне устанавливаю программу CsipSimple
, включаю Wi-Fi
и подключаюсь к собственной сети
На заметку: Аккаунт успешно зарегистрируется если в настройках программы отмечены галочки: CsipSimple — Настройки — Сеть - |
(Входящие вызовы) Использовать WiFi
(Исходящие вызовы) Использовать WiFi
, далее регистрирую аккаунт на внутренний номер 1003
и проверяю звонком на номер 4444
с целью услышать эхо произносимого от сервиса Zadarma
. Если звонок проходит и я слышу что говорю, то исходящие звонки отрабатывают согласно указанному в диалплане.
Задача выполнена. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.