GSM на скорую руку

Подключение офисных АТС к GSM сетям давно стало необходимостью. К сожалению, даже в относительно новых станциях TDE/NCP штатная возможность отстутствует. Владельцы Панасоников до сих пор подключают свои АТС через заикающиеся аналоговые шлюзы. Качество голоса при таких подключениях посредственно, сигнализация половинчата, номера не определяются... Да и стоимость решений достигает 200$ за канал, и это не считая стоимости СО портов на Панасонике!
К счастью, для тех, кто предусмотрительно соединил TDE/NCP с Астериском, есть прекрасная возможность - вместо шлюзов использовать недорогие GSM модемы. В Сети достаточно материалов где описывается, как подключить модемы прямо к Астериску. Увы, для такого подключения требуется обновить ядро Линукс. Сложновато для рядового телефонщика. Мы обязательно вернемся к этой теме, когда основные поставщики выпустят дистрибутивы с подходящей версией linux. А пока воспользуемся программным SIP-GSM шлюзом "Oktell SIP-GSM Gateway". С 21 ноября 2011 года продукт начал распространяется бесплатно, потом, правда, куда-то пропал. Так что ссылку не даю - гуглите.
Но сначала - подключим модемы.
Подготовка модемов
На сайте разработчика шлюза перечислены совместимые модемы: Huawei E1550, Huawei E160g, Huawei E173, ZTE MF180.
У меня была возможность попробовать ZTE MF180. Увы, ничего с ним не получилось. А вот Huawei E153 от MTS заработал сразу, хотя в списке совместимых отстутствует. На момент написания статьи именно эта модель продается в салонах МТС по цене всего 200 грн (менее 25 долларов).
Разумеется, в интернете можно заказать современный нелоченный модем Huawei, и, даже, еще дешевле.
GSM модем Huawei E153
После подключения модема Windows обнаружит... новый CD-ROM. Не пугайтесь, это такая хитрая технология, называется ZERO-CD. На псевдодиске лежат драйверы модема. После установке драйверов, в системе появится и модем.
Скопируйте содержимое ZERO-CD себе на компьютер, оно понадобятся в дальнейшем.
А вот ZERO-CD придется отключить. Сделать это можно обычным гипертерминалом. Но, в новых версиях Windows его нет, так что воспользуемся популярной программой Putty.
Первым делом нужно определеить com-порт для управления модемом. Запускаем диспетчер устройств.
Диспетчер устройств
Каждый модем создает два порта. Для управления используется последний из них. Следовательно, для управления первым хуавеем нам нужен COM8. Запускаем Putty.
Putty serial line
Выбираем тип подключения Serial и Serial line - COM8. Затем выбираем категорию Terminal и устанавливаем
Putty force echo
Local echo в положение Force on. Жмем кнопку Open. Вводим команду AT. Если модем отвечает OK, значит подключится удалось. Отключаем ZERO-CD командой
AT^U2DIAG=0
Модем готов к работе. Проделываем теже действия для всех подключенных к системе модемов.
Кроме того, для всех sim-карт, которые вы собираетесь использовать, нужно отключить проверку pin. Это можно сделать с помощью программы от МТС (устанавливается вместе с драйверами). Или вставить sim-карту в мобильный телефон и отлючить проверку с помощью меню мобильного телефона.
С модемами все. Пора устанавливать программу.
SIP-GSM Gateway
Шлюз от Oktell без проблем устанавливается на windows от XP до 2008-й. При этом в системе появляется служба SipGsmService, а на рабочем столе ярлычок от управляющей программы - SipGsmGateway Manager. На современных версиях Windows последний не запускается, но не беда. Достаточно в свойтствах ярлыка на вкладке "Совместимость" поставить галочку "Выполнять эту программу от имени администратора".
Запускаем и жмем кнопку "Настроить" первого модема. Заполняем все, как на скриншотах.
Oktell SIP-GSM настройка
Домен SIP - указываем адрес сервера Астериск, у меня это - 192.168.1.204.
Oktell SIP-GSM настройка SIP
На скриншоте выше пароль не виден, мы будем использовать 123. В поле SIP номер по умолчанию удобно указать реальный номер сим-карты модема.
Oktell SIP-GSM настройка кодеков
Небольшое пояснение по поводу последней галки. Если ее поставить, в журнале соединений FreePbx несостоявшиеся звонки будут показываться, как совершенные (ANSWERED). Что испортит всю статистику. Если галку снять и на этом успокоиться, Астериск будет пытаться дозвониться до абонента последовательно через каждый подключенный к шлюзу модем, даже если абонент сбрасывает вызов или находится в зоне недоступности. Это еще хуже. Но выход есть! Галку снимаем, сохраняем изменения и идем вручную править конфиги. Они находятся в папке Program Files\SipGsmGateway\Cfg, по одному на каждый модем. Находим строчку:
<rejection_code><![CDATA[480]]></rejection_code>
и меняем 480 на 486:
<rejection_code><![CDATA[486]]></rejection_code>
Теперь все будет работать как надо.
Аналогично прописываем настройки для каждого установленного в системе модема. У меня их пока два, для второго в поле User name пишем mts2, sip номер по умолчанию берем со вставленной во второй модем карточки.

