APP下载

基于SIP协议的群组呼叫研究

2011-12-26余永佳

常州信息职业技术学院学报 2011年5期
关键词:会话空闲通话

余永佳

(常州信息职业技术学院计算机科学与技术学院/软件学院 江苏常州 213164)

基于SIP协议的群组呼叫研究

余永佳

(常州信息职业技术学院计算机科学与技术学院/软件学院 江苏常州 213164)

SIP协议是IETF提出的IP网络控制层协议。介绍了SIP协议的呼叫控制流程,然后根据实际的IP语音组呼叫需求,分析了几种常见的组呼叫情况,分别给出了不同情况下SIP协议的交互时序和状态控制的实现。

SIP;组呼叫;IP语音通信

随着Internet的普及,语音传递也由以前的模拟信号逐渐向数字信号发展。VoIP(Voice over Internet Protocol)就是利用全球IP互联的环境,提供比传统语音业务更加丰富的服务。VoIP技术涵盖了多种协议,它们负责语音通信的不同层别,其中SIP(Session Initiation Protocol)协议以其简单、独立的特性在通信的应用层发挥着创建、维持、销毁会话的作用。

1 SIP协议的呼叫控制

利用IP通道进行语音通信,需要四层共同协作:物理层负责底层物理硬件的信号传递和纠错;网络层维护IP地址和路由;传输层是将应用层的数据以报文的形式进行传递和纠错;应用层的协议是根据不同的应用需求而生。SIP协议在语音呼叫的应用层中起着其特有的作用,它呼叫过程中并不负责所有工作,主要任务是进行会话的建立、维护、销毁。而在会话建立后语音的传递则由RTP协议负责。

普通的语音呼叫由一台IP终端发起,经由SIP代理服务器,再发送SIP消息给另外一台IP终端。SIP代理在两个终端之间起着桥梁和控制的作用,许多服务功能都必须依靠它来完成,如图1所示。

图1 普通IP呼叫的SIP时序图

1)Invite消息:呼叫发起终端A发送Invite消息给SIP代理,消息中含有终端B的号码。SIP代理根据号码查询到终端B的IP地址,会将Invite消息传递给B。

2)180消息:终端B空闲,返回180消息,由SIP代理转送给终端A,此时终端A可以听到回铃音。

3)200OK:终端B应答后发送200OK消息,SIP代理转送给终端A,终端A返回ACK消息表示确认。此时SIP协议完成了一个会话的建立。

4)语音传递:终端A和B进行通话,此时语音通信由RTP协议负责,SIP协议在该过程中需要监视会话是否会出现故障。

5)BYE消息:任何一方挂断电话会发送BYE消息给对方,对方收到后返回200OK进行确认,此次会话销毁。

2 SIP组呼叫的实现

VoIP技术可以方便地实现IP终端间语音呼叫,实际应用场合中需求是多样的,某些情况需要进行组呼叫的业务。如将公司市场部的人员组成一组,这样客户来电时,即使某一个人员缺席,其他人员也能够接到电话。医院病床管理也有类似的需求,将护士站的护士编组,在病人进行病床呼叫时,即使某个护士在忙,也能够确保其他护士及时响应。

SIP协议本身只负责会话的建立、维护、销毁,而没有提供组呼叫的功能,需要在SIP代理中进行组呼叫的功能实现。SIP组的管理可以在SIP代理中进行,通过界面设定的方式将不同的终端录入到组内,并可以根据实际网络情况进行组内终端数量的限定。如将终端B、C登录到某个组中,并为该组分配一个号码,当其他终端A拨打该号码时就可以同时呼叫终端B、C。实际的呼叫过程中,由于组呼叫的终端多,最终应答的终端也未知,在整个呼叫的过程中需要对呼叫参与方的状态进行维护。

2.1 正常时序组呼叫

1)Invite消息:终端A发起组呼叫,发送Invite消息给SIP代理,消息中含有特定的某个组的号码。SIP代理收到Invite消息后,查找该组所登录的终端(以终端B、C为例),向所有的终端发送Invite。

2)180消息:任何一个呼叫终端处于空闲状态,都会返回180消息给SIP代理,SIP代理在收到第一条180消息后,会返回180消息给终端A,终端A听取回铃音。其他空闲终端返回的180消息,SIP代理将不再转发。此时呼叫状态迁移如表1。

表1 SIP组呼叫正常时序下呼叫时状态

