freeswitch dialplan 筆記 |
發(fā)布時(shí)間: 2012/9/15 21:07:05 |
????我建了一個(gè) Freeswitch 內(nèi)核研究 交流群, 45211986, 歡迎加入, 另外,提供基于SIP的通信服務(wù)器及客戶端解決方案。 Freeswitch包含xml 格式dialplan,asterisk likedialplan以及外部語(yǔ)言接口的dialplan, Dialplan放在conf/dialplan目錄,由三個(gè)主要文件組成: 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,級(jí)別.Group是Context的集合, 每個(gè)Context一個(gè)或者多個(gè)extenstion的組合,是一個(gè)邏輯上的概念,extension 實(shí)際上也是一個(gè)邏輯上的概念,他并不是傳統(tǒng)pbx上分機(jī)的概念,一個(gè)extension 代表一個(gè)小的,根據(jù)被叫號(hào)碼指定的一個(gè)功能集合,一個(gè)extension被其name唯一標(biāo)示,freeswitch默認(rèn)配置包含三個(gè)Context, 名字分別為default,public和features,default為主dialplan,注冊(cè)到freeswitch的分機(jī)會(huì)被路由到此context,大部分都在這里實(shí)現(xiàn),public是從外部(未注冊(cè))或者那些未認(rèn)證的客戶端呼叫到freeswitch時(shí)采用的Context,features context是一些呼叫特性的實(shí)現(xiàn),每個(gè)extension是根據(jù)條件執(zhí)行的一系列application,一般是根據(jù)被叫號(hào)碼指定的一系列規(guī)則,這些application 構(gòu)成了可編程pbx的基礎(chǔ),context, extension,application(action)關(guān)系如下:
每個(gè)進(jìn)入freeswitch的呼叫都在freeswitch里預(yù)先定義了其 context,DialPlan,及extenstion,這些規(guī)則指定了如何路由這個(gè)呼叫,系統(tǒng)默認(rèn)xml dialplan的context為default. /usr/local/freeswitch/conf/dialplan/default.xml 為freeswitch內(nèi)部分機(jī)(驗(yàn)證)的默認(rèn)dialplan,Context name 為default,里面包含許多例子, 此文件同時(shí)包括/usr/local/freeswitch/conf/dialplan/default/*.xml目錄下的所有文件, 所以如果想在default context下添加自己的dialplan,令寫(xiě)一個(gè)xml放在 default目錄即可。 另外,如果想添加自己的context,可以在/usr/local/freeswitch/conf/dialplan/ 添加一個(gè)xml文件, 與default.xml類似,/usr/local/freeswitch/conf/dialplan/public.xml為非注冊(cè)到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默認(rèn)提供了大量測(cè)試demo,根據(jù)被叫號(hào)碼對(duì)應(yīng)不同功能,列表如下:
這些功能的實(shí)現(xiàn)默認(rèn)都在default.xml中。 Xml dialplan大量使用兼容perl的正則表達(dá)式,大多用在${destination_number}的比較上, 常用的如 ^789 --------------------------匹配與789開(kāi)頭的 789$ ---------------------------匹配以789結(jié)尾的 \d-------------------------------匹配 0-9任意數(shù)字 ^\d$----------------------------以任意數(shù)字開(kāi)頭的 ^\d{3}$ ---------------------匹配以三個(gè)數(shù)字開(kāi)頭的 ^(\d{5})$--------------------匹配以五個(gè)數(shù)字開(kāi)頭的,并把變量保存到$1中 ^(9\d{10}|123)$ 匹配以123開(kāi)頭或者以9,加上10個(gè)數(shù)字開(kāi)頭 等等。 另外,freeswitch提供控制臺(tái)命令regex,可以測(cè)試指定字符串是否與某個(gè)模式匹配, 格式為regex 字符串|模式,如: freeswitch@internal> regex1234|^\d{4} 返回true. 億恩-天使(QQ:530997) 電話 037160135991 服務(wù)器租用,托管歡迎咨詢。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |