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