С.А. Милованов
Локальная сеть GSM на основе OpenBTS
Часть 7. Реализация центра коммутации и
информационной подсистемы сети (PBX Asterisk)
Как было определено в статье 1, в качестве центра коммутации мобильной связи (MSC), а так же информационной подсистемы сети, включающей в себя HLR и VLR, используется PBX Asterisk.
Asterisk - это проект с открытым исходным кодом компании Digium, первоначально начатый Марком Спенсером. Asterisk обладает всеми возможностями классической АТС, поддерживает множество VoIP протоколов и предоставляет функции голосовой почты, конференций, интерактивного голосового меню (IVR), центра обработки вызовов (постановка звонков в очередь и их распределение по агентам используя различные алгоритмы), запись CDR и прочие функции. Для создания собственной функциональности можно воспользоваться собственным языком Asterisk для написания диалплана, написав модуль на языке C, либо воспользовавшись AGI, который является гибким и универсальным интерфейсом для интеграции с внешними системами обработки данных.
Asterisk распространяется по условиям двойной лицензии, благодаря которой одновременно с основным кодом, распространяемым по открытой лицензии GNU General Public License, возможно создание закрытых модулей, содержащих лицензируемый код. Например, модуль для поддержки кодека G.729.
Приложение работает на операционных системах GNU/Linux, FreeBSD и Solaris и предназначено для создания решений компьютерной телефонии. Имя проекта произошло от названия символа *, который в Unix и DOS операционных системах обозначает совпадение любой последовательности символов в именах файлов.
Asterisk обеспечивает достаточное количество протоколов для поддержки соединений между традиционными системами телефонии и IP сетями, включая H.323, Session Initiation Protocol (SIP), Media Gateway Control Protocol (MGCP), and Skinny Client Control Protocol (SCCP) [2].
Самый простой способ заложить в Asterisk PBX как можно больше функций уровня управления проектируемой сети - использовать абонентские IMSI в качестве имен пользователей SIP и представлять каждый GSM-телефон в Asterisk как SIP-клиент.
Уровень управления OpenBTS (L3) в значительной степени предназначен для выполнения следующих операций:
1. обновление информации о местоположении в сети GSM отобразить в качестве SIP-регистрации;
2. транзакции соединения вызовов отобразить в качестве соответствующих транзакции SIP (так как управление вызовами в сети GSM очень похоже на работу протокола H.323 и управление вызовами ISDN/Q.931);
3. каналы трафика отобразить в качестве каналов RTP.
Таким образом, в программном коде OpenBTS самостоятельно полностью реализованы только операции управления радиоресурсами, обеспечивающие функциональный эквивалент BSC. Все остальное отображается в качестве объектов протокола SIP и реализуется в Asterisk, обеспечивающей функциональный эквивалент MSC и структурные части системы SS7 [1, стр.24].
Программная среда Asterisk входит в список устанавливаемых компонентов проекта OpenBTS и имеет в своем составе всё необходимое для реализации MSC и информационной подсистемы проектируемой сети. Для корректного выполнения Asterisk возложенных не нее функций, необходимо лишь настроить ее на работу с конкретными мобильными станциями.
Перед началом конфигурации Asterisk необходимо знать IMSI мобильных станций, подключаемых к сети. Если IMSI изначально неизвестны, узнать их можно с помощью команды «tmsis», выполняемой в командном окне запущенной среды OpenBTS (подробнее см. в статье 8). Дальнейшая конфигурация Asterisk сводится к настройке двух конфигурационных файлов – «extensions.conf» и «sip.conf».
Конфигурационный файл «extensions.conf» расположен по адресу «/etc/asterisk/extensions.conf» и содержит список инструкций или шагов, которым будет следовать Asterisk в процессе обработки входящих и исходящих вызовов [3, стр.158]. Содержимое данного файла носит называние «диалплан». На рисунке 1 представлен упрощенный диалплан, реализующий обработку вызовов двух мобильных телефонов, содержащий краткое обозначение наиболее важных составляющих.
Рисунок 1. Диалплан
Второй конфигурационный файл «sip.conf» расположен по адресу «/etc/asterisk/sip.conf» и определяет настройку протокола SIP применимо к проектируемой сети.
Протокол SIP (Session Initiation Protocol), обычно применяемый в VoIP-телефонах (как аппаратных, так и программных), отвечает за установку и разъединение соединения, а также за любые изменения, происходящие во время соединения, такие как переадресации [3, стр.117].
На рисунке 2 представлен вариант конфигурации протокола SIP, регистрирующий в проектируемой системе два мобильных телефона, содержащий краткое обозначение наиболее важных составляющих.