В этом году на Партнерской Конференции Oktell многих заинтересовал вопрос «звонка с сайта», о котором я упомянул в своем докладе. Что же, опишу более подробно, как каждый может это реализовать у себя.
1. Устанавливаем FreeSWITCH
Для начало необходимо установить FreeSWITCH. Именно его мы будем использовать как транспорт с сайта на oktell. Вы можете устанавливать на том же сервере (тогда не забудьте сменить стандартный порт SIP) или на любом другом. Главное, не забудьте собрать и включить модуль RTMP!
2. RTMP и FreeSWITCH
В файле modules.conf.xml прописываем автозагрузку модуля:
<load module="mod_rtmp"/>
В файле конфигурации RTMP rtmp.conf.xml убираем авторизацию для звонков и указываем какой контекст должен обрабатывать входящие звонки (у меня это public):
<configuration name="rtmp.conf" description="RTMP Endpoint">
<profiles>
<profile name="default">
<settings>
<param name="bind-address" value="0.0.0.0:1935" />
<param name="context" value="public" />
<param name="dialplan" value="XML" />
<param name="auth-calls" value="false" />
<param name="buffer-len" value="50" />
<param name="chunksize" value="512" />
</settings>
</profile>
</profiles>
</configuration>
3. FreeSWITCH и Oktell
Для регистрации Oktell на FreeSWITCH создаем файл conf/directory/default/oktell.xml, в котором указываем регистрационные данные:
<include>
<user id="oktell">
<params>
<param name="password" value="uYjal76l"/>
</params>
</user>
</include>
На карте сети в Oktell создаем внешний шлюз с регистрацией на стороне шлюза. Количество каналов укажите столько, сколько планируете одновременных звонков с сайта или сколько лицензия позволяет 🙂
4. Маршрутизация
Звонок с сайта будет поступать в контекст public, необходимо создать для него правило в conf/dialplan/public/site.xml, наша кнопка будет звонить на номер sip:oktell :
<include>
<extension name="All Calls from Site to Oktell">
<condition field="destination_number" expression="^(oktell)$">
<action application="bridge" data="user/oktell@$${domain}"/>
</condition>
</extension>
</include>
5. Кнопка
Вы можете взять оригинальные исходники Flex клиента или же воспользоватся моим готовым примером кнопки примером кнопки. Разместите у себя на сайте. В файле btnCall.html пропишите путь к своей директории с файлами (и поменяете все на свой сайт). Номер на который идет звонок уже задан oktell. В файле button/itsBtn.js пропишите вместо моего ‘rtmp://193.11.11.11/phone’ IP-адрес сервера с установленным FreeSWITCH.
Permalink
возможно ли подружить flex и asterisk?
Ищите chan RTMP для Asterisk. Мне не приходилось на * с таким работать.
А как при таком звонке видеть ip-адрес клиента(звонящего) в callerid?
Читайте тут: http://vk.it-sfera.com.ua/874.html