《SIP呼叫流程典型流程图解及其详细解释.docx》由会员分享,可在线阅读,更多相关《SIP呼叫流程典型流程图解及其详细解释.docx(17页珍藏版)》请在三一办公上搜索。
1、SIP呼叫流程典型流程图解及其详细解释1注册流程: . 2 2注销流程: . 3 3 基本呼叫建立过程: . 4 4 会话更改流程: . 5 5 正常呼叫释放过程: . 6 6 被叫忙呼叫释放: . 7 7被叫无应答流程一: . 8 8被叫无应答流程二: . 9 9遇忙呼叫前转: . 10 10无应答呼叫前转流程: . 13 11呼叫保持: . 15 12呼叫等等: . 16 1注册流程: 终端代理A代理服务器REGISTER (1)401(2)REGISTER(3)200 OK (4)标题用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求;代理服务器通过后端认证/计费中心
2、获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌;终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器;代理服务器将REGISTER 消息中的用户信息解密,通过认证/计费中心验证其合法后,将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。2注销流程: 终端代理代理服务器REGISTER (1)200 OK (4)标题 终端向代理服务器送Register 消息注销,其头中expire 字段置0。 代理服务器收到后回送200 OK 响应,并将数据库中的用户有
3、关信息注销。3 基本呼叫建立过程: 终端代理A代理服务器终端代理BInvite (1)Invite (2)100 Trying (3)100 Trying (4)180 Ringing (5)180 Ringing (6)200 OK (7)200 OK (8)ACK (9)ACK (10)通话 (11)标题 用户摘机发起一路呼叫,终端代理A 向该区域的代理服务器发起Invite 请求; 代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via 头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;如果没有问题,代理服务器在请求消息的Via 头域插入自身地址,并向
4、Invite 消息的To 域所指示的被叫终端代理B 转送Invite 请求; 代理服务器向终端代理A 送呼叫处理中的应答消息,100 Trying; 终端代理B 向代理服务器送呼叫处理中的应答消息,100 Trying; 终端代理B 指示被叫用户振铃,用户振铃后,向代理服务器发送180 Ringing 振铃信息; 代理服务器向终端代理A 转发被叫用户振铃信息; 被叫用户摘机,终端代理B 向代理服务器返回表示连接成功的应答; 代理服务器向终端代理A 转发该成功指示; 终端代理A 收到消息后,向代理服务器发ACK 消息进行确认; 代理服务器将ACK 确认消息转发给终端代理B; 主被叫用户之间建立通
5、信连接,开始通话;4 会话更改流程: 用户代理服务端用户代理客户端通话 (1)Invite (2)200 OK (3)ACK (4)标题 用户代理服务端向用户代理客户端发送Inivte消息,带有新的SDP协商信息。 用户代理客户端回复200 OK,并将协商后的SDP信息带回。 用户代理服务端发送ACK给用户代理客户端进行确认.5 正常呼叫释放过程: 终端代理A代理服务器终端代理B通话 (1)Bye (2)Bye (3)200 OK (4)200 OK (5)标题用户通话结束后,被叫用户挂机,终端代理B 向代理服务器发送Bye 消息;代理服务器转发Bye 消息至终端代理A,同时向认证/计费中心送
6、用户通话的详细信息,请求计费;主叫用户挂机后,终端代理A 向代理服务器发送确认挂断响应消息200 OK;代理服务器转发响应消息200 OK。6 被叫忙呼叫释放: 终端代理A代理服务器终端代理BInvite (1)Invite (2)100 Trying (3)100 Trying (4)486 Busy here (5)486 Busy here (6)ACK (7)ACK (8)标题用户A 发起一路呼叫,终端代理A 向代理服务器发送Invite 请求。代理服务器收到呼叫请求后向被叫终端代理转发该Invite 消息。代理服务器向终端代理A 回送100 Trying,告知终端代理A 呼叫正在处理
7、。终端代理B向代理服务器 回送100 Trying,告知代理服务器呼叫正在处理。呼叫请求送到被叫终端代理B 后,被叫忙,终端代理B 向代理服务器送486 被叫忙响应。代理服务器向终端代理A 转发该响应消息。终端代理A 向代理服务器回送ACK 确认消息。代理服务器向终端代理B 送ACK 确认消息。7被叫无应答流程一: 终端代理A代理服务器终端代理BInvite (1)Invite (2)100 Trying (3)100 Trying (4)180 Ringing (5)180 Ringing (6)Cancel (7)Cancel (8)200 OK (9)200 OK (10)487 Req
8、uest Canceled (11)487 Request Canceled (12)ACK (13)ACK (14)标题 用户A 发起一路呼叫,终端代理A 向代理服务器发Invite 请求消息。 代理服务器向被叫用户的终端代理B 转发该Invite 请求。 代理服务器向终端代理A 回送100 Trying 响应,表示呼叫已在处理中。终端代理B向代理服务器 回送100 Trying,告知代理服务器呼叫正在处理。 被叫用户振铃,终端代理B 向代理服务器送180 Ring 响应。 代理服务器向终端代理A 转发该响应消息。 被叫久振铃无应答,终端代理A 判断超时后,向代理服务器送Cancel 消息放
9、弃该呼叫。 代理服务器收到Cancel 消息后,向终端代理A 回送200 OK 响应。 代理服务器将Cancel 消息转发给终端代理B。 终端代理B 向代理服务器回送200 OK 响应。 终端代理B 向代理服务器送487 请求已撤销的响应消息。 代理服务器收到后回送ACK 确认。 代理服务器向终端代理A 送487 请求已撤销消息。 终端代理A 向代理服务器回送ACK 确认。注:上述步骤中和无严格的顺序关系。8被叫无应答流程二: 终端代理A代理服务器终端代理BInvite (1)Invite (2)100 Trying (3)100 Trying (4)180 Ringing (5)180 Ri
10、nging (6)408 Request timeout (8)408 Request timeout (7)ACK (9)ACK (10)标题 用户A 发起一路呼叫,终端代理A 向代理服务器发Invite 请求消息。 代理服务器向被叫用户的终端代理B 转发该Invite 请求。 代理服务器向终端代理A 回送100 Trying 响应,表示呼叫已在处理中。终端代理B向代理服务器 回送100 Trying,告知代理服务器呼叫正在处理。 被叫用户振铃,终端代理B 向代理服务器送180 Ring 响应。 代理服务器向终端代理A 转发该响应消息。 被叫久振铃无应答,终端代理B 判断超时后,向代理服务器
11、送408 Request timeout 消息放弃该呼叫。 代理服务器收到408 Request timeout 消息后,转发该消息给终端代理A。 代理服务器收到后回送ACK 确认给终端代理B。 终端代理A 向代理服务器回送ACK 确认。注:上述步骤中和无严格的顺序关系。9遇忙呼叫前转: 终端代理A代理服务器终端代理B终端代理CInvite (1)Invite (2)100 Trying (3)100 Trying (4)486 Busy here (5)ACK (6)Invite (7)180 Ringing (8)180 Ringing (9)200 OK (10)200 OK (11)A
12、CK (12)ACK (13)开始通话BYE (14)BYE (15)200 OK (16)200 OK (17)标题 用户A 发起一路呼叫,终端代理A 向代理服务器发Invite 请求消息。 代理服务器向被叫用户的终端代理B 转发该Invite 请求。 代理服务器向终端代理A 回送100 Trying 响应,表示呼叫已在处理中。 终端代理B向代理服务器 回送100 Trying,告知代理服务器呼叫正在处理。 终端代理B忙线种,终端代理B 向代理服务器送486 Busy here 响应。 代理服务器向终端代理B 发送ACK响应消息。 代理服务器对此呼叫进行前转,向终端代理C 发送Invite请
13、求消息。 代理终端C收到Inivte请求后,指示用户振铃,同时向代理服务器发送180 Ringing响应。 代理服务器向代理终端A转发收到的180 Ringing响应。 被叫用户C摘机接听电话,代理终端C向代理服务器发送200 OK响应。 代理服务器向代理终端A转发收到的200 OK响应。 (12) 终端代理A 向代理服务器回送ACK 确认。 (13) 代理服务器向代理终端C转发收到的ACK确认。 双方开始通话。 主叫挂机,代理终端A向代理服务器发送BYE请求消息,请求挂机。 代理服务器向代理终端C转发收到的BYE请求消息,指示用户C挂机。 用户C放崔挂音,同时向代理服务器回应200 OK响应
14、。 代理服务器向代理终端转发收到的200 OK响应。10无应答呼叫前转流程: 终端代理A代理服务器终端代理B终端代理CInvite (1)Invite (2)100 Trying (3)100 Trying (4)180 Ringing (5)180 Ringing (6)CANCEL (7)200 OK (8)487 (9)ACK (10)Invite (11)180 Ringing (12)180 Ringing (13)200 OK (14)200 OK (15)ACK (16)ACK (17)开始通话BYE (18)BYE (19)200 OK (20)200 OK (21)标题 用户
15、A 发起一路呼叫,终端代理A 向代理服务器发Invite 请求消息。 代理服务器向被叫用户的终端代理B 转发该Invite 请求。 代理服务器向终端代理A 回送100 Trying 响应,表示呼叫已在处理中。 终端代理B向代理服务器 回送100 Trying,告知代理服务器呼叫正在处理。 被叫用户振铃,终端代理B 向代理服务器送180 Ring 响应。 代理服务器向终端代理A 转发该响应消息。 被叫久振铃无应答,代理服务器 判断超时后,向代理终端B送Cancel 消息放弃该呼叫。 代理终端B收到Cancel 消息后,向代理服务器 回送200 OK 响应。 终端代理B 向代理服务器送487 请求
16、已撤销的响应消息。 代理服务器收到后回送ACK 确认。 代理服务器对此呼叫进行前转,向终端代理C 发送Invite请求消息。 代理终端C收到Inivte请求后,指示用户振铃,同时向代理服务器发送180 Ringing响应。 代理服务器向代理终端A转发收到的180 Ringing响应。 被叫用户C摘机接听电话,代理终端C向代理服务器发送200 OK响应。 代理服务器向代理终端A转发收到的200 OK响应。 (16) 终端代理A 向代理服务器回送ACK 确认。 (17) 代理服务器向代理终端C转发收到的ACK确认。 双方开始通话。 主叫挂机,代理终端A向代理服务器发送BYE请求消息,请求挂机。 代
17、理服务器向代理终端C转发收到的BYE请求消息,指示用户C挂机。 用户C放崔挂音,同时向代理服务器回应200 OK响应。 代理服务器向代理终端转发收到的200 OK响应。11呼叫保持: 终端代理A代理服务器终端代理BInvite (1)Invite (2)100 Trying (3)100 Trying (4)180 Ringing (5)180 Ringing (6)200 OK (7)200 OK (8)ACK (9)ACK (10)通话 (11)Invite (c = 0.0.0.0) (12)Invite (c = 0.0.0.0) (13)200 OK (14)200 OK (15)A
18、CK (16)ACK (17)标题 用户摘机发起一路呼叫,终端代理A 向该区域的代理服务器发起Invite 请求; 代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via 头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;如果没有问题,代理服务器在请求消息的Via 头域插入自身地址,并向Invite 消息的To 域所指示的被叫终端代理B 转送Invite 请求; 代理服务器向终端代理A 送呼叫处理中的应答消息,100 Trying; 终端代理B 向代理服务器送呼叫处理中的应答消息,100 Trying; 终端代理B 指示被叫用户振铃,用户振铃后,向代理服务器
19、发送180 Ringing 振铃信息; 代理服务器向终端代理A 转发被叫用户振铃信息; 被叫用户摘机,终端代理B 向代理服务器返回表示连接成功的应答; 代理服务器向终端代理A 转发该成功指示; 终端代理A 收到消息后,向代理服务器发ACK 消息进行确认; 代理服务器将ACK 确认消息转发给终端代理B; 主被叫用户之间建立通信连接,开始通话; 代理终端向代理服务器发送Reinvite请求消息,SDP 的c域等于0.0.0.0。 代理服务器转发此消息给代理终端A。 代理终端A收到Reinvite后,回应200 OK响应。表示接受会话更改,同时根据协商结果修改会话方式。 代理服务器转发200 OK给
20、代理终端B。 终端代理B 收到消息后,向代理服务器发ACK 消息进行确认; 代理服务器将ACK 确认消息转发给终端代理A;12呼叫等等: 终端代理A代理服务器终端代理B终端代理CA ,B处于正常通话阶段Invite (2)100 Trying (3)Invite (4)180 Ringing (5)180 Ringing (6)Invite (7)Invite (8)100 Trying (9)200 OK (10)200 OK (11)ACK (12)200 OK (14)200 OK (15)ACK (16)ACK (17)开始通话BYE (18)BYE (19)200 OK (20)20
21、0 OK (21)Invite (22)Invite (23)标题 用户A,B正处于通话阶段,用户C向A发起呼叫,终端代理C发送Invite消息给代理服务器。 代理服务器向终端代理C 回送100 Trying 响应,表示呼叫已在处理中。 代理服务器把Invite消息转发给代理终端A。 用户A振铃,终端代理A 向代理服务器送180 Ring 响应。 代理服务器向终端代理C 转发该响应消息。 用户A按下呼叫保持键,代理终端A向代理服务器发送Invite消息,请求与代理终端呼叫保持。 代理服务器转发此消息给终端代理B。 代理服务器向终端代理A 回送100 Trying 响应,表示呼叫已在处理中。 终
22、端代理B 收到呼叫保持请求后,发送200 OK给代理服务器,表示接受呼叫保持。 代理服务器转发200 OK响应给终端代理A。 (12) 终端代理A 向代理服务器回送ACK 确认。 (13) 代理服务器向代理终端B转发收到的ACK确认。 (14) 终端代理A发送200 OK给代理服务器,表示接受C的呼叫。 代理服务器转发200 OK响应给终端代理C。 (16) 终端代理C 向代理服务器回送ACK 确认。 (17) 代理服务器向代理终端A转发收到的ACK确认。 A ,C之间开始通话。 用户A挂机,终端代理A向代理服务器 发送Bye请求消息。 代理服务器转发Bye消息给终端代理C。 (20) 终端代理C发送200 OK给代理服务器,表示接受请求。 代理服务器转发200 OK响应给终端代理A。 终端代理C重新发送Inivte请求给代理服务器,请求和终端代理B恢复通话。 代理服务器向代理终端B转发收到的Invite请求。ACK (13)