欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    FreeSWITCH中的XML拨号计划.docx

    • 资源ID:834432       资源大小:38.47KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FreeSWITCH中的XML拨号计划.docx

    FreeSWITCH中的XM1拨号计划dia1p1an本文是ar1yard。翻译的,内容来自。介绍FS的配置文件都在conf目录下,都是xm1文件。拨号方案的配置文件主要在dia1p1an目录下。Xm1文件可以直接进行编辑,这使得配置FS的拨号方案非常灵活、方便。官方文档中,FS的拨号方案叫做XM1Dia1p1anoXm1配置文件中允许使用Per1兼容的正则表达式来匹配一个号码域,如10010-9匹配1000到1019的号码。正则表达式的用法参考。FS运行时,会先解析所有Xm1文件,形成一个完整的配置方案。变量XM1Dia1P1an可以通过变量和表达式检测各种状况,当然如果判断条件不允许,该分支中的变量是不会起作用的。XM1Dia1p1an实际上是用于呼叫路由(Ca11Routing),而不是用于繁杂的条件检测和评估。FS支持1ua、JavaScriptPer1Python等脚本语言,这是比直接单纯使用复杂的XM1方案更好的选择。FS的拨号方案分为两步骤:查找和执行(huntingandexecuting)o首先查找时,基于条件判断,执行或撤销一个动作(action),把所有的应用解析出来,然后按顺序执行。也就是说,在查找的时候,执行阶段的信道变量(Channe1variab1es)是不会起作用的。比如XM1文件中配置了,但是这个应用在前期的查找中,不符合条件的话就得不到执行,不过也可以通过使用脚本语言来修改条件,或者XM1中使用条件求值使它在解析阶段就得到执行。注:自SVNRev14906起,允许某些应用使用in1ine关键字,这意味着它们可以在解析阶段求值,并应用于以后的条件匹配中。主叫描述文件(Ca11erPrOfi字段与信道变量(Channe1Variab1eS)的区别:在组织你的Dia1p1an时,这两者之间的区别可能是最令人头痛的,注意,前者是直接的字符串描述而后者使用变量语法注意,$.表示获取一个变量的值。XM1Dia1P1an解析当呼叫到达ROUTING状态时,拨号方案配置文件就会被解析。解析完后得到一个完整的建立channe1的步骤,这些步骤由解析xm1中action或antiaction标示得至少对于熟悉Asterisk的人来说,可能期望在一个action中获得的值能影响下action的判断。在FreeSWITCH中不是这样了。除非用$apifunc(apiargSvar-name)w这样的字段,在解析阶段从一个模块中调用一个可插入式的API,这情况仅应用于显示实时信息,如时间或其他可快速访问获取的信息,而不应该被滥用。XM1Dia1P1an剖析XM1Dia1p1an中有几大要素:context(上下文)、extension(分机号)、condition(条件)、action(动作),它们会被按顺序处理,直到action被处理,action告诉FS要执行的操作。对一个分机号,可以有多个condition(条件判断)和actionoExtension通俗的说就是电话号码,当然FS可以为其他设备分配号码,甚至是一个特殊的应用分配一个号码,如会议号。XM1Dia1p1an目录可以考虑把分机号的xm1配置文件放置到conf/dia1p1an/defau1t目录,该目录中的分机号会被优先于Enumextension被解析到拨号方案中。Xm1文件会按名字排序,排前面的xm1文件会被优先加载,如OO1MYExtxmI会优先于002_Yu.xm1。默认已经有IOoo至I1019分机号的×m1文件。Enumextension放在最后,如果执行到这一步时,它会匹配所有的分机号。ContextContexts是extensions(分机号)的逻辑分组。我们可能会有多个分机号在一个context中。Contet需要一个叫name,的参数,它的值是any的话表示匹配任何J情况。Name是用于表示ConteXt的,freeswitch.xm1文件中默认包含几个context:<?xm1version="1.0"7>默认extensionEXtenSiOn是一个呼叫的目的地,所以它不仅仅表示电话号码,虽然我叫它分机号需要给出一个name和conditions和actions以告诉FS如何找到它。这里name是唯一的,标识一分机号供后面使用。一个附加的参数叫做continue,默认把它设置为fa1se,设为true表示FS在当前分机号的所有action都解析完后会继续解析后续的所有分机号的actions如下,添加一个action:'bridge',桥接到分机号500:找号码为500的分机,找到则解析action<!-"The?%behindtheusernamete11sFSto1ookuptheuserinit's1oca1sip_registrationdatabase%:本地注册用户><actionapp1ication="bridge"data=nsofiaprofi1ename500%x.x.x.×7><!-×.x.x.xinthe1ineaboveistheIPaddresstotheFreeSWITCHserver/device:一个SiPURI,非本地注册账号-><!-Ifyoudon'twanttobridgeaca11toa1oca1registereduserzbuttoaSIPUR1usetheinsteadof?%:<actionapp1ication="bridge,data=',sofiaprofi1ename500(S)×.x.x.×7>第一行原型如下:第二行表示条件判断:如果有分机的号码是500则继续解析下面的action/break表示判断后的行为,有以下值:* On-true:第一次匹配后停止查找* On-fa1se:默认值,第一次失败后停止查找* A1ways:不管匹配与否都停止* Never:无论匹配与否都继续查找经过网关的呼叫gateway是mod,sofia的关键字,表示一个呼叫需要经过一个配置好的网关:当呼叫网关上的号码100<actionapp1ication=',bridge"data="sofia/gateway/gw/$1n/>/bridge到网关上conditionCondition是模式匹配标签,帮助FS决定是否处理对当前extension的呼叫。可以比较的参数有contextxrdnis、destination.numberxca11er_id_name等;fi1ed段和expression段都可以有参数。Fie1d段表示要匹配的对象(目的?上下文。),expression段表示要匹配的表达式。下面是一个网关的例子:/fie1d域和expression域<actionapp1ication=',bridge,data="sofia/profi1ename/$1x.x.x.x:50617>/网关ip和端口FS注册这个网关来呼叫PSTN上的电话。ActionandAnti-Action当conditions判断匹配的话,就会执行action,否则执行Anti-actionoACtiOn有两个参数:叩P1iCation表示已经注册的要执行的应用,如bridge;data是app1ication的参数。使用Anti-action的时候不可以使用$1,因为正则表达式不匹配,第一个参数是无效的。In1ineActions如果在action中把附加参数in1ine设置为true,则该action在dia1p1an查找期间就得到执行:可以内联执行的action有:* check_ac1z* eva1z* event,* export,* 1og,* presence,* set,* sejg1oba1,* set_profi1e_var;* SetjJSer;* s1eep,* unset,* VerbOSe_events,* cid1ookupz* cur1,* easyroutez* enumz* 1cr,* nibb1ebi11,* odbc_query内联执行的应用不会记录到Cdr中。EXAMP1ES如果你要在单独的xm1文件中加入自己的分机号,需要注释掉你不需要的enumextension(应该就是defau1t.xm1中默认配置的分机号,如1000到1019)。使用inc1ude把xm1文件包含到XM1Dia1p1an.Example 1如下:<actionapp1ication=bridge"data="sofia/profi1ename/$1192.168.2.2,>第一个conditions:当呼叫方的ip是192.168.1.1时,呼叫就会被处理,第二个conditions:拨打的号码会被提取到$1,提供给后面的actiono下面例子是错误的:<actionapp1ication=nbridge"data="sofia/profi1ename/$1192.168.2.27>因为目的号码的匹配时在不同的conditions域action取不到$1的值。当然可以定义变量来保存目的号码,如下:<actionapp1ication=nset"data="dia1ed_number=$17><actionapp1ication="bridge"data="sofia/profi1ename/$dia1ed_number192.168.2.27>注意,在extension内部使用set设置的变量不能用在后续的condition匹配中,因为set的求值是在执行阶段,而condition的匹配要先于set。如果你确实需要根据变量的值来决定执行action,需要在变量被填充值时使用execute_extension或transfer应用。注:新的的版本允许使用in1ine关键字来执行set,月解的话你就可以在后续的condition中使用。Example 2这个例子判断来自固$定ip和由1开头的号码。这里$1表示1后面的数值,$0才表示整个号码:<actionapp1ication=nbridge"data="sofia/profi1ename/$0192.168.2.27>Example 3接受00开头的号码才巴号码交给FS处理时才巴00前缀去掉,如接到OO123把123交给FS<actionapp1ication=bridgedata="sofia/profi1ename/$1192.168.2.27>这里(d+)表示数字,任意个,(.+)表示任意个字符Example 4接受带前缀的号码,处理时除掉前缀,在给它加上新的前缀.<actionapp1ication="bridge,'data="sofiaprofi1ename011$1x.x.x.x"/>Example 5这个例子演示profi1es的用法,profi1e是对这段的描述,所以需要需要终端支持才可以配置,如mod_SOfia,sip终端,它的profi1es如下这两个profi1e不同之处在编码选择上,一个g711u1aw,一个a1aw,使用方法如下:<actionapp1ication="bridge"data=',sofia/profi1e1/$0192.168.2.27>在sip_profi1e文件夹中包含了interna1.xm1externa1.xm1,

    注意事项

    本文(FreeSWITCH中的XML拨号计划.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



    收起
    展开