Сейчас разберем, как на смартфон Honor 9X
установить SoftPhone
в лице приложения GS Wave
, как произвести настройку на собственный сервис телефонии на базе связки Ubuntu 22.04 Server + Asterisk 16.9.0
, какие нюансы подключения, ошибки на консоли и все это в шагах от и до.
Шаг №1:
Домашняя АТС
на базе Asterisk 16.9.0
развернута, как контейнер виртуальной машины на базе Debian 10 + Proxmox 6.4-13
, а операционная система — это Ubuntu 22.04 Server
опираясь на заметку: "Поднимаем дома Asterisk 16 на Ubuntu 22.04 Server"
Шаг №2:
Адрес домашней АТС
следующие и данные внутреннего номера (см. sip.conf
из "Шаг №1"
заметки "Поднимаем дома Asterisk 16 на Ubuntu 22.04 Server"
)
Hostname: 172.33.33.117
Login: 1001
Pass: Aa1234567
Шаг №3:
Скачиваем и устанавливаем на смартфон Honor 9X
приложение GS Wave.
ekzorchik@ekzorchik:~$ sudo mkdir /var/www/html/voip/out
https://voip.ekzorchik.ru/out/GSWave1_0_3_34.apk
Шаг №4:
Сейчас попробуем подключить смартфон Honor 9X
к домашней АТС
, только разберем вот такую вот схему, у меня смартфон подключается к домашней сети через OpenVPN
, но в таком случае он получает IP
-адрес из сети 10.9.0.0/24
, а потому в консоли Asterisk version 16
получаю уведомления что искомый адрес телефона не включен в разрешающие на подключение к сервису телефонии:
Приложение GS Wave - Параметры - Параметры аккаунта
— и нажимаю "+"
— выбираю SIP Аккаунт
Активный аккаунт: +
Имя аккаунта: 1001
SIP-сервер: 172.33.33.7
ID пользователя SIP: 1001
Аутентификационный идентификатор SIP: 1001
Пароль: Aa1234567
Отображаемое Имя: 1001
и нажимаю "Галочка"
в верхнем правом углу.
После в настройках аккаунта с именем 1001
Активный аккаунт: Включено изменяю на Выключено и снова на включено
после в открытой консоли Asterisk
вижу, что пытается выполнится аутентификация из сети 10.9.0.
, а точнее с полученного IP
-адреса смартфоном: 10.9.0.10
, но она не проходит, т.к. в sip.conf
директива permit
не предопределена для этой сети.
ekzorchik@srv-pbx:~$ sudo asterisk -rvvv Asterisk 16.9.0, Copyright (C) 1999 - 2018, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Running as user 'asterisk' Running under group 'asterisk' Connected to Asterisk 16.9.0 currently running on srv-pbx (pid = 696) [Feb 12 13:38:16] NOTICE[758]: acl.c:783 ast_apply_acl_internal: SIP Peer ACL: Rejecting '10.9.0.10' due to a failure to pass ACL '(BASELINE)' [Feb 12 13:38:16] NOTICE[758]: chan_sip.c:29029 handle_request_register: Registration from '<sip:1001@172.33.33.117>' failed for '10.9.0.10:21954' - Device does not match ACL [Feb 12 13:38:16] NOTICE[758]: acl.c:783 ast_apply_acl_internal: SIP Peer ACL: Rejecting '10.9.0.10' due to a failure to pass ACL '(BASELINE)' [Feb 12 13:38:16] NOTICE[758]: chan_sip.c:29029 handle_request_register: Registration from '<sip:1001@172.33.33.117>' failed for '10.9.0.10:21954' - Device does not match ACL [Feb 12 13:38:16] NOTICE[758]: acl.c:783 ast_apply_acl_internal: SIP Peer ACL: Rejecting '10.9.0.10' due to a failure to pass ACL '(BASELINE)' [Feb 12 13:38:16] NOTICE[758]: chan_sip.c:29029 handle_request_register: Registration from '<sip:1001@172.33.33.117>' failed for '10.9.0.10:21954' - Device does not match ACL srv-pbx*CLI> srv-pbx*CLI> quit Asterisk cleanly ending (0). Executing last minute cleanups ekzorchik@srv-pbx:~$ а доступ с каких сетей разрешено подключаться обозначен: ekzorchik@srv-pbx:~$ sudo nano /etc/asterisk/sip.conf [authentication] ;Шаблон для внутренних номеров [internal_numbers](!) type=friend ;peer(Исходящие) и user(Входящие) в одном context=local ;Контекст обработки входящих вызовов host=dynamic nat=yes ;Политика работы через nat deny=0.0.0.0/0.0.0.0 ;Сети из которых запрещено подключение permit=172.33.33.0/255.255.255.0 ;Сети из которых разрешено подключение permit=10.9.0.0/255.255.255.0 ;Сеть OpenVPN qualify=yes ;Переодическая проверка доступности клиента canreinvite=no ;Разрешить/Запретить потоки peer-to-peer в обход сервера insecure=port,invite ;port (не требовать совпадения порта), invite (не требовать аутентификации) callgroup=1 ;группа вызова pickupgroup=1 ;группа перехвата вызовов call-limit=2 ;Лимит входящих вызовов dtmfmode=rfc2833 ;Какую спецификацию использовать при передачи DTMF сигналов disallow=all ;запретить использование всех кодеков, ниже разрешаем нужны allow=alau allow=ulaw allow=g722
После нажимаем Ctrl + O, Enter - Ctrl + X
(для выхода из редактора).
Т.е. в sip.conf мы добавили строку permit
и только.
После перечитываем внесенные изменения Asterisk'ом:
ekzorchik@srv-pbx:~$ sudo asterisk -rx "sip reload"
Шаг №5:
Возвращаемся к смартфону и в созданном аккаунте снова делаем:
После в настройках аккаунта с именем 1001
Активный аккаунт: Включено изменяю на Выключено и снова на включено
Шаг №6:
После в консоли Asterisk
уже видим успешную регистрацию внутреннего номера 1001
на Asterisk 16.9.0:
ekzorchik@srv-pbx:~$ sudo asterisk -rvvv Asterisk 16.9.0, Copyright (C) 1999 - 2018, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Running as user 'asterisk' Running under group 'asterisk' Connected to Asterisk 16.9.0 currently running on srv-pbx (pid = 696) -- Unregistered SIP '1001' -- Registered SIP '1001' at 10.9.0.10:10760 [Feb 12 13:48:03] NOTICE[758]: chan_sip.c:24984 handle_response_peerpoke: Peer '1001' is now Reachable. (55ms / 2000ms) srv-pbx*CLI>
Посмотрим с каких IP
-адресов к Asterisk'ку
выполнена успешная регистрация внутренних номеров:
srv-pbx*CLI> sip show peers Name/username Host Dyn Forcerport Comedia ACL Port Status Description 1000/1000 172.33.33.143 D Yes Yes A 52029 OK (1 ms) 1001/1001 10.9.0.10 D Yes Yes A 10760 OK (55 ms) 2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline] srv-pbx*CLI>
Как видно из вывода, один и внутренней сети, а другой из сети OpenVPN.
Отлично.
Итого, я разобрал, как подключить с своей домашней АТС
на базе связки Ubuntu 22.04 Server + Asterisk 16.9.0
из другой сети если другая сеть не предопределена в разрешенных сетях конфигурационного файла sip.conf
. Это важно, т.к. если не используется шифрование подключения, то вот такие вот крайние меры обязательны, как по мне.
На этом пока заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.