分享
 
 
 

会话初始协议(SIP)第三方呼叫控制的研究

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

一、引言

IETF提出的会话初始协议(Sip),是在IP网上进行多媒体通信的应用层控制协议,可以用来发起、建立以及释放会话。SIP协议灵活简单的特性以及其灵活强大的呼叫控制的功能吸引了越来越多的厂商和运营商。SIP协议还可以与SDP协议配合使用,用来协商会话的媒体属性,因此更易于实现第三方呼叫控制。

第三方呼叫控制(3pcc)指的是由第三方控制者在另外两者之间建立一个会话,由控制者负责会话双方的媒体协商。3pcc是一种非常灵活的控制方式,在PSTN网中,第三方呼叫控制通常用于会议、接线业务(接线员创建一个连接另外双方的呼叫)。同样,使用SIP协议也可以借助3pcc来完成许多业务,例如点击拨号、通话过程中放音等等,而且实现起来非常方便。RFC3264中定义了一种提供/应答模式,使两个实体之间可以使用SDP的提供/应答(offer/answer)模式进行会话协商。

二、第三方呼叫控制方法

SIP消息可以携带SDP消息体。SDP(会话描述协议)是用来描述与媒体流相关的参数以及与会话相关的信息,其中包括对会话的描述以及媒体类型、数据发送到的端口、传输协议(例如RTP)以及媒体格式(例如RTP载荷格式)的描述。3pcc的实现要害就在于控制者如何在会话双方之间使用SDP消息协商即将建立的会话。根据SIP协议的机制,可以有下面四种方法实现3pcc。

1.流程Ⅰ

该流程图中的offer和answer都是SDP消息。下面解释消息流程。

控制者首先向用户A发送一个没有SDP的INVITE,A的电话振铃,A应答之后,产生的200 OK响应中将包含一个ofrerl,携带用户A所希望建立会话的媒体类型、媒体格式、传输协议以及接收媒体流的端口和IP地址。控制者将来自A的offerl包含在发给B的INVITE中,B振铃应答之后产生对rfferl的应答answerl。最后控制者向用户A发出的ACK中包含answer1作为应答。

图13pcc流程Ⅰ

该流程优点是非常简单,不需要控制者产生SDP,不必考虑控制者自身对媒体类型的要求。

缺点是该流程存在着一个非常严重的超时问题。假如B不能立即响应,控制者就无法马上给A发送ACK,有可能导致A定时重发200 OK。因为根据RFC3261,假如走时之后还没有收到ACK,这次呼叫就失败了。所以该流程只能用于用户B可以立即对INVITE进行响应的情况下。

2.流程Ⅱ

图23pcc流程Ⅱ

流程图中的“黑洞”SDP指的是包含的连接地址是一个无效的连接地址,例如rtp.invalid或者0.0.0.0,也就是想建立一个空的媒体流,因为这个媒体流实际上并没有媒体或者RTCP包从A流出。

该流程中,控制者首先向用户A发送INVITE,包含SDP1,用来创建一个初始的“黑洞”媒体流,A振铃并产生应答记为SDP2,其中包含的是一个有效的连接地址,但此时仍没有媒体流向控制者。控制者向A发出ACK。 控制者向B发送INVITE,携带SDP2作为对B的offer。B振铃,应答之后产生的200 OK响应中包含一个SDP3,也就是对SDP2的应答。控制者向B发送ACK。

控制者向A发送re-INVITE,包含SDP3作为offer。假设用户A不想改变原来的会话属性,在200 OK响应中包含的应答应该仍是SDP2。控制者发送ACK之后,就可以有媒体从A流向B。

本流程所有的最终响应都可以被立即确认,不会有因超时而导致呼叫失败的问题。

缺点是控制者必须预先知道本次呼叫所要使用的媒体类型,来创建初始的“黑洞”SDP;第二,“黑洞”SDP是一种扩展的机制,并不能确定所有的UA能否支持这种机制以及假如收到这样的地址能做何反应;第三,流程完成的前提是假设用户A对re-INVITE的响应中仍然包含的是SDP2。假如不是SDP2的话,控制者还需要向A再发送re-INVITE,然后有可能从B得到另一个不同的SDP,然后还需要向A再发送re-INVITE,如此等等,可能形成一个无限循环的会话协商。当然,可以采用一个智能UA,要求其固定的返回SDP2,或者采用一个智能的控制者能够分析收到的SDP确定有无必要发送re-INVITE,但是为简单起见,应尽量避免控制者了解SDP的具体内容。所以实际上本流程根本就不可用。

3.流程Ⅲ

本流程中,控制者向A发送一个没有SDP的INVITE。A应答的200 OK响应中包含一个offerl,控制者立即在ACK消息中产生一个“黑洞”SDP应答。

控制者再向B发送一个没有SDP的INVITE。B应答的200 0K响应中包含一个提供offer2,控制者应该基于offer2向A发送一个re-INVITE,注重。offer2可能需要稍作修改来满足媒体要求。例如假如offer1包含一个音频和一个视频行,而offer2只有一个音频行,控制者就需要在offer2中增加一个视频行(端口设为O)来构成offer2’。由于这是一个re-INVITE,所以通常应该能立即收到响应。A的200 0K响应中包含的answer2’,可能也需要稍作修改作为offer2的应答answer2。控制者向A发送ACK之后,媒体就可以流通。

