《sip揭秘》讀書筆記1

2021-04-08 16:36:21 字數 1212 閱讀 6173

sip事務的概念:乙個sip請求以及由它觸發的一系列應答(包括臨時應答和乙個最終應答)。

sip請求有6種(核心規範定義的,也有擴充套件),也叫6個方法(method欄位標識):invite, ack, options, bye, cancel, register

sip請求的格式包括請求行(如invite sip:192.168.101.30 sip/2.0),sip應答的格式包括狀態行(如sip/2.0 100 trying);sip應答的狀態碼從100到699,其中100~199是臨時(provisional)應答。

invite請求是三次握手機制,其他請求都採用兩次握手機制。

cancel請求用於取消懸而未決的事務,我的理解是一方發出invite,但是另一方始終沒有做出應答,發出200ok訊息(超過了預設的振鈴時長),那麼uac會自動發出乙個cancel請求,uas返回200ok,並且同時發出487狀態碼的應答,uac再對收到的487訊息發出ack確認,即最開始的invite和487以及ack構成三次握手。

options請求用於詢問伺服器的效能情況,包括這個伺服器所支援的方法(可能會有擴充套件方法)和會話描述協議。

**伺服器的三種型別:保留呼叫狀態**、保留狀態**、不保留狀態**。這三種型別的**在處理能力和所占用資源上有差別,在**分發中我們採用網路核心無狀態,而在流量較小的網路邊界採用智慧型性高的保留(呼叫)狀態伺服器處理路由。

sip訊息編碼採用文字方式(即使用字串),相對的是二進位制的編碼方式,前者易於除錯和擴充套件,後者則有利於節省頻寬。

sip標題頭:

call-id

字段用於標識乙個特定邀請以及與這個邀請相關的所有後續事務(即標識乙個會話),比如一方發起邀**入乙個西洋棋的會話,那麼invite請求以及應答,bye請求以及應答都共享乙個call-id,因為這兩個事務都屬於乙個特定邀請。而兩個使用者之間可以同時存在多個邀請(比如在下象棋的同時發起聊天的邀請),那麼乙個邀請中的後續事務將通過這個邀請特有的call-id來區分,如一方發出bye訊息來結束聊天,但是下棋仍然進行中,那麼另一方將根據bye訊息的call-id來確定要結束的究竟是哪乙個會話。 

cseq

欄位是用來給同乙個會話中的事務進行排序的。可以理解為,會話由call-id來標識,會話中的事務則由cseq標識。除了ack請求和cancel請求,invite之後的請求中cseq欄位的數字是最初請求(invite)的cseq遞增的結果。而ack和cancel請求則擁有與它所確認(取消)的請求相同的cseq數字部分,只是方法名不同。

css揭秘讀書筆記

currentcolor屬性讓hr和段落相同的顏色 div hr p裡面的hr標籤不變色 background origin padding box是背景的預設原點,background position right 10px bottom 10px 可以讓偏移,如果不支援這個屬性,可以這樣back...

《spring揭秘》讀書筆記三

spring容器中 scope singleton 與單例模式不是乙個意思。標記為singleton的bean是由容器來保證這種型別的bean在同乙個容器中只存在乙個共享例項 而singleton模式則是保證在同乙個classloader中只存在乙個這種型別的例項。可以從兩個方面來看待singlet...

CSS揭秘讀書筆記 (一)

css揭秘讀書筆記 一 一 半透明邊框 要想實現半透明邊框可以使用border div hsla h是色調,取值範圍是0 360。s是飽和度,取值範圍是0 100 l是亮度,取值範圍是0 100 a是透明度,取值範圍是0 1。background clip 用於調整背景圖的顯示區域,有3個值,bor...