6. Asterisk 15 LXC installation on Centos 7 SIP configuration of realtime
Данный опус является частью единого цикла заметок o CLI. Для его написания использовалось множество различных источников (скилы крутых специалистов, статьи с тематических сайтов, техническая документация, комментарии с форумов и социальных сетей и т. д и т. п.). К сожалению, указать все источники точно не представляется возможным! По этому, в конце заметки, будет указана ссылка только на основной источник. Материалы, использованные для написания заметки, изменялись автором под конкретную задачу! Вам, скорее всего, тоже придется поступить аналогичным образом для получения желаемого результата)
Данная реализация позволяет хранить конфигурацию АТС и данные(звонки и логи) в двух БД. Одна база позволяте управлять AТС, а другая смотреть информацию, в даномслучае пркдставлен пример использоввания простой веб-панели: Asterisk CDR Viewer Mod v2.6.4
Create /etc/asterisk/sip.conf
touch /etc/asterisk/sip.conf && chown asterisk. /etc/asterisk/sip.conf
Add general sip settings. Edit example as you need it/
cat >> /etc/asterisk/sip.conf << EOF [general] udpbindaddr = 0.0.0.0:5060 localnet=LOCAL NETWORK/MASK transport => udp externaddr => EXTERN IP ADDR nat => force_rport,comedia srvlookup => yes directmedia => nonat prematuremedia => no allowguest => no alwaysauthreject = no useragent => Aster15Realtime sdpsession => Aster15Realtime disallow => all allow => alaw allow = ulaw allow => opus regextenonqualify=yes rtptimeout => 30 rtpholdtimeout => 300 rtpkeepalive => 5 ignoreregexpire = yes rtcachefriends => yes rtupdate => yes rtautoclear => no rtsavesysname = no EOF
Thus, you have received Asterisk with the support of realtime and static storages in MySQL.
In addition, to add other static configs. For example, followme.conf, make include in the required config:
#include followme_static.conf
as indicated in /etc/asterisk/exconfig.conf:
followme_static.conf => odbc,realtimedb,follow_ast_config
Other for realtime configuration:
Открываем файл:
vi /etc/asterisk/modules.conf
Добавляем две опции:
require = chan_sip.so
require = chan_pjsip.so
Проверяем настройки:
asterisk -c
Если программа запустится, мы увидим Asterisk Ready:
* все ошибки и предупреждения можно проигнорировать, но правильнее их исправить, отключив неиспользуемые модули.
Теперь можно запустить астериск как службу:
systemctl enable asterisk
systemctl start asterisk
Заведение пользователя, можно выполнить без использования БД, отредактировавна АТС всего 2 файла(sip.conf и extensions.conf)
Создадим наш первый диалплан (правило обработки звонков):
vi /etc/asterisk/extensions.conf
Допишем в него следующее:
[outcaling]
exten => _XXX,1,Dial(SIP/${EXTEN},,m)
* в данном примере мы создаем контекст с именем outcaling для трехзначных номеров (XXX) с вызовом по SIP по внутреннему номеру.
Теперь создадим два внутренних номера:
vi /etc/asterisk/sip.conf
[public](!)
type=friend
context=outcaling
host=dynamic
disallow=all
allow=alaw
allow=ulaw
language=ru
qualify=yes
canreinvite=yes
call-limit=4
nat=no
[101](public)
regexten=101
secret=1234
callerid="101" <101>
callgroup=1
pickupgroup=1
[102](public)
regexten=102
secret=5678
callerid="102" <102>
callgroup=1
pickupgroup=1
* сначала мы создали шаблон public, в который занесли общие параметры. Шаблон мы применили к создаваемым коротким номерам.
* где:
- [101], [102] — имена для обозначения номеров.
- type — типы проверки номеров. Могут быть peer, user или friend. Peer — вызовы сопоставляются с IP-адресами и номерами портов. User — проверка username. Friend — включает возможности peer и user (проверка username и IP-адреса источника) и лучше всего подходит для телефонов и телефонных программ.
- regexten — добавочный номер. Если не задан, используется имя.
- secret — пароль для аутентификации.
- context — контекст или группа правил.
- host — IP-адрес или имя клиента. Для автоматической регистрации используем dynamic.
- callerid — идентификатор пользователя при звонке.
- disallow — запрещает кодеки (задается перед параметром allow).
- allow — разрешает кодеки. alaw и ulaw — алгоритмы для кодеков g711.
- language — код используемого языка.
- callgroup — задает группу устройства (для возможности перехвата).
- pickupgroup — задает перечень групп, которые можно перехватывать.
- qualify — включает или отключает периодическую проверку подключенного клиента.
- canreinvite — включает или отключает прохождение голосового RTP трафика через Asterisk. Устанавливать, только если клиент поддерживает функцию SIP re-invites.
- call-limit — ограничение количества одновременных вызовов.
- nat — устанавливается в yes, если клиент находиться за NAT.
Перезапускаем наш сервис:
systemctl restart asterisk
Подключение телефона и проверка
Для проверки сервера устанавливаем софт-телефон на компьютер. Например, а качестве SIP-клиента под Windows можно установить бесплатную программу 3CX Phone, для Android — Zoiper.
Пример настройки клиента 3CX Phone:
Настраиваем подключение с логином и паролем 101 / 1234, второй — 102 / 5678. Пробуем позвонить.
Cпасибо автору!
Источник: