2.1 SIP簡介

    SIP(Session Initiation Protocol)是由IETF(Internet Engineering Task Force)1999年制定的一個協定。隨著網際網路的普及,利用網際網路來傳送語音及各種多媒體資料的技術也推陳出新。因此,利用網際網路上傳送語音的技術來代替傳統電信業務也成了一股不可輕視的趨勢。

 

SIP 是什麼

SIP Session Initiation Protocol 的縮寫。它是一種“應用層”的通訊協定,用於“建立”“變更”“結束”多媒體通訊交談與對話,並不負責實際上的語音傳輸。由於它是以類似 HTTP 的純文字溝通,所以架構比較簡單,是目前較流行的 VoIP 通訊協定。

   

2.2 SIP元件介紹

    SIP環境下的系統元件包括有User AgentProxy ServerRedirect ServerRegistrar Server等。

2.1 SIP環境架構圖

 

User Agent

User Agent方面,它包含了user agent client(UAC)user agent server(UAS)兩種模式。UAC主要的功能是用來產生一個request並且處理一個response,而UAS的功能則是接受一個request並且產生response。也就是說,User Agent可以伴演著兩個角色,不管呼叫者(Caller)或被呼叫者(Callee)只要是發送出request的時候,即為user agent client(UAC),而接收request的時候,即為user agent server(UAS),如下圖所示。最常見的SIP User AgentMicrosoft Windows Messenger 5.0(支援SIP通訊服務)

2.2 UACUAS

    如圖2.2所示,Caller發送INVITE時,伴演著user agent client(UAC),如同Stateful Forking Proxy傳送INVITECallee ACallee B。而Callee ACallee B接收INVITE時,則伴演著user agent server(UAS)。最後,當Callee B想要結束session時,發送BYE時,立即從user agent server(UAS)轉變為user agent client(UAC)

 

Proxy Server

Proxy Server負責部份訊息的轉換或是特定的服務,以使User Agent所要求的服務能夠順利完成。也就是說,它是一個可以將SIP request路由(Route)user agent server(UAS) 或是將SIP responses路由(Route)user agent clinets(UAC)的元件。一般來說包含兩種基本型態:stateless and stateful

Stateless Server

stateless server 是簡單的message傳送,優點是簡單、快速,但是它沒有message重新傳送的機制,且不能做較複雜的路由。

Stateful Server

stateful server是一個較複雜的路由,可以建立一個state,並且keep這個 state,直到傳送結束。現今大部份的Proxy Server大都採用Stateful Server

 

2.3 Session Invitation

    如圖2.3所示,使用者Joe將傳送INVITE給Bob,使用Bob的SIP URI,sip:bob@b.com,但是Company A的proxy.a.com無法解讀b.com這個domain,所以就向DNS Server查尋b.com,發現Company B的proxy.b.com,所以傳送INVITE給proxy.b.com,而proxy.b.com再傳送INVITE給Bob,完成Joe的INVITE,最後Bob只接傳送BYE給Joe結束session。

 

Redirect Server

Redirect Server,顧名思義則是做重新導向的工作,根據Location Server上的資料改變目的地。以Redirect Server來說,它和Proxy Server的最大差別在於Proxy Server接收一個request之後,會代為送出該request,而Redirect Server完全不會送出任何的request。它只是很單純的告知發出requestuser agent下一步該往哪裡去。

2.4 SIP Redirection

    如圖2.4所示,User Agent AINVITERedirect ServerRedirect ServerLocation Database發送request,並且把Location Database回傳的location list傳給User Agent A,讓User Agent A直接利用這份location list傳送INVITEUser Agent B

 

Registrar Server

    Registrar Server可以讓User Agent做註冊的動作,達到管理的目的及提供特定的服務,並把註冊資訊存到Location Server,使呼叫端(Caller)可以知道要如何找到被呼叫端(Callee)

 

2.5 Registrar Overview

    如圖2.5所示User Agent把自己的SIP URIsip:jan@iptel.orgRegistrar註冊,Registrarjan1.2.3.4:5060(ip:port)資訊儲存到Location Database裡,如果一切都順利的話,最後Registrar會傳送200 OK的訊息回去。

 

