Задача: Настроить софтфон через Asterisk на Манго, потому как на основе этого я хочу на сервере Zabbix поднять возможность уведомления звонком меня где бы я не находился о проблемах в инфраструктуре. Ну по крайней мере я себе поставил такую задачу, а там как сложется, может я пока еще себе слабо представляю как это с технической точки зрения реализуется, но все же это задача.
Ранее я Вам читатели моего блога да и самому себе на будущее я показал, как подключить консольно развернутый Asterisk к облачной АТС Манго Телеком в то время это делалось чтобы заставить работать телефонные voip аппараты Cisco CP-7925G. Как показала практика их использования им нужна стабильная зона покрытия Wifi сигнала на всем участке использования, но такая роскошь имеется только в одном офисе где в свое время были закуплены точки доступа Mikrotik и развернуто единое управление ими через CAPsMAN (об этом я поведую чуточку позже). Ну да ладно, сейчас я хочу в шагах разобрать как подключить через Asterisk софтфон из моей рабочей системы Ubuntu 12.04.5 Desktop amd64. В роли софтфона выступит приложение – ekiga.
На заметку: если в Ekiga настроены несколько учетных записей и вот переключение на нужную, то чтобы регистрация подхватилась порой просто нужно сделать Ekiga — Файл — Выход, а потом запустить снова и учетная запись снова активируется.
На заметку: советую когда настраиваете софтфон открыть еще одну консоль
sudo asterisk -r
и смотреть на вывод который идет на консоль чтобы сразу же определить что у Вас не так.
Сперва создам SIP-аккаунт внутри Asterisk с перенаправлением на транк от SIP-аккаунта созданного в Манго:
На сервере где развернута телефония Asterisk:
ekzorchik@srv-host:~$ sudo nano /etc/asterisk/sip_custom.conf
[112]
context=public
secret=Aa1234567
type=friend
host=dynamic
disallow=all
allowguest=no
allow=alaw
dtmfmode=inband
nat=force_rport
alwaysauthreject=yes
ekzorchik@srv-host:~$ sudo nano /etc/asterisk/extensions_custom.conf
[public]
;для исходящих звонков
exten => _X.,1,Dial(SIP/line112/${EXTEN})
[incoming]
exten => line112,1,Dial(SIP/112)
exten => line112,n,Hangup()
ekzorchik@srv-host:~$ sudo nano /etc/asterisk/sip.conf
#include sip_custom.conf
[general]
context=public
register => 000112:<PASSWORD>@<DOMAIN>.mangosip.ru/line112
ekzorchik@srv-host:~$ sudo nano /etc/asterisk/extensions.conf
#include extensions_custom.conf
ekzorchik@srv-host:~$ sudo chown -R asterisk:asterisk /etc/asterisk/
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk status
* Asterisk PBX is running
Или
ekzorchik@srv-host:~$ sudo asterisk -r
srv-host*CLI> core reload
Определяю текущий IP адрес сервера где у меня развернут Asterisk:
ekzorchik@srv-host:~$ ip r
default via 10.7.8.1 dev eth0
10.7.8.0/24 dev eth0 proto kernel scope link src 10.7.8.170
После переключаюсь на свою рабочую станцию (Ubuntu 12.04.5 Desktop amd64 рабочее окружение Gnome Classic), устанавливаю Ekiga и настраиваю данные SIP учетной записи:
aollo@system:~$ sudo apt-get install ekiga -y
запускаю софтфон:
Приложения – Интернет – Программный-телефон Ekiga – Правка – Учетные записи – Учетные записи – Добавить учетную запись SIP –
Имя: 112
Регистратор: 10.7.8.170:60000
Пользователь: 112
Аутентификация пользователя: 112
Пароль: Aa1234567
Задержка: 3600
Включить учетную запись: отмечаю галочкой и нажимаю OK
Теперь нужно настроить кодеки для работы:
Ekiga – Правка – Параметры
Общие — Личные сведения:
Имя: 112
Настройки Ekiga — Протоколы — Параметры SIP
Исходящий прокси-сервер: 10.7.8.170:60000
Посылать DTMF как: RFC2823
Звук — Кодеки:
- PCMA
- PCMU
Включить обнаружение молчания: отмечаю галочкой
Включить подавление эха: отмечаю галочкой
Выключаю и включаю учетную запись, а тем временем в еще одной консоли с запущенным asterisk наблюдаю следующую картину:
srv-host*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
112/112 10.7.8.135 D Yes No 5060 Unmonitored
Отлично программный телефон успешно зарегистрировался.
Теперь чтобы позвонить на телефон облачной АТС Манго (для внутренних номеров суффикс после символа @ указывать не нужно), нужно в строке набора указать к примеру 000102@<DOMAIN>.mangosip.ru и нажать кнопку трубки – звонок попадет на облачную АТС, а оттуда к базовой станции Grandstream DP715, а после на зарегистрированную на ней трубку Grandstream GP710 и на дисплее будет номер звонящего, голос туда и обратно передается без каких либо искажений, считаю что все нормально. Что еще можно сказать по этому поводу, ставлю задачу, разбираю ее на маленькие составляющие и решаю (документируя каждый шаг), а в конечном итоге получаю опыт и решенную задачу, на этом я прощаюсь и до новых встреч с уважением автор блога ekzorchik.