基於Doubango的iOS用戶端開源架構

來源:互聯網
上載者:User

標籤:c   style   class   code   http   a   

一、ios-ngn-statck工程

1.Tests ---功能測試

2.底層模組(c和c++)

Doubango --- 基於3GPP IMS/RCS 並能用於嵌入式和案頭系統的開源架構

1) tinyWRAP --- c++代碼,對c代碼以面向物件導向的方式進行封裝,提供給上層調用。

2) tinyDAV --- Doubango媒體音頻/視頻控制,tinyMedia核心架構

a) audio --- 音頻

b) codecs --- 轉碼器

c) msrp --- 檔案傳輸

d)video --- 視頻

3) tinySIP --- SIP/SIM棧(使用者網路介面)

4) tinyMEDIA --- 核心架構(音視頻)

5) tinyXCAP --- XML配置訪問協議,一種應用程式層協議,它允許一個用戶端來讀,寫,修改和刪除應用程式配置儲存在伺服器上的XML資料,Depends on tinySAK, tinyNET and tinyHTTP

a)AUID manager

b)URL generator

6)tinySMS ---儲存和轉寄服務,短訊息並不是直接從發送人發送到接收人,而始終通過 SMS 中心進行轉寄。如果接收人處於未串連狀態,則訊息將在接收人再次串連時發送,Depends on tinySAK

7)tinySIGCOMP --- 信令壓縮,Dependson tinySAK

a)Stream and Dgramcompression/decompression

b)SIP/SDP and Presence dictionaries

c)Deflate Compressor

8)tinyHTTP --- http協議,Depends ontinySAK and tinyNET

a)Digest/Basic Authentication 數字/基礎認

b)Pipelining 管道(管線)技術

c)CONNECT, DELETE, GET, HEAD, OPTIONS,PATCH, POST, PUT and TRACE (基本的網路處理:串連,刪除串連 GET/HEAD/POST請求 網路請求參數,patch, put, trace)

9)tinyMSRP --- 傳檔案的一個協議

a)Large Message IM(非常大的文本及時訊息)

b)File Transfer

c)Image Sharing

10)tinyIPSec ---對IP協議的分組進行加密和認證來保護IP協議的網路傳輸協議族,Depends on tinySAK

11)tinyRTP -- 即時傳輸協議

12)tinySDP --- 會話描述協議

13)tinyNET ---網路傳輸層,Dependson tinySAK

a)IPv4/IPv6 Sockets (UDP, TCP, TLS andSCTP) IPv4/IPv6 Sockets解析

b)DHCPv4/v6  DHCPv4/v6解析

c)DNS解析

d)NAT穿透

14)tinySAK --- C代碼一些模板方法

a)String utility functions( 字元處理函數工具集)

b)Memory management(記憶體管理)

c)Dynamic buffers(動態緩衝

d)Threading( 線程)

e)Runnable (Runnable介面)

f)Timers(時間片控制)

g)Final State Machine (FSM) manager(狀態機器)

h)Base64 encoder/decoder( Base64 編碼與解碼)

i)UUID generator (UUID 產生器)

j)CRC32 and CRC16 (16位和32為迴圈冗餘校正)

k)URL encoder/decoder (URL 編碼和解碼)

l)SHA-1, MD5, HMAC-MD5, HMAC-SHA-1(加密)

3.層模組(objc)

1)Classes

a)iOSNgnStack.h ---當基於此開源架構進行開發,首先必須包含這個標頭檔,這樣你才可以訪問架構提供的外部方法的存取權限,除此以外,不要包含NGN Stack檔案中的任何標頭檔

2)Common

a)NgnEngine.h --- 高層提供的訪問services的入口

b)Enents –- 事件驅動

c)Media --- 多媒體層

d)Model --- 模板方法

e)Services --- 提供的服務

i) NgnSipService ---用於註冊SIP / IMS服務

ii) NgnConfigurationService --- 此服務是負責所有任務相關的配置(憑據,喜好......)。使用該服務中資料存在資料庫中,將被寫入到應用程式沙箱中

iii) NgnStorageService --- 儲存服務,儲存私人資料(例如,常用列表,通話記錄...),存在以SQLite3 資料庫NgnDataBase.db的資料庫中

iv) NgnHistoryService --- 該服務用於儲存和管理的呼叫日誌到資料庫(NgnDataBase.db)

v) NgnContactService --- 此服務是你的本地電話簿的一個封裝

vi) NgnHttpService --- 這是HTTP用戶端服務

vii) NgnNetworkService --- 這是網路服務(現在沒用)

viii) NgnNetworkService --- 此服務是用來播放聲音(鈴聲,回鈴音,警報...),音頻路由(擴音器| - |耳機),手機震動...

f)Sip --- Sip堆棧

g)sound --- 聲音資源

h)storage --- 資料庫

i)utils – 工具類

二、ios-iDoubs工程

1.ios-ngn-stack.xcodeproj

iDoubs工程需要ngn stack底層架構的支援,即一些底層發送協議和多媒體協議等,因此需要添加nsn stack項目參考以便使用其中的類庫

2.UI --- 程式的互動介面

1)AudioCallView --- 音頻撥號介面

2)CallView --- 撥號控制,選擇跳轉到audio或者video方式撥號

3)ChatView --- 訊息聊天介面

4)ContactsDetails --- 連絡人詳細資料

5)ContactsView --- 連絡人介面

6)FavoritesView --- 添加常用列表

7)InfoView – Abort介面(關於)

8)MessageView --- 訊息記錄介面

9)NumpadView --- 撥號介面

10)RecentsView --- 最近連絡人介面

11)VideoCallView --- 視頻撥號介面

12)Utils

a)TransparentToolbar --- 半透明的toolbar

b)Cells --- 定製的cell

13)Classes

a)idoubs2AppDelegate --- 程式window的代理類,MainWindow為啟動主介面

14)Resources --- 資源

15)Setting

a)Settings.bundle --- 封裝的原始程式配置資訊,在手機的“設定“中可見

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.