图23pcc流程Ⅱ

流程图中的“黑洞”SDP指的是包含的连接地址是一个无效的连接地址,例如rtp.invalid或者0.0.0.0,也就是想建立一个空的媒体流,因为这个媒体流实际上并没有媒体或者RTCP包从A流出。

该流程中,控制者首先向用户A发送INVITE,包含SDP1,用来创建一个初始的“黑洞”媒体流,A振铃并产生应答记为SDP2,其中包含的是一个有效的连接地址,但此时仍没有媒体流向控制者。控制者向A发出ACK。 控制者向B发送INVITE,携带SDP2作为对B的offer。B振铃,应答之后产生的200 OK响应中包含一个SDP3,也就是对SDP2的应答。控制者向B发送ACK。

控制者向A发送re-INVITE,包含SDP3作为offer。假设用户A不想改变原来的会话属性,在200 OK响应中包含的应答应该仍是SDP2。控制者发送ACK之后,就可以有媒体从A流向B。

本流程所有的最终响应都可以被立即确认,不会有因超时而导致呼叫失败的问题。

缺点是控制者必须预先知道本次呼叫所要使用的媒体类型,来创建初始的“黑洞”SDP;第二,“黑洞”SDP是一种扩展的机制,并不能确定所有的UA能否支持这种机制以及假如收到这样的地址能做何反应;第三,流程完成的前提是假设用户A对re-INVITE的响应中仍然包含的是SDP2。假如不是SDP2的话,控制者还需要向A再发送re-INVITE,然后有可能从B得到另一个不同的SDP,然后还需要向A再发送re-INVITE,如此等等,可能形成一个无限循环的会话协商。当然,可以采用一个智能UA,要求其固定的返回SDP2,或者采用一个智能的控制者能够分析收到的SDP确定有无必要发送re-INVITE,但是为简单起见,应尽量避免控制者了解SDP的具体内容。所以实际上本流程根本就不可用。

3.流程Ⅲ

本流程中,控制者向A发送一个没有SDP的INVITE。A应答的200 OK响应中包含一个offerl,控制者立即在ACK消息中产生一个“黑洞”SDP应答。

控制者再向B发送一个没有SDP的INVITE。B应答的200 0K响应中包含一个提供offer2,控制者应该基于offer2向A发送一个re-INVITE,注重。offer2可能需要稍作修改来满足媒体要求。例如假如offer1包含一个音频和一个视频行,而offer2只有一个音频行,控制者就需要在offer2中增加一个视频行(端口设为O)来构成offer2’。由于这是一个re-INVITE,所以通常应该能立即收到响应。A的200 0K响应中包含的answer2’,可能也需要稍作修改作为offer2的应答answer2。控制者向A发送ACK之后,媒体就可以流通。

图43pcc流程Ⅳ

综上所述,流程I是最简单且有效的流程。假如控制者预先知道B是自动应答的能够立即响应,例如B是媒体服务器、会议服务器等等情况下,使用本流程是最好不过了。

假如控制者无法预知被叫的类型,就可以使用流程Ⅳ或者流Ⅲ来实现3pcc,但是一般不会使用流程Ⅱ。使用IV、Ⅲ时对控制者的智能性要求比较高。

三、3pcc应用

SIP协议的突出优点就在于灵活的多媒体会话的控制功能,配合使用3pcc就可以比传统电话网更加灵活方便的实现各种补充业务和新业务。

3pcc的应用非常广泛,例如可以方便对信令的控制,易于实现点击拨号、早期媒体放音(early media)、通话过程中播放语音通知的业务等等。

点击拨号业务是最典型的3pcc的应用实例。用户浏览网站时,可以直接点击网页上的链接地址,使用HTTP启动控制者对客服代表和SIP用户之间的第三方呼叫控制。然后控制者就可以使用上述四种方法在两者之间建立起媒体会话。

通话过程中播放语音通知,可以使用控制者将媒体服务器跟正在通话的用户之间连接起来,播放通知。

下面以播放早期放音媒体为例,选用最简单的流程I来介绍3pcc的应用。实际应用中,应该根据具体的情况考虑使用其它流程对下图进行修改。

Early media指的是呼叫建立之前已经建立的会话,通常用来传递关于呼叫进程的语音通知。图5便是用户B在应答呼叫之前已经建立了Early media媒体通道进行放音(图中(1)处)。用户B对呼叫进行应答之前用户A和控制者之间,B和控制者之间都分别已经进行过一轮媒体的交互了。当B接受呼叫之后,由于会话状态并没有改变,因此并不需要重新与用户A进行SDP信令交互。

图5用户B播放早期放音媒体

四、总结语

3pcc在多方通信中(例如会议)的应用也很广泛,SIP协议的3pcc功能应用灵活,使用一个控制者可以将多个用户联系起来进行通信,方便治理。但是目前3pcc实现上还有一些标准无法统一的问题,例如如何创建一个无效连接地址的SDP,亟待解决。目前我国正在积极的开展关于SIP协议对呼叫控制方面标准的制定,第三方呼叫控制作为呼叫控制的一个重要方面,也将成为一个不可或缺的研究重点。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有