SIP協議棧基礎筆記

2022-04-16 13:16:16 字數 1781 閱讀 7519

//------------------sip基礎------------------------//

sip是基於udp的協議

ua(user agent)使用者**

uac(client)發起sip請求一方

uas(server)接收請求並傳送響應的一方

//sip協議6中基本方法

register   註冊聯絡資訊

invite    初始化乙個會話,可以理解為發起乙個呼叫

ack     對invite訊息的最終響應

cancel    取消乙個等待處理或正在處理的請求

bye     終止乙個會話

options    查詢伺服器和能力,也可以用作ping測試

//擴充套件

subscribe notify message refer info

//sip必須包含的頭域

call-id    用於區分不同會話的唯一標誌

cseq    順序號,用於在同一會話中區分事務

from    說明請求**

to     說明請求接收方

max-forwards  限制跳躍點數和最大**次數

via     描述請求訊息經過的路徑

//擴充套件的頭域

contact    alice(某人)的聯絡位址

expires    本次註冊的有效期

allow    alice(某人)的ua所能支援的功能

user-agent   ua的型號

content-length  訊息正文的長度

//註冊流程  

alice           freeswitch    

register(1)  

sip/2.0 401 unauthorized(未認證(http摘要認證))  

register(2)  

sip/2.0 200ok  

//呼叫流程  

bob            alice   

invite [email protected]  

100trying  

<----------------------------  //收到請求,等待響鈴    

180ringing  

<----------------------------  //響鈴後回180,bob收到180後提示對方正在響鈴    

200ok  

<----------------------------  //alice接聽後,回200ok    

ack   

---------------------------->  //收到200ok回覆ack證實    

rtp--------------------------------------- //語音通話走的是sip之外的rtp    

bye  

<----------------------------  //alice結束通話    

200ok 

---------------------------->  //收到bye後回200ok  

響應訊息=狀態碼和原因短語(如trying、ringing)

1xx:為臨時狀態,表明呼叫的進展情況;

2xx:請求被成功收到;

3xx:重定向,sip請求轉到另乙個uas處理;

4xx:請求失敗,一般由客戶端或網路引起,如密碼錯誤、空號

5xx:伺服器內部錯誤,伺服器出錯不能響應錯誤的請求;

6xx:全域性性錯誤,600 busy everywhere;  

幾種開源SIP協議棧對比

隨著voip和ngn技術的發展,h.323時代即將過渡到sip時代,在h.323的開源協議棧中,openh323佔統治地位,它把乙個複雜而又先進的h.323協議棧展現在普通程式設計師的眼前,為h.323普及立下了汗馬功勞。而然當在sip時代,則出現了群雄割據的狀況,sip相對於h.323簡單,靈活,...

Android開源SIP協議棧比較

簡介 社群反饋 不可用,相關資源少,不支援tls 20160829 android預設實現,api 9,不支援所有裝置,在大部分裝置只在wifi條件下工作,不能修改編解碼器 開源專案 暫無 ext ha.docs 簡介 參見 restcomm jain sip 消除了 在android專案使用時與a...

SIP協議詳解

sip 協議概念 會話啟動協議sip session initiation protocol 是乙個在ip網路上進行多 通訊的應用層控制協議,它被用來創 建 修改 和終結乙個或多個參加者參加的會話程序。sip協議可用於發起會話,也可以用於邀請成員加入已經用其它方式建立的會話。sip協議透明地支援名字...