Добрый день.
потерял несколько дней, пока получилось настроить чтобы freeswitch смог работать с idphone.
ну так как у нас страна маленькая, и нам нужно попасть в 50 развитых стран мира, нужно придерживаться принципа "Dont repeat yourself". надеюсь кому-либо данное руководство сбережет нервы и время.
Содержание
- Вводные данные
- установка
- настройка
- поддержка режима t.38 gateway
- итоги
Вводные данные
имеем сервер centos. установлен freeswitch. как установить centos, freeswitch читайте на просторах интернета.
данные по idphone следующие
login 3XXXXXXXX@sip.telecom.kz
line 3XXXXXXXX
password PASSWORD
я подключался к idphone через интернет, если у вас уже есть мегалайн, или отдельное выделенное подключение к idphone, то вам нужно использовать опцию outgoing proxy(?).
Установка
Установка centos. с сайта http://mirror-kt.neolabs.kz/mirror/centos, качаем нужную нам версию, устанавливаем.
Установка freeswitch делаем согласно документации на сайте wiki.freeswitch.org. используйте git-версию.
Настройка
допустим что freeswitch установлен в /usr/local/freeswitch. в /usr/local/freeswitch/conf хранятся настройки системы.
создайте следующие файлы
1. /usr/local/freeswitch/conf/sip_profiles/external/idphone.xml
<include>
<gateway name="almaty">
<param name="username" value="3XXXXXXXX"/>
<param name="from-user" value="3XXXXXXXX"/>
<param name="extension" value="3XXXXXXXX"/>
<param name="extension-in-contact" value="true"/>
<param name="caller-id-in-from" value="true"/>
<param name="from-domain" value="sip.telecom.kz"/>
<param name="password" value="PASSWORD"/>
<param name="realm" value="BroadWorks"/>
<param name="proxy" value="sip.telecom.kz"/>
<param name="register" value="true"/>
<param name="register-transport" value="udp"/>
</gateway>
</include>
так как в работе idphone sip-протокол далек от соверщенства, а в freeswitch практически близок, приходится применять костыли.
поля from-user, extension, extension-in-contact, caller-id-in-from необходимы для правильной работы. подобраны методом проб и ошибок.
2. /usr/local/freeswitch/conf/dialplan/default/01_outbound_astana.xml
<include>
<extension name="astana">
<condition field="destination_number" expression="^87172(\d{6})$">
<action application="set" data="fax_enable_t38=true"/>
<action application="set" data="sip_execute_on_image=t38_gateway peer nocng"/>
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="effective_caller_id_number=3XXXXXXXX"/>
<action application="bridge" data="{origination_caller_id_name='3XXXXXXXX',origination_caller_id_number=3XXXXXXXX}sofia/gateway/astana/$1"/>
<action application="hangup"/>
</condition>
</extension>
</include>
в данном файле мы настроили исход.звонки на Астану. особенно нужны данные поле effective_caller_id_number - устанавливаем значение коллерайди равное вашему логину, и
{origination_caller_id_name='3XXXXXXXX',origination_caller_id_number=3XXXXXXXX} фактически меняющее sip-заголовки на те которые ожидает увидеть сервер idphone.
3. запустите /usr/local/freeswitch/bin/fs_cli
sofia profile restart all
reloadxml
поддержка режима t.38 gateway
Почему я перешел с asterisk на freeswitch? все изза факсов. вроде уже технология должна быть на свалке, но никак не уйдет. в * нет поддержки t.38 gateway. в freeswitch есть поддержка. ну и в idphone нет поддержки t.38.
<action application="set" data="fax_enable_t38=true"/>
<action application="set" data="sip_execute_on_image=t38_gateway peer nocng"/>
если на плече А приходит звонок с t.38, то freeswitch конвертирует данные звонок в alaw t.30 augio fax.
Итоги
неделя ушла на чтобы обложится asterisk, freeswitch, x-lite, wireshark, google, чтобы в итоге получить рабочий конфиг для работы с idphone.