一、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 --- 封装的原始程序配置信息,在手机的“设置“中可见

基于Doubango的iOS客户端开源框架的更多相关文章

  1. 美团 iOS 端开源框架 Graver 在动态化上的探索与实践

    近些年,移动端动态化技术可谓是“百花齐放”,其中的渲染性能也是动态化技术一直在探索.研究的课题.美团的开源框架 Graver 也为解决动态化框架的渲染性能问题提供了一种新思路:关于布局,我们可以采用“ ...

  2. 【转】SocketRocket:iOS WebSocket客户端开源框架

    原文网址:http://blog.csdn.net/zmp1123/article/details/44015507 WebSocket: WebSocket通信协议实现的是基于浏览器的原生socke ...

  3. iOS 优秀开源框架 开源包 开发包 from : Podfile of chatsecure ---待完善

    前段时间发现chatsecure的podfile中使用了很多非常优秀的开源包 和 大公司的sdk. 拿出来分享下. 各个类库的作用待完善. platform :ios, "7.0" ...

  4. iOS中开源框架GPUImage的使用之生成libGPUImage.a文件和创建工程(一)

    一.下载GPUImage (1)下载地址:https://github.com/BradLarson/GPUImage (2)下载后打开 GPUImage.xcodeproj  工程,选择真机运行该工 ...

  5. Pyhton开源框架(加强版)

    info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...

  6. 25类Android常用开源框架

    1.图片加载,缓存,处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时 Picasso 一个强大的图片下载与缓存的库 F ...

  7. iOS常用第三方开源框架和优秀开发者博客等

    博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ...

  8. iOS超全开源框架、项目和学习资料汇总(5)AppleWatch、经典博客、三方开源总结篇

    完整项目 v2ex – v2ex 的客户端,新闻.论坛.apps-ios-wikipedia – apps-ios-wikipedia 客户端.jetstream-ios – 一款 Uber 的 MV ...

  9. 【转】iOS超全开源框架、项目和学习资料汇总

    iOS超全开源框架.项目和学习资料汇总(1)UI篇iOS超全开源框架.项目和学习资料汇总(2)动画篇iOS超全开源框架.项目和学习资料汇总(3)网络和Model篇iOS超全开源框架.项目和学习资料汇总 ...

随机推荐

  1. git diff 差异对比

    转载原文: http://fsjoy.blog.51cto.com/318484/245465/ 1. 查看当前所有的更改情况.git status 结果有3部分,changes to be comm ...

  2. Cow Hopscotch

    Cow Hopscotch 题目描述 Just like humans enjoy playing the game of Hopscotch, Farmer John's cows have inv ...

  3. Vasiliy's Multiset

    Vasiliy's Multiset time limit per test 4 seconds memory limit per test 256 megabytes input standard ...

  4. css3的box-sizing--从此不用担心盒模型的不兼容

    前段时间阿里的面试问了关于盒模型的东西,众所周知,ie和标准盒模型是有着区别的.面试官问有没有什么办法可以改变盒模型的显示效果.答案是css3的box-sizing: 其可以取三个值: 1.值cont ...

  5. openstack controller ha测试环境搭建记录(五)——配置rabbitmq集群

    配置rabbitmq集群的步骤非常简单,因为其本身含集群功能,参考openstack官网文档:http://docs.openstack.org/ha-guide/controller-ha-rabb ...

  6. (中等) HDU 4069 Squiggly Sudoku , DLX+精确覆盖。

    Description Today we play a squiggly sudoku, The objective is to fill a 9*9 grid with digits so that ...

  7. (简单) POJ 3076 Sudoku , DLX+精确覆盖。

    Description A Sudoku grid is a 16x16 grid of cells grouped in sixteen 4x4 squares, where some cells ...

  8. mustache.js使用基本(三)

    作者:zccst 本节要点是子模块(partials)和分隔符(delimiter)等 1,子模块(partials) /* {{>partials}}以>开始表示子模块,如{{> ...

  9. ubuntu12.04安装tar.gz格式的jdk

    注意系统的版本,jdk也有32位和64位的,不然会无效 首先将*.tar.gz压缩包解压 命令: tar -xzvf *.tar.gz 假设得到的文件夹为java 将其移动到/usr/中 命令为:su ...

  10. jqGrid简述

    转自:http://www.blogjava.net/ilovebabyfat/archive/2012/04/06/373456.html jqGrid学习之 ------------- 安装 1. ...