2. 文獻探討
2.1. 會議起始協定(SIP)
2.1.1. 會議起始協定的網路元件
SIP包含下列四種網路元件:
1、使用者代理人(User Agent, UA):包含有使用者客戶端(User Agent Client, UAC)以及使用者伺服端(User Agent Server, UAS)。UAC 為一客戶端的應用程式,用來產生新的請求。而UAS為一伺服端 的應用程式,用來通知使用者有無接收到請求或是根據使用者的 狀況來決定發送對應的回應。當兩端的UA沒有透過伺服器進行 訊務交換時,其呼叫的訊務流如圖2-1所示。首先A發送一個 INVITE請求至B,此時B的UAS會立即回應100 Trying以及180 Ringing的回應給A,代表該請求已接收並通知使用者B。待B回應 200 OK且A回應ACK確認後,兩端便立即開始RTP的資料交換。
之後B欲結束會議而發送BYE請求至A,A在回應200 OK後,則該 會議正式結束。
圖 2-1 點對點發送 INVITE 的訊務流
2、代理伺服器(Proxy):為一代表客戶端處理接收或傳送訊息的 伺服器。Proxy會根據收到的訊息來代表使用者轉送請求或回應 訊息至目的地。圖2-2為A與B透過Proxy的訊務流狀況,並且略去 一些如100 Trying或180 Ringing等訊息的訊務流。與圖2-1相較,
可發現Proxy接收到訊息後,會建立並發送對應的訊息至目的地。
圖 2-2 透過代理伺服器發送 INVITE 的訊務流
3、轉向伺服器(Redirect Server):主要用來處理帳號與位址的比對,
轉向伺服器會根據接收到的訊息,傳回零到多個SIP使用者的位 址至訊息發送端。與代理伺服器的差別,在於它並不會代替訊息 發送端建立請求,也不像UAS會去處理接收到的呼叫。其訊務流 如圖2-3所示,首先A先發送INVITE的請求至轉向伺服器,待伺 服器回應B的通訊位址(sip:[email protected])後,則進行轉向並進 行點對點的訊務交換。
INVITE sip:[email protected]
INVITE sip:[email protected] 302 Moved Temporarily
Contact: sip:[email protected] Redirect
Server
200 OK ACK
圖 2-3 透過轉向伺服器發送 INVITE 的訊務流
4、登錄伺服器(Registrar):登錄伺服器是一個用來接收REGISTER 訊息的伺服器,一般在建置上都是與代理、轉向伺服器並存。主 要的功能是用來追蹤登錄至伺服器上的使用者網路位址,尤其在
使用者是使用無線網路環境,一旦使用者離開原有基地台的範 圍,透過發送新的網路位址至登錄伺服器,即可讓使用者的位址 保持正確無誤。圖2-4為A發送INVITE至已登錄至登錄伺服器的 B,首先B發送REGISTER至登錄伺服器進行登錄,登錄伺服器再 將所得的資訊儲存(Stroe)至位址伺服器上(Location Server),
之後A發送INVITE至proxy,要求與B進行通話,proxy先至位址伺 服器查詢(Query)B位址,收到回應(Response)並得知B的位址 後,再代替A發送INVITE的訊息至B的主機位址。有關於INVITE、
REGISGER等訊息會在於第2.1.2.2節再行敍述。位址伺服器與SIP 網路元件之間的溝通,則可以透過非SIP協定的方式來進行處理,
比如finger[6]、rwhois[7]或是LDAP[8]等協定來達成。
圖 2-4 A 發送 INVITE 至已登錄至登錄伺服器的 B