artem
30.12.2016
4042

Маршрутизация вызовов через GSM-шлюз в соответствии с оператором связи вызываемого номера

Довольно часто компании в целях снижения расходов на исходящую связь используют симкарты операторов сотовой связи подключая их через GSM-шлюз. И в такой ситуации возникает вопрос — а каким образом использовать резервы наиболее оптимально? 

Например, маршрутизировать вызовы в соответствии с оператором вызываемого абонента, ведь сейчас ситуация такова, что внутри сети каждого оператора, связь достаточна дешева, по сравнению с межоператорскими вызовами. Необходимо каким-то образом настроить маршрутизацию, казалось бы самый очевидный вариант расписать шаблоны, но даже в рамках одного региона таких шаблонов будет довольно много, а если брать в рамках всей страны, то времени на заведение будет очень много. Поэтому самым оптимальным вариантом будет использование базы номерных диапазонов, которая находится в публичном доступе на сайте Россвязи
Для решения нашей задачи данные номера необходимо внести в таблицу базы данных.
С указанного сайта базу номеров можно выгрузить в формате csv и подгрузить в ранее созданную таблицу базы данных.
Общий вид выписки в 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) ;если оператор не соответствует ни одному из приведенных вызов перекидывается в контекст стандартных исходящих маршрутов.
На этом настройка маршрутизации по операторам завершена.

avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.