//------------------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協議透明地支援名字...