欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

一个关于freeswitch的公开教程-拨号计划

时间:2023-06-04

就是我们常说的通话路由,通过拨号计划,freeswitch将对应的channel转向固定的处理。

拨号计划并不是脚本语言,他的目标是简单帮你找到你需要的应用。我们可以把它简单叫做通话路由规则。

freeswitch 默认是多环境拨号计划,默认情况为 public 和default。

其中public context 主要是 开放给所有非认证请求,而default默认必须是需要注册的分机用户才能呼叫。

你可以把它和profile对应起来,但是并不是完全一一对应。 比如默认internel和external profile。

比如:你创建一个sip_profile 文件

         

对应的路由规则xml文件,可以通过context来区分

                                     

每一个context下都可以创建多个 表示不同的规则路由。

condition表示条件,expression和正则表达式进行结合,就可以创建很多有意思的电话路由。

《一》:sip对接运营商网关线路

a:在profile中创建gateway,用以描述指定运营商sip地址ip和端口,已经认证信息

……………………

b: 外呼出去的简单dialplan

正则表达式:(^[0-1][0-9]{10,11}$) 表示0或者1开头,然后0-9之间的数字可以出现10-11次。

下方$1 代表的是整个这个正则表达式括号内的数字,即你呼叫的号码。

《二》:电话录音

电话录音application,使用record_session应用,同时使用${} 来表达freeswitch的通道变量。

《三》:dialplan转接ivr

比如你定义了自己的ivr后。

那我们的diaplan应该怎么写?

《四》:diaplan转接lua、python等脚本

这里需要注意对应的dialplan.lua 脚本应该放入在script目录下

《五》:使用curl等application

freeswitch的diaplan拥有很多复杂的功能,比如anti-action与action的配合,condition嵌套condition,这些都可以在杜老师的权威指南中有详细介绍。

但是我仍然希望将复杂的逻辑交于代码实现,那么就可以借助curl来实现很多好玩的dailplan。

使用curl,首先得 load mod_curl, 然后我们写

我们可以通过http请求将对应的数据发送给我们写的后端服务,然后通过esl进行command形式,来实现我们想要的目的。

因此复杂的diaplan使用curl是一个非常好的选择,当然你可以尝试lua、python等脚本现实。

《六》:使用lua、python脚本语言

使用脚本语言lua、python来做复杂dialplan是一个非常好的选择,当然这需要掌握lua、python脚本语法。

我们不在这里介绍lua、python语言的语法基础,默认您已经掌握了对应的基础。

如果希望freeswitch支持lua、python语言,需要我们编译时候编译mod_lua和mod_python。然后在freeswitch的module里面配置启动加载mod_lua与mod_python。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。