2014/04/25 meeteasy
一、引言
自上世紀九十年代SIP協議產生并發布以來,它以其開放、靈活、易于擴展的特點,越來越受到人們的重視和喜愛。 SIP能夠連接使用任何IP設備(電話、PC、PDA、移動手 持設備)的用戶,為日漸擁塞的網絡開辟了另一片天地?;赟IP的應用,如VOIP,多媒體會議、定位服務、及時通信、在線消息等,數不勝數。SIP它能夠將這些功能組合起來,形成各種更大規模的無縫通信服務。SIP正在成為自HTTP和SMTP以來最為重要的協議之一。
現在,越來越多的運營商都在提供基于SIP的服務,如市話和長途電話技術、IP Centrex/Hosted PBX、語音短信、網絡電話等等。而軟件供應商在開發相應的基于SIP的應用程序和軟件。市場上有眾多的IP電話、用戶代理、網絡代理服務器、VOIP網關、媒體服務器和應用服務器都在使用SIP。
IP電話是基于網絡的一種應用,泛指通過IP網絡進行語音通話的系統。由于其成本遠低于PSTN,而話音質量與固定電話不相上下,同時還能擴展包括視頻通信等各種多媒體業務,正日益受到人們的青睞。傳統IP電話大多采用H.323 協議,具有復雜、成本高、時延大等缺陷。而采用SIP協 議的IP電話終端具有簡單、時廷小、可擴展性強等特點,正不斷受到重視。
二、SIP協議
SIP(Session Initiation Protocol,會話初始協議)是應用層的控制協議,可以建立、修改和結束多媒體會話, 它獨立于TCP或者UDP,使用自己應用層協議保證消息的可靠傳輸。與HTTP協議一樣,SIP采用基于文本格式的c/s工作方式,是一個請求/應答協議。以客戶、服務器方式建立會話、靈活的尋址方式,SIP沒有媒體協商功能,往往需要集成SDP協議。
SIP中有客戶機和服務器之分??蛻魴C是指為了向服務器發送請求而與服務器建立連接的應用程序。用戶代理和代理服務器中含有客戶機。服務器是用于向客戶機發出的請求提供服務并回送應答的應用程序,共有4類基本服務器:用戶代理服務器、代理服務器、重定向服務器、注冊服務器。 一個簡單的SIP電話系統包括終端和服務器。如圖1所示。
User Agent(用戶代理):用戶代理是SIP網絡的終端, 具體的分為User Agent Client和User Agent Server。UAC是客戶端,表示主叫;UAS是服務端,表示被叫。因UA彼此之間只擁有對方的SIP Address,但不知道實際的位置, 所以信息的傳送必須通過代理服務器。
Redirect Server(霞定向服務器):接受SIP的請求,映射請求的原地址成零個或多個IP地址,并且返回給客戶端。由客戶端重新發起請求。重定向服務器主要的功能是映射會話者到不同的網絡地址。而與代理服務器最大的不同點為重定向服務器本身并不參與該信息的任何處理。
Registrar Server(注冊服務器):注冊服務器是負責SIP注冊請求,將用戶的地址信息寫入數據庫,并返回注冊狀態。通常注冊服務器會搭配代理服務器與重定向服務器, 一起達成會話者移動性的功能。
Location Server(定位服務器):定位服務器管理若干個數據庫,接受由重定向服務器或者代理服務器的路由查詢。
Proxy Server(代理服務器):完成SIP消息的轉接和轉發功能,可以修改SIP消息內容。具體功能有:呼叫認證、 狀態管理、路由選擇、失敗和重傳。
三、lP電話終端軟件設計
IP電話是在IP網絡上,通過TCP/IP協議實時傳送語音信息的一種應用。IP電話終端,首先通過語音壓縮算法對語音數據進行壓縮編碼處理,經過加密后把這些語音數據按IP相關協議進行打包,例如RTP/RTCP協議,經過IP網絡把數據包傳輸到接收方,再把這些語音數據包組合起立,經過解密、解碼解壓壓縮處理后,恢復成原來的語音信號,從而達到由IP網絡傳送語音的目的。
1.軟件架構
IP電話終端選用嵌入式Linux操作系統。嵌入式Linux操作系統是一種實時性強,運行可靠的實時多任務操作系統,采用多任務運行、實時的任務間通信、快速多任務換、搶占式任務調度機制,能有效地處理各種并發事件,以滿足應用系統的實時要求。并且有良好的優化能力,可根據應用系統的要求合理配置操作系統組件,減少系統的存儲空間,保證系統以較高的效率運行。在操作系統和SIP協議棧、SDP協議棧、RTP/TRCP協議棧以及TCP/IP協議棧的支撐下,通過系統控制程序來調度和實現語音處理、呼叫控制、對外通信、數據管理和用戶界面等功能(如圖2所示)
IP電話終端軟件劃分為呼叫控制、數據管理、語音信號處理、語音通信、用戶界面運行等五大模塊,其中呼叫控制模塊劃分注冊、呼叫和響應三個子模塊;數據管理劃分為RAM數據管理、ROM數據管理兩個子模塊;語音信號處理劃分協議處理和傳輸兩個子模塊;用戶界面模塊劃分為呼叫操作見面和設備管理界面兩個字模塊(如圖3所示)
IP電話終端的軟件工作流程如圖4所示
其中通過SIP來完成鏈路的建立,過程如下:
(1)客戶端向服務器發送INVITE請求;
(2)服務器對方的請求做出應答,并獲得對方的SDP消息及自己的端口號;
(3)客戶端發送ACK確定,并獲得對方SDP消息及對方的端口號并打開,并啟動媒體傳輸程序,核實對方IP地址及端口號的正確性;
(4)服務器收到對方的ACK后,啟動RTP接收程序,并提供自身的媒體傳輸端口號作為校驗碼,進行語音信息的接收;
(5)客戶端傳輸語音信息;至此,兩個用戶終端開始語音通信,直至其中一方發起BYE請求,并收到2000K響應后,會話結束。
四、結束語
本文詳細介紹了SIP協議并提出了一種基于SIP協議的IP電話終端的軟件設計。SIP協議逐漸在多媒體通信應用中占據越來越重要的位置,可以預測在NGN(Next Generation Network,下一代網絡)和未來其他的應用中,SIP協議將會發揮更加不可替代的作用
40088 411661033743080@qq.com
中國廣東省深圳市南山區西麗九祥嶺工業區10棟3樓