• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于eXosip協(xié)議的軟電話研究與設(shè)計(jì)

      2013-10-29 17:41:30林巧唐余亮
      中國新通信 2013年9期
      關(guān)鍵詞:信令通話線程

      林巧 唐余亮

      【摘要】目前SIP協(xié)議在VoIP中的應(yīng)用越來越廣泛,許多VoIP系統(tǒng)都采用SIP作為它們的信令通信協(xié)議,在實(shí)現(xiàn)VoIP系統(tǒng)的過程中對(duì)于SIP協(xié)議棧的選擇及應(yīng)用就顯得非常重要。本文設(shè)計(jì)一種軟電話,利用eXosip協(xié)議來進(jìn)行信令交互,只要在同一網(wǎng)內(nèi),就可以不受限制的進(jìn)行通話。

      【關(guān)鍵詞】SIPOsipeXosip軟電話

      一、引言

      eXosip2是Osip2的一個(gè)擴(kuò)展協(xié)議集,它部分封裝了Osip2協(xié)議棧,使得它更容易被使用。本文利用Osip協(xié)議和ORTP來構(gòu)造出一個(gè)VoIP通話系統(tǒng),考慮到以后智能終端的軟件移植,采用在Linux環(huán)境下開發(fā)。

      二、Osip2協(xié)議棧簡介

      Osip是按照RFC3261(SIP)和RFC2327(SDP)標(biāo)準(zhǔn),并使用標(biāo)準(zhǔn)C編寫的一個(gè)開放源代碼的SIP協(xié)議棧,具有短小簡潔的特點(diǎn),主要提供一些解析SIP/SDP消息的API和事務(wù)處理的狀態(tài)機(jī)。雖然在底層解析時(shí)效率比較高,但缺點(diǎn)也很明顯,首先就是可用性差,沒有很好的API封裝,使得上層應(yīng)用在調(diào)用協(xié)議棧時(shí)很破碎;其次,只做到了transaction層次的協(xié)議過程解析,缺少call、session、dialog等過程的解析,這也增加了使用的難度;再次,缺少線程并發(fā)處理的機(jī)制,使得它的處理能力有限。

      三、eXosip2特點(diǎn)

      eXosip是Osip2的一個(gè)擴(kuò)展協(xié)議集,其在Osip2的基礎(chǔ)上部分封裝了Osip2協(xié)議棧,使其更容易被使用。eXosip使用UDP socket套接字實(shí)現(xiàn)底層SIP協(xié)議的接收/發(fā)送;使用定時(shí)輪循的方式調(diào)用Osip2的事務(wù)處理函數(shù),這部分是協(xié)議棧運(yùn)轉(zhuǎn)的核心。通過添加/讀取事務(wù)消息管道的方式,驅(qū)動(dòng)事務(wù)的狀態(tài)機(jī),使得來自遠(yuǎn)端的SIP信令能匯報(bào)給調(diào)用程序,來自調(diào)用程序的反饋能通過SIP信令回傳給遠(yuǎn)端;增加了對(duì)各個(gè)類型事務(wù)的超時(shí)處理,確保所有資源都能循環(huán)使用,不會(huì)被耗用殆盡;使用jevent消息管道來向上通知調(diào)用程序底層發(fā)生的事件,調(diào)用程序只要讀取該消息管道,就能獲得感興趣的事件,進(jìn)行相關(guān)的處理。雖然eXosip較Osip2實(shí)用性更強(qiáng),但其局限于UA的實(shí)現(xiàn),使得用于registrar,sip server等時(shí)極其不容易。此外,它并沒有增加線程并發(fā)處理的機(jī)制,而且只實(shí)現(xiàn)了音頻支持,缺少對(duì)視頻和其他數(shù)據(jù)格式的支持。

      綜合考慮,使用Osip2和eXosip協(xié)議棧的組合來實(shí)現(xiàn)SIP協(xié)議是很成功的選擇。當(dāng)然,在不同的應(yīng)用場合,必須添加其他模塊來實(shí)現(xiàn)更加復(fù)雜的功能。

      四、SIP軟電話的設(shè)計(jì)

      4.1系統(tǒng)環(huán)境搭建

      如果在Windows下進(jìn)行程序開發(fā),會(huì)有很多集成開發(fā)環(huán)境,如Visual C++等,這些IDE都已經(jīng)很成熟。但在Linux下,開發(fā)C程序,一般都很少在IDE下進(jìn)行開發(fā),而是利用Linux下的編輯器來編寫程序,如vi,gedit等,然后用gcc編譯器來進(jìn)行編譯、連接生成所要的可執(zhí)行程序。本文設(shè)計(jì)的SIP軟電話程序中要用到各種庫,用來搭建整個(gè)程序的運(yùn)行環(huán)境。首先要安裝libosip2和libeXosip,然后安裝ortp庫。因?yàn)殚_發(fā)的是具有圖形界面的gnome程序,所以要安裝gtk+庫。

      4.2系統(tǒng)分析

      由上可以看出,整個(gè)系統(tǒng)分為五部分:主函數(shù)部分,負(fù)責(zé)監(jiān)控和傳輸信號(hào)變量進(jìn)行控制與調(diào)度;SIP部分,負(fù)責(zé)進(jìn)行信令傳輸和RTP通話時(shí)的參數(shù)傳輸;RTP部分,負(fù)責(zé)RTP會(huì)話建立,參數(shù)設(shè)置,發(fā)送和接收數(shù)據(jù);G.711部分,負(fù)責(zé)語音數(shù)據(jù)的編解碼;最后是用戶界面,作為用戶接口,負(fù)責(zé)傳送用戶設(shè)置的參數(shù)和撥打的號(hào)碼,以及顯示狀態(tài)信息等。

      運(yùn)行SIP軟電話的主程序,初始化各種庫,然后向SIP服務(wù)器進(jìn)行注冊(cè)。如果注冊(cè)成功,生成用戶界面,監(jiān)聽用戶輸入,同時(shí)啟動(dòng)UAS線程,進(jìn)行監(jiān)聽(接收)SIP消息。以語音通信來說,此時(shí)應(yīng)用程序只需保存Osip協(xié)議棧的狀態(tài),然后調(diào)用語音處理模塊來接收/發(fā)送語音包就可以實(shí)現(xiàn)基于SIP的語音通信了。

      五、總結(jié)

      本文利用SIP和RTP庫:libosip2,libexosip2,libortp在Linux下面編程實(shí)現(xiàn)了一個(gè)SIP軟電話程序,并通過gnome編寫了一個(gè)界面。此SIP軟電話程序可以在Linux下穩(wěn)定運(yùn)行,通話質(zhì)量良好,并且提供很好的用戶接口,來設(shè)置參數(shù)和管理數(shù)據(jù)(如用戶地址等)。基本上是一個(gè)較穩(wěn)定的通話系統(tǒng)。當(dāng)然,這個(gè)軟電話還有一些不足,以后可以將它完善,編成一個(gè)界面友好,可以進(jìn)行視頻通話和多路通話的軟電話;同時(shí)利用更好的編解碼協(xié)議來完善,節(jié)約帶寬。

      參考文獻(xiàn)

      [1]李軍,謝贊福,崔懷林.基于SIP的語音通信程序設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)工程,2005,31(24):117-119

      [2]高麗平,邱志亮. Linux上基于SIP的IP軟電話的設(shè)計(jì)與實(shí)現(xiàn).北京:電子科技學(xué)院學(xué)報(bào),2005,13(4):72-74

      [3] Camarillo G. SIP揭密.北京:人民郵電出版社,2003

      猜你喜歡
      信令通話線程
      SLS字段在七號(hào)信令中的運(yùn)用
      移動(dòng)信令在交通大數(shù)據(jù)分析中的應(yīng)用探索
      《戊戌元日與友人通話》
      中華詩詞(2018年5期)2018-11-22 06:46:08
      基于信令分析的TD-LTE無線網(wǎng)絡(luò)應(yīng)用研究
      淺談linux多線程協(xié)作
      低成本視頻通話APP
      LTE網(wǎng)絡(luò)信令采集數(shù)據(jù)的分析及探討
      2013年11月通信業(yè)主要指標(biāo)完成情況(一)
      2013年3月通信業(yè)主要指標(biāo)完成情況(一)
      Linux線程實(shí)現(xiàn)技術(shù)研究
      大姚县| 海淀区| 漳平市| 林口县| 庆元县| 阿勒泰市| 翁牛特旗| 新巴尔虎左旗| 织金县| 巴青县| 芜湖县| 金堂县| 绥芬河市| 呼图壁县| 大厂| 应用必备| 阆中市| 平江县| 扶风县| 泽库县| 阜平县| 杨浦区| 济源市| 白山市| 建阳市| 行唐县| 荥阳市| 囊谦县| 南漳县| 金沙县| 渑池县| 义马市| 茌平县| 乌恰县| 胶南市| 陈巴尔虎旗| 西宁市| 陕西省| 蒲江县| 汾阳市| 资阳市|