一、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. c# mouseenter mousemove区别?

    onmousedown 当用户用任何鼠标按钮单击对象时触发. onmouseenter 当用户将鼠标指针移动到对象内时触发. onmouseleave 当用户将鼠标指针移出对象边界时触发. onmou ...

  2. 比较好的前端方法库及一些vue如何引入静态文件

    https://select2.github.io/examples.html   select2 自动搜索带select选择 ## 表单提交 https://github.com/marioizqu ...

  3. [iOS]C语言技术视频-16-指针变量高级用法(堆栈内存)

    下载地址: 链接: http://pan.baidu.com/s/1qWqWnGo 密码: igjc

  4. Jedis使用示例

    http://javacrazyer.iteye.com/blog/1840161 http://www.cnblogs.com/edisonfeng/p/3571870.html

  5. Xcode7 免证书真机测试

    Xcode很早就有个免证书测试,今天我自己也测试了一把,还是挺好用的,接下来,我就说一下我的大体过程: 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题 ...

  6. css3盒模型学习--利用box自适应布局

    box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典   的一个布局应用就是布局的垂直等高.水平均分.按比例划分. 目前box-flex属性还没 ...

  7. Flash CS 自定义组件

    2012年的时候,做了一些研究,可以后来没有去整理,没有去用到项目里头,现在把这些东西都放出来纪念一下,也给有需要的人作为参考. 基本知识: Flash使用基本知识与ActionScript 3.0的 ...

  8. SQL 复习二(数据查询语言)

    1.1 数据查询语言 DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端. 语法: SELECT selection_list /*要查询的列名称*/ FR ...

  9. $(function(){})的执行过程分析

    作者:zccst 首先,$(function(){})是$(document).ready(function(){})的简写形式. 在日常使用中,我们会把代码写到$(function(){})中,今天 ...

  10. lwip移植到stm32上-enc28j60,103mcu(2)

    前面小玩了一下ucos和lwip,但是都还不是真正的网络多任务,真正的网络多任务应该是什么样子的呢?应该是有一个专门的任务负责网络的通讯,他负责将数据发送出去,将数据接收回来,而其他的需要用到网络的任 ...