您当前的位置是:  首页 > 资讯 > 国内 >
 首页 > 资讯 > 国内 >

关于IPPBX的工作模式-Half-call 模式讨论

2019-06-20 13:30:11   作者:james.zhu   来源:Asterisk开源派   评论:0  点击:


  现代企业电话系统中,估计相当一部分的企业用户或大部分企业用户开始使用IPPBX电话系统来实现企业内部和外部电话的沟通。但是,因为开源IPPBX,媒体服务器的出现,很多技术人员可能完全忽略了IPPBX的真正的最原始的设计理念和工作方式。虽然,我们在前面的文章中讨论了很多具体的IPPBX的功能和其相关的协议,但是,我们没有从最基本的,最原始的基础架构给读者介绍过IPPBX的工作模式。今天,我们提供漫谈的方式给大家介绍一下IPPBX的主要工作模式-half-call model(网上翻译为半呼叫模型),以帮助读者回顾过去,了解关于IPPBX的技术发展的路径。接下来的章节中,笔者首先介绍一下电话交换机的历史,然后介绍PBX的发展历史,以及Half-Call model的具体构成方式,处理方式以及其丰富的扩展性带来的IPPBX功能的增加。
  1、PBX简单背景介绍
  让我们首先简单说明关于PBX的一些背景知识,更多关于交换机的知识,读者可以查阅网络资料。PBX最早起源于程控电话交换机。读者可以通过此视频介绍电话系统的发展历史:
  因为通信技术本身的不断发展,PBX技术也不断更新迭代。其应用场景逐渐延伸到了公司电话系统,商业公司的客户联系等环境中。
  以前的PBX是庞然大物,随着IP化演进,IPPBX已经变得非常精致小巧,功能却有很大不同。
  随着网络的发展,传统的基于PSTN的纯PBX电话系统逐渐被淘汰出来市场。基于IP化的PBX在最近几十年有了很大的发展,从功能到用户场景。部署方式,甚至于运营方式都发生了很大变化,因为产品更新不够及时,或者技术落伍,这些变化导致了很多企业通信公司的破产重组,一些非常大牌的世界级公司都从市场上消失了,一个个巨人都纷纷倒下。目前来看,基于SIP,纯IP化或PSTN/IP的产品具有非常高的地位。
  2、IPPBX发展历史
  这里,为了说明后续章节的内容,笔者罗列几个关于IP的主要的里程碑事件和相关技术。
  1974年,IEEE发表了VINTON G. CERF 的研究论文:
  A Protocol For Packet Network Intercommunication
  此论文对网络封包处理,错误处理,发送顺序等提出了协议机制,为基于IP化的处理提供了非常权威的论述。这是当时通信界非常有影响力的论文。
  1985年,NSFNET 骨干网建立。
  1994年,发明了第一个VOIP 应用软件-MTALK
  1999年,两个比较大的事件发生,SIP协议规范正式公布(rfc2543),同时Mark Spencer发布了世界上第一个开源IPPBX-Asterisk,支持了语音板卡,SIP协议,PRI协议。
  2004年后,各种应用软件和运营方式也不断发生变化,产生了很多产品销售模式。

  3、Half-Call model的基本概念
  Half-call模式的基本概念其实非常简单,是一个比较抽象化的模式,不是一个具象功能。IPPBX分为两个部分,一部分支持呼叫方的功能要求,另外一个部分则支持被呼叫方的功能要求。这里笔者说明,IPPBX的工作模式还有其他模式,例如,multi segment model 等等模式,这里仅讨论Half-call 模式。
  在half-call模式中,呼叫发起方和呼叫结束方根据都具有处理机制和角色切换功能:
  • 用户属性,用户属性分别包括发起方功能和结束方功能。因为,任何一个终端用户都可能发起呼叫或者作为下游终端来接受呼叫,因此,终端的角色可能会随时切换。如果是呼叫发起方,则需要遵守发起方功能;如果是结束方则遵守结束方功能要求。
  • 业务处理顺序:首先处理发起方功能,按照IPPBX设置流程,处理发起方流程,然后再处理接收方功能。
  • Half-call 模式和B2BUA的工作方式高度契合,同时满足了UA转换的要求,增加了IPPBX的功能处理的灵活性。
  4、IPPBX的主要功能
  因为基于IP化的IPPBX的功能不断发展,IPPBX所支持的功能越来越多,厂家不同可能支持的功能数量有所不同。目前,IPPBX可能支持了大概500多个功能。但是,IPPBX大部分的主要常用功能包括几个部分:
  • 管理员功能:包括系统管理员对系统的全局设置功能,例如,语音,界面设置,系统用户权限设置,网络环境设置等。
  • 业务功能:包括IPPBX的业务逻辑功能支持,例如,语音导航,队列,振铃组,会议管理等设置。
  • 呼叫功能:包括针对具体呼叫进行的设置,例如,免打扰功能,实时呼叫录音功能,电话转接功能,软电话终端支持等。
  • 通信接口支持功能:包括支持的外部接入设备,板卡,语音网关,中继网关,其他终端产品或者软件类型的接口,SIP trunk/IMS,WebRTC等。
  • 系统用户侧(UCP)功能:包括系统用户的管理访问界面,支持IPPBX用户访问系统界面来控制自己的功能属性,例如呼叫记录,呼叫录音,个性化的传真设置,分机随行设置。
  • 其他第三方附加功能:包括高可靠性设置,外部应用对接支持,ASR/TTS接口支持,CRM支持,第三方终端自动部署设置等功能。
  5、Half-Call 模式具体处理流程
  前面我们讨论了半呼叫模式的基本概况。这里,我们重点针对半呼叫模式的四种呼叫模式结合具体的功能要求说明。笔者再次强调关于业务流程处理的逻辑顺序:
  • 首先处理呼叫方的用户属性所规定的功能要求
  • 然后处理被呼叫方结束方功能要求
  • 如果被呼叫方无任何用户属性所规定的功能要求,则进入到下游处理流程,呼出外部号码
  • 呼叫发起方是外部号码呼入的话,首先执行发起方用户属性规定的呼叫功能,没有规定的功能要求,则呼入到下游被呼叫方,接入内部分机
  • 呼叫方被呼叫方都分别具有呼叫方属性规定的功能和被呼叫方属性规定的呼叫功能。
  通过以上图例可以基本了解半模式呼叫模型的构成方式。以上图例说明了四种呼叫场景:
  • 内部分机A呼叫内部分机B,按照Case 1执行,作为呼叫方,用户A首先检查自己的呼叫方功能要求(例如,执行录音功能),然后IPPBX再次INVITE到被呼叫方测,被呼叫方B检查自己的被呼叫方用户属性,执行支持的功能,例如内部分机拒绝接听。则对用户A进行挂机处理,或者返回408等消息。当然,我们这里的功能设置都是假设,用户属性规定的功能要求根据不同厂家的设置可能有所不同。
  • 内部分机B呼叫内部分机A,按照Case 2 执行。这里,用户B作为发起方对用户A进行呼叫,用户B首先检查自己呼叫方用户属性所规定的功能要求,例如执行呼叫录音等。IPPBX再次INVITE用户B到用户A测,用户A首先检查自己的被呼叫方用户属性所规定的功能要求,按照功能设置的优先级执行处理,例如拒绝接听,或者分机随行等功能。
  • 作为发起方的外部呼入,按照Case 4执行。如果是外部呼入的呼叫,作为发起方检查是否规定了用户属性中的功能处理,如果没有,则通过IPPBX的INVITE进入到下游终端,用户A的被叫方。用户A检查自己的被叫方的功能属性要求,然后执行功能流程。
  • 内部分机A呼出到外部号码,按照Case 3执行。用户A首先执行自己的呼叫方用户属性规定的功能,如果可以执行的话(例如呼叫国际长途),则IPPBX再次INVITE到被呼叫方,如果被呼叫方没有任何规定的用户属性,则进入到下游处理流程,呼出到外部电话或者国际长途等。
  在以上这四种处理流程中,用户属性和呼叫角色是随时切换的,切换以后的功能要求都必须遵守相应的身份来处理,同时需要按照功能要求的优先级进行。因为,很多IPPBX都支持不同的设置流程,所以,用户最好对应具体的产品做进一步的理解。大部分的IPPBX基本上都是按照拨号规则或dialplan来处理呼叫流程。当然,其复杂程度远远大于我们的示例,很多功能检查也基本上都隐藏了起来,用户甚至于感觉不到half-call模式的存在,都是基本上都是遵守这样一个处理模式。读者可以查阅Asterisk或者FreeSWITCH的拨号规则通过自己编写拨号规则来理解呼叫流程的控制。
  在以上IPPBX的处理过程中,IPPBX本身的业务处理扮演着非常重要的角色。基于SIP的IPPBX为IPPBX的功能处理增加了很大的灵活性,这样,IPPBX就可以拓展出很多具体的,新的业务功能。笔者认为,IPPBX可以支持如此强大的功能,就在于IPPBX支持了SIP的B2BUA功能,IPPBX和B2BUA高度契合才能充分实现IPPBX的二次处理。
  关于B2BUA的概念和其处理机制,读者可以查阅笔者的历史文档:
  • B2BUA/SBC/Proxy的SIP消息重构和RFC7092详解
  • 在此文章中,笔者对其代理角色做了非常充分的说明。
  • 半呼叫模式其实在早期的智能网发布时就已经存在。同时早期的IMS网络也使用了此模式。智能网(IN)的版本已经发布了很多,读者有兴趣的话,可以查阅官方文档来做进一步理解。
  6、总结
  在本文章中,我们通过漫谈的方式对IPPBX的抽象处理方式half-call 模式做了全面的介绍。首先,我们介绍了IPPBX的一些相关背景知识,然后介绍了IPPBX发展历史过程中几个重要的里程碑事件。然后,我们介绍了Half-call model的基本原理,分别介绍了其用户属性功能和逻辑处理的流程,笔者重点针对四种呼叫处理方式做了介绍,通过示例说明了处理逻辑的优先级。最后,特别针对half-call 模式和B2BUA的高度契合来说明IPPBX的功能灵活性。
  最后,笔者说明,half-call模式仅是一种IPPBX呼叫流程的抽象处理机制,IPPBX厂家产品的具体实现方式可能有所不同,用户也可能感觉不到此抽象模型的存在。但是,IPPBX的业务处理方式仍然没有脱离此模式。SIP协议的使用结合IPPBX,实现了B2BUA和half-call模式的高度契合,通过这样的组合方式,可以连接很多基于物联网,互联网,人工智能的接口。因此,IPPBX的处理方式可能更加灵活。
  参考资料:
  https://signallake.com/innovation/CerfKahnMay74.pdf
  https://getvoip.com/blog/2014/01/27/history-of-voip-and-internet-telephones/
  https://en.wikipedia.org/wiki/Mark_Spencer_(computer_engineer)
  https://documentation.avaya.com/bundle/AdministeringCommunicationManagerServerOptions_r7.1.3/page/Half-call_model.html
  
   
  关注微信公众号:asterisk-cn,获得有价值的Asterisk行业分享
  Asterisk freepbx 中文官方论坛:http://bbs.freepbx.cn/forum.php
  Asterisk freepbx技术文档: www.freepbx.org.cn
  融合通信商业解决方案,协同解决方案首选产品:www.hiastar.com
  Asterisk/FreePBX中国合作伙伴,官方qq技术分享群(3000千人):589995817

【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题

CTI论坛会员企业