- PVSM.RU - https://www.pvsm.ru -
Такие устройства, как VoIP GSM шлюзы пользуются растущей популярностью среди российских компаний и предпринимателей. Сфера их применения достаточно широка – начиная с экономии средств компании на звонках по мобильным номерам, заканчивая различными SMS-рассылками. Потребности многих компаний не ограничиваются одним, даже самым мощным, шлюзом. При использовании же нескольких подобных устройств, особенно распределенных территориально, трудозатраты по их поддержке и администрированию возрастают значительно. Устройства под названием SIM-банки позволяют не только упростить работу с несколькими VoIP GSM шлюзами, но и добавить последним множество интересных возможностей. Сегодня, на примере SIM-банков SMB32 [1] и SMB128 [2] мы познакомимся и научимся работать с данным классом устройств.
SIM банк — это устройство агрегации SIM карт в одном месте. Проще говоря, это устройство, в которое физически подключаются SIM карты, а связь SIM карты с GSM шлюзом осуществляется через IP сеть. Это значит, что GSM-шлюзы могут быть установлены где угодно – даже в разных городах и странах, в то время как сами SIM-карты будут всегда у вас под рукой. При этом, для оператора связи точкой регистрации SIM карты будет расположение того шлюза, с которым она сейчас работает, а не действительное её месторасположение.
Агрегация множества SIM-карт в одном устройстве – это основная функция SIM-банка. Но также он может выполнять и другие функции, например:
Благодаря SIM банку можно в любой момент поменять местами SIM карты в шлюзах, расположенных в разных частях города или запрограммировать сценарий, по которому SIM-карты будут автоматически привязываться к другому GSM шлюзу и, тем самым, создать иллюзию передвижения SIM карты для оператора связи.
Пожалуй, самыми популярными на сегодняшний день устройствами класса SIM-банк являются те, что выпускаются под названием GoIP. Есть модель SMB32 [1] на 32 SIM-карты, а есть модель SMB128 [2], соответственно, на 128 SIM-карт. У нас под рукой оказалась старшая модель и пара четырехканальных VoIP GSM шлюзов GoIP 4 [3]. Описанные в статье настройки будут также применимы и к младшей модели SMB32 и к другим моделям VoIP GSM шлюзов GoIP (на один канал, на восемь, на шестнадцать).
[4] [5]
Слева — SIM-банк SMB32, справа — SIM-банк SMB128
А вот на что следует обратить внимание, так это на производителя устройств. По славной китайской традиции VoIP GSM шлюзы под названием GoIP выпускают как минимум две компании — Hybertone и DBL. Несмотря на то, что на аппаратном уровне эти устройства идентичны, они могут иметь различия в ПО. Все описанное в этой статье применимо к GSM шлюзам и SIP-банкам производства компании DBL. Гарантировать применимость данных настроек к устройствам Hybertone, я, к сожалению, не могу.
Для полноты картины стоит отметить, что также SIM-банки выпускает и другой производитель VoIP GSM шлюзов – компания Dinstar. У них есть модели на 64 и 128 SIM-карт, однако поработать с ними пока, к сожалению, не доводилось.
SIM-банки GoIP могут работать в двух режимах: выступать в качестве сервера для GSM-шлюзов или работать совместно с бесплатным ПО SMB Scheduler Server. Первый вариант более простой, но имеет некоторые ограничения. Он подходит для тех компаний, которые используют один SIM-банк и не планируют передавать SIM-карты в нем между различными шлюзами. Работа с SMB Scheduler Server лишена этих ограничений – по заявлению разработчиков, поддерживается до 10000 SIM-карт, а также возможности их распределения как между каналами одного шлюза, так и между самими шлюзами.
Мы рассмотрим оба этих варианта работы – от простого к сложному. Но сначала необходимо зарегистрировать наши GSM-шлюзы на IP-АТС, в нашем случае это будет – Asterisk. Те, кто хорошо знаком и с VoIP GSM-шлюзами GoIP, и с Asterisk, могут просто пропустить следующий раздел.
Вначале совсем немного теории. GSM-шлюзы GoIP могут регистрироваться на SIP-сервере четырьмя различными способами:
Для базовой настройки связки GoIP – Asterisk мы будем использовать четвертый вариант, но в режиме с регистрацией. Все входящие на SIM-карты вызовы мы будем отправлять на некоторый внутренний номер на АТС. Исходящие вызовы будем маршрутизировать на основе префиксов: в зависимости от того, через какую SIM-карту требуется направить вызов, Asterisk будет подставлять в вызываемый номер определенный префикс. Шлюз будет анализировать префикс, после чего отбросит его и направит вызов через нужную SIM-карту (канал).
В Астериске создаем SIP пир для нашего шлюза с параметром Line ID – 70064 (это последние пять цифр серийного номера шлюза, для удобства):
[goip70064]
type=friend
host=dynamic
defaultuser=goip70064
secret=pass70064
qualify=yes
dtmfmode=rfc2833
context=from-trunk-sip-goip70064
Файл /etc/asterisk/sip.conf
Как я уже говорил, GSM шлюз в нашем примере будет распределять исходящие вызовы по своим линиям, основываясь на префиксе номера. Но для этого нам надо, чтобы Asterisk добавлял эти префиксы к номерам, руководствуясь какой-то логикой. В нашем случае особой логики не будет – Asterisk будет по очереди добавлять префиксы 011, 012, 013 и 014 (которые соответствуют 1-4 линиям шлюза) пока не найдет свободную линию и вызов не пройдет. Играясь с маской номера, можно построить более гибкую логику выбора исходящей линии, основанную, к примеру, на том, какому оператору связи принадлежит вызываемый номер.
[from-phones]
exten => _8XXXXXXXXXX,1,Dial(SIP/goip70064/011${EXTEN}) ; Звонок через первую GSM линию
exten => _8XXXXXXXXXX,n,Dial(SIP/goip70064/012${EXTEN}) ; Звонок через вторую GSM линию
exten => _8XXXXXXXXXX,n,Dial(SIP/goip70064/013${EXTEN}) ; Звонок через третью GSM линию
exten => _8XXXXXXXXXX,n,Dial(SIP/goip70064/014${EXTEN}) ; Звонок через четвертую GSM линию
exten => _8XXXXXXXXXX,n,Hangup()
Файл /etc/asterisk/sip.conf
Теперь в web-интерфейсе GoIP переходим в раздел Configurations — Basic VoIP. Для опции Config Mode выбираем вариант Trunk Gateway Mode — ниже отобразятся соответствующие настройки для этого режима. В опции SIP Trunk Gateway1 указываем IP адрес нашего SIP сервера или его доменное имя. В опции Phone Number указывается имя пира, созданного на стороне SIP сервера, в нашем случае — это goip70064. Re-register Period(s) — указывается интервал времени в секундах для повторной регистрации на SIP сервере; мы указали 60 секунд, если указать 0 — то регистрация осуществляться не будет. Далее идёт опция Authentication ID, где указывается имя для аутентификации шлюза на SIP сервере и часто совпадает с именем SIP пира, в нашем случае — это опять же goip70064. Затем указывается пароль в опции Password, мы указали — pass70064. В последней опции, Routing Prefix — указывается префикс, по которому будут распределяться исходящие вызовы между GSM линиями. В файле extensions.conf в Asterisk мы использовали префиксы 011 – 014, поэтому именно их и следует указать здесь:
После основных настроек подключения, добавим настройки входящей и исходящей маршрутизации. Настройка входящей маршрутизации доступна в разделе Configuration — Call In. Здесь достаточно указать для каждой линии в опции Forwarding to VoIP Number — номер, который будет вызываться на IP-АТС. В нашем случае я указал просто 5555 для всех линий. Для того, чтобы просто проверить, что вызовы действительно приходят с наших GSM линий на SIP сервер, этого будет вполне достаточно.
Настройка исходящей маршрутизации осуществляется в разделе Configuration — Call out. Для каждой линии настраивается параметр Dial Plan, в котором нужно прописать правило, которое будет удалять префикс (тот самый префикс, который мы задали в разделе Configurations — Basic VoIP) в начале вызываемого номера:
Для нашего примера данных настроек будет вполне достаточно: мы сможем совершать звонки через линии шлюза GoIP, добавляя к вызываемым номерам соответствующий префикс, а так же принимать звонки с любой GSM линии, направляя их всех на внутренний номер 5555, заведенный на Asterisk. Аналогичные настройки мы произвели и для второго шлюза GoIP, который также будет работать с нашим SIM-банком.
Теперь подключим наши GSM-шлюзы GoIP 4 к SIM-банку SMB128, работающему в режиме сервера. Для этого необходимо перевести SIM-банк в режим работы сервера и добавить учетные записи для каждого GoIP шлюза. В Web-интерфейсе SMB128 переходим в раздел Configurations — SIM Bank Settings и в опции Operation Mode выбираем вариант Use Buil-in SIM Server. В разделе GoIP Clients, добавляем необходимое количество учетных записей для каждого шлюза GoIP. Потребуется заполнить следующие поля:
В нашем примере получились такие настройки (другие опции остались в значении по умолчанию):
Далее, подключаем шлюзы GoIP к SIM банку. В Web-интерфейсе шлюза GoIP переходим в раздел Configurations — Preferences. Переводим опцию Remote Server в состояние Enable, после чего появятся дополнительные опции. Remote SIM переключаем в состояние Enable — тем самым, указывая шлюзу использовать режим работы с удаленным SIM сервером. В опции Server указываем IP адрес SIM-банка или его доменное имя, в опции ID указывается идентификационный номер шлюза — тот самый Login ID, который мы использовали при заведении учетной записи в SIM банке. В опции Password указываем соответствующий пароль.
Как уже было сказано, режим работы SIM-банка в качестве сервера имеет некоторые ограничения. Самое главное из них заключается в том, что каждому каналу каждого GSM-шлюза выделяется собственный диапазон SIM-карт, который не может использоваться другими каналами. То есть, весь диапазон SIM-карт разбивается на несколько непересекающихся множеств, каждое из которых назначается определенному GSM-каналу.
Выглядит это следующим образом: в разделе Configurations — SIM Bank Settings Web-интерфейса SIM-банка есть опция # of SIM slots reserved per line, в которой указывается количество SIM-карт, которое может быть использовано каждым из каналов. В нашем примере у нас есть два четырехпортовых шлюза GoIP4, итого – 8 каналов. Если в этой опции мы укажем, например, значение «3», то первому каналу первого шлюза будут доступны SIM-карты №1, №2 и №3, второму каналу первого шлюза — №4, №5 и №6, а первому каналу второго шлюза — №13, №14 и №15.
После того, как мы выделили каждому каналу его множество SIM-карт, требуется дать ответы на два вопроса: во-первых, какое событие должно произойти, чтобы SIM-банк заменил для GSM-канала текущую SIM-карту на другую, из назначенного каналу множества. Во-вторых, на какую именно SIM-карту при наступлении этого события следует произвести замену? Ответ на первый вопрос мы дадим в следующем разделе, а вот на второй вопрос отвечает опция SIM Schedule Mode. Доступны следующие методы выбора рабочей SIM-карты:
Теперь самое время настроить события, наступление которых влечет за собой переключение на другую SIM-карту или выполнение SIM-банков еще каких либо действий. Для этого в разделе Configurations есть два подраздела:
На наступление каждого из событий можно назначить следующие действия:
В принципе, это все основные настройки при работе SIM-банка в режиме сервера. Единственное, на что еще следует обратить внимание – это на правильную установку и удаление SIM-карт. Для того чтобы делать это безопасно, требуется предварительно отключить питание необходимого слота. Именно для этого и предназначены клавиши на корпусе SIM-банка, однако намного проще делать это с помощью Web-интерфейса. Заходим в раздел Install / Remove SIM Cards и кликаем по заголовку нужных слотов. Серый цвет означает, что питание на слот подается, красный цвет – нет. Нажимаем Submit для подтверждения действия, устанавливаем или удаляем SIM-карту, включаем питание слота и снова подтверждаем действие клавишей Submit.
Для мониторинга установленный в SIM-банке SIM-карт предназначен раздел SIM Slot Status. Данные в этом разделе представлены в виде таблицы, где каждая ячейка соответствует одной SIM-карте и содержит следующую информацию:
Также, при наведении курсора мыши на ячейку, появится всплывающая подсказка с расширенными параметрами состояния и статистикой для данной SIM-карты.
Работа SIM-банка в качестве клиента возможна при использовании бесплатного ПО Scheduler Server. Scheduler Server — это программный сервер, который позволяет управлять сразу несколькими шлюзами GoIP и SIM банками SMB. На момент написания статьи актуальная релизная версия ПО 1.7.2 и доступна для скачивания по ссылке [6].
При использовании Scheduler Server становятся доступны следующие возможности:
Забегая вперед, отмечу, что у Scheduler Server есть и свои ограничения по сравнению с использованием SIM-банка в качестве сервера. В первую очередь это касается того, что переключение между SIM-картами возможно только по времени, в по событиям – нет.
Требования к системе:
Требования к сети:
После разархивирования полученного пакета, нужно запустить скрипт smb_scheduler_install.sh, который задаст несколько уточняющих вопросов и всё установит, включая БД. Далее, вся настройка производится в веб интерфейсе.
Главная роль сервера — связать SIM-карту в SIM-банке с линией GoIP шлюза. Работает это следующим образом:
Есть два способа распределения SIM карт: в фиксированном режиме и в режиме группового назначения. Фиксированный режим — это установление связи GSM-линия — SIM слот вручную, данная связь не изменится, пока пользователь сам не внесет какие либо изменения. Режим группового назначения — это динамический режим создания связей GSM-линия — SIM слот.
В отличии от режима работы SIM-банка в качестве сервера, где каждая группа SIM-карт может быть привязана только к определенному GSM-каналу, использование Scheduler Server дает намного больше возможностей по распределению SIM-карт. Работает это следующим образом: создаются группы, к которым можно привязать как любые слоты в SIM-банке, так и любые GSM-линии любого GSM-шлюза. Соответственно, распределение SIM-карт по GSM-линиям осуществляется внутри этих групп.
Однако есть еще одна особенность – каждый GSM-шлюз (именно шлюз, не линия) привязывается к зоне. Зоны создаются самим пользователем и по задумке разработчиков должны характеризовать реальное территориальное расположение шлюза. Нужно для реализации функции эмуляции передвижения SIM-карты: Scheduler Server настроен по умолчанию таким образом, чтобы постоянно переключать SIM-карты между шлюзами из различных зон.
В каких случаях происходит переключение SIM-карты? Увы, в случае с Scheduler Server работают только временные условия. Для каждой группы могут быть заданы следующие временные правила распределения SIM-карт:
Последний вопрос, на который стоит ответить – это как происходит выбор следующей для назначения SIM-карты. Алгоритм работы тут довольно простой:
Для начала с помощью Web-интерфейса Scheduler Server требуется завести учетные записи для всех GSM-шлюзов и SIM-банков, которые будут к нему подключены. Учетные записи для GSM-шлюзов заводятся в разделе GoIP. Нажимаем Add и заполняем следующие поля:
Учетные записи для SIM-банков создаются, соответственно, в разделе SIM-Bank. Для добавления нового устройства, требуется заполнить следующие поля:
Переходим к Web-интерфейсам наших устройств. Начнем с GSM-шлюза GoIP. В разделе Configurations — Preferences переводим опции Remote Server и Remote SIM в состояние Enable. В опции Server указываем IP адрес Scheduler Server или его доменное имя, в опции ID указывается идентификационный номер шлюза — тот самый GoIP ID, который мы использовали при заведении учетной записи в Scheduler Server, в поле Password указываем соответствующий пароль. Переключатель Net protocol переводим в состояние UDP.
Теперь зарегистрируем на Scheduler Server наш SIM-банк. В Web-интерфейсе SMB128 переходим в раздел Configurations — SIM Bank Setting и в опции Operation Mode выбираем Use External SIM Server, а в опции SIM Data Communications with выбираем SIM Server. Все остальные настройки аналогичны настройкам GSM-шлюза.
Проще всего осуществлять настройку группового назначения SIM-карт в разделе Web-интерфейса Configuration – Group. После того, как необходимое количество групп создано, к ним можно привязывать слоты SIM-банка – для этого необходимо кликнуть по ссылке SIM справа от названия группы. Для того чтобы управлять привязанными к группе GSM-каналами есть ссылка GoIP, а для управления расписанием – Scheduler.
Если требуется одну или несколько SIM-карт «намертво» привязать к определенной GSM-линии определенного GSM-шлюза, то проще всего это сделать в разделе Monitor — GoIP Channel.
На этом мы заканчиваем наше краткое знакомство с основными функциями SIM-банков GoIP SMB и ПО Scheduler Server. Обладая этими базовыми знаниями, разобраться со всеми дополнительными возможностями будет уже значительно проще, чем делая это «с нуля». Для тех, кто хочет изучить вопрос еще глубже и/или получить больше функционала, я бы советовал обратить внимание на интерфейс GoAntiFraud [11]. Это ПО сторонней компании, разработанное специально для управления и мониторинга устройствами GoIP и SMB. Распространяется оно по подписке и стоит, в общем-то, довольно прилично. Однако, имеется 7-дневный пробный период, который позволяет ознакомиться со всеми возможностями и принять решение о покупке.
Автор: АртТел
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/zhelezo/219840
Ссылки в тексте:
[1] SMB32: https://arttel.ru/shop/aksessuary/sim-bank-goip-smb32
[2] SMB128: https://arttel.ru/shop/aksessuary/sim-bank-goip-smb128
[3] GoIP 4: https://arttel.ru/shop/gsm-shlyuzy/gsm-shlyuz-goip-4
[4] Image: https://habrastorage.org/files/30b/29b/8b3/30b29b8b3b5742fda8e69408fc2b6123.jpg
[5] Image: https://habrastorage.org/files/739/3cc/8f3/7393cc8f3cc441f6a04ec464414c61c3.jpg
[6] ссылке: http://118.142.51.162/update/smb_scheduler_install-v1.7.2.tar.gz
[7] Image: https://habrastorage.org/files/8a0/a67/fb0/8a0a67fb0ec1481e9a037836c4fa7b9b.jpg
[8] Image: https://habrastorage.org/files/27a/17d/1b6/27a17d1b6f554132bbe2f24e9a816c59.jpg
[9] Image: https://habrastorage.org/files/f85/7d5/080/f857d508044147dfbaad9d67fc5e014a.jpg
[10] Image: https://habrastorage.org/files/de2/474/26f/de247426ff8c420ca221124d7a922e6d.jpg
[11] GoAntiFraud: https://goantifraud.com/
[12] Источник: https://geektimes.ru/post/283522/
Нажмите здесь для печати.