Определение региона и оператора связи с помощью NumCAP
Описание: При организации колл-центра на базе Asterisk периодически возникает необходимость знать из какого региона именно поступил входящий звонок, например если в компании несколько филиалов по стране и требуется распределение входящих звонков в зависимости от региона на определенный филиал, или когда требуется оптимизировать расходы на исходящую связи в зависимости от оператора на номер которого осуществляется звонок. В данной […]
Описание:
При организации колл-центра на базе Asterisk периодически возникает необходимость знать из какого региона именно поступил входящий звонок, например если в компании несколько филиалов по стране и требуется распределение входящих звонков в зависимости от региона на определенный филиал, или когда требуется оптимизировать расходы на исходящую связи в зависимости от оператора на номер которого осуществляется звонок.
В данной статье мы рассмотрим разработку NumCAP, написанную на NodeJS
В статье использовались файлы:
numcap-default.zip — исходники NumCAP, а так же сконвертированная база плана нумерация Россвязи и примеры использования приложения NodeJS.
Инструкция:
1. Выполним подключение по SSH к серверу IP АТС Asterisk. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.
2. Подключим Epel репозиторий:
# yum install epel-release
3. Подключим репозиторий NodeJS v8:
# curl —silent —location https://rpm.nodesource.com/setup_8.x | bash —
4. После успешного подключения репозиториев выполним установку Node.js v8 LTS и npm:
# yum install nodejs
NumCAP_Asterisk_3. Установка NodeJS и npm
5. Приступим к установке дополнительного ряда зависимостей и скачиваю приложения NumCAP:
# cd /opt/
# git clone https://github.com/antirek/numcap.git
# cd /opt/numcap
# rm -rf package.json
# npm init —yes
# npm install request —save
# npm install numcap —save
6. Выполним обновление базы плана нумерации Россвязи:
# rm -rf /opt/numcap/data/*
# cd /opt/numcap/download
# wget https://rossvyaz.ru/data/ABC-3xx.csv —no-check-certificate
# wget https://rossvyaz.ru/data/ABC-4xx.csv —no-check-certificate
# wget https://rossvyaz.ru/data/ABC-8xx.csv —no-check-certificate
# wget https://rossvyaz.ru/data/DEF-9xx.csv —no-check-certificate
# cd ..
# node ncli.js —csv2json
7. Создадим приложение js которое будет обращаться к NumCAP и возвращать регион звонящего на основе номера звонящего:
# nano /opt/numcap/region.js
И приведем данный скрипт к виду:
//Присваиваемой переменной phone значение номера звонящего
let phone = process.argv[2];
var numcap = require(‘numcap’);
var finder = new numcap();
//Выполняем обращение к NumCAP и возвращаем из массива data регион звонящего
finder.getData(phone, function (err, data) {
console.log(data[«region»]);
});
8. Перейдем к настройке Asterisk, для этого перейдём в WEB панель управления FreePBX через интернет обозреватель(Opera, Firefox, Google Chrome, Yandex Browser….) по ссылке вида: http://IP_адрес_сервера_Asterisk/ В примере ссылка имеет вид: http://192.168.170.163/
9. Пройдём авторизацию во FreePBX, нажмём «FreePBX Administration», введем «username и password» и нажмём «Continue»
10. Перейдем в меню Admin → CallerID Lookup Sources → Add CIDLookup Source и создадим CIDLookup для правки имени звонившего(заполняемые данные не имеют значения, т.к. В последующем данный CIDLookup подвергнется кастомизации):
11. Добавим вызов CIDLookup во входящий маршрут, чтобы при поступлении входящего вызова к номеру звонящего в параметр имени подставлялся регион, для этого перейдем в меню Connectivity → Inbound Routes → Редактирование входящего маршрута и на вкладке «Other» в параметре «CID Lookup Source» выберем созданный ранее CIDLookup — region.
12. Вернемся к консоли SSH и выполним кастомизацию созданного CIDLookup:
# nano /etc/asterisk/extensions_override_freepbx.conf
И приведем данный файл к виду:
[cidlookup]
include => cidlookup-custom
exten => cidlookup_1,1,Noop(NumCAP)
exten => cidlookup_1,n,Set(CALLERID(name)=${SHELL(node /opt/numcap/region.js ${CALLERID(num)})})
exten => cidlookup_1,n,Set(CALLERID(ANI-num)=${SHELL(node /opt/numcap/region.js ${CALLERID(num)})})
exten => cidlookup_1,n,Return()
Остались вопросы?
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.