深圳市南山区

086-18665301040

SIP系列讲座-基于SIP的电话会议技术探讨

SIP系列讲座-基于SIP的电话会议技术探讨


电话会议是企业通信中必不可少的功能之一,目前市场上已经有很多非常成熟的电话会议系统或者基于云的解决方案。有的可能是传统的PSTN方式结合IP(SIP/H323)方式,有的是完全是纯SIP的的技术架构。为了结合我们的SIP系列讲座内容,我们今天专门介绍一下基于SIP的电话会议的核心要素,电话会议的创建移除,会议用户管理的流程和不同电话会议服务器部署方式的讨论。


1

互联网的发展越来越开放,越来越灵活,传统的PSTN网络已经很难适应互联网发展的要求,同时运营商的业务能力也逐渐往互联网的方向发展。特别是IMS或者SIP trunk的投入也越来越大。在电话会议的部署方面,SIP具有以下几个独特的优势,所以,使得越来越多的电话会议系统通过SIP来获得支持:

  • SIP具有更丰富的支持能力,并且具有更多的开放性,而传统的PSTN网络无法获得这样的优势。

  • SIP具有更广泛的支持和更好的开放性,终端开发和网络技术人员(SDK/API/浏览器)可以轻易部署和开发需要的终端产品。

  • SIP终端通常可以非常灵活地进行配置和参数的调整,包括音视频支持,语音增益的调整。

  • 不同的会议产品厂家通过一定的配置都可以互相兼容,解决了很多传统会议系统的兼容性问题。

  • 基于SIP的电话会议可以轻松扩容,支持了更多的管理功能。

2

SIP电话会议系统可以通过很多方式方式来实现。几种实现方式在后续章节中有所描述。我们现在主要讨论的是服务器端的方式来实现电话会议系统。基于服务器端的电话会议系统具有以下几个方面的功能支持(如图所示)。

SIP系列讲座-基于SIP的电话会议技术探讨

具体可实现的功能包括:

SIP系列讲座-基于SIP的电话会议技术探讨

Conference服务器可以运行多个Focus 电话会议室,每个Focus 具有不同的ID,并且支持多个Focus。Focus具有以下几个主要特性:

  1. Focus是一个Conference-Aware的用户代理。根据RFC4353的规定,Focus事实上是在会议中扮演着一个逻辑角色。

  2. 有唯一的SIP URL。

  3. 可以托管/运行一个独立的会议服务。

  4. 维持SIP会议代表的信令关系。

  5. 支持会议控制管理。

  6. 可以支持媒体转发支持混音功能。

  7. 可以邀请/移除会议代表。



SIP系列讲座-基于SIP的电话会议技术探讨

这里读者一定要注意,在会议UA中,SIP电话会议支持两种UA:

  • Conference-Unaware UA。简单来说,Unware UA可以支持电话会议但是基本上忽略了SIP的其他携带信息,它可以支持会议拨入和被邀请功能,Unware UA仅要求支持RFC3261。这里读者可以简单理解为非SIP功能终端。具体Unware UA的定义请参阅 RFC4579。

  • Conference-Aware UA。它必须支持SIP会议的isfocus 参数。另外,它必须支持RFC3261,应该支持REFER,SIP事件。Aware UA可以支持对SIP头的渲染,并且应该支持conference package。具体的关于Aware UA的定义请参阅 RFC4579 3.4 部分。从真正意义上来说,这种UA才是SIP会议UA。


3

现在我们看看如何实现创建第一个电话会议,会议主持人启动会议的流程,并且订阅会议代表状态消息。通过以下示例大家可以看到,会议发起人首先需要对Conference Factory来发起一个INVITE,然后Factory开始创建一个Focus,然后Factory 返回一个302临时信息,并且携带了一个会议的ID号码。发起人再次对Focus发起一个INVITE,Focus回复一个200 OK。确认创建了会议Focus以后,会议发起人可以对Focus发起一个订阅消息,这样可以通过订阅消息来获悉其他会议代表的参会状态。发起人创建Focus大概经过12个步骤来实现整个发起会议的流程。

