基于Doubango的iOS客户端开源框架
一、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客户端开源框架的更多相关文章
- 美团 iOS 端开源框架 Graver 在动态化上的探索与实践
近些年,移动端动态化技术可谓是“百花齐放”,其中的渲染性能也是动态化技术一直在探索.研究的课题.美团的开源框架 Graver 也为解决动态化框架的渲染性能问题提供了一种新思路:关于布局,我们可以采用“ ...
- 【转】SocketRocket:iOS WebSocket客户端开源框架
原文网址:http://blog.csdn.net/zmp1123/article/details/44015507 WebSocket: WebSocket通信协议实现的是基于浏览器的原生socke ...
- iOS 优秀开源框架 开源包 开发包 from : Podfile of chatsecure ---待完善
前段时间发现chatsecure的podfile中使用了很多非常优秀的开源包 和 大公司的sdk. 拿出来分享下. 各个类库的作用待完善. platform :ios, "7.0" ...
- iOS中开源框架GPUImage的使用之生成libGPUImage.a文件和创建工程(一)
一.下载GPUImage (1)下载地址:https://github.com/BradLarson/GPUImage (2)下载后打开 GPUImage.xcodeproj 工程,选择真机运行该工 ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- 25类Android常用开源框架
1.图片加载,缓存,处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时 Picasso 一个强大的图片下载与缓存的库 F ...
- iOS常用第三方开源框架和优秀开发者博客等
博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ...
- iOS超全开源框架、项目和学习资料汇总(5)AppleWatch、经典博客、三方开源总结篇
完整项目 v2ex – v2ex 的客户端,新闻.论坛.apps-ios-wikipedia – apps-ios-wikipedia 客户端.jetstream-ios – 一款 Uber 的 MV ...
- 【转】iOS超全开源框架、项目和学习资料汇总
iOS超全开源框架.项目和学习资料汇总(1)UI篇iOS超全开源框架.项目和学习资料汇总(2)动画篇iOS超全开源框架.项目和学习资料汇总(3)网络和Model篇iOS超全开源框架.项目和学习资料汇总 ...
随机推荐
- XHTML与HTML的差别
HTML与XHTML之间的差别,粗略可以分为两大类比较:一个是功能上的差别,另外是书写习惯的差别.关于功能上的差别,主要是XHTML可兼容各大浏览器.手机以及PDA,并且浏览器也能快速正确地编译网页. ...
- android4.0 的图库Gallery2代码分析(四) 之相册的数据处理以及显示
最近迫于生存压力,不得不给人兼职打工.故在博文中加了个求点击的链接.麻烦有时间的博友们帮我点击一下.没时间的不用勉强啊.不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺.嘻嘻.http: ...
- git archive
git archive --format zip --output ../g.zip 3.4.2 git archive --format=tar \ --remote=ssh://remote_se ...
- openstack controller ha测试环境搭建记录(三)——配置haproxy
haproxy.cfg请备份再编辑:# vi /etc/haproxy/haproxy.cfg global chroot /var/lib/haproxy daemon group ...
- SecureCRT上传bash: rz: command not found
SecureCRT上传bash: rz: command not found -bash: rz: command not found rz命令没找到? 执行sz,同样也没找到. 安装lrzs ...
- css运用中,对position属性的认识
position属性有: static : 无特殊定位,对象遵循HTML定位规则 absolute : 将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位.而其层叠 ...
- POJ 2395 Out of Hay
这个问题等价于求最小生成树中权值最大的边. #include<cstdio> #include<cstring> #include<cmath> #include& ...
- ZOJ 3780 Paint the Grid Again
拓扑排序.2014浙江省赛题. 先看行: 如果这行没有黑色,那么这个行操作肯定不操作. 如果这行全是黑色,那么看每一列,如果列上有白色,那么这一列连一条边到这一行,代表这一列画完才画那一行 如果不全是 ...
- JdbcTemplate的主要用法
JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...
- 【转】一大波实用的 bash 别名和函数
作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在这种不断的重复中为你 ...