本文来自csdn lidphttp://blog.csdn.net/perfectpdl,转载注明出处,谢谢。
我建了一个 Freeswitch 内核研究 交流群, 45211986, 欢迎加入, 另外,提供基于SIP的通信服务器及客户端解决方案,
承接 sip/ims 视频客户端开发,支持接入sip软交换,ims核心网,支持
语音,视频,即时通信功能,视频格式支持 h263,h264,mpeg4 软编软解,提供硬件编解码接口对接,提供服务器,有兴趣请联系我。
Freeswitch包含xml 格式dialplan,asterisk likedialplan以及外部语言接口的dialplan,
Dialplan放在conf/dialplan目录,由三个主要文件组成:
default.xml—The primary FreeSWITCHDialplan configuration
public.xml—Handles calls coming in toFreeSWITCH from another location
features.xml—A special context for handlingspecific dialing features
default/—Files in this directory getincluded in the default context
public/—Filesin this directory get included in the public context
Xml格式dialplan从高到低分group ,Context,extenstion,级别.Group是Context的集合,
每个Context一个或者多个extenstion的组合,是一个逻辑上的概念,extension 实际上也是一个逻辑上的概念,他并不是传统pbx上分机的概念,一个extension 代表一个小的,根据被叫号码指定的一个功能集合,一个extension被其name唯一标示,freeswitch默认配置包含三个Context, 名字分别为default,public和features,default为主dialplan,注册到freeswitch的分机会被路由到此context,大部分都在这里实现,public是从外部(未注册)或者那些未认证的客户端呼叫到freeswitch时采用的Context,features
context是一些呼叫特性的实现,每个extension是根据条件执行的一系列application,一般是根据被叫号码指定的一系列规则,这些application 构成了可编程pbx的基础,context, extension,application(action)关系如下:
每个进入freeswitch的呼叫都在freeswitch里预先定义了其 context,DialPlan,及extenstion,这些规则指定了如何路由这个呼叫,系统默认xml dialplan的context为default.
/usr/local/freeswitch/conf/dialplan/default.xml
为freeswitch内部分机(验证)的默认dialplan,Context name 为default,里面包含许多例子,
此文件同时包括/usr/local/freeswitch/conf/dialplan/default/*.xml目录下的所有文件,
所以如果想在default context下添加自己的dialplan,令写一个xml放在 default目录即可。
另外,如果想添加自己的context,可以在/usr/local/freeswitch/conf/dialplan/ 添加一个xml文件,
与default.xml类似,/usr/local/freeswitch/conf/dialplan/public.xml为非注册到freeswitch的终端呼入的dialplan,Context 名为 public,/usr/local/freeswitch/conf/dialplan/public/目录可以添加context为public的extension.
在xml配置文件里包含其他目录下文件的方法为用宏X-PRE-PROCESS,如下例子包含default目录下的所有xml文件到此xml文件。
<X-PRE-PROCESS cmd="include"data="default/*.xml"/>
Freeswitch默认提供了大量测试demo,根据被叫号码对应不同功能,列表如下:
Extension:
|
Function:
|
1000—1019
|
Local Extensions
|
** + Extension Number
|
Intercept a ringing phone (that is, "call pickup")
|
2000
|
Sample call group: Sales
|
2001
|
Sample call group: Support
|
2002
|
Sample call group: Billing
|
3000-3399
|
Sample conference rooms
|
4000 or *98
|
Retrieve voicemail
|
5000
|
Demo IVR
|
5900
|
FIFO queue park
|
5901
|
FIFO queue retrieve
|
6000
|
Valet park retrieval, manual
|
6001-6099
|
Valet park/retrieval, automatic
|
9178
|
Example fax receive
|
9179
|
Example fax transmit
|
9180
|
Ring test, far end generates ring tone
|
9181
|
Ring test, send U.K. ring tone
|
9182
|
Ring test, send music as ring tone
|
9183
|
Answer, then send U.K. ring tone
|
9184
|
Answer, then send music as ring tone
|
9191
|
ClueCon registration
|
9192
|
Information dump
|
9195
|
Delayed echo test
|
9196
|
Echo test
|
9197
|
Milliwatt tone (test signal quality)
|
9198
|
Tetris
|
9664
|
Music on hold
|
这些功能的实现默认都在default.xml中。
Xml dialplan大量使用兼容perl的正则表达式,大多用在${destination_number}的比较上,
常用的如
^789 --------------------------匹配与789开头的
789$ ---------------------------匹配以789结尾的
\d-------------------------------匹配 0-9任意数字
^\d$----------------------------以任意数字开头的
^\d{3}$ ---------------------匹配以三个数字开头的
^(\d{5})$--------------------匹配以五个数字开头的,并把变量保存到$1中
^(9\d{10}|123)$ 匹配以123开头或者以9,加上10个数字开头
等等。
另外,freeswitch提供控制台命令regex,可以测试指定字符串是否与某个模式匹配,
格式为regex 字符串|模式,如:
freeswitch@internal> regex1234|^\d{4}
返回true.
分享到:
相关推荐
freeswitch 安装版,可直接安装使用
freeswitch模块对接使用阿里语音合成
freeswitch默认是加载mod_dialplan_xml,即配置文件是采用XML文件格式。XML文件格式非常灵活,而且可以用第三方软件编辑XML文件,而且也可以手工编辑因为XML非常简单。这也是freeswitch采用mod_dialplan_xml为默认...
NULL 博文链接:https://913.iteye.com/blog/2394096
freeswitch笔记.7z
freeswitch xml_curl模块使用 freeswitch 数据库生成xml文件,使用php生成代码,替换掉directory,ivr,dialplan,等各种本地配置
NULL 博文链接:https://913.iteye.com/blog/2405919
freeswitch呼入呼出路由配置详解 ,利用freeswitch 和 网关设备做了内呼和外呼,sip 中继设置 (给外呼用的,因为外呼用的是对等中继模式) SIP 中继就是填写我的freeswitch的ip和端口
opensips与freeswitch群集搭建笔记,分享给要折腾的人, 很多资源太黑, 索要的积分太多
Freeswitch 安装及集成手册
FreeSWITCH简要使用教程V1.1,可以通过此文档深入学习freeswitch的使用
Freeswitch权威指南,freeswitch权威指南 pdf,C,C++源码
freeswitch 中文语音包
freeswitch支持UDP、TCP、WS(websocket)、WSS方式进行注册,而反向代理是指通过nginx配置,通过WSS的方式连接WS,这样使得freeswitch连接对外是加密的;当然freeswitch本身是支持WSS的, 用ngnix一般除了反向代理,...
FreeSWITCH是一个开源的电话软交换平台,主要开发语言是C,某些模块中使用了C++
FreeSWITCH提供了一个xml_rpc组件,支持用Web的方式管理FreeSWITCH。但是功能相当有限。因此我在这里做了一点小的扩展,允许执行CLI命令行,并且获得结果。 需要把文件解压缩、覆盖htdocs下的portal目录。 需要...
FreeSwitch搭建软交换中心详细说明。 部署环境: centos7 freeswitch 1.6
freeswitch需要开发的常用端口,freeswitch需要开发的常用端口,freeswitch需要开发的常用端口
为freeswitch开发的模块,对接使用gb28181标准的摄像头
freeswitch安装步骤与配置支持webrtc 教程,学习freeswitch必备!