蘇靜+班正宇
摘 要:本文結(jié)合SIP軟交換系統(tǒng)的結(jié)構(gòu),針對SIP軟交換系統(tǒng)的功能及相關(guān)問題,對系統(tǒng)做出擴展,確保系統(tǒng)在響應(yīng)正常業(yè)務(wù)的同時,增加了對Android系統(tǒng)的支持,結(jié)合NDK開發(fā)框架,設(shè)計了一套基于SIP協(xié)議的安卓客戶端。
關(guān)鍵詞:SIP;軟交換;DNK開發(fā)框架;安卓客戶端
中圖分類號:TN915 文獻標(biāo)識碼:A 文章編號:2095-1302(2014)03-0039-04
0 引 言
掌上通信軟件作為手機應(yīng)用的一部分,正發(fā)揮著巨大的作用。隨著互聯(lián)網(wǎng)的不斷改善,在互聯(lián)網(wǎng)上利用網(wǎng)絡(luò)進行語音通話已成為現(xiàn)實,網(wǎng)絡(luò)電話應(yīng)運而生。網(wǎng)絡(luò)電話的原理正是采用了VoIP(Voice over Internet Protocol)技術(shù)實現(xiàn)的,VoIP是一種建立在互聯(lián)網(wǎng)上的數(shù)字化或分組化的語音傳輸技術(shù)。在VoIP中常用的控制協(xié)議(Control Protocol)有H.323、SIP、MEGACO和MGCP。其中SIP(會話發(fā)起協(xié)議)是建立VOIP連接的IETF標(biāo)準(zhǔn)。為了方便用戶之間的通信,需要設(shè)計一款基于SIP協(xié)議的Android應(yīng)用軟件。
SIP協(xié)議的Android平臺的通信軟件開發(fā)可以進一步提高人們間的通信質(zhì)量,解決人與人之間由于遠距離通信而產(chǎn)生高昂話費的問題。
1 需求分析
SIP軟交換系統(tǒng)是一個支持SIP協(xié)議通信的服務(wù)器,分為服務(wù)器和Android客戶端兩部分。服務(wù)器主要完成數(shù)據(jù)的封包請求的轉(zhuǎn)發(fā),路由的尋址等,讓用戶從Android客戶端中發(fā)出的數(shù)字信息通過服務(wù)器的處理轉(zhuǎn)發(fā)給另外一個客戶機,而另外一個Android客戶機通過解析從服務(wù)器中收到的數(shù)據(jù),并把信號還原為原始數(shù)據(jù),從而達到通信的目的。主要完成以下服務(wù):服務(wù)器啟動,將服務(wù)器綁定到指定的IP地址上,客戶機連接這個IP地址上服務(wù)器,客戶機通話等。
本系統(tǒng)是為了達到用戶與用戶間的通信,讓用戶能在不通過三大運營商的收費情況下,實現(xiàn)免費通話,從而降低了用戶的經(jīng)濟開銷,并且通話不受任何限制,使用戶之間暢所欲言。
SIP軟交換系統(tǒng)由服務(wù)器和Android客戶端組成:
服務(wù)器功能:數(shù)據(jù)的讀取與解析,SIP版權(quán)認證,創(chuàng)建SIP協(xié)議棧,綁定地址、定位、認證、能力,會話管理,數(shù)據(jù)包的接收、解析、過濾、組裝與應(yīng)答,Proxy行為;
Android客戶端功能:連接服務(wù)器,發(fā)送語音,接收數(shù)據(jù),解析數(shù)據(jù)。
本系統(tǒng)的整體功能結(jié)構(gòu)圖如圖1所示。
圖1 SIP系統(tǒng)整體結(jié)構(gòu)圖
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)主要功能設(shè)計
(1)數(shù)據(jù)(*.xml)的讀取與解析設(shè)計
在Proxy Server啟動之前,需要預(yù)先對Proxy Server進行設(shè)置,如SIP棧的名稱、IP、端口、路由等參數(shù)的設(shè)置,考慮到系統(tǒng)移植和維護的方便性,把這些信息寫在配置文件configuration.xml中,在系統(tǒng)啟動的時候讀取,以便于移植和維護。
(2)SIP版權(quán)認證設(shè)計
系統(tǒng)啟動時,應(yīng)對系統(tǒng)的版權(quán)進行驗證,只有合法授權(quán)的系統(tǒng)才能正確啟動。主要認證最大用戶數(shù)(Max),失效日期(Expiration),系列號(Serial),網(wǎng)卡物理地址(Mac),密鑰 (Key),同樣這些信息也寫在了配置文件license.xml中。
(3)創(chuàng)建SIP協(xié)議棧設(shè)計
棧是一種數(shù)據(jù)結(jié)構(gòu),只能在一端進行插入和刪除的線性表,按照后進先出的存取規(guī)則。創(chuàng)建SIP協(xié)議棧后,在接收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)可以方便地從協(xié)議棧里面由底部向頂部上升,同時報文首部在各層協(xié)議上被去掉,方便讀取報文數(shù)據(jù)。報文首部的協(xié)議標(biāo)識在每層協(xié)議上都很方便檢查,這樣就可確定數(shù)據(jù)接收的上層協(xié)議,同時按照事先規(guī)定好的規(guī)則分析出需要的內(nèi)容,例如數(shù)據(jù)包的源端口號、源IP、目的IP等等。
(4)注冊、定位、認證、能力設(shè)計
Proxy Server啟動以后,要獲得代理的服務(wù),必須先注冊成為Proxy Server的用戶,用戶信息存放在后臺數(shù)據(jù)庫中,包含用戶名、密碼、服務(wù)器地址等。要對用戶進行代理,必須能定位用戶位置,對用戶身份進行認證,確認后把呼叫方和被叫方的地址、媒體參數(shù)等提供給對方,以完成會話的創(chuàng)建。
(5)會話管理設(shè)計
包括發(fā)送和終止會話、修改會話參數(shù)、激活服務(wù)等。
(6)數(shù)據(jù)包的接收、解析、過濾、組裝與應(yīng)答
系統(tǒng)在收到以太網(wǎng)的數(shù)據(jù)包后,對數(shù)據(jù)包進行解析,過濾掉“非法”數(shù)據(jù)包,獲取“合法”的正常業(yè)務(wù)信息,組裝數(shù)據(jù)包進行交互。
(7)Proxy行為設(shè)計
當(dāng)Proxy Server收到一個請求時,在做代理之前,首先應(yīng)該判斷自己是否需要響應(yīng)該請求,是否非法或者沒有可信任證書需要認證,是應(yīng)該按有狀態(tài)還是無狀態(tài)的方式處理。無狀態(tài),即Proxy只是簡單的轉(zhuǎn)發(fā)到下一個Proxy Server,之后該請求的相關(guān)資料就被丟棄。這些信息(特別是事務(wù)信息)會被有狀態(tài)的Proxy保留,所有接收到的請求和所有接收請求的應(yīng)答的相關(guān)信息被保留。這些被它保留的信息用于處理與這個請求相關(guān)的后續(xù)消息。
(8)Android連接服務(wù)器設(shè)計
當(dāng)服務(wù)器注冊到一個網(wǎng)絡(luò)地址上時,客戶端的Android手機獲取服務(wù)器綁定的IP地址,然后發(fā)送請求,若IP地址無誤,那么Android客戶端順利連接上服務(wù)器。
(9)Android發(fā)送語音和接收語音消息設(shè)計
根據(jù)已經(jīng)連接上SIP軟交換系統(tǒng)的Android客戶端,會話終端向目標(biāo)終端發(fā)起呼叫或者會話終端監(jiān)聽被叫,經(jīng)服務(wù)器驗證注冊,采用SIP協(xié)議實現(xiàn)語音通信。
2.2 Android內(nèi)線呼叫運作模式設(shè)計
Android內(nèi)線呼叫運作的具體流程如圖2所示。關(guān)鍵步驟分析如下:
F1:INVITE是終端代理201@192.168.6.5 作為主叫向代理服務(wù)器192.168.6.180發(fā)送INVITE請求;
F2:407 Proxy Authentication Required表示代理服務(wù)器對主叫進行INVITE認證發(fā)出407請求碼,認證成功;
F3:ACK為回送ACK請求,表示已收到Proxy對INVITE請求的最終響應(yīng);
F4:INVITE為終端代理201@192.168.6.5 作為主叫向代理服務(wù)器192.168.6.180發(fā)送INVITE請求,邀請發(fā)起一路呼叫;
F5:INVITE表示代理服務(wù)器192.168.6.180向終端代理被叫202@192.168.6.3發(fā)送INVITE請求,邀請被叫發(fā)起一路呼叫;
F6:100 Trying被叫Android終端向服務(wù)器發(fā)出呼叫處理中的應(yīng)答消息,100 Trying;
F7:180 Ringing表示被叫Android終端振鈴并向服務(wù)器發(fā)出振鈴消息,180 Ringing;
F8:100 Trying表示服務(wù)器向主叫發(fā)出呼叫處理中的應(yīng)答消息,100 Trying;
F9:180 Ringing為服務(wù)器向主叫發(fā)出振鈴消息,180 Ringing,主叫振鈴;
F10和F11:200 OK表示主叫和被叫之間呼叫建立,發(fā)出200 OK應(yīng)答消息;
F12和F13:ACK為呼叫建立的確認消息;
F14和F15:BYE為結(jié)束請求;
F16和F17:200 OK表示主叫和被叫之間結(jié)束呼叫,發(fā)出200 OK應(yīng)答消息。
圖2 Android內(nèi)線呼叫時序圖
2.3 Android客戶端設(shè)計
根據(jù)RFC 3261的定義,多媒體會話(Multimedia Session)是指一組多媒體發(fā)送者和接收者,以及從發(fā)送者到接收者的數(shù)據(jù)流。Android客戶端界面設(shè)計圖如圖3所示。
圖3 主界面設(shè)計圖
3 數(shù)據(jù)庫設(shè)計
3.1 系統(tǒng)E-R圖
本系統(tǒng)的實體有計算機SIP服務(wù)器、Android終端用戶,其E-R圖如圖4所示。
圖4 SIP系統(tǒng)的E-R圖
3.2 數(shù)據(jù)表的結(jié)構(gòu)
本系統(tǒng)一共使用了47張數(shù)據(jù)表,由于表與表之間的關(guān)系太過于復(fù)雜,故這里只選出其中用到的2張表。其中t_extension表主要是用來擴展電話機的電話號碼。extension為主鍵,如表1所列。
表1 t_extension表
字段名 數(shù)據(jù)類型 說明 備注
extension 自動編號 電話號碼 主鍵
tenant_id 文本 用戶名編號 外鍵
extension_type 文本 擴展類型 ——
sup_extension 默認(no) 子擴充 ——
而留言表則主要是保存前表與表之間的關(guān)系。id_table_id為主鍵。如表2所列。
表2 id_table表
字段名 數(shù)據(jù)類型 說明 備注
id_table_id 自動編號 記錄ID 主鍵
table_name 自動編號 擴展表明 ——
next_id 文本 保存時間 ——
quantity 文本 保存通信記錄 ——
4 系統(tǒng)功能實現(xiàn)
要對Android進行過濾,難點不在采用什么樣的方法去過濾,而在于如何識別異常,這就需要系統(tǒng)在開發(fā)和數(shù)據(jù)解析的時候嚴格遵循標(biāo)準(zhǔn)的協(xié)議,這樣才能精確識別異常數(shù)據(jù)包。
4.1 Android運行主界面
主頁面主要用來顯示輸入電話號碼的地址欄和連接SIP服務(wù)器的IP地址。
4.2 SIP賬戶設(shè)置模塊
SIP賬戶設(shè)置的列表頁面主要是進行基本的通話設(shè)置與起始連接SIP服務(wù)器的設(shè)置,用戶有很多不同的選擇。當(dāng)點擊所選的SIP賬戶名稱時,就會轉(zhuǎn)到該設(shè)置的詳細設(shè)置頁面。SIP賬戶設(shè)置的列表頁面如圖5所示。
圖5 設(shè)置列表
SIP賬戶的詳細設(shè)置主要有認證用戶名稱、密碼、服務(wù)器和域的設(shè)置與查看,讓用戶知道如何設(shè)置才能順利連接上服務(wù)器,以及連接使用的端口是多少,最重要的是還能查看支持的VoIP類型。
4.3 認證用戶名模塊
因為連接服務(wù)器的Android客戶端可能有很多,所以必須進行認證,只有認證合法了才能進行友好回話,否則不予以連接,或者連接中斷。用戶可進行多種選擇。該頁面如圖6所示。
圖6 認證用戶名列表頁面
4.4 Wi-Fi模塊
Wi-Fi模塊的列表頁面可列出當(dāng)前能夠使用的各個網(wǎng)絡(luò)的連接方式名稱,用戶可從中進行選擇。當(dāng)點擊所選的連接網(wǎng)絡(luò)方式名稱時,就會轉(zhuǎn)到該詳細頁面。該頁面如圖7所示。
在Wi-Fi模塊詳細頁面主要設(shè)置如何使用Android手機連接SIP服務(wù)器,同時還提供優(yōu)先撥打功能。該設(shè)置信息一目了然。該頁面如圖8 所示。
圖7 Wi-Fi模塊頁面
這樣設(shè)置完成后,就可以撥打電話,然后通話了。
5 結(jié) 語
本文從Android手機出發(fā),針對SIP軟交換系統(tǒng)的原理,在Android手機上進行合理的設(shè)置與開發(fā),實現(xiàn)了基于Android的SIP軟交換系統(tǒng)。同時通過對SIP軟交換系統(tǒng)的擴展,使其在Android客戶端上也能使用,最終在一定程度上實現(xiàn)了對系統(tǒng)的改良。
圖8 詳細展示設(shè)置
參 考 文 獻
[1] 張揚. 基于SIP的軟交換在集群通信系統(tǒng)中的設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2010,19(1):31-35.
[2] 劉習(xí)義.基于SIP協(xié)議VoIP軟終端的研究與實現(xiàn)[J].信息安全與技術(shù),2011(10):33-35.
[3] 楊磊,林海泉,朱劍鋒.SIP軟交換系統(tǒng)群呼的實現(xiàn)[J].軟件,2012,33(3):44-46.
[4] 劉德山,金百東,張建華.Java 程序設(shè)計[M].北京:科學(xué)出版社,2012.
[5] 隆益民.Android應(yīng)用開發(fā)[M].廣州:中山大學(xué)出版社,2010.
SIP soft switch system base on Android
SU Jing, BAN Zheng-yu
(College of Information and Electrical Engineering, Qiongzhou University, Sanya 572022, China)
Abstract: Aiming at the function of SIP soft switch system and some related problem, the system is extended in combination of the SIP soft switch system structure, which added support for Android system and ensured that the system in response to normal business at the same time. A set of Android client based on SIP protocol is designed in combination of NDK development framework.
Keywords: SIP; soft switch; NDK development framework;Android client
Android內(nèi)線呼叫運作的具體流程如圖2所示。關(guān)鍵步驟分析如下:
F1:INVITE是終端代理201@192.168.6.5 作為主叫向代理服務(wù)器192.168.6.180發(fā)送INVITE請求;
F2:407 Proxy Authentication Required表示代理服務(wù)器對主叫進行INVITE認證發(fā)出407請求碼,認證成功;
F3:ACK為回送ACK請求,表示已收到Proxy對INVITE請求的最終響應(yīng);
F4:INVITE為終端代理201@192.168.6.5 作為主叫向代理服務(wù)器192.168.6.180發(fā)送INVITE請求,邀請發(fā)起一路呼叫;
F5:INVITE表示代理服務(wù)器192.168.6.180向終端代理被叫202@192.168.6.3發(fā)送INVITE請求,邀請被叫發(fā)起一路呼叫;
F6:100 Trying被叫Android終端向服務(wù)器發(fā)出呼叫處理中的應(yīng)答消息,100 Trying;
F7:180 Ringing表示被叫Android終端振鈴并向服務(wù)器發(fā)出振鈴消息,180 Ringing;
F8:100 Trying表示服務(wù)器向主叫發(fā)出呼叫處理中的應(yīng)答消息,100 Trying;
F9:180 Ringing為服務(wù)器向主叫發(fā)出振鈴消息,180 Ringing,主叫振鈴;
F10和F11:200 OK表示主叫和被叫之間呼叫建立,發(fā)出200 OK應(yīng)答消息;
F12和F13:ACK為呼叫建立的確認消息;
F14和F15:BYE為結(jié)束請求;
F16和F17:200 OK表示主叫和被叫之間結(jié)束呼叫,發(fā)出200 OK應(yīng)答消息。
圖2 Android內(nèi)線呼叫時序圖
2.3 Android客戶端設(shè)計
根據(jù)RFC 3261的定義,多媒體會話(Multimedia Session)是指一組多媒體發(fā)送者和接收者,以及從發(fā)送者到接收者的數(shù)據(jù)流。Android客戶端界面設(shè)計圖如圖3所示。
圖3 主界面設(shè)計圖
3 數(shù)據(jù)庫設(shè)計
3.1 系統(tǒng)E-R圖
本系統(tǒng)的實體有計算機SIP服務(wù)器、Android終端用戶,其E-R圖如圖4所示。
圖4 SIP系統(tǒng)的E-R圖
3.2 數(shù)據(jù)表的結(jié)構(gòu)
本系統(tǒng)一共使用了47張數(shù)據(jù)表,由于表與表之間的關(guān)系太過于復(fù)雜,故這里只選出其中用到的2張表。其中t_extension表主要是用來擴展電話機的電話號碼。extension為主鍵,如表1所列。
表1 t_extension表
字段名 數(shù)據(jù)類型 說明 備注
extension 自動編號 電話號碼 主鍵
tenant_id 文本 用戶名編號 外鍵
extension_type 文本 擴展類型 ——
sup_extension 默認(no) 子擴充 ——
而留言表則主要是保存前表與表之間的關(guān)系。id_table_id為主鍵。如表2所列。
表2 id_table表
字段名 數(shù)據(jù)類型 說明 備注
id_table_id 自動編號 記錄ID 主鍵
table_name 自動編號 擴展表明 ——
next_id 文本 保存時間 ——
quantity 文本 保存通信記錄 ——
4 系統(tǒng)功能實現(xiàn)
要對Android進行過濾,難點不在采用什么樣的方法去過濾,而在于如何識別異常,這就需要系統(tǒng)在開發(fā)和數(shù)據(jù)解析的時候嚴格遵循標(biāo)準(zhǔn)的協(xié)議,這樣才能精確識別異常數(shù)據(jù)包。
4.1 Android運行主界面
主頁面主要用來顯示輸入電話號碼的地址欄和連接SIP服務(wù)器的IP地址。
4.2 SIP賬戶設(shè)置模塊
SIP賬戶設(shè)置的列表頁面主要是進行基本的通話設(shè)置與起始連接SIP服務(wù)器的設(shè)置,用戶有很多不同的選擇。當(dāng)點擊所選的SIP賬戶名稱時,就會轉(zhuǎn)到該設(shè)置的詳細設(shè)置頁面。SIP賬戶設(shè)置的列表頁面如圖5所示。
圖5 設(shè)置列表
SIP賬戶的詳細設(shè)置主要有認證用戶名稱、密碼、服務(wù)器和域的設(shè)置與查看,讓用戶知道如何設(shè)置才能順利連接上服務(wù)器,以及連接使用的端口是多少,最重要的是還能查看支持的VoIP類型。
4.3 認證用戶名模塊
因為連接服務(wù)器的Android客戶端可能有很多,所以必須進行認證,只有認證合法了才能進行友好回話,否則不予以連接,或者連接中斷。用戶可進行多種選擇。該頁面如圖6所示。
圖6 認證用戶名列表頁面
4.4 Wi-Fi模塊
Wi-Fi模塊的列表頁面可列出當(dāng)前能夠使用的各個網(wǎng)絡(luò)的連接方式名稱,用戶可從中進行選擇。當(dāng)點擊所選的連接網(wǎng)絡(luò)方式名稱時,就會轉(zhuǎn)到該詳細頁面。該頁面如圖7所示。
在Wi-Fi模塊詳細頁面主要設(shè)置如何使用Android手機連接SIP服務(wù)器,同時還提供優(yōu)先撥打功能。該設(shè)置信息一目了然。該頁面如圖8 所示。
圖7 Wi-Fi模塊頁面
這樣設(shè)置完成后,就可以撥打電話,然后通話了。
5 結(jié) 語
本文從Android手機出發(fā),針對SIP軟交換系統(tǒng)的原理,在Android手機上進行合理的設(shè)置與開發(fā),實現(xiàn)了基于Android的SIP軟交換系統(tǒng)。同時通過對SIP軟交換系統(tǒng)的擴展,使其在Android客戶端上也能使用,最終在一定程度上實現(xiàn)了對系統(tǒng)的改良。
圖8 詳細展示設(shè)置
參 考 文 獻
[1] 張揚. 基于SIP的軟交換在集群通信系統(tǒng)中的設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2010,19(1):31-35.
[2] 劉習(xí)義.基于SIP協(xié)議VoIP軟終端的研究與實現(xiàn)[J].信息安全與技術(shù),2011(10):33-35.
[3] 楊磊,林海泉,朱劍鋒.SIP軟交換系統(tǒng)群呼的實現(xiàn)[J].軟件,2012,33(3):44-46.
[4] 劉德山,金百東,張建華.Java 程序設(shè)計[M].北京:科學(xué)出版社,2012.
[5] 隆益民.Android應(yīng)用開發(fā)[M].廣州:中山大學(xué)出版社,2010.
SIP soft switch system base on Android
SU Jing, BAN Zheng-yu
(College of Information and Electrical Engineering, Qiongzhou University, Sanya 572022, China)
Abstract: Aiming at the function of SIP soft switch system and some related problem, the system is extended in combination of the SIP soft switch system structure, which added support for Android system and ensured that the system in response to normal business at the same time. A set of Android client based on SIP protocol is designed in combination of NDK development framework.
Keywords: SIP; soft switch; NDK development framework;Android client
Android內(nèi)線呼叫運作的具體流程如圖2所示。關(guān)鍵步驟分析如下:
F1:INVITE是終端代理201@192.168.6.5 作為主叫向代理服務(wù)器192.168.6.180發(fā)送INVITE請求;
F2:407 Proxy Authentication Required表示代理服務(wù)器對主叫進行INVITE認證發(fā)出407請求碼,認證成功;
F3:ACK為回送ACK請求,表示已收到Proxy對INVITE請求的最終響應(yīng);
F4:INVITE為終端代理201@192.168.6.5 作為主叫向代理服務(wù)器192.168.6.180發(fā)送INVITE請求,邀請發(fā)起一路呼叫;
F5:INVITE表示代理服務(wù)器192.168.6.180向終端代理被叫202@192.168.6.3發(fā)送INVITE請求,邀請被叫發(fā)起一路呼叫;
F6:100 Trying被叫Android終端向服務(wù)器發(fā)出呼叫處理中的應(yīng)答消息,100 Trying;
F7:180 Ringing表示被叫Android終端振鈴并向服務(wù)器發(fā)出振鈴消息,180 Ringing;
F8:100 Trying表示服務(wù)器向主叫發(fā)出呼叫處理中的應(yīng)答消息,100 Trying;
F9:180 Ringing為服務(wù)器向主叫發(fā)出振鈴消息,180 Ringing,主叫振鈴;
F10和F11:200 OK表示主叫和被叫之間呼叫建立,發(fā)出200 OK應(yīng)答消息;
F12和F13:ACK為呼叫建立的確認消息;
F14和F15:BYE為結(jié)束請求;
F16和F17:200 OK表示主叫和被叫之間結(jié)束呼叫,發(fā)出200 OK應(yīng)答消息。
圖2 Android內(nèi)線呼叫時序圖
2.3 Android客戶端設(shè)計
根據(jù)RFC 3261的定義,多媒體會話(Multimedia Session)是指一組多媒體發(fā)送者和接收者,以及從發(fā)送者到接收者的數(shù)據(jù)流。Android客戶端界面設(shè)計圖如圖3所示。
圖3 主界面設(shè)計圖
3 數(shù)據(jù)庫設(shè)計
3.1 系統(tǒng)E-R圖
本系統(tǒng)的實體有計算機SIP服務(wù)器、Android終端用戶,其E-R圖如圖4所示。
圖4 SIP系統(tǒng)的E-R圖
3.2 數(shù)據(jù)表的結(jié)構(gòu)
本系統(tǒng)一共使用了47張數(shù)據(jù)表,由于表與表之間的關(guān)系太過于復(fù)雜,故這里只選出其中用到的2張表。其中t_extension表主要是用來擴展電話機的電話號碼。extension為主鍵,如表1所列。
表1 t_extension表
字段名 數(shù)據(jù)類型 說明 備注
extension 自動編號 電話號碼 主鍵
tenant_id 文本 用戶名編號 外鍵
extension_type 文本 擴展類型 ——
sup_extension 默認(no) 子擴充 ——
而留言表則主要是保存前表與表之間的關(guān)系。id_table_id為主鍵。如表2所列。
表2 id_table表
字段名 數(shù)據(jù)類型 說明 備注
id_table_id 自動編號 記錄ID 主鍵
table_name 自動編號 擴展表明 ——
next_id 文本 保存時間 ——
quantity 文本 保存通信記錄 ——
4 系統(tǒng)功能實現(xiàn)
要對Android進行過濾,難點不在采用什么樣的方法去過濾,而在于如何識別異常,這就需要系統(tǒng)在開發(fā)和數(shù)據(jù)解析的時候嚴格遵循標(biāo)準(zhǔn)的協(xié)議,這樣才能精確識別異常數(shù)據(jù)包。
4.1 Android運行主界面
主頁面主要用來顯示輸入電話號碼的地址欄和連接SIP服務(wù)器的IP地址。
4.2 SIP賬戶設(shè)置模塊
SIP賬戶設(shè)置的列表頁面主要是進行基本的通話設(shè)置與起始連接SIP服務(wù)器的設(shè)置,用戶有很多不同的選擇。當(dāng)點擊所選的SIP賬戶名稱時,就會轉(zhuǎn)到該設(shè)置的詳細設(shè)置頁面。SIP賬戶設(shè)置的列表頁面如圖5所示。
圖5 設(shè)置列表
SIP賬戶的詳細設(shè)置主要有認證用戶名稱、密碼、服務(wù)器和域的設(shè)置與查看,讓用戶知道如何設(shè)置才能順利連接上服務(wù)器,以及連接使用的端口是多少,最重要的是還能查看支持的VoIP類型。
4.3 認證用戶名模塊
因為連接服務(wù)器的Android客戶端可能有很多,所以必須進行認證,只有認證合法了才能進行友好回話,否則不予以連接,或者連接中斷。用戶可進行多種選擇。該頁面如圖6所示。
圖6 認證用戶名列表頁面
4.4 Wi-Fi模塊
Wi-Fi模塊的列表頁面可列出當(dāng)前能夠使用的各個網(wǎng)絡(luò)的連接方式名稱,用戶可從中進行選擇。當(dāng)點擊所選的連接網(wǎng)絡(luò)方式名稱時,就會轉(zhuǎn)到該詳細頁面。該頁面如圖7所示。
在Wi-Fi模塊詳細頁面主要設(shè)置如何使用Android手機連接SIP服務(wù)器,同時還提供優(yōu)先撥打功能。該設(shè)置信息一目了然。該頁面如圖8 所示。
圖7 Wi-Fi模塊頁面
這樣設(shè)置完成后,就可以撥打電話,然后通話了。
5 結(jié) 語
本文從Android手機出發(fā),針對SIP軟交換系統(tǒng)的原理,在Android手機上進行合理的設(shè)置與開發(fā),實現(xiàn)了基于Android的SIP軟交換系統(tǒng)。同時通過對SIP軟交換系統(tǒng)的擴展,使其在Android客戶端上也能使用,最終在一定程度上實現(xiàn)了對系統(tǒng)的改良。
圖8 詳細展示設(shè)置
參 考 文 獻
[1] 張揚. 基于SIP的軟交換在集群通信系統(tǒng)中的設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2010,19(1):31-35.
[2] 劉習(xí)義.基于SIP協(xié)議VoIP軟終端的研究與實現(xiàn)[J].信息安全與技術(shù),2011(10):33-35.
[3] 楊磊,林海泉,朱劍鋒.SIP軟交換系統(tǒng)群呼的實現(xiàn)[J].軟件,2012,33(3):44-46.
[4] 劉德山,金百東,張建華.Java 程序設(shè)計[M].北京:科學(xué)出版社,2012.
[5] 隆益民.Android應(yīng)用開發(fā)[M].廣州:中山大學(xué)出版社,2010.
SIP soft switch system base on Android
SU Jing, BAN Zheng-yu
(College of Information and Electrical Engineering, Qiongzhou University, Sanya 572022, China)
Abstract: Aiming at the function of SIP soft switch system and some related problem, the system is extended in combination of the SIP soft switch system structure, which added support for Android system and ensured that the system in response to normal business at the same time. A set of Android client based on SIP protocol is designed in combination of NDK development framework.
Keywords: SIP; soft switch; NDK development framework;Android client