Asterisk — система VoIP-телефонии. Интеграция с Asterisk позволяет:
Для этого нужно настроить систему.
Приобретите лицензию на модуль «Интеграция с Asterisk».
Убедитесь, что заданы SIP-настройки Asterisk, которые находятся в файле /etc/asterisk/sip.conf.
Убедитесь, что установлен модуль LBircd — он отвечает за работу Voip-агента.
Скачайте и установите пакеты для АСР LANBilling.
Задайте параметры в конфигурационных файлах для плагина и для сервиса.
В личном кабинете Satisfy CRM перейдите на вкладку «Загрузки».
Для установки необходимы два пакета: lbircd-asterisk-plugin и lbircd-asterisk. Выберите пакеты, которые соответствуют вашей ОС и версии Asterisk.
Чтобы скачать пакет, нажмите в строке с его названием.
Сохраните пакеты на сервер, где будете устанавливать модуль. В этой инструкции предполагается, что пакеты хранятся в директории /root/.
Установите lbircd-asterisk-plugin на тот же сервер, где находится Asterisk. Пример:
dpkg -i lbircd-asterisk-v18.1.1-plugin-1.0.2-2.gitd7481f2.debian9-amd64.deb
``
Установите сервис lbircd-asterisk. Пример:
dpkg -i lbircd-asterisk_1.0.0-0.18.git2f67b9a_amd64.deb
``
Установите lbircd-asterisk-plugin на тот же сервер, где находится Asterisk. Пример:
rpm -ivh lbircd-asterisk-v18.1.1-plugin-1.0.1-5.gitd7481f2.el8.x86_64.rpm
``
Установите сервис lbircd-asterisk. Пример:
rpm -ivh lbircd-asterisk-1.0.0-0.18.git2f67b9a.x86_64.rpm
``
Откройте конфигурационный файл lanbilling.conf:
nano /etc/asterisk/lanbilling.conf
``
Внесите изменения.
Укажите IP-адрес и порт, на котором находится сервис:
host=127.0.0.1
port=9000
Задайте правила поведения по умолчанию. Они работают, если сервис lbircd-asterisk недоступен — например из-за ошибки соединения. Обратите внимание, что эти правила не влияют на SIP-настройки Asterisk.
Разрешите или запретите авторизацию абонента.
Разрешить:
default_auth=accept
Запретить:
default_auth=reject
АСР LANBilling может автоматически прекращать звонок абонента по истечении определённого времени. Задайте лимит в секундах — время, которое может длиться звонок:
default_call_limit=86400
Сохраните файл.
Откройте конфигурационный файл lbircd-asterisk.conf:
nano /etc/lanbilling/lbircd-asterisk.conf
``
Внесите изменения.
Задайте IP-адрес и порт, на котором сервис ожидает данные от lbircd-asterisk-plugin.
[ast]
bind_address="0.0.0.0:9000"
Введите IP-адрес и порт модуля LBCore, а также логин и пароль администратора.
[billing]
address="127.0.0.1:1502"
login="admin"
password=""
Укажите IP-адрес модуля LBircd, порты авторизации и аккаунтинга, а также секрет из настроек NAS.
[ircd]
host="127.0.0.1"
auth_port="1812"
acct_port="1813"
secret="secret"
Сохраните файл.
На свервере Asterisk откройте конфигурационный файл extensions.conf:
nano /etc/asterisk/extensions.conf
``
Настройте диалплан. Доступны несколько функций.
LANBillingAuth(identifier?allow:reject) — авторизовывает абонента на стороне LBircd. Параметр «Identifier» передаётся при RADIUS-запросе в атрибуте «User-Name». Метки «аllow» и «reject» нужны для ветвления диалплана в зависимости от результата авторизации.
Остальные функции будут работать, только если вызов LANBillingAuth() завершился успешно.
LANBillingCreditTime() — возвращает лимит времени для абонента.
LANBillingStartSession() — отправляет пакет «accounting start» в LBircd.
LANBillingStopSession() — отправляет пакет «accounting stop» в LBircd. Рекомендуем вызывать с приоритетом «h», иначе сессия может не закрыться вовремя.
Пример:
[default]
exten => _10XX,1,LANBillingAuth(${EXTEN}?allow:reject)
same => n(allow),GoTo(DialExten,s,1)
same => n(reject),Hangup()
same => n,Verbose("Call rejected")
[DialExten]
exten => s,1,Set(TIMEOUT(absolute)=${LANBillingCreditTime()})
same => n,LANBillingStartSession()
same => n,Dial(SIP/${CALLERID(dnid)})
same => n,Hangup()
exten => h,1,LANBillingStopSession()
``
Сохраните файл.
Запустите lbircd-asterisk:
service lbircd-asterisk start
``
Система проверит лицензию и выведет сообщение:
License supports lb-asterisk
``
Включите взаимодействие Asterisk с АСР LANBilling. Для этого можно либо перезагрузить Asterisk, либо обновить его данные с помощью нескольких команд.
Перейдите в консоль Asterisk:
asterisk —r
``
Обновите конфигурацию диалплана:
dialplan reload
``
Загрузите модуль lbircd-asterisk-plugin:
module load app_lanbilling.so
``
Пример сообщений после успешного запуска:
[Feb 1 16:46:13] NOTICE[32711]: app_lanbilling.c:688 load_module:
lanbilling.conf loaded:
Host: 127.0.0.1
Port: 9000
Default authorization: accept
Default duration limit: 86400
[Feb 1 16:46:13] NOTICE[32711]: app_lanbilling.c:694 load_module:
Connected to lb-asterisk at 127.0.0.1:9000
Теперь при каждом звонке плагин будет передавать события из Asterisk в АСР LANBilling. Логи хранятся в двух местах.
Есть вопросы по документации? Пожалуйста, напишите их