freeswitch&ESL事件处理

FreeSwitch里面有一系列的事件,有通道级别的,如channel的创建、销毁、挂断、接听,又或者freeswitch系统级别的事件,如重新加载xml配置文件,freeswitch服务关闭等等,都有相应的事件发出,你使用mod_event模块,并订阅相应事件。 完整的事件列表:http://wiki.freeswitch.org/wiki/Event_List 有了这些事件之后,你就可以灵活控制freeswitch了,非常灵活,在通话的每个阶段,处理相应的业务逻辑,想实现什么功能都没有问题了,比如计费、入库、定时提醒、强插、转移,各种复杂的业务逻辑基本上都能实现,哈哈,嗷嗷强悍。

freeswitch桥接

话务落地之后的号码桥接,实现软电话号码之间,传统电话之间,软电话与传统电话之间的桥接,ESL命令如下:

ref:http://wiki.freeswitch.org/wiki/Freeswitch_IVR_Originate

freeswitch对接sip trunk实现话务落地

下午尝试了下对freeswitch的话务落地,在网友的帮助下终于对接成功,期间遇到不少问题,注意是端口不一致的问题。 一般sip trunk服务提供商会提供有需要密码和不需要密码两种,对方都会询问你的ip和端口来进行绑定,并提供一个ip给你。 下面是不需要密码的配置方法。 1.添加sip 代理网关,注意是external下面: /usr/local/freeswitch/conf/sip_profiles/external/gw1.xml

2.添加一个dialplan: /usr/local/freeswitch/conf/dialplan/default/call_out.xml

3.使用sip账号登陆,呼叫以0开头的手机号码就可以拨通了。 注意服务端必须打开对应端口的权限。 对接的过程中如果不能确定到底是那方出现了问题,可以在fs端抓包进行分析,看往来请求,sip协议类似http,很好分析。 使用tcpdump来抓,然后wireshark看就行了。

freeswitch

kamailio看起来不错,用起来还是不少问题,放弃了,还是转投freeswitch。