2.6 標準INVITE流程

如圖2.6所示,當一個 UAUser Agent) 起始時,它必須先向 Registrar Server 註冊它的IPSIP number,這個 SIP number使用 URI(sip:jan@140.115.156.57)的形式方便記憶,如此一來打電話的人只需要知道對方的 URI 號碼即可,而不需要知道對方的 IP,因為 IP 可能會變動,但是 SIP number 則不會變。

當要進行對話時,呼叫端 UA(User Agent) Proxy Server 發出 INVITE 的要求,Proxy Server Registrar Server 查詢得知對方的 IP 後,便將此要求 forward 給對方(Callee),對方(Callee)收到後,便回應一個 OK Proxy Server,而Proxy Server 再將這個 OK forward 給呼叫端(Caller),呼叫端(Caller)再回應一個 ACK 給對方(Callee),此時兩邊的連線就已經建立起來了,media stream 可以直接以 IP 作傳輸。

 

2.3 SIP控制訊息說明

方法

說明

INVITE

用來送出Session的邀請

ACK

用來回應callerrequest

BYE

結束一個已接通的呼叫

CANCEL

用來取消一個已發出但尚未接通的呼叫

REGISTER

用於向註冊伺服器註冊客戶端的相關訊息

OPTION

用來查詢Server的相關信息及功能

INFO

用來送出mid-session的資訊但並不改變任何session的狀態。

2.1 SIP的七個Request Method描述

Response Message

說明

1xx

Provisional,searching,ringing…edc.

2xx

Success

3xx

Redirection,forwarding

4xx

Request failure(clinet mistakes)

5xx

Server failure

6xx

Global failure(busy,refusal,not available anywhere)

2.2 SIP的六個Response Type Classes說明

 

2.3 SIP Response Code Example

  

 

2.4 SIP封包格式

文字方塊: 從哪裡送以及送到哪裡

2.7 SIP INVITE 封包格式及解說

2.5 SIP 的優點

SIP 主要有三個優點:

創新

SIP 不同於 H.323,它使用了 text-base 的溝通方式,使開發更容易瞭解,並且可以在同一個連線中傳遞多樣化的資訊。另外它建立於應用層中,使得許多現有的應用軟體可以在不作太大修改的狀況下套用 SIP

 

可延展性

    SIP 只有在起始通訊連結時需要呼叫 Server 端,在連結建立以後,則是 peer-to-peer 的傳輸,如此一來大大的減低中央主機的負荷,達到降低成本的目的。另外 SIP 也是一個簡單與高效率的通訊協定,它總共只有 5 個呼叫和 8 個回應,在建立連結方面,SIP 更比 H.323 少掉了 50% 的訊息傳遞。

 

容易開發

SIP 使用標準 URI 做位置,採用 text-base 的訊息傳輸,建立與 application level,以及簡單的錯誤訊息,都顯示出其易於開發的特性,使得許多的廠商與學術單位投入研發,資料取得也相當容易。

 

2.6 SIP 的發展

SIP(Session Initiation Protocol)是一種在網際網路上新興的多媒體通訊協定,它可用以建立多方參與的多媒體通訊(Multiparty Multimedia Comunications)SIPInternet Telephony方面的應用最近已漸漸受到注意,因此SIP未來的發展潛力是不可限量的。主要應用在網際網路會議、網路電話、訊息通知與即時訊息等新興應用上。

    值得一提的是SIP協定的出現,SIP的設計理念是真正基於廣域網路的架構而設計,它的協定架構更簡單,它如同HTTP一樣是一種Client-Server的架構,且可利用既有的網路傳輸資源,因此在封包的header上並不需要記錄很多的傳輸記錄。SIP 簡單極容易開發的特性,使得眾多廠商投入研發,包括微軟、CISCO 等,都有軟硬體產品問世,將來除了語音的通話外,更可以結合影像、圖形、資料的傳遞,相信在未來的協定市場中SIP將扮演舉足輕重的地位。