Как известно, SIP набирает всё большую и большую популярность и не для кого не секрет, что можно оптимизировать затраты на телефонию грамотно выбрав SIP-провайдера.
Но, к сожалению, выше приведенное утверждение верно только для крупных городов России и СНГ. А как же поступать в случаях, где SIP недоступен? Использовать PRI? Довольно дорого, тем более для маленькой компании с небольшим количеством звонков, да и опять же не везде доступно. Использовать аналоговую телефонию по старинке? Безусловно, нет. Ответ кажется довольно очевидным: GSM-шлюз решит все ваши проблемы.
На первый взгляд, все довольно просто в реализации, однако при более детальном продумывании станет понятно, что шлюз сам по себе мало функционален и является лишь своего рода преобразователем GSM в SIP, а для реализации пусть и незаоблачных, но все-таки “хотелок” необходима АТС (например IVR, маршрутизация, очереди). Для минимизации процесса затрат допустим, что это наш любимый open-source Asterisk. Если речь идет уж о совсем глобальной экономии, то можно сразу сказать: “Ага, а сервер под Астериск? Он тоже не бесплатный!” (Хотя по-моему мнению у запасливого админа всегда найдется железка под Астер:))
А теперь представьте, что все выше написанное можно реализовать всего лишь средствами одного GSM-шлюза? Невероятно? Что ж, прошу под кат.
Пару месяцев назад grigly писал статью о новых GSM-шлюзах компании Openvox, которая заканчивалась вполне оптимистичной и подстегивающей к действию фразой: “Коллеги, в нем полноценный Asterisk, я даже не удивлюсь, если на нем удастся настроить IVR и очереди, и использовать в качестве полноценной АТС.”
А действительно? Возможно ли реализовать функции АТС средствами шлюза?
Коллеги, сразу оговорюсь, что данное решение подходит для небольшой компании, скажем со штатом в 10 сотрудников.
Итак, для начала оценим, какие функции АТС нужны небольшой компании? По моему мнению, это очереди, IVR, перевод звонка.
Создадим sip-пиры в веб интерфейсе шлюза:
Переходим во вкладку SIP → SIP Endpoints, нажимаем “Add New SIP Endpoint”
Name = 777
User Name = 777
Password = YourStrongPasssword123
Registration = Endpoint registers with this gateway
Hostname or IP Address = dynamic
Transport = UDP
NAT Traversal = Yes
Нажимаем “Save”
Далее по аналогии создаем необходимое количество SIP-пиров.
Теперь в веб интерфейсе включим доступ по SSH. Для этого зайдем во вкладку System → Login Settings и поставим в SSH Login Settings “Enable ON”
Стоит отметить, что порт для SSH в шлюзе 12345, изменить его нельзя, что видимо сделано для целей обеспечения безопасности.
По умолчанию пользователь admin не имеет root-овых прав, для того, чтобы получить root-а, необходимо изменить пользователя на super, пароль super.
Итак, заходим на шлюз по SSH:
ssh -p 12345 admin@192.168.1.111
Password: admin
После того, как вы попали на шлюз, правим контекст конфигурационного файла extra-channels.conf:
vim /etc/asterisk/extra-channels.conf:
Правим контекст для входящего вызова с SIM1:
; Span 1: opvxg4xx/0/1 «OpenVox G400P GSM/CDMA PCI Card 0» AMI/CCS
group=1
context=ivr
signalling = gsm
vol=70
mic=1
dacgain=-15
adcgain=-3
debugat=off
smscodec=utf-8
;hwdtmfdet=1
anonymouscall=off
call_waiting=off
band=
dialprefix=
switchtype=SIMCOM_SIM840W
channel => 1
group=1
context=ivr
signalling = gsm
vol=70
mic=1
dacgain=-15
adcgain=-3
debugat=off
smscodec=utf-8
;hwdtmfdet=1
anonymouscall=off
call_waiting=off
band=
dialprefix=
switchtype=SIMCOM_SIM840W
channel => 1
Теперь создадим новый контекст ivr.
vim /etc/asterisk/extensions_custom.conf
Создаем новый контекст ivr:
[ivr]
exten => s,1,Answer()
same => n,Background(press-1&or&press-2)
same => n,WaitExten()
exten => 1,1,Playback(wait_connection)
same => n,Dial(SIP/777)
same => n,Hangup()
exten => 2,1,Playback(wait_connection)
same => n,Dial(SIP/888)
same => n,Hangup()
exten => s,1,Answer()
same => n,Background(press-1&or&press-2)
same => n,WaitExten()
exten => 1,1,Playback(wait_connection)
same => n,Dial(SIP/777)
same => n,Hangup()
exten => 2,1,Playback(wait_connection)
same => n,Dial(SIP/888)
same => n,Hangup()
Диалплан в примере самый примитивный, предназначен для демонстрации, в продакшине, конечно, должна быть реализована защита от неправильно введенных цифр.
Стоит отметить, что Openvox поддерживает звуки для IVR только в формате GSM. У меня были звуки в формате .wav, которые я перекодировал средствами системы:
sox input.wav -r 8000 -c1 output.gsm lowpass 4000 compand 0.02,0.05 -60,-60,-30,-10,-20,-8,-5,-8,-2,-8 -8 -7 0.05
По умолчания в Openvox не загружены модули gsm, надо загрузить их принудительно в CLI:
Openvox-Wireless-Gateway*CLI> module load codec_gsm.so
Openvox-Wireless-Gateway*CLI> module load format_gsm.so
Для того, чтобы не загружать gsm каждый раз после перезагрузки шлюза, рекомендую добавить две эти строчки в файл /etc/asterisk/modules.conf
Теперь перейдем к конфигурированию очередей:
Заходим в веб-интерфейс шлюза, вкладка Routing → Groups. Создаем новую группу щелкнув по кнопке New Group:
Group Name = YourGroupName
Type = SIP
Policy = выбираем подходящую вам стратегию обзвона
Members = ставим галочки в чекбоксах напротив тех номеров, которые мы хотим включить в группу:
Теперь переходим во вкладку Routing → Call Routing Rules, нажимаем New Call Routing Rule:
Routing name = YourRoutingName
Call Comes in From = например, gsm-2 (то есть все звонки с sim 2 будут перенаправляться в нашу очередь)
Send Call Through = из выпадающего списка выбираем только что созданную группу.
Еще одной важной функцией является возможность осуществления перевода звонка. К нашей великой радости это уже предусмотрено разработчиками Openvox. Откроем feauteres.conf:
vim /etc/asterisk/features.conf
И видим там следующую строку:
blindxfer => #1 ; Blind transfer
То есть по нажатию #1 будет осуществлен трасфер звонка, в принципе можно выбрать любой префикс для перевода, я для удобства поменял на *1.
Заключение
Используя недокументированные возможности данного устройства, в результате мы получаем следующую калькуляцию затрат для типичного малого бизнеса:
1) 10 IP телефонов ~ 25 тыс. рублей. (не самые дешевые аппараты, но с поддержкой HD кодеков, гарнитуры, и вероятно даже PoE)
2) OpenVox VS-GW1200-4G ~ 15 тыс. рублей
3) Если вам необходимо подключить внешнюю аналоговую линию и, скажем, факс, то можно приобрести недорогой FXO / FXS шлюз, например Granstream HT-503 ~ 2.5 тыс. рублей.
4) Как было сказано выше, шлюз умеет и регистрировать на себе конечные SIP-устройства, так и сам регистрироваться на АТС, поэтому с подключением SIP-провайдера не возникнет проблем
Итого, полноценный VOIP в офисе, с анлим транками, очередями и блекджеком менее чем за 45 000 рублей!
Шлюз не имеет жестких дисков, и использует только качественные компоненты (в этом мы могли убедиться в предыдущей статье про OpenVox), поэтому является крайне надежным решением.
Более того, этому решению не требуются никакие доп. лицензии, подписки на тех. поддержку и прочее, поэтому общая стоимость владения вполне быстро просчитывается и можно забыть о всякого рода подводных камнях с лицензированием.