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

  • 相关阅读:
    android adb指令
    android中的4种点击事件
    Android中常用的布局
    String练习
    Java中的String类
    从零开始,搭建一个简单的购物平台(三)
    从零开始,搭建一个简单的购物平台(二)
    从零开始,搭建一个简单的购物平台(一)
    Echarts案例:整一个炫酷一点的仪表盘
    Echarts案例:使用象形柱状图(PictorialBar)实现电池效果柱状图
  • 原文地址:https://www.cnblogs.com/fuland/p/3760333.html
Copyright © 2020-2023  润新知