После настройки модемов, нажмите кнопку "Применить" в главном окне. И переходите к настройке Астериска.
Как только вы настроите транки там, шлюз тоже покажет удачное соединение:
Oktell SIP-GSM - полный успех
Настройка FreePbx
В меню "Транки" жмем ссылку "Добавить SIP транк" и заполняем:
Название транка: mts1
CID Options: Allow Any CID
Максимально каналов: 1
Название транка: mts1
Опции для PEER
username=mts1
type=friend
secret=123
qualify=yes
nat=no
host=dynamic
dtmfmode=rfc2833
disallow=all
canreinvite=no
allow=alaw&ulaw
Аналогично настраиваем транк и для второго модема, только вместо mts1 везде пишем mts2:
FreePbx настройка GSM
Сохраняем и применяем изменения.
Если все правильно, в панели FreePbx транки mts1 и mts2 засияют зеленым. SIP-GSM шлюз тоже покажет удачное соединение.
Исходящая маршрутизация
Теперь настроим маршрутизацию. Начнем с исходящей. Пункт в меню FreePbx так и называется. Предположим, мы хотим пустить через GSM шлюз звонки на всех мобильных операторов Украины.
Заполняем поля:
Название маршрута: MTS
Dial Patterns that will use this Route:
(   )+9|039XXXXXXX
(   )+9|050XXXXXXX
(   )+9|063XXXXXXX
(   )+9|066XXXXXXX
(   )+9|067XXXXXXX
(   )+9|068XXXXXXX
(   )+9|091XXXXXXX
(   )+9|094XXXXXXX
(   )+9|095XXXXXXX
(   )+9|096XXXXXXX
(   )+9|097XXXXXXX
(   )+9|098XXXXXXX
(   )+9|099XXXXXXX
FreePbx. Маршрут через Vodafone (Украина)
Для России еще проще, достаточно одной строки:
( )+9|89XXXXXXXXX
Сохранить, применить и готово! Что бы позвонить на мобильный, абоненту Астериска достаточно набрать 9, код мобильного оператора и номер абонента.
Что бы у людей, которым вы звоните, не высвечивались номера шлюзов, нужно заказать у оператора услугу "Анти-АОН". Но как быть, если некоторым абонентам все-таки нужно показать номер?
Идем в меню "Транки" и добавляем специальный транк:
FreePbx. Настройка анти-АОН
Обратите внимание на маленькую букву i в конце специального набора.
Аналогично создаем дополнительные транки для всех модемов.
Теперь создаем маршрут МТСi
FreePbx. Маршруты с запретом определения номера
В Dial Patterns помещаем все телефоны, при звонках на которые номер должен определяться.
Маршрут MTSi в списке маршрутов нужно расположить до маршрута MTS:
FreePbx. Приоритет маршрутов

Готово!