SIP系列讲座-基于SIP的电话会议技术探讨

UA支持了isfocus 参数,携带了Conf-ID。

SIP系列讲座-基于SIP的电话会议技术探讨


4

创建Focus 会议室以后,发起人可以通过呼叫方式或者REFER的方式对第一个参加会议的代表发出邀请。这里,发起人通过REFER对参加会议的代表发出邀请,然后Focus对会议代表发出邀请,会议代表回复200 OK,Focus确认代表身份,会议代表进入到会议室。Focus通过提示消息通知会议发起人已经有代表进入了会议室。

SIP系列讲座-基于SIP的电话会议技术探讨

会议发起人的REFER消息,通过Focus对代表发出会议邀请。Focus对会议代表发送到INVITE消息。

SIP系列讲座-基于SIP的电话会议技术探讨


6

电话会议发起人可以使用REFER,对联系人列表发起会议邀请,Focus则会根据列表的联系方式和URL发送到会议代表地址。这里,Focus可能需要第三方应用软件来批量发送消息地址。

SIP系列讲座-基于SIP的电话会议技术探讨


7

如果会议管理人员需要移除或踢出一个会议代表的话,可以通过REFER 头对Focus发送一个refer-to消息,通知Focus移除Refer-to的代表。Focus对需要被移除的代表发送一个Bye消息,会议代表被移除后,然后Focus对会议发起人发送一个NOTIFY消息。

SIP系列讲座-基于SIP的电话会议技术探讨

8


在RFC4579的规定中,如果会议发起人离开会议,Factory会自动删除这个会议。Focus对所有会议代表发送Bye信息,表示会议结束。会议被自动删除。读者可以查阅RFC4579 5.12获得更多详情。

SIP系列讲座-基于SIP的电话会议技术探讨

9


SIP电话会议的架构有很多中类型,我们在本章节的讨论中仅介绍了以中心服务器来处理的方式。其他几种类型(点对点处理方式,全网部署,广播模式)笔者没有做太多讨论,用户可以查阅网络的一些文章进一步进行研究。Kundan Singh在多年前对各种会议架构进行了讨论,也发布了相关的测试数据,这些数据包括编码转换的模式处理,带宽要求,CPU负载,内存使用状态,会议室数量,会议代表人数和扩容能力支持。当然,以什么样的方式部署电话会议系统取决于很多方面的因素,特别是在当前互联网如此发达,带宽足够,终端多样化的今天,各种方式都有其优势和劣势。用户需要根据自己的需求(成本,部署方式,使用习惯,功能,可维护性等)做进一步分析。

SIP系列讲座-基于SIP的电话会议技术探讨



在本章节的讨论中,我们首先介绍了SIP 电话会议的基本架构和核心的概念,同时介绍了电话会议发起的流程,电话会议邀请的流程和邀请多个会议代表的方式,最后我们讨论了如何移除会议代表,以及会议删除的方式。另外,增加了一些关于会议架构模式的讨论,也包括了各种架构模式的优缺点和性能问题。我们基本把电话会议的构建流程做了比较全面的讨论,这里,我们没有涉及具体的语音电话还是视频会议的讨论,事实上,很多会议解决方案已经层出不穷,业务模式也多种多样,用户可以自己体验。



参考资料:

Multiparty Conference Signalling using SIP

Kundan Singh, Centralized Conferencing using SIP

Stockholm SIP Conferencing

https://tools.ietf.org/html/rfc4353

https://tools.ietf.org/html/rfc4579


 

SIP系列讲座-基于SIP的电话会议技术探讨


关注微信公众号:asterisk-cn,获得有价值的行业分享。访问5060社区-开源IPPBX论坛获得技术帮助:www.ippbx.org.cn