Звонок с сайта

В этом году на Партнерской Конференции 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.

Архив с кнопкой

5 комментариев on "Звонок с сайта"



  1. А как при таком звонке видеть ip-адрес клиента(звонящего) в callerid?

Добавить комментарий

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.