朱劍鋒
(瓊州學(xué)院 電子信息工程學(xué)院,海南 三亞572022)
SIP(Session Initiation Protocol)會(huì)話初始協(xié)議是IETF(國際互聯(lián)網(wǎng)標(biāo)準(zhǔn)制定組織)制訂的、用于多方多媒體通信,是一個(gè)基于文本的應(yīng)用層控制協(xié)議,用于建立、修改和終止IP網(wǎng)上的多媒體通話。SIP協(xié)議借鑒了HTTP、SMTP等協(xié)議,支持代理、重定向及登記定位用戶等功能,支持用戶移動(dòng)。SIP通過與RTP/RTCP、SDP、RTSP等協(xié)議配合,支持語音、視頻、數(shù)據(jù)、E-mail、IM即時(shí)通訊等多媒體通信。
根據(jù)開發(fā)的SIP軟交換系統(tǒng),對(duì)注冊(cè)服務(wù)的用戶終端認(rèn)證及注冊(cè)過程,分析注冊(cè)服務(wù)的 4個(gè)流程 (REGISTER、401 Unauthorixed、REGISTER 、200 OK),借助SIP軟電話(eyeBeam1.5)和網(wǎng)絡(luò)分析工具(Wireshark)對(duì)注冊(cè)服務(wù)進(jìn)行跟蹤測(cè)試,開展注冊(cè)服務(wù)及注冊(cè)參數(shù)優(yōu)化等的研究工作。
SIP軟交換系統(tǒng)的注冊(cè)服務(wù)是處理SIP用戶終端的注冊(cè)請(qǐng)求,根據(jù)終端認(rèn)證服務(wù)確定該用戶的身份,將一個(gè)注冊(cè)地址綁定多個(gè)可以聯(lián)系的真實(shí)地址,完成用戶地址的注冊(cè)。注冊(cè)服務(wù)的目的是使用戶終端能夠使用軟交換系統(tǒng)提供的服務(wù),或使之失效。在注冊(cè)請(qǐng)求信息中,用戶終端提供包含在Contact域中的一個(gè)或幾個(gè)地址給注冊(cè)服務(wù)。SIP軟交換系統(tǒng)利用用戶注冊(cè)信息進(jìn)行IP電話的尋址。SIP用戶終端提交的注冊(cè)信息中標(biāo)明自己目前的地址信息:注冊(cè)地址(分機(jī)號(hào)碼)及真實(shí)地址(URL)等。當(dāng)一個(gè)SIP用戶終端呼叫另一個(gè)SIP用戶終端時(shí),并不知道對(duì)方當(dāng)前的真實(shí)地址,而只知道對(duì)方的注冊(cè)地址(分機(jī)號(hào)碼),注冊(cè)服務(wù)根據(jù)呼叫方請(qǐng)求信息的被叫方注冊(cè)地址,查找到被叫方的當(dāng)前真實(shí)地址,然后,SIP軟交換系統(tǒng)將呼叫方請(qǐng)求信息轉(zhuǎn)發(fā)給被叫方。
SIP軟交換系統(tǒng)的注冊(cè)流程是一個(gè)更新注冊(cè)表的過程。注冊(cè)服務(wù)使用2個(gè)表:一個(gè)是分機(jī)表(t_extension),一個(gè)是注冊(cè)表(t_register_info)。分機(jī)表是用以確定SIP用戶終端的身份,即為注冊(cè)服務(wù)提供終端認(rèn)證服務(wù);注冊(cè)表表示SIP用戶終端注冊(cè)成功與否,及該注冊(cè)何時(shí)失效、即下一次注冊(cè)的時(shí)間間隔。
由管理員通過Web管理界面來填寫要開通的SIP用戶終端信息,也就是在分機(jī)表(如表1)中添加一條記錄:number是SIP用戶終端的分機(jī)號(hào)碼;password是SIP用戶終端分機(jī)號(hào)的密碼;destination_group_id是SIP用戶終端分機(jī)號(hào)的組ID。如果分機(jī)表表中已存在此分機(jī)號(hào)碼,則提示已存在,如果不存在此分機(jī)號(hào)碼,則向數(shù)據(jù)庫中的分機(jī)表中寫入一條新記錄。
表1 t_extension表
由管理員通過Web管理界面開通SIP用戶終端分機(jī)號(hào)碼后,SIP用戶終端向數(shù)據(jù)庫中的注冊(cè)表注冊(cè)此分機(jī)號(hào),如果密碼正確,也在注冊(cè)表(如表2)中添加一條記錄:extension_number是SIP用戶終端的分機(jī)號(hào)碼,是t_extension表number的外鍵;url是SIP用戶終端的SIP地址,含IP地址;reg_date_expiration是SIP用戶終端的注冊(cè)時(shí)間;reg_effective_time是SIP用戶終端的注冊(cè)更新時(shí)間。
表2 t_register_info表
SIP用戶終端注冊(cè)時(shí),如果在分機(jī)表中不存在的此號(hào),是不能注冊(cè)的,此時(shí)注冊(cè)服務(wù)為proxy服務(wù)器并轉(zhuǎn)發(fā)這個(gè)注冊(cè)請(qǐng)求到指定的注冊(cè)服務(wù)器。所以要先在Web管理界面申請(qǐng)分機(jī)號(hào)碼,再通過SIP用戶終端(如eyeBeam等)向SIP軟交換系統(tǒng)提交注冊(cè)請(qǐng)求,才能完成注冊(cè)。注冊(cè)流程如圖1所示:
圖1 注冊(cè)流程
1 Register:SIP用戶終端向SIP軟交換系統(tǒng)的注冊(cè)服務(wù)發(fā)出注冊(cè)請(qǐng)求,消息體的Contact中列出地址表(URL),表示該用戶的聯(lián)系方式;
2 401 Unauthorized:SIP軟交換系統(tǒng)的注冊(cè)服務(wù)向用戶終端返回一個(gè)需要認(rèn)證的信息;
3 Register:SIP用戶終端填寫含有分機(jī)號(hào)碼和密碼的加密的注冊(cè)信息,再次提交;
4 200 OK:表示SIP軟交換系統(tǒng)根據(jù)數(shù)據(jù)庫的分機(jī)表來檢驗(yàn)SIP用戶終端的身份(參考RFC1866,RFC2069)并通過對(duì)用戶終端的信任,并在在數(shù)據(jù)庫的注冊(cè)表中成功注冊(cè)了用戶終端。
注冊(cè)成功時(shí)數(shù)據(jù)庫的注冊(cè)表如圖2所示,SIP用戶終端的分機(jī)號(hào)碼為201,與之綁定的URL為sip:201@192.168.6.5,注冊(cè)間隔時(shí)間為3600秒。用戶終端注冊(cè)成功之后,便可以呼叫已注冊(cè)的任何分機(jī)號(hào)碼。
圖2 注冊(cè)分機(jī)號(hào)碼201
注冊(cè)請(qǐng)求Register頭域Contact的Expires參數(shù)為注冊(cè)間隔時(shí)間,值為從0到2**32-1,非法的值視同3600,單位為秒。SIP用戶終端注冊(cè)后,一經(jīng)注冊(cè)間隔時(shí)間,就再次發(fā)送注冊(cè)請(qǐng)求來來刷新綁定信息,但是不能刷新其它SIP用戶終端的綁定信息。如果Expires參數(shù)設(shè)為0時(shí),使當(dāng)前注冊(cè)SIP用戶終端失效;Expires參數(shù)設(shè)為0并且Contact的值為“*”時(shí),則刪除所有的注冊(cè)項(xiàng)。如果SIP用戶終端接收到一個(gè)423(間隔太簡略)應(yīng)答,它可能需要更改注冊(cè)請(qǐng)求中的注冊(cè)間隔時(shí)間,使得這些注冊(cè)間隔時(shí)間必須大于等于423應(yīng)答頭中的Min-Expires頭域中的值,并且重新嘗試發(fā)送注冊(cè)請(qǐng)求。
SIP軟交換系統(tǒng)的注冊(cè)服務(wù)處理流程(認(rèn)證后),如圖3所示。
圖3 注冊(cè)服務(wù)的處理流程
使用SIP軟電話eyeBeam1.5和網(wǎng)絡(luò)分析工具Wireshark來測(cè)試注冊(cè)服務(wù)。
SIP軟交換系統(tǒng)注冊(cè)服務(wù)器:IP地址為192.168.6.177;
SIP用戶終端:IP地址為192.168.6.5;用戶名為201;密碼為201;注冊(cè)間隔為3600。
測(cè)試時(shí),如果SIP用戶終端的注冊(cè)間隔太小,發(fā)現(xiàn)由于頻繁注冊(cè)而造成網(wǎng)絡(luò)負(fù)荷擁堵;如果注冊(cè)間隔太長,注冊(cè)服務(wù)喪失對(duì)SIP終端的可控性;建議注冊(cè)周期為3600秒。如果SIP用戶終端分機(jī)號(hào)或密碼不正確,注冊(cè)服務(wù)向終端用戶發(fā)送403 forbidden信息,通知SIP終端注冊(cè)不成功。
通過分析SIP軟交換系統(tǒng)注冊(cè)服務(wù)的4個(gè)流程(REGISTER、401 Unauthorixed、REGISTER、200 OK),采用SIP分機(jī)信息與注冊(cè)信息相結(jié)合,實(shí)現(xiàn)了SIP用戶終端認(rèn)證與注冊(cè)服務(wù)。再通過修正注冊(cè)信息的參數(shù)來檢證注冊(cè)服務(wù),并進(jìn)一步的給出了注冊(cè)參數(shù)的優(yōu)化配置。采用基于文本通信方式的SIP協(xié)議,如果與聲音合成與聲音識(shí)別、圖像處理等功能組合起來,可以提供各種解決方案,將成為多媒體通信業(yè)的主流協(xié)議。但是,SIP作為一種不能加密的協(xié)議,其安全性也十分復(fù)雜,這是不容忽略的問題。
[1]彭煥峰.SIP注冊(cè)服務(wù)器的研究與設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2010,6(23):9024-9026.
[2]黃永峰,等.下一代網(wǎng)絡(luò)核心控制協(xié)議:SIP及其應(yīng)用[M].人民郵電出版社,2009.
[3]Rosenberg J,Schulzrinne H,Camanilo G.SIP:Session Initiation Protocol[Z].IETF RFC3261,2002.
[4]Franks J.HTTP Authentication:Basic and Digest Access Authentication[Z].IETF RFC2617,1999.
[5]陳志賢,王紹棣.SIP協(xié)議中認(rèn)證注冊(cè)機(jī)制的研究[J].南京郵電學(xué)院學(xué)報(bào),2003,3(3):82-85.