一 SIP会话发起协议 - 先知道是什么( 二 )

  • 代理服务器发送100 尝试立即响应呼叫者(lijiatu)以停止INVITE请求的重新发送 。
  • 代理服务器在位置服务器中搜索nuonuo的地址 。获取地址后 , 进一步转发INVITE请求 。
  • 此后 , nuonuo手机生成的180 振铃(临时响应)返回给lijiatu
  • nuonuo拿起手机后一个200 OK响应很快产生 。
  • 一旦200 OK到达lijiatu , nuonuolijiatu 收到一个ACK 。
  • 同时 , 会话建立 , RTP数据包(会话)从两端开始流动 。
  • 会话结束后 , 任何参与者(lijiatu , nuonuo)都可以发送一个BYE请求来终止会话 。
  • BYE直接从lijiatunuonuo绕过代理服务器 。
  • 最后 , nuonuo发送200 OK响应来确认BYE , 会话终止 。
  • 在上述基本呼叫流程中 , 可以使用三个事务(标记为1 , 2 , 3) 。
  • 完整的呼叫(从INVITE到200 OK)称为对话Dialog 。
    SIP请求与响应SIP消息有两种类型 - 请求与响应
    • 请求的开始行包含定义请求的方法及定义要发送请求的URI
    • 同样 , 响应的开始行包含响应代码
    方法可以被认为是SIP请求 , 它们请求由另一用户代理或服务器采取的特定动作 。
    方法分为两种类型 : 核心方法 与 扩展方法
    六种核心方法Invite 邀请
    • 用于启动与用户代理的会话 。
    • 成功的Invite 请求在两个用户代理之间建立对话 。
    • 在已经建立的对话框中发送Invite 被称为 re-invite , re-invite用于更改会话特性或刷新对话框的状态 。
    • 可以在邮件正文中包含主叫方的媒体信息 。

    一 SIP会话发起协议 - 先知道是什么

    文章插图
    示例:
    INVITE sips:Bob@TMC.com SIP/2.0  Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9  Max-Forwards: 70  From: Alice<sips:Alice@TTP.com>;tag = 1234567  To: Bob<sips:Bob@TMC.com>   Call-ID: 12345601@192.168.2.1     CSeq: 1 INVITE  Contact: <sips:Alice@client.ANC.com>  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY  Supported: replaces  Content-Type: application/sdp  Content-Length: ...      v = 0  o = Alice 2890844526 2890844526 IN IP4 client.ANC.com  s = Session SDP  c = IN IP4 client.ANC.com  t = 3034423619 0  m = audio 49170 RTP/AVP 0  a = rtpmap:0 PCMU/8000 Bye 挂断
    • Bye是用于终止既定会话的方法 。
    • BYE请求通常路由端到端 , 绕过代理服务器 。
    Register 注册
    • REGISTER请求执行用户代理的注册 。
    • 它在正在注册的用户的To头中携带AOR(记录地址)
    Cancel 取消
    • CANCEL用于终止未建立的会话 。
    • CANCEL是逐跳请求 , 即它通过用户代理之间的元素 , 并接收下一个有状态元素生成的响应 。

    一 SIP会话发起协议 - 先知道是什么

    文章插图
    ACK 确认
    • ACK用于确认对INVITE方法的最终响应 。
    options
    • OPTIONS方法用于向用户代理或代理服务器询问其功能并发现其当前的可用性 。
    八种扩展方法订阅