精品乱码一区二区三四区视频-japan白嫩丰满少妇videos-人妻无码一区二区不卡无码av-狂野欧美性猛交xxxx-欧美 亚洲 中文 国产综合-国产精品美女久久久m-国产欧美熟妇另类久久久-无码一区二区三区亚洲人妻-男人操女人逼,日韩性xx,成全视频观看免费高清第6季,欧美一区三区

新聞資訊

【醫療呼叫對講系統廠家】基于Android的VoIP系統實現原理

2023-10-21 09:33

  VoIP(Voice over Internet Protocol)即首先數字化語音信號并壓縮成幀,轉換為IP數據包在網絡上傳輸,以此完成語音通話的業務,是一種利用IP協議傳輸語音數據的、新興的通信技術。

  隨著我國三網融合的推進,VoIP與IPTV(Interactive Personality TV)一起成為這一龐大工程的重要標志。而目前手機中,VoIP的解決方案并不是很多,特別是在Google公司推出的開源操作系統Android中。盡管該系統推出時間不長,憑借強大的功能、良好的界面、廣泛的商業支持,為用戶帶來很好的體驗,成為2010年最熱門且發展最快的手機操作系統。因此,兩者的結合,將是未來的發展趨勢。本文提出一種基于PJSIP協議棧的解決方案,通過Android本地開發工具(NDK),實現一個高效、穩定且功能強大的VoIP系統,具有較高的參考和實用價值。

 VoIP設計方案

設計目標

  本方案所設計的系統包含以下功能:首先,完成用戶終端(如手機)中語音數據的采集與編碼,并通過RTP(實時傳輸協議)/RTCP(RTP傳輸控制協議)進行傳輸和控制;其次,完成會話的控制,包括會話的注冊、發起、維護與結束、注銷等;再次,作為一個應用程序,必須實現一個良好的界面,與用戶交互;最后,作為一個開放系統,需具有良好的可擴展性。

總體設計

  本方案基本上符合Android的NDK框架的開發規范,將系統分為4層,如圖1所示。最上層為應用層,該層將在Android SDK的框架內,采用Java語言來實現;第二層為JNI層,SIP協議棧有很多種實現,其中,采用C語言的SIP協議棧在效率、速度、系統占用方面有著超越其他庫(如Java協議棧)的優勢,因此,該方案將在第三層采用純C語言實現的PJSIP協議棧。為了讓Java應用層能調用協議棧層,在兩層之間需要一個銜接的橋梁,這就是JNI層。最后一層是驅動層,這部分一般是由手機廠商來實現的,本文將不做重點介紹。

 VoIP的具體實現

  •   這里將實現一個完整的VoIP系統,包括協議棧的實現、JNI的編寫以及上層UI的設計實現等。

  •  SIP協議棧及UA

  •   SIP協議棧直接關系到整個系統的質量與效率,本文將采用純C語言開發的PJSIP庫。該庫采用C語言開發,且源碼開放,在兼容性與效率上有明顯優勢,不僅體積小(完整的SIP封裝也不過150 KB),同時還實現了一個內存池,使得安全系數與運行效率大為提高,該系統所采用的就是優化后的PJSIP庫。

  •  PJSIP協議棧

  • PJSIP協議棧遵循標準的SIP協議,采用分層架構:SIP/SDP消息編碼解析層、傳輸管理層、SIP終端、事務層、會話層以及應用層等。由于SIP協議采用文本消息發送請求和響應,所以首先需要將SIP消息按照巴斯克范式(ABNF)編碼和解析,這就是SIP/SDP消息編碼解析層所完成的功能。傳輸管理層用來管理用戶代理與服務器之間的請求和相應;SIP終端是PJSIP中轉機制的實現,它主要負責管理各個SIP組建,例如像SIP終端實例注冊組件,分發消息到事務層、會話層及應用層,回傳處理結果,管理定時器、I/O隊列等;事務層通過狀態機機制管理SIP信令,每一次狀態機狀態的改變都將觸發回調函數;會話層負責會話的發起與響應,一般與應用層結合在一起,用于用戶交互,不同的平臺有不同的實現,本文使用Andriod的GUI來實現。

  • PJSIP是一個高度封裝的庫,實際上它是通過PJSUA子庫來實現應用的。一個完整的PJSUA生命周期,首先需要初始化,通過函數init()來實現。在這個函數中,將創建代理、初始化變量和堆棧,以及創建一個UDP傳輸并在最后啟動代理;第二步將為UA添加用戶,如果需要的話,還要向服務器注冊用戶;當用戶添加成功后,此時可以建立一個呼叫連接,發起會話;當會話連接成功后,就可以使用SRTP協議實時傳輸加密后的數據,進行通話。最后的過程是掛起或銷毀呼叫。

  • UA原理

      UA(User Agency)是協議棧的具體實現,PJSIP通過封裝了的PJSUA來實現,在這一點上,大部分的SIP庫都大同小異,在此將介紹UA的工作原理。

    上一篇:【ICU探視分機系統廠家】PMD層在GPON網絡中的應用
    返回
    下一篇:【醫院排隊叫號系統廠家】什么是虛擬電話號碼,它是如何工作的