用perl 語言寫freeswitch dialplan

來源:互聯網
上載者:User

我建了一個 Freeswitch 核心研究 交流群, 45211986, 歡迎加入, 另外,提供基於SIP的通訊伺服器及用戶端解決方案, 承接 sip/ims 視頻用戶端開發,支援接入sip軟交換,ims核心網,支援 語音,視頻,即時通訊功能,視頻格式支援 h263,h264,mpeg4
軟編軟解,提供硬體編解碼介面對接,提供伺服器,有興趣請聯絡我。

freeswtich支援 lua, perl, php等指令碼語言編寫dialplan, 類似asterisk 裡面的agi,但freeswitch 更輕量級,其xml格式dialplan 手寫確實麻煩,mod_perl實現了用

perl寫dialplan的介面,也就是說我們可以用perl調用freeswich提供的api編寫自己的商務邏輯,尤其是當你想

在dialplan裡面引入業務相關的,比如查詢資料庫,與第三方業務平台互動資料(json,xml格式等),用perl是個不錯的選擇。

方法:

1. 在xml dialplan裡調用perl 指令碼

建立檔案 dialplan/default/demo_perl.pl

內容:

被叫號是4001時執行此流程,功能是給使用者播放一個語音檔案,然後驗證設定並擷取通道變數api.

 <include><extension name="perl_demo">      <condition field="destination_number" expression="^4001$">          <action application="answer"/>          <action application="perl" data="demo_perl.pl" />      </condition></extension></include>

app perl 為mod_perl提供的api,執行 demo_perl.pl指令碼

下面看此檔案內容:

#!/usr/bin/perluse strict;our $session;freeswitch::console_log("info", "Perl dialplan demo\n");my ($string) = @_;#print "\n\n".Dumper(\@_)."\n\n";my $id = $session->get_uuid();freeswitch::console_log("info", " uuid $id\n");#### set and get variable$session->setVariable("lidp_name", "lidp");my $name = $session->getVariable("lidp_name");freeswitch::console_log("info", " lidp_name = $name\n");$session->execute("playback", "/var/lib/asterisk/moh/macroform-cold_day.wav");$session->hangup();return 1;

如果想知道 mod_perl提供了那些函數,可以用這個命令列出來:

grep -o -P "^(\*[^=]+|############# Class.+)" freeswitch.pm

完。。。。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.