SIP進行時


一直以“簡單”著稱的SIP其實也沒那么簡單,不過任何事物想掌握它都很困難。

這篇文檔旨在不斷的記錄SIP使用過程中遇到的各種疑惑和問題。

一、響應422 Session Interval Too Small

  發送的Invite消息如下:

INVITE sip:806@192.168.8.11 SIP/2.0
Via: SIP/2.0/WS 9srpbdc87v1s.invalid;branch=z9hG4bK774681
Max-Forwards: 69
To: <sip:806@192.168.8.11>
From: "801" <sip:801@192.168.8.11>;tag=ii5b0f08lb
Call-ID: 0egn2qmnq0hhrho2ccll
CSeq: 1869 INVITE
X-Can-Renegotiate: true
Contact: <sip:lo6vk6jn@9srpbdc87v1s.invalid;transport=ws;ob>
Content-Type: application/sdp
Session-Expires: 90
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER
Supported: timer,ice,replaces,outbound
User-Agent: JsSIP 0.7.9
Content-Length: 2613

v=0
o=- 6735531044150428780 2 IN IP4 127.0.0.1
……

  收到的響應如下:

SIP/2.0 422 Session Interval Too Small
Via: SIP/2.0/WS 9srpbdc87v1s.invalid;branch=z9hG4bK774681;received=192.168.8.11;rport=8012
From: "801" <sip:801@192.168.8.11>;tag=ii5b0f08lb
To: <sip:806@192.168.8.11>;tag=Q8XBrSc8NXHrH
Call-ID: 0egn2qmnq0hhrho2ccll
CSeq: 1869 INVITE
User-Agent: FreeSWITCH-mod_sofia/1.4.15+git~20150828T032007Z~014bbaf57d~32bit
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Min-SE: 120
Content-Length: 0

  原理:SIP(RFC3261)沒有提供已存在會話保持激活的機制,雖然可以終端可以使用某些方式了解會話是否存活,但proxy卻無法做到這一點。Re-INVITE和UPDATE方法就基於此進行的,這些刷新請求的周期是通過協商來確定的。當在規定的周期內沒有新的刷新請求到來,即認為該會話結束。為了控制通過re-INVITE和UPDATE方法進行周期性的會話(session)刷新,以判別會話兩端是否存活,增加了兩個頭域:Session-Expires(會話的生命期)和Min-SE(會話時鍾的最小值)。

  其中Min-SE頭域中的值只能增加不能減少,Session-Expires頭域的值只能減少不能增加,但不能少於Min-SE頭域中的值。

  當Proxy無法接受請求中的Session-Expires值時(小於Min-SE值),Proxy會回復422,UAC會繼續發起請求,但會攜帶422中的Min-SE頭域;

  當請求到達UAS時,UAS會在2**的應答中Session-Expires頭域中填寫最后的結果,且會攜帶參數refresher(指示當前的UAC或UAS誰來進行刷新),2**的回復,Proxy無法修改Session-Expires頭域。

  問題了然。修改Min-SE或者Session-Expires頭域滿足Session-Expires >= Min-SE就可以了。

  

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM