本文来自csdn lidp http://blog.csdn.net/perfectpdl,转载注明出处,谢谢。
我建了一个 Freeswitch 内核研究 交流群, 45211986, 欢迎加入, 另外,提供基于SIP的通信服务器及客户端解决方案,
承接 sip/ims 视频客户端开发,支持接入sip软交换,ims核心网,支持 语音,视频,即时通信功能,视频格式支持 h263,h264,mpeg4 软编软解,提供硬件编解码接口对接,提供服务器,有兴趣请联系我。
freeswitch用perl语言主要有两个地方,一个为用perl语言连接freeswitch event socket模块,通过socket连接控制freeswitch,另一个地方为用perl语言写dialplan,这与asterisk的agi类似,写dialplan需要模块mod_perl,第一种用法并不需要mod_perl支持。
a)安装mod_perl过程:
Centos上需要安装gdbm-devel 和 db4-devel
yuminstall gdbm-devel db4-devel
修改Modules.conf文件,去掉mod_perl的注释
Makemod_perl-install 安装
修改conf/modules.conf.xml 去掉mod_perl注释
fs_clireload
freeswitch@internal>reload mod_perl
-ERRunloading module [No such module!]
+OKReloading XML
+OKmodule loaded
2012-08-2011:23:28.247331 [INFO] mod_enum.c:871 ENUM Reloaded
2012-08-2011:23:28.247331 [INFO] switch_time.c:1163 Timezone reloaded 530 definitions
2012-08-2011:23:28.287826 [DEBUG] switch_loadable_module.c:1261 Loading module withglobal namespace at request of module
2012-08-2011:23:28.287826 [INFO] mod_perl.c:512 Allocated perl intrepreter.
2012-08-2011:23:28.287826 [CONSOLE] switch_loadable_module.c:1328 Successfully Loaded[mod_perl]
2012-08-2011:23:28.287826 [NOTICE] switch_loadable_module.c:254 Adding Application 'perl'
2012-08-2011:23:28.312383 [NOTICE] switch_loadable_module.c:298 Adding API Function'perlrun'
2012-08-2011:23:28.312383 [NOTICE] switch_loadable_module.c:298 Adding API Function'perl'
b) 使用perl写dialplan
dialplan中直接可以用system app或者 perl app直接调用perl脚本。
Xml dialplan中用
<action application="perl" data="/path/to/your/script.pl" />
或者
<actionapplication="system" data="/path/to/app.pl"/>
调用perl脚本。