深圳市宝安区华美居

0086-18665301040

最常用的18个SIP呼叫业务流程详解-呼叫询转

最常用的18个SIP呼叫业务流程详解-呼叫询转

Transfer – Attended,我们称之为呼叫询转。简单来说,Alice呼叫Bob,通过通话,Alice可能需要把电话转接到Carol,然后Bob把Alice设置为等待状态。Bob继续呼叫Carol,同时对Carol声明Bob需要把电话转接给Alice。Bob与Carol的通话接通后,替换双方之间的会话。Carol对Bob挂机。然后Alice对Bob发送一个报告,说明Alice和Carol的电话转接已经成功。Bob对Alice挂机。

通过上面的介绍,读者可能已经发现,Transfer-Unattended(Blind Transfer)和Transfer-Attended之间是有所不同的。最大的不同之处在于盲转过程中,电话转接到终端不会询问第三方是否可以转接,不关心转接到第三方是否同意或者接受这个电话转接(所以称之为“盲”)。而询转则有所不同,它和会转接到第三方提前询问,是否接受这个电话的转接,然后再进行电话转接流程(所以称之为“询”)。

另外,在上面的例子中,Bob插入了Replace 头Refer-To URL。具体的Replace 头的规范,读者可以参考RFC3891。注意,Refer-To URL是一个Contact URL,它是询转接受方(Carol)在F10中返回的200 OK响应消息中的Contact URL。这样可以保证正确的Carol的URL可达。在F10流程中,Contact URL中的参数gr表示Contact URL是一个GRUU,它表示是一个dialog之外的全球路由方式(RFC5627)。

GRUU具有以下几个特征:首先,它定义了指定的具体的用户代理。其次,从理论上来说,可以支持全球路由方式。最后,它的存活周期很长。我们简单查看一下关于GRUU的使用方式。如果支持了GRUU的SIP终端登录的话,其请求可能被复制出几个不同的终端设备地址。

最常用的18个SIP呼叫业务流程详解-呼叫询转

但是,如果对某一台指定的设备发送请求消息的话,请求消息会根据不同的设备URL来发送,它会专门发送到指定的终端设备,例如,sip:user@domain;opaque=user:epid:UghFocauauCHBHoLhAAA;gruu

那么,其他的设备就不会收到这个请求消息。

最常用的18个SIP呼叫业务流程详解-呼叫询转

在一些关于SIP的其他应用中,例如SBC的部署环境中,GRUU也支持了公开的GRUU和临时的GRUU,区别在于其存活周期的设定不同。具体的语法示例如下:

pub-gruu=” Sip:userA@home.net;gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6″;temp-gruu=”sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@home.net;gr“;

在询转过程中,如果示例中的Bob不知道Contact URL中的gruu,Bob必须自己修复这个问题。如果触发的INVITE失败,Bob必须重新使用refer带Refer-To URL来连接Carol,但是需要支持另外一个要求条件,Replace头中必须弃用Refer-To头。

最常用的18个SIP呼叫业务流程详解-呼叫询转

最常用的18个SIP呼叫业务流程详解-呼叫询转

以上是关于电话询转到呼叫流程图,处理过程需要27个具体的步骤。现在,我们配合详细的SIP消息来进一步解释以上流程。

最常用的18个SIP呼叫业务流程详解-呼叫询转

首先是Alice对Bob发起INVITE请求,进行呼叫(F1):

最常用的18个SIP呼叫业务流程详解-呼叫询转

然后,Bob对Alice发送180 振铃(F2):

最常用的18个SIP呼叫业务流程详解-呼叫询转

紧接着,Bob对Alice发送 200 OK(F3):

最常用的18个SIP呼叫业务流程详解-呼叫询转

Alice对Bob发送ACK确认消息(F4),双方呼叫接通。

最常用的18个SIP呼叫业务流程详解-呼叫询转

Bob对Alice发送INVITE消息,开启等待状态(F5)。

最常用的18个SIP呼叫业务流程详解-呼叫询转

Alice对Bob发送200 OK(F6):

最常用的18个SIP呼叫业务流程详解-呼叫询转

