您当前的位置是:  首页 > 资讯 > 文章精选 >
 首页 > 资讯 > 文章精选 >

通过FreePBX内部拨号规则实现自定义分机互拨

2020-12-29 13:29:32   作者:james.zhu    来源:Asterisk开源派   评论:0  点击:


  电话系统/IPPBX一般都是通过一步步界面配置来实现呼叫的需求。界面配置比较直观和并且具有易操作的优势。但是,界面设置同时也具有非常大的局限性。如果用户需要一些非常特别的需求或者需要自定义的功能,界面一般就很难通过配置实现。如果需要支持用户的需求的话,集成商需要花费一定的成本专门针对某些客户的特殊需求重新定制开发。其实,很多开源的平台具备了非常好的灵活性,一些简单的功能可能通过自定义配置则可以快速实现。开源免费的FreePBX本身具备几乎所有商业IPPBX所具备的呼叫功能,同时也包括一些界面设置不能支持的功能。freepbx可以实现比较灵活的定制呼叫流程,包括内部呼叫的特殊处理,呼入前处理,呼入后处理等特殊需求的支持。用户也可以通过自定义拨号规则的方式实现非常灵活的拨号流程,内部分机可以支持不同的呼叫模式。今天,笔者介绍一个比较特殊的处理方式来实现内部分机直接的自定义拨号处理流程。图例上支持了一台FreePBX,两个SIP分机。在一般正常IPPBX或者电话系统的使用环境中,分机之间的互相拨号,仅通过拨打分机就可以实现。如果在某些特定需求的环境中,IPPBX可以一个SIP分机拨打一个指定的拨号方式,然后实现对目的地分机的最终呼叫。以下图例通过其中一个SIP分机实现自定义拨号的演示。
  如果需要实现FreePBX或者Asterisk自定义拨号规则的处理,用户首先在系统中添加一个特殊处理文件,定义其文件名称和拨号规则。具体文件存储在Asterisk默认的系统路径下:/etc/asterisk
 
  编辑extensions_custom.conf 文件,添加以下内容:
  
  注意,用户添加自己自定义的拨号规则文件时需要注意自己的拨号规则,并且了解拨号规则的处理流程和语法。如果不清楚拨号规则和语法,请查询本公众号,Asterisk 语法等内容学习。
  [from-internal-custom]  // 通过自定义内部分机拨号规则实现灵活拨号需求
  exten => _**XXX*XXXX,1,Noop(Entering user defined context from-internal-custom in extensions_custom.conf)
  exten => _**XXX*XXXX,n,Noop(ext: ${EXTEN:-4} delay: ${EXTEN:2:3}) // 打印
  exten => _**XXX*XXXX,n,Wait(${EXTEN:2:3}) // 秒为单位
  exten => _**XXX*XXXX,n,goto(from-internal,${EXTEN:-4},1) // 跳转
  以上自定义拨号规则说明:
  仅适用于内部分机互相呼叫的自定义拨号规则。
  内部分机先拨两个星号(××),然后拨一个三位数的数字表示时长,最后再拨一个星号(×),拨四位数的分机号码。
  拨号以后,等待一个时长,然后再执行呼叫分机号码的流程。
  示例:××005×1001 表示等待005,然后再拨分机1001
  以上流程可以实现各种自定义方式,用户可以根据不同场景做相应修改。当然,首先需要用户熟悉Asterisk 拨号规则的语法。
  安全提示:通过此特别自定义的拨号规则,系统内部分机可以通过agi命令执行其他的linux命令,包括重新启动服务器,删除数据等其他命令,所以请用户需要特别注意其自定义文件内容。
  然后通过freepbx界面,添加两个PJSIP的分机,分机账号如下:
  
  通过鼎信话机界面访问SIP配置,添加SIP 分机1001.
  添加通过FreePBX已创建的分机1001和FreePBX IP地址。
 
  如果一切正常的话,添加以后,几秒钟以后会显示成功注册。
  
  或者用户可以通过Asterisk CLI命令查看分机状态,确认成功注册:
  pjsip show endpoints
  
  pjsip debug log,看到dinstar SIP log。
 
  
  然后我们开始呼叫测试。通过软电话注册分机102,确保成功注册。然后,根据以下演示拨号输入相应的拨号字符串,分别为等待时间和分机号码。
  这里输入的是等待5秒钟,然后呼叫1001分机。
 
  Asterisk CLI 输出的呼叫log,拨号规则触发了自定义的规则,并且完整打印出了自定义拨号规则的内容。
  以下是分机1001接听呼叫的log日志。
 
  分机之间呼叫的CDR 呼叫记录:
  CDR记录:
  
  总结:
  笔者通过FreePBX配置两个SIP分机,实现了SIP内部分机(一个软电话,一台鼎信SIP话机)的自定义拨号规则的流程处理。通过自定义规则用户可以轻松实现界面配置不能支持的某些特殊需求,包括自定义呼入前处理(数据库流程,自定义目的地),呼叫后处理和内部分机的某些特殊需求。通过自定义的拨号规则可以完美支持一些界面不能配置的功能。希望读者通过此示例可以让读者进一步挖掘FreePBX强大的业务支持功能,实现更多业务需求。
  参考资料:
  www.freepbx.org.cn
  www.asterisk.org.cn
  www.freepbx.org
 
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题

CTI论坛会员企业