В первую очередь необходимо перейти в директорию с исходным кодом, раскомментировать строку 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