Маршрутизация вызовов через GSM-шлюз в соответствии с оператором связи вызываемого номера
Довольно часто компании в целях снижения расходов на исходящую связь используют симкарты операторов сотовой связи подключая их через GSM-шлюз. И в такой ситуации возникает вопрос — а каким образом использовать резервы наиболее оптимально?
Например, маршрутизировать вызовы в соответствии с оператором вызываемого абонента, ведь сейчас ситуация такова, что внутри сети каждого оператора, связь достаточна дешева, по сравнению с межоператорскими вызовами. Необходимо каким-то образом настроить маршрутизацию, казалось бы самый очевидный вариант расписать шаблоны, но даже в рамках одного региона таких шаблонов будет довольно много, а если брать в рамках всей страны, то времени на заведение будет очень много. Поэтому самым оптимальным вариантом будет использование базы номерных диапазонов, которая находится в публичном доступе на сайте Россвязи:
Для решения нашей задачи данные номера необходимо внести в таблицу базы данных.
С указанного сайта базу номеров можно выгрузить в формате csv и подгрузить в ранее созданную таблицу базы данных.
Общий вид выписки в csv имеет нижеуказанные столбцы:
ABC/DEF — код оператора (префикс)
От — начало диапазона
До — конец диапазона
Емкость — количество номеров (для наших целей ненужно — так что можно удалить)
Оператор — оператор связи, которому принадлежит номер
Регион — регион нахождения номера (в рамках данной задачи тоже необязателен)
В БД (если у вас уже есть asteriskcdrdb можно использовать ее) необходимо создать таблицу reestr, состоящую из 4 столбцов: code, from, to, operator.
Далее настраивается транк в GSM-шлюз и маршрутизация по префиксам в порты шлюза (на стороне шлюза надо определить префиксы), например, используется три SIM-карты (МТС, Мегафон, Билайн). Префиксы разделены следующим образом:
01 — Мегафон
02 — МТС
03 — Билайн
Главное условие подобной настройки иметь постоянную привязку оператора к порту, так как маршрутизация по префиксам в GSM-шлюзе работает по портам шлюза.
Далее необходимо настроить подключение Астериска, к базе данных через ODBC.
И составить запрос на определение оператора, записав его в файл func_odbc.conf.
Примерный вид запроса:
[OPERATOR]
dsn=asteriskcdrdb
readsql=select concat(‘operator’) from ‘reestr’ where code = substr(‘${EXTEN}’, 2, 3) and length(substr(‘${EXTEN}’, 5, 7)) = length(‘to’) and ((substr(‘${EXTEN}’, 5, 7) >= ‘from’ and substr(‘${EXTEN}’, 5, 7) <= ‘to’ ) OR (substr(‘${EXTEN}’, 5, 7) = ‘from’ AND substr(‘${EXTEN}’, 5, 7) = ‘to’))
Далее необходимо создать контекст, выбора маршрута. Приведен примерный вид:
[for-mobiles-out]
exten => _89XXXXXXXXX,1,NoOp(${CDR(recordingfile)})
same => n,Set(mobopoperator=${ODBC_OPERATOR(${EXTEN})})
same => n,NoOp(${mobopoperator})
same => n,Set(DIALSTATUS=)
same => n,GotoIf(${REGEX(«МегаФон» ${mobop})}?:mark1)
same => n,Dial(SIP/GSM-trunk/01${EXTEN},90)
same => n,NoOp(dialstatus01: ${DIALSTATUS})
same => n,Hangup
same => n(mark1),GotoIf(${REGEX(«Мобильные ТелеСистемы» ${mobop})}?:mark2)
same => n,Dial(SIP/GSM-trunk/02${EXTEN},90)
same => n,NoOp(dialstatus02: ${DIALSTATUS})
same => n,Hangup
same => n(mark2),GotoIf(${REGEX(«Вымпел-Коммуникации» ${mobop})}?:mark3)
same => n,Dial(SIP/GSM-trunk/03${EXTEN},90)
same => n,NoOp(dialstatus03: ${DIALSTATUS})
same => n,Hangup
same => n(mark3),Goto(outbound-route, normal) ;если оператор не соответствует ни одному из приведенных вызов перекидывается в контекст стандартных исходящих маршрутов.
На этом настройка маршрутизации по операторам завершена.
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.