3)200OK消息:其中一个终端C应答,返回200OK。此时SIP代理发送200OK给终端A,终端A返回确认消息给终端C,此时两者可以进行通话了。与此同时SIP代理还需要发送Cancel消息给终端B,取消与终端B之间的会话,终端B返回200OK后停止鸣动。最终三方的状态迁移如表2。

表2 SIP组呼叫正常时序下应答后的状态

后续的通话和释放处理与普通呼叫相同,如图2。

图2 IP组呼叫的正常时序图

2.2 被叫方忙

实际呼叫中存在各种情况,如被叫的其中一方处于通话状态,此时可以等待通话的一方空闲后,再向其请求会话建立,如图3。

图3 被叫方忙的IP组呼叫时序图

1)Invite消息:SIP代理收到Invite消息后,发现终端C处于通话中,则只向B发送Invite消息。

2)180消息:终端B处于空闲状态,返回180消息给SIP代理,SIP代理在收到第一条180消息后,传递给终端A,终端A听取回铃音,如表3。

表3 被叫方忙时呼叫状态表

3)Invite消息:终端C结束了通话后,SIP代理会收到终端C释放会话的消息,此时SIP代理将向终端C发送Invite消息,如表4。

表4 被叫方空闲后的状态表

后续的处理可以参照正常时序组呼叫的流程,这种队列呼叫的实现方式,确保了被叫方不会因为忙而错过组呼叫。

2.3 被叫方全忙

实际运用过程中可能出现被叫终端全部处于通话状态的情况。一对一的呼叫一般是取消本次会话,让终端A听取忙音,而组呼叫可以通过不同的实现方法提供不同的功能。

1)Invite消息:终端A呼叫,SIP代理收到Invite消息后,发现所有被叫终端处于通话状态,如表5。

表5 被叫方全忙时呼叫状态表

这样的情况可以通过两种方式来处理,一是结束本次呼叫。向终端A发送Cancel消息,终端A听取忙音后挂机结束本次呼叫。这种方式适合于普通呼叫的场合。而在病床呼叫系统中,为了减少病人的呼叫操作,特别是考虑到重病患者的情况,是不允许向病人传递忙音,让病人再次呼叫的。这种场合使用另外一种方式,继续呼叫等待被叫方空闲,如图4所示。

图4 被叫方全忙的IP组呼叫时序图

2)180消息:发现所有终端处于忙碌状态,SIP代理可以在没有收到180的情况下,自己发送180消息给终端A,再没有任何被叫的情况下,终端A也可以听取回铃音。

3)Invite消息:一定时间后被叫终端变为空闲,SIP代理将Invite消息发送出去。此时再收到180消息,SIP代理将不进行转送,见表6。后续的处理则可以参照被叫方忙的处理流程。

表6 被叫方全部空闲后的状态表

随着NGN(Next Generation Network)的发展,SIP协议一定会在IP语音通讯的舞台上扮演更重要的角色,同时用户对于IP语音通讯的功能需求也会呈现多样性和差异化,针对用户的特定需求,结合SIP协议的特性,开发出不同的应用会成为IP语言通讯的主要业务方向。本文结合SIP协议提出了群组呼叫的想法和实现,希望能够给SIP语音组呼叫提供参考。

[1] Alan B.Johnston.SIP:Understanding the Session Initiation Protocol(Second Edition)[M].London:Artech House,2004.

[2] 续合元,杨国伟.基于SIP的呼叫控制[J].电信工程技术与标准化,2003(3):17-21.

[3] 王云岚.SIP原理分析[J].科技资讯,2010(5):58-59.

The Research on Group Calling Based on SIP Protocol

YU Yong-jia
(School of Computer and Software,Changzhou College of Information Technology,Changzhou 213164,China)

SIP is the session initiation protocol in application layer,it was developed by the IETF.This paper introduces the SIP sequence of simple IP calling.Then based on the real requirement of IP Group calling,analyses different conditions of group calling,gives the realization of IP Group Calling's SIP sequence and status controlling method.

SIP;group calling;VoIP

TN 915

A

1672-2434(2011)05-0010-03

2011-06-29

余永佳(1981-),男,工程师,硕士,从事研究方向:嵌入式软件、Android开发、语音程控交换

猜你喜欢

会话空闲通话
QQ和微信会话话轮及话轮转换特点浅析
“鸟”字谜
西湾村采风
《戊戌元日与友人通话》
彪悍的“宠”生,不需要解释
基于集群节点间即时拷贝的会话同步技术研究①
汉语教材中的会话结构特征及其语用功能呈现——基于85个会话片段的个案研究
WLAN和LTE交通规则
视频通话在煤矿井下的应用
2013年11月通信业主要指标完成情况(一)