VOIP之SIP呼叫過程分析

實驗模擬環境如下:華爲SoftCo模擬軟件、兩個OpenEye軟終端。IP地址與號碼分配如下:

配置命令如下:

config add batch sipue seid 8000 authorizationtype noauth number 5

 //批量增加SIP帳號

config add subscriber eid 8000 dn 7000 number 5

//批量增加SIP話機號碼

config add prefix dn 7 callcategory basic callattribute inter cldpredeal no minlen 4 maxlen 4 //配置局內字冠
下面是8001呼叫8000的協議流程圖:

首先配置好SoftCo交換機之後,然後配置SIP軟終端,在配置好之後,會自發向SIP服務器註冊,發送register請求報文,服務器收到後註冊通過,則返回狀態報文OK,表示註冊成功。

 

8001呼叫8000,向SIP服務器發送INVITE報文,向源發送Trying報文,SIP服務器通過查詢USN,找到對應的分機號碼,然後將INVITE報文轉發給80008000收到後向服務器返回Trying報文,如果8000接受INVITE的參數,則8000響鈴,向SIP服務器發送ringing回鈴消息, SIP服務器收到後,將ringing回鈴消息轉發給8001,這時8001提到回鈴聲 ;同時如果8000摘機了,向SIP服務器返回狀態消息OK,表示對方摘機,SIP服務器轉發給80018001收到OK後,發送ACK確認,經SIP服務器轉發給8001,這時整個通話連接建立起來,用RTP協議來傳輸語音視頻流,雙方便能聽到聲音了。通話一段時間後,如果8001想要結束通話,則掛機,向SIP服務器發送BYE消息,SIP服務器轉發給8000,同時返回狀態消息OK8000收到BYE則知道對方已掛機,返回TryingOK消息,最後整個通話結束

 

 

以上內容均爲個人見解,歡迎各位指正!報文詳細格式請參考附件文檔。

 
sip消息類型和消息格式
SIP是一個基於文本的協議,使用的是UTF-8字符集.
SIP消息主要分爲兩大類:
一類是由客戶端發往服務器的請求消息(Request);
一類是由服務器發往客戶端的應答消息(Response).
一個基本的SIP消息包括起始行、一個或多個頭字段、說明頭字段結束的空行和一個可選的消息體。
消息=起始行(包括請求行/狀態行;請求行規定了請求的類別,而狀態行指出了每個請求的狀態,比如是成功還是失敗。如果是失敗的話還要給出失敗的原因或類型。)
          *頭字段
          CRLF
           [消息體] (消息首部給出了關於請求或應答的更多信息一般包括消息的來源、規定的消息接收方,另外還包括一些其他方面的重要信息。       消息體通常描述將要建立會議的類型包括所交換媒體的描述,但不具體定義消息體的內容或結構,其結構或內容使用另外一個協議來描述,就是會話描述協議 SDP。)
請求消息
請求行=方法 +空格 +請求地址 +SIP版本號 +空行
通過一個請求行作爲起始行,請求行包括了方法名、請求的URL、協議版本號、中間用空格分開。
六種請求方法:
INVITE        發出呼叫會話請求
ACK         INVITE請求被最終請求
BYE          釋放一個呼叫會話
CANCEL        取消掛起的呼叫
REGISTER       登記註冊用戶代理
OPTIONS       查詢服務器能力
應答消息
狀態行=SIP版本+空格+狀態碼+空格+相關文本短語+空行

SIP
應答消息狀態碼與功能
類型 狀態碼 狀態說明
臨時應答(1XX) 100 Trying 正在處理中
180 Ringing
振鈴
181 call being forwarder
呼叫正在前向
182 queue
排隊
181* session progress
會話進行
會話成功(2XX) 200 OK 會話成功
重定向(3XX) 300 multiple 多重選擇
301 moved permanently
永久移動
302 moved temporaily
臨時移動
305 use proxy
用戶代理
380 alternative service
替代服務
請求失敗(4XX) 400 bad request 錯誤請求
401unauthorized
未授權
402 payment required
付費要求
403 forbidden
禁止
404 not found
未發現
405 method no allowed
方法不允許
406 not acceptable
不可接受
407 proxy authentication required
代理需要認證
408 request timeout
請求超時
410 gone
離開
413 request entity too large
請求實體太大
414 request-url too long
請求URL太長
415 unsupported media type
不支持的媒體類型
416 unsupported url scheme
不支持的URL計劃
420 bad extension
不良擴展
421 extension required
需要擴展
423 interval too brief
間隔太短

480 temporarily unavailable
臨時失效
481 call/transaction does not exist
呼叫/事務不存在
482 loop detected
發現環路
483 too many hops
跳數太多
484 address incomplete
地址不完整
485 ambiguous
不明朗
486 busy here
這裏忙
487 request terminated
請求終止
488 not acceptable here
這裏請求不可接受
491 request pending
未決請求
493 undecipherable
不可辨識
服務器失敗(5XX) 500 server internal error 服務器內部錯誤
501 not implemented
不可執行
502 bad gateway
壞網關
503 service unavailable
服務無效
504 server time-out
服務器超時
505 version not supported
版本不支持
513 message too large
消息太大
全局性錯誤(6XX) 600 busy everywhere 全忙
603 decline
丟棄
604 does not exist anywhere
不存在
606 not acceptable
不可接受
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章