Настройка GSMopen и FreeSWITCH в теории

freeswitch gsmopen e1550

Согласно заверениям разработчиков — требования к ресурсам системы минимальны. Модуль mod_GSMopen настолько мало требователен к тактовой частоте процессора, что если «железка» обеспечивает надежную работу FreeSWITCH, то проблем с модулем быть не должно. От себя хочу добавить, что модемы Huawei очень требовательны к питанию, в особенности во время установления связи и активном разговоре. Поэтому на питание стоит обратить самое пристальное внимание. Лучшем решением будет использование КАЧЕСТВЕННОГО USB хаба с внешним питанием(на каждый модем необходимо 500мА/0.5Вт), таким образом вы разгрузите материнскую плату сервера и обеспечите надежным питанием свои устройства.

Наиболее рекомендован к использованию модем Huawei e1550(достаточно неплохое, по моему опыту, устройство, которое я использовал еще во времена chan_datacard и chan_dongle для Asterisk). Но также должны быть совместимы следующие устройства:

E1550
E1552
E169
E1692
E171
E173
E175X
E1752C
E1762
E180
K3520
K3715
K3765

Все вышеперечисленные устройства при активированной функции передачи голоса(некоторые устройства встречаются с заблокированной функцией передачи голоса) и в разлоченном состоянии(Иногда провайдеры лочат устройства для использования только в своих сетях) можно использовать с симкартами всех провайдеров. Это может быть очень удобно для построения интелектуальной системы маршрутизации звонков, использующую принцип LCR (Least Cost Routing). Переводя данное понятие на русский язык, можно говорить, что это распределение звонков по наименьшей стоимости. Все мы хотим получать больше и платить меньше. :) Если же вам попался залоченый модем, то его еще есть возможность разблокировать, интернет вам в помощь. Если же вам попался модем с заблокированной функцией голоса, то тут немного сложнее, потому как в малом числе устройств с этим ничего не поделать — даже перепрошивка модема не приводит к положительным результатам. В таком случае этот модем можно использовать только для отправки SMS сообщений.

Использовать модемы Huawei в диалплане FreeSWITCH достаточно удобно. Как и в других случаях вы указываете протокол/устройство/номер, например:

gsmopen/beeline_1/89059999999
gsmopen/mts_1/89169999999
gsmopen/megafon_1/89269999999
gsmopen/tele2_1/89019999999

Ниже полный пример для конфиг файла:

<extension name="gsmopen">
<condition field="destination_number" expression="^(8916.+)$">
<action application="bridge" data="gsmopen/mts_1/1$"/>
</condition>
</extension>

Если же вы счастливый обладатель безлимитной сим карты сотового провайдера, то можно и не заморачиваться с делением на операторов связи. Имея несколько таких сим карт можно распределять звонки по алгоритму round robin

<extension name="gsmopen">
<condition field="destination_number" expression="^(89.+)$">
<action application="bridge" data="gsmopen/RR/1$"/>
</condition>
</extension>

Для настройки устройств при конфигурировании FreeSWITCH необходимы следующие ОСНОВНЫЕ данные

<per_interface_settings>
<interface id="1" name="beeline_1">
<param name="hold-music" value="$${moh_uri}"/>
<param name="dialplan" value="XML"/>
<param name="context" value="default"/>
<param name="destination" value="89058888888"/>
<param name="alsacname" value="plughw:1"/>
<param name="alsapname" value="plughw:1"/>
<param name="controldevice_name" value="/dev/ttyACM0"/>
</interface>
<interface id="3" name="mts_5">
<param name="hold-music" value="$${moh_uri}"/>
<param name="dialplan" value="XML"/>
<param name="context" value="default"/>
<param name="destination" value="89167777777"/>
<param name="alsacname" value="plughw:2"/>
<param name="alsapname" value="plughw:2"/>
<param name="controldevice_name" value="/dev/ttyACM1"/>
</interface>
</per_interface_settings>

В дополнение можно для каждого интерфейса поправить и значение по-умолчанию каждого параметра:

context = «default»
dialplan = «XML»
destination = «89265555555″
controldevice_name = «/dev/ttyACM0″
digit_timeout = NULL
max_digits = NULL
hotline = NULL
dial_regex = NULL
hold_music = NULL
fail_dial_regex = NULL
enable_callerid = «true»
at_dial_pre_number = «ATD»
at_dial_post_number = «;»
at_dial_expect = «OK»
at_hangup = «ATH»
at_hangup_expect = «OK»
at_answer = «ATA»
at_answer_expect = «OK»
at_send_dtmf = «AT+VTS»
at_preinit_1 = «»
at_preinit_1_expect = «»
at_preinit_2 = «»
at_preinit_2_expect = «»
at_preinit_3 = «»
at_preinit_3_expect = «»
at_preinit_4 = «»
at_preinit_4_expect = «»
at_preinit_5 = «»
at_preinit_5_expect = «»
at_postinit_1 = «at+cmic=0,9″
at_postinit_1_expect = «OK»
at_postinit_2 = «AT+CKPD=\»EEE\»"
at_postinit_2_expect = «OK»
at_postinit_3 = «AT+CSSN=1,0″
at_postinit_3_expect = «OK»
at_postinit_4 = «at+sidet=0″
at_postinit_4_expect = «OK»
at_postinit_5 = «at+clvl=99″
at_postinit_5_expect = «OK»
at_query_battchg = «AT+CBC»
at_query_battchg_expect = «OK»
at_query_signal = «AT+CSQ»
at_query_signal_expect = «OK»
at_call_idle = «+MCST: 1″
at_call_incoming = «+MCST: 2″
at_call_active = «+CSSI: 7″
at_call_failed = «+MCST: 65″
at_call_calling = «+CSSI: 1″
at_indicator_noservice_string = «CIEV: 20″
at_indicator_nosignal_string = «CIEV: 50″
at_indicator_lowsignal_string = «CIEV: 5;1″
at_indicator_lowbattchg_string = «CIEV: 0;1″
at_indicator_nobattchg_string = «CIEV: 0;0″
at_indicator_callactive_string = «CIEV: 3;1″
at_indicator_nocallactive_string = «CIEV: 3;0″
at_indicator_nocallsetup_string = «CIEV: 6;0″
at_indicator_callsetupincoming_string = «CIEV: 6;1″
at_indicator_callsetupoutgoing_string = «CIEV: 6;2″
at_indicator_callsetupremoteringing_string = «CIEV: 6;3″
alsacname = «plughw:1″
alsapname = «plughw:1″
at_early_audio = «0″
at_after_preinit_pause = «500000″
at_initial_pause = «500000″
at_has_clcc = «0″
at_has_ecam = «0″
alsa_period_size = «160″
alsa_periods_in_buffer = «4″
gsmopen_sound_rate = «8000″
alsa_play_is_mono = «1″
alsa_capture_is_mono = «1″
capture_boost = «5″
playback_boost = «10″
no_sound = «0″
portaudiocindex = «1″
portaudiopindex = «1″
speexecho = «1″
speexpreprocess = «1″
gsmopen_serial_sync_period = «300″

Это все необходимаю теория по настройке GSMopen для FreeSWITCH. Практику настройки данного модуля подготовлю чуть позднее. А вот собственно —  здесь.

 

Настройка GSMopen и FreeSWITCH в теории: 4 комментария

  1. Евгений

    Здравствуйте,
    а как сделать что бы gsmopen не комутировал (не брал трубку на модеме) при входящем вызове,
    пока на SIP телефоне не подняли трубку?

    1. buch Автор записи

      Приветствую! Могу только предположить, что из плана набора необходимо убрать инструкции типа answer и подобные. Но уже вижу, что Vlad1983 с форума дал кое-какие рекомендации. На форуме вставьте так же то место, где вы вызов с модема направляете на SIP телефон и , думаю, помощь не заставит себя долго ждать!

  2. NfSen

    Если вас не затруднит, распишите в какие именно файлы необходимо добавить описанную выше конфигурация. ~/autoload_config/dialplan_directory.conf.xml

    1. buch Автор записи

      Кусок про диалплан — в диалпла, а конфигурацию шлюзов — в конфигурационный файл gsmopen.

Добавить комментарий для NfSen Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>