SIP - 代理和路由



眾所周知,代理伺服器可以是無狀態的或有狀態的。在本節中,我們將進一步討論代理伺服器和 SIP 路由。

無狀態代理伺服器

無狀態代理伺服器簡單地轉發它接收到的訊息。這種伺服器不儲存任何呼叫或事務資訊。

  • 無狀態代理伺服器在轉發 SIP 請求後會忘記該請求。
  • 透過無狀態代理伺服器,事務將很快。

有狀態代理伺服器

有狀態代理伺服器會跟蹤它接收到的每個請求和響應。如果需要,它可以在將來使用儲存的資訊。如果它沒有從另一方收到響應,它可以重新傳輸請求。

  • 有狀態代理伺服器在轉發請求後會記住該請求,因此它們可以將其用於高階路由。有狀態代理伺服器維護事務狀態。事務意味著事務狀態,而不是呼叫狀態

  • 與無狀態代理伺服器相比,有狀態代理伺服器的事務速度並不快。

  • 有狀態代理伺服器可以在需要時進行分支和重新傳輸。(例如:呼叫轉發忙,例如)。

Via 和 Record-route

Record-Route

Record-Route 報頭由希望位於同一呼叫 ID 後續請求路徑中的代理插入請求中。然後,使用者代理使用它來路由後續請求。

Via

伺服器將 Via 報頭插入請求中以檢測迴圈並幫助響應找到返回客戶端的路徑。這僅有助於響應到達其目的地。

  • UA 本身在傳送請求時生成並將其自己的地址新增到 Via 報頭欄位中。

  • 轉發請求的代理會在 Via 報頭欄位列表的頂部新增一個包含其自身地址的 Via 報頭欄位。

  • 生成對請求的響應的代理或 UA 會按順序將請求中的所有 Via 報頭欄位複製到響應中,然後將響應傳送到頂部 Via 報頭欄位中指定的地址。

  • 接收響應的代理會檢查頂部的 Via 報頭欄位並與其自己的地址匹配。如果不匹配,則會丟棄該響應。

  • 然後刪除頂部的 Via 報頭欄位,並將響應轉發到下一個 Via 報頭欄位中指定的地址。

Via 報頭欄位包含協議名稱、版本號和傳輸(SIP/2.0/UDP、SIP/2.0/TCP 等),幷包含埠號和引數,例如 received、rport、branch。

  • 如果 UA 或代理從與頂部 Via 報頭欄位中指定的地址不同的地址接收請求,則會將 received 標記新增到 Via 報頭欄位中。

  • UA 和代理會向 Via 報頭欄位新增 branch 引數,該引數計算為 Request-URI、To、From、Call-ID 和 CSeq 編號的雜湊函式。

廣告

© . All rights reserved.