Чуть позже я расскажу, как направить через шлюз и абонентов TDE.
А сейчас - входящая маршрутизация.
Входящая маршрутизация
Идем в меню «Группы вызова» и жмем "Добавить группу вызова".
Описание группы: Mts
Стратегия дозона: звонят-все.
Лист внутренних номеров. Сюда пишем внутренние, а так же внешние (абонентов TDE и т.п.) номера. По одному номеру на строчку. Внешние номера завершаем знаком #.
Назначение, если никто не ответил: Терминировать звонок.
Остальные пункты по умолчанию.
FreePbx. Группы вызовов
Сохраняем изменения и идем в меню «Входящая маршрутизация»
Добавляем входяще маршруты по числу подключенных модемов.
Описание: FromMts
Номер DID: 380501234567
(Номер DID переписываем из настроек шлюза Oktell, поле SIP номер по умолчанию)
Установить назначение: Группы вызова, в списке рядом выбрать созданную на предыдущем этапе группу.
FreePbx. Входящий маршрут MTS
Проверяем. Звоним с любого мобильника на номера установленных в модемы сим-карт. Если входящий звонок поступает всем абонентам, которые мы внесли в «Группу вызова», значит порядок, и с этим этапом мы справились.
Можно еще настроить псевдо-многоканальность. Установите "переадресацию по занято" для первой сим-карты на номер второй. Всем сотрудникам сообщите только первый номер. Таким образом, секретари смогут принимать два одновременных звонка по одному номеру. Естественно, в группе вызова должно быть хотя бы два секретаря.
На этом этапе мы настроили входящие и для абонентов Астериска и для абонентов TDE. Но для ортодоксов нужно еще настроить исходящую маршрутизацию. Приступаем.
Настройка TDE
Осталось настроить TDE, дабы и традиционные абоненты звонили на мобильные через шлюз.
Настройка сводится к заданию правил Автоматического выбора маршрута, или ARS по-английски. Запускаем консоль и идем в п.8.1. Здесь нужно из списка Режим ARS выбрать «Вкл для прямого доступа» или «Вкл для доступа к любой внешней линии». (Второй режим запрещает обходить правила ARS через набор специальных кодов).
Следующее поле – «Режим, в котором для вызова не запрограммирован ни один из поставщиков услуг связи». По дефолту там стоит «Прямой доступ». Так и оставьте. Этот выбор означает, что если ARS не сработает, вызов пойдет как обычно.
KX-TDE Настройка ARS
Теперь идем в 8.5 – поставщики услуг связи. В первой свободной строке (у меня она под номером 2) пишем:
Имя поставщика: Asterisk_PBX
Количество удаляемых цифр – 0.
Команда преобразования: CH
Код доступа к поставщику: 9
8.5 Поставщик услуг связи
Переходим на вкладку Группа СО 1-16. Надеюсь, когда вы объединяли станции, не забыли выделить соединительные линии в отдельную группу? Помнится, у меня ее номер 6. Что ж, на перекрестке столбца «Группа СО06 и второй строки жмем курсор мыши. Ячейка посинеет.
8.5 ARS - группы CO
П. 8.4 – Приоритет плана маршрутизации. Выберите план маршрутизаци: 2. Для всех времен и всех дней недели поставьте в строке Приоритет 1: «02: Asterisk_PBX». Вторым приоритетом можно поставить какого-нибудь другого поставщика, для резерва.
8.4 Приоритет плана маршрутизации
П. 8.2. – Первые цифры номера.
Колонка «Первые цифры номера» заполняется в зависимости от страны. Для Украины в каждой строке пишем:
039
050
063
066
067
068
091
094
095
096
097
098
099
8.2 Первые цифры номера
Для России достаточно одной строчки:
89
т.к. все мобильные в РФ начинаются с девятки.

В колонке «Номер плана маршрутизации» напротив каждого из кодов должно стоять «2».
Проверяем, набираем с подключенного к TDE аппарата 9 (код выхода на внешнюю линию) и номер лежащего неподалеку мобильника. На мобильном должен отбиться один из номеров модемов. Если что-то не выходит, смотрите сначала через SMDR, что и через какой транк набирает TDE, затем в консоли Астериска, какой номер он передает SIP-GSM шлюзу.
Теперь наоборот, позвоним с мобильного на один из номеров GSM шлюза. Все аппараты, которые мы внесли "Группу вызвова" FreePbx должны зазвонить. Если аппараты системные, или с поддержкой FSK - мы увидим номер мобильника.
У нас, правда, МТС передает номер в международном формате, вместе с кодом страны, и на телефонах высвечивается что-то вроде: 9380501111111.
Но это можно исправить. Идем в 3.1.1 (Настройки группы CO) и для 6-й группы (Asterisk) в колонке "Таблица модификации Caller ID ставим цифру 2. Теперь в 3.1.3 выбираем вторую таблицу модификации и заполняем: Код зоны 380, Количечество удаляемых цифр - 2.
3.1.3 Модификация Caller ID
Теперь тот же входящий будет отображаться как 90501111111.
Ура!
Заключение
Подведем итоги. Абонеты TDE и Астериска звонят мобильным абонентам через GSM шлюз. Это дает колоссальную экономию, т.к. в Украине многие операторы предлагают бесплатную внутрисеть. Да и стоимость звонков на другие сети ниже, чем через проводную телефонию.
До изобретения модемов многие, в т.ч. и автор этих строк, пробовали использовать аналоговые шлюзы для выхода на GSM. Интересно было сравнить качество голоса одного из популярных шлюзов в сравнении с USB модемом. Удивительно, но малюсенький Huawei бьет аналового мастадонта с 10-ти сантиметровой антеной и по этому параметру!

Дополнение (май 2013). В связи с выходом AsteriskNow 3.0, модемы теперь легко и без проблем подключаются к самому Астериску. Как это сделать - читайте в следующей статье.
Обсудить статью, задать вопросы автору можно на форуме.
Любое использование материалов данной статьи возможно, лишь при обязательном указании ссылки на первоисточник.
Впервые статья была опубикована по адресу: http://pbx.gal.cv.ua/speedy-gsm
После переезда на esmdr.com ее новый адрес -