四、 SIP呼叫流程典型流程图解及其详细解释
注册流程:
终端代理A代理服务器REGISTER (1)401(2)REGISTER(3)200 OK (4)标题(1)用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求;(2)代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌;(3)终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器;(4)代理服务器将REGISTER 消息中的用户信息解密,通过认证/计费中心验证其合法后,将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。
注销流程:
终端代理代理服务器REGISTER (1)200 OK (4)标题(1) 终端向代理服务器送Register 消息注销,其头中expire 字段置0。(2) 代理服务器收到后回送200 OK 响应,并将数据库中的用户有关信息注销。基本呼叫建立过程:
终端代理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)标题(1) 用户摘机发起一路呼叫,终端代理A 向该区域的代理服务器发起Invite 请求;(2) 代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via 头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;如果没有问题,代理服务器在请求消息的Via 头域插入自身地址,并向Invite 消息的To 域所指示的被叫终端代理B 转送Invite 请求;(3) 代理服务器向终端代理A 送呼叫处理中的应答消息,100 Trying;(4) 终端代理B 向代理服务器送呼叫处理中的应答消息,100 Trying;(5) 终端代理B 指示被叫用户振铃,用户振铃后,向代理服务器发送180 Ringing 振铃信息;(6) 代理服务器向终端代理A 转发被叫用户振铃信息;(7) 被叫用户摘机,终端代理B 向代理服务器返回表示连接成功的应答(200 OK);(8) 代理服务器向终端代理A 转发该成功指示(200 OK);(9) 终端代理A 收到消息后,向代理服务器发ACK 消息进行确认;(10) 代理服务器将ACK 确认消息转发给终端代理B;(11) 主被叫用户之间建立通信连接,开始通话;会话更改流程:
用户代理服务端用户代理客户端通话 (1)Invite (2)200 OK (3)ACK (4)标题(2) 用户代理服务端向用户代理客户端发送Inivte消息,带有新的SDP协商信息。(3) 用户代理客户端回复200 OK,并将协商后的SDP信息带回。(4) 用户代理服务端发送ACK给用户代理客户端进行确认.正常呼叫释放过程:
终端代理A代理服务器终端代理B通话 (1)Bye (2)Bye (3)200 OK (4)200 OK (5)标题(2)用户通话结束后,被叫用户挂机,终端代理B 向代理服务器发送Bye 消息;(3)代理服务器转发Bye 消息至终端代理A,同时向认证/计费中心送用户通话的详细信息,请求计费;(4)主叫用户挂机后,终端代理A 向代理服务器发送确认挂断响应消息200 OK;(5)代理服务器转发响应消息200 OK。被叫忙呼叫释放: