10.2.2 Removing Bindings
注冊綁定是一種軟狀態(tài),除非此狀態(tài)被刷新,否則,它會終止注冊狀態(tài),但是也可以直接解除綁定關(guān)系。 客戶端可以嘗試去設(shè)置超時周期來解除綁定,超時周期有注冊服務(wù)來設(shè)置,具體的描述在Section 10.2.1中介紹。一個UA可以通過在注冊請求中的Contact地址中設(shè)置超時周期為0來立即解除綁定。在超時周期超時之前,UAs應(yīng)該支持綁定解除的機(jī)制。
REGISTER-specific Contact 頭域"*"的值應(yīng)用在所有的注冊中,但是它一定不能被使用,除非Expires以設(shè)置為“0”的方式出現(xiàn)。 使用Contact頭的“*”允許一個正在注冊的UA移除所有和address-of-record綁定的關(guān)系,無需知道其準(zhǔn)確數(shù)值。
10.2.3 Fetching Bindings
無論請求是否包含一個Contact頭,對任何注冊請求來說,一個成功的協(xié)議包含完整的存在的綁定列表。如果沒有Contact頭出現(xiàn)在當(dāng)前的注冊請求中,綁定列表不會修改。
10.2.4 Refreshing Bindings
每個UA負(fù)責(zé)對已創(chuàng)建的綁定進(jìn)行刷新。一個UA的綁定不應(yīng)該由其他的UA執(zhí)行綁定刷新。 從注冊服務(wù)獲得的200(OK)響應(yīng)碼包含了一個Contact域的列表,這個列表模擬當(dāng)前的綁定狀態(tài)。如果UA通過Section 19.1.4中的對比規(guī)則,已經(jīng)創(chuàng)建了這個contact 地址, UA會對比每個contact地址來對照檢查。如果是這樣的話,這個UA會根據(jù)超時參數(shù)更新超時周期設(shè)置,或者,如果缺省了這個參數(shù)的話,則根據(jù)這個Expires域來設(shè)置超時設(shè)置。 此UA在超時周期時間到期之前,然后對它的每個綁定執(zhí)行一個REGISTER請求。它可能在一個REGISTER請求中合并幾個更新。
在單個啟動循環(huán)中,一個UA應(yīng)該使用同一Call-ID支持所有的注冊。除非是一個轉(zhuǎn)發(fā)服務(wù),作為初始注冊,注冊刷新應(yīng)該被發(fā)送到同樣的網(wǎng)絡(luò)地址中。
10.2.5 Setting the Internal Clock
如果注冊請求中的響應(yīng)包含一個Date 頭,客戶端可以使用這個日期頭來獲悉當(dāng)前的時間,以便使用此時間設(shè)置任何內(nèi)部時鐘。
10.2.6 Discovering a Registrar
UA能夠使用三種方式來決定注冊的地址:通過配置的方式,使用address-of-record地址,使用multicast廣播方式。通過注冊服務(wù)地址,UA能夠被設(shè)置。如果沒有設(shè)置注冊服務(wù)的地址的話,UA應(yīng)該使用address-of-record的主機(jī)地址作為Request-URI,并且使用正常的SIP定位服務(wù)機(jī)制[4]對此地址發(fā)送請求。例如,對于這個UA的用戶 sip:carol@chicago.com來說,其注冊地址請求應(yīng)該發(fā)送到sip:chicago.com。
最后,一個UA可以使用廣播的方式來進(jìn)行設(shè)置。廣播注冊被稱之為"all SIP servers" 廣播地址 "sip.mcast.net" (224.0.1.75 是IPv4地址)。沒有分配到?jīng)]有非常熟知的IPv6廣播地址;這種廣播地址分配目前沒有獨立說明。SIP UA可以監(jiān)聽那個地址,使用此地址,并且讓其他當(dāng)?shù)赜脩粢部梢垣@悉本UA的地址狀態(tài)(參考 [33]);但是,本地用戶不會對此請求回復(fù)響應(yīng)消息。
廣播注冊方式可能不適合使用在某些環(huán)境中,例如,多個業(yè)務(wù)共享同一內(nèi)網(wǎng)。
10.2.7 Transmitting a Request
一旦REGISTER method構(gòu)建成功以后,并且消息目的地確認(rèn)以后,UACs會根據(jù)在 Section 8.1.2 中所描述的流程讓傳輸層來進(jìn)行下一步處理。 因為REGISTER無響應(yīng)生成,如果傳輸層返回超時錯誤,UAC不應(yīng)該馬上重新注冊到同樣的注冊服務(wù)。 一個馬上重新注冊的處理流程也可能和超時一樣。在一個合理的時間周期范圍內(nèi)等待網(wǎng)絡(luò)環(huán)境的修正,降低網(wǎng)絡(luò)負(fù)載,排查網(wǎng)絡(luò)設(shè)備故障。這里,無特別具體的時間周期設(shè)置。
10.2.8 Error Responses
如果一個UA收到了423響應(yīng)碼(Interval Too Brief),它可以重新注冊。但是,這里有一個必要條件-注冊請求中的超時周期后才能重新注冊。具體來說,注冊流程中需要耗費一定的時間,使得在注冊請求中所有contact地址中的超時周期等于或大于423響應(yīng)中的Min-Expires頭中的超時周期,它才可以重新注冊。
繼續(xù)發(fā)布。。。
關(guān)注微信公眾號:asterisk-cn,獲得有價值的Asterisk行業(yè)分享
Asterisk freepbx FreeSBC技術(shù)文檔: www.freepbx.org.cn
融合通信/IPPBX商業(yè)解決方案:www.hiastar.com
如何使用FreeSBC,qq技術(shù)分享群:334023047