© SibTone Group 2007-2024
Мы используем стабильные решения
для безотказной работы систем,
каждый день, круглый год

Функция curl во FreeSWITCH

В первую очередь необходимо перейти в директорию с исходным кодом, раскомментировать строку applications/mod_curl и пересобрать freeswitch. 
было

#applications/mod_curl


стало

applications/mod_curl


далее

make
make install


В конфигурационном файле раскомментим загрузку модуля:

vi /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
.. было
<!--<load module="mod_curl"/>-->
.. стало
<load module="mod_curl"/>

 

Чтобы не перезагружать freeswitch, для подхвата модуля mod_curl - выполним в консоли fs_cli:

fs_cli> load mod_curl

mod_curl в основном применяется для заполнения статического диалплана динамическими данными. 

Пример

 

<extension name="Curl Get">
 <condition field="destination_number" expression="^333$">
   <action application="answer" data=""/>
   <action application="sleep" data="1000"/>
   <action application="set" 
    data="my_cid=http://MySite.ru/get/?${caller_id_number}" />
   <action application="set" data="OUT=${curl ${my_cid}}" />
   <action application="playback" 
    data="/usr/local/freeswitch/sounds/${OUT}.wav" />
   <action application="sleep" data="1000"/>
   <action application="hangup"/>
 </condition>
</extension>

Переменная $OUT принимает значение соответственно 1 или 0, в зависимости от caller id звонящего. 
В папке get сайта MySite.ru лежит файлик index.php со следующим содержимым: 

<?php
$phone = file_get_contents(__FILE__);
$phone = explode('?>', $phone);
$phone = preg_split('~s+~', trim($phone[2]));
print (int) in_array($_SERVER['QUERY_STRING'], $phone);
exit;
?>
1001
1019

При звонках с номеров 1001 и 1019 переменная $OUT примет значение 1, во всех остальных случаях 0. Соответственно в результате будет проигран файл 1.wav или 0.wav 

FreeSwitch