久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2456|回復: 0
打印 上一主題 下一主題
收起左側

SIP學習筆記

[復制鏈接]
跳轉到指定樓層
樓主
ID:107189 發表于 2016-3-5 18:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

學習 SIP 協議最快捷的方法是通過范例來學習,
找到了一個完整的呼叫流程,let's go!
INVITE
主叫方Tesla首先發起 INVITE 消息到被叫方MarconiINVITE 消息包含會話類型和一些呼叫所必須的參數。會話類型可能是單純的語音,也可能是網絡會議所用的多媒體視頻,還可能是游戲會話。下面是消息體范例,我們來詳細分析各個字段的意義。
INVITE sip:marconi@radio.org SIP/2.0
    < 請求方法、請求地址(RequestURI)、SIP 版本號(目前都是 SIP/2.0
        < 請求地址一般就是被叫方地址,跟 MSN 中好友 eMail 地址類似
Via: SIP/2.0/UDP lab.high-voltage.org:5060;branch=z9hG4bKfw19b
    <SIP 版本號(2.0)、傳輸類型(UDP)、呼叫地址、
        <branch是一隨機碼,它被看作傳輸標識
        <Via 字段中地址是消息發送方或代理轉發方設備地址,一般由主機地址和端口號組成
        <=傳輸類型可以為 UDPTCPTLSSCTP
Max-Forwards: 70
    <=最大跳躍數,就是經過 SIP 服務器的跳躍次數,主要是防止循環跳躍
    <=每盡管一臺代理服務器,該整數減一
To: G. Marconi <sip:Marconi@radio.org>
From: Nikola Tesla <sip:n.tesla@high-voltage.org>;tag=76341
    <=表示請求消息的發送方和目標方
        <=如果里面有用戶名標簽,地址要求用尖括號包起來
        <=對于 INVITE 消息,可以在 From 字段中包含 tag,它也是個隨機碼
Call-ID: 123456789@lab.high-voltage.org
    <=呼叫ID是由本地設備生成的,全局唯一值。每次呼叫該值唯一不變
        <=對于用戶代理發送 INVITE 消息,本地將生成 From tag 和 Call-ID 全局唯一碼,被叫方代理則生成 To tag 全局唯一碼。這三個隨機碼做為整個對話中對話標識(dialog indentifier)在通話雙方使用。
CSeq: 1 INVITE
    <=CSeq,又叫命令隊列(Command Seqence),每發送一個新的請求,該數自動加1
* 以上幾個字段是所有 SIP 消息體所必須的,其它頭字段有些是可選的,有些在特定請求也是必須
Subject: About That Power Outage...
Contact: <sip:n.tesla@lab.high-voltage.org>
    <=Contact 是 INVITE 消息所必須的,它用來路由到被叫設備地址,也稱為用戶代理(UA)
Content-Type: application/sdp
Content-Length: 158
    <=最后兩位附屬字段說明消息體類型以及字段長度
v=0    <SDP版本號,目前都是 0
o=Tesla 2890844526 2890844526 IN IP4 lab.high-voltage.org    <=主叫源地址,類型等
s=Phone Call    <=主題
c=IN IP4 100.101.102.103    <=連接
t=0 0    < 時間戳
m=audio 49170 RTP/AVP 0   <=媒體
a=rtpmap:0 PCMU/8000    <=媒體屬性
    <=從上面 SDP 消息體我們可以得出下面信息
        <=連接 IP 地址:100.101.102.103
        <=媒體格式:audio
        <=端口號:49170
        <=媒體傳輸類型:RTP
        <=媒體編碼:PCM u Law
        <=采樣率:8000 Hz
180 Ringing
當被叫方接收到 INVITE 請求消息后,將回復 180 Ringing。顧名思義,就是發回鈴音,提示主叫方電話已連接上了,正等待被叫應答。被叫方接收到 INVITE 消息后也會發生響鈴或者其它有呼入提示,這由被叫方設定(我們可以把它想象成我們自己設定手機鈴聲)。對于 180 響應又被稱為消息及時響應,它是一種用來測試被叫狀態的一種響應。因此它所包含的信息不多,具體 180 響應消息如下:
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP lab.high-voltage.org:5060;branch=z9hG4bKfw19b
;received=100.101.102.103    <=這里增加一個 received 參數,標識接收方 IP 地址
To: G. Marconi <sip:marconi@radio.org>;tag=a53e42    <=上已提到,To tag 做為被叫方標識
From: Nikola Tesla <sip:n.tesla@high-voltage.org>;tag=76341  <=要求很發送方 From tag 一致
Call-ID: 123456789@lab.high-voltage.org
CSeq: 1 INVITE
Contact: <sip:marconi@tower.radio.org>
Content-Length: 0
    <=對于 180 Ringing 響應,基本上就是將 INVITE ViaToFromCall-ID CSeq 內容復制過來,對于首行標出 SIP 版本號,響應代碼(180)和動作原因(reason phrase
    <=注意這里 From To 地址,因為它們用來指定呼叫方向,因此這里的 200 OK 響應并沒有將地址對調,仍然保持原樣。一點不同的是 To 頭字段添加了由被叫方 Marconi 生成的 tag 標識
200 Ok
被叫響鈴后,如果被叫用戶 Marconi 接起電話,則發出 200 OK 響應。這個響應除了做為接通指示之外,還有一個功能是用來指定被叫允許的連接媒體格式,讓主叫方確認是否可以接收該媒體。
消息體如下
SIP/2.0 200 OK
Via: SIP/2.0/UDP lab.high-voltage.org:5060;branch=z9hG4bKfw19b
;received=100.101.102.103
To: G. Marconi <sip:marconi@radio.org>;tag=a53e42
From: Nikola Tesla <sip:n.tesla@high-voltage.org>;tag=76341
Call-ID: 123456789@lab.high-voltage.org
CSeq: 1 INVITE
Contact: <sip:marconi@tower.radio.org>
Content-Type: application/sdp
Content-Length: 155
    <=頭字段部分基本同上

v=0
o=Marconi 2890844528 2890844528 IN IP4 tower.radio.org
s=Phone Call
c=IN IP4 200.201.202.203
t=0 0
m=audio 60000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
    <=從上面 SDP 消息體我們可以得出下面信息
        <=終端 IP 地址:200.201.202.203
        <=媒體格式:audio
        <=端口號:60000
        <=媒體傳輸類型:RTP
        <=媒體編碼:PCM u Law
        <=采樣率:8000 Hz
ACK
通話前最后一步是主叫方確認 200 OK響應。該項確認證明連接被允許,即將使用另一種協議開始媒體連接。這另一種協議是上面在 SDP 消息段中所協商好的 RTP 格式。該 ACK 響應內容如下:
ACK sip:marconi@tower.radio.org SIP/2.0
Via: SIP/2.0/UDP lab.high-voltage.org:5060;branch=z9hG4bK321g
Max-Forwards: 70
To: G. Marconi <sip:marconi@radio.org>;tag=a53e42
From: Nikola Tesla <sip:n.tesla@high-voltage.org>;tag=76341
Call-ID: 123456789@lab.high-voltage.org
CSeq: 1 ACK
Content-Length: 0
BYE
通話完畢后,由被叫方 Marconi 首先掛機,發送 BYE 請求命令。注意這回由 Marconi 做為主叫方了,因此 Via 字段和 FromTo INVITE 字段有所不同。其實也就是倒置。
BYE sip:n.tesla@lab.high-voltage.org SIP/2.0
Via: SIP/2.0/UDP tower.radio.org:5060;branch=z9hG4bK392kf
Max-Forwards: 70
To: Nikola Tesla <sip:n.tesla@high-voltage.org>;tag=76341
From: G. Marconi <sip:marconi@radio.org>;tag=a53e42
Call-ID: 123456789@lab.high-voltage.org
CSeq: 1 BYE
Content-Length: 0
200 OK
BYE 之后,要求被叫方發 200 Ok 確認,也就是讓主叫知道被叫已經知道你掛斷了。(注意這里所說的主被叫角色已經倒過來了)打個比方,通話之后,有一方要求掛機,另一方需要知道它已經掛機了。
SIP/2.0 200 OK
Via: SIP/2.0/UDP tower.radio.org:5060;branch=z9hG4bK392kf
;received=200.201.202.203
To: Nikola Tesla <sip:n.tesla@high-voltage.org>;tag=76341
From: G. Marconi <sip:marconi@radio.org>;tag=a53e42
Call-ID: 123456789@lab.high-voltage.org
CSeq: 1 BYE
Content-Length: 0
到此,就是最簡單的呼叫過程。該過程簡單在于兩個終端之間沒有其它設備,完全的點對點連接,它們之間只需要知道對方 IP 地址即可。現實生活中這種呼叫形式是很少見的

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人在线免费 | 91p在线观看 | 久久一区二 | 久久久久久国产精品免费免费狐狸 | 中文字幕一区二区三区不卡 | 午夜视频免费在线观看 | 国产精品一区二区三区四区 | 成人在线精品视频 | 国产www成人 | 看特级黄色片 | 一区二区三区国产 | 一区二区av| 中文字幕第一页在线 | 综合久久99 | 国产精品日韩高清伦字幕搜索 | 日韩精品人成在线播放 | 欧美精品一区二区免费视频 | 国产美女精品视频 | 国产在线网站 | 国产高清毛片 | 国产一级成人 | 97日日碰人人模人人澡分享吧 | 日韩一区和二区 | 99热精品6 | 精品在线一区 | 少妇一级淫片免费播放 | 日韩色综合 | wwwsihu| 丁香六月伊人 | 欧美日韩国产一区二区 | 国产一在线 | 欧美日韩亚洲二区 | 欧美一级欧美三级在线观看 | 日韩一区二区三区在线视频 | 精品91久久| 久久久99精品免费观看 | 中国大陆高清aⅴ毛片 | 天天摸天天看 | 国产乱码精品一品二品 | 免费人成在线观看网站 | 日韩综合在线视频 |