Bo对Alice发送ACK确认(F7):

最常用的18个SIP呼叫业务流程详解-呼叫询转

然后,Bob对Carol发送INVITE请求消息,要求完成Alice的电话转接:

最常用的18个SIP呼叫业务流程详解-呼叫询转

Carol回复Bob一个180振铃(F9):

最常用的18个SIP呼叫业务流程详解-呼叫询转

紧接着,Carol回复Bob一个200 OK(F10),注意,这里的参数已经增加了一个gruu。

最常用的18个SIP呼叫业务流程详解-呼叫询转

Bob对Carol回复了一个ACK确认消息(F11),开始媒体流。

最常用的18个SIP呼叫业务流程详解-呼叫询转

经过Bob和Carol通话以后,Bob告诉Carol,Alice想和Carol直接通话,Carol同样和Alice通话。Bob将此通话设置为等待状态,邀请Alice和Carol通话。

最常用的18个SIP呼叫业务流程详解-呼叫询转

Carol对Bob发送200 OK(F13):

最常用的18个SIP呼叫业务流程详解-呼叫询转

Bob收到Carol的ACK消息(F14),Bob和Carol最终确定转接。

最常用的18个SIP呼叫业务流程详解-呼叫询转

然后Bob对Alice发送REFER消息,开始通知Carol的地址:

最常用的18个SIP呼叫业务流程详解-呼叫询转

Alice收到202 接受消息(F16),表示接受这个转接。

最常用的18个SIP呼叫业务流程详解-呼叫询转

紧接着,Alice继续对Bob发送NOTIFY消息(F17),通知Bob一个订阅事件,告知Alice电话转接的流程处理状态。

最常用的18个SIP呼叫业务流程详解-呼叫询转

Bob收到Alice 200 OK(F18):

最常用的18个SIP呼叫业务流程详解-呼叫询转

获悉了Bob已经知道订阅事件以后,Alice开始对Carol发送INVITE请求(F19),并且替换了Bob。

最常用的18个SIP呼叫业务流程详解-呼叫询转

Carol对Alice 发送200 OK(F20):

最常用的18个SIP呼叫业务流程详解-呼叫询转

然后,Alice对Carol发送ACK确认消息(F21),开始RTP语音流,转接完成。

最常用的18个SIP呼叫业务流程详解-呼叫询转

因为,Alice和Carol已经开始RTP流的交互,所以紧接着,Carol需要对Bob进行挂机处理。因此,Carol对Bob发送BYE消息,双方挂机(F22)。

最常用的18个SIP呼叫业务流程详解-呼叫询转

Bob对Carol发送200 OK,执行挂机处理(F22):

最常用的18个SIP呼叫业务流程详解-呼叫询转

到现在为止,Alice仍然需要告诉Bob电话转接状态,因此,Alice对Bob发送第二个NOTIFY事件,通知Bob电话已经完全成功转接(F24):

最常用的18个SIP呼叫业务流程详解-呼叫询转

Bob发送一个 200 OK消息,表示收到从事件(F25):

最常用的18个SIP呼叫业务流程详解-呼叫询转

然后Bob对Alice挂机,发送BYE消息(F26):

最常用的18个SIP呼叫业务流程详解-呼叫询转

最后,Alice对Bob发送200 OK(F27),询转正式流程结束。

最常用的18个SIP呼叫业务流程详解-呼叫询转

参考资料:

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

https://www.rfc-editor.org/rfc/rfc5359.txt

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

https://www.rfc-editor.org/rfc/rfc3515.txt

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

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

https://support.sonus.net/display/SBXDOC51/GRUU+Support

www.freepbx.org.cn

https://svn.resiprocate.org/viewsvn/resiprocate/main/resip/recon/MOHParkServer/doc/MOHParkServer_User_Documentation.pdf?revision=8937&view=co

http://ijsetr.com/uploads/463152IJSETR13872-273.pdf

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

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

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

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

最常用的18个SIP呼叫业务流程详解-呼叫询转

最常用的18个SIP呼叫业务流程详解-呼叫询转

关注微信公众号: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

联系电话-18665301040
客服-3
客服-2
客服-1