驱动环境VOICE-TAPI-VoIP说明

                                                

Version :0.1

 

简 介

本文档涉及驱动底层LL,也只是对驱动上层HL的应用分析,对于电话应用编程接口(TAPI)和VoIP进行详细的介绍,是对上层的理解和给应用程序进行调用的接口。篇一详细的介绍了TAPI的上层需要的功能获得接口,篇二详细的介绍了VoIP的上层需要的功能和接口

 

 

篇 一

电话编程接口TAPI的应用,驱动提供给应用程序的服务,在TAPI HL和LL,实现具体设备的功能。TAPI支持Lantiq的各种设备的Voip和POTS功能。

 

TAPI HL作为一个独立的驱动,TAPI LL的实现作为每个支持设备的二进制,二者都需要TAPI接口进行控制和数据路径的建立。

 

一:应用情景支持

  1. ATA和Gateway应用

 

ATA和Gateway应用适应ALM接口到PSTN网络FXO或者模拟电话端口FXS,lantiq设备默认的ALM连接到FXS,若连接FXO,需要重新编程设置线路类型。Chapter 5.1.1 Chapter 5.2.4.

 

就FXS线路而言,振铃是由SLIC产生的高电压信号和紧密联系由固件产生的FSK/DTMF信号编码显示在模拟通道的CID组成的,对于FXO线路,振铃信号如果需要检查,信号检测器被激活。Chapter 5.1.7 Chapter 5.5.2

 

Lantiq设备包含数据通道、信号传输/检测,一次在信号传输/产生之前,有必要建立可以使用的模拟端口ALM和数据通道。ALM到数据通道的连接在Chapter 6.1。

 

在某些情形中,信号传输(检测)直接来自通过PCM接口连接的外部的芯片,数据通道必须去连接PCM通道和用合适的PCM通信参数(RX、TX)进行编程。

 

Data channel包括复杂的信号处理(如语音压缩和信号产生/检测)和RTP包,Phone channel资源包含数字语音上的I/O端口。

 

对于ATA和VoIP网关,PCM和ALM属于Phone channel,而SIG和COD资源属于数据通道。因此,IFX_TAPI_ENC_START 只应用于数据通道,IFX_TAPI_LINE_FEED_SET 和IFX_TAPI_PCM_CFG_SET 应用于电话通道。Chapter 8.1

这两个通道的连接在打开文件描述符的时候,IFX_TAPI_ENC_START和IFX_TAPI_LINE_FEED_SET使用哪个fd,便是数据通道和电话通道的连接方式。

 

VoiceA  data channel IFX_TAPI_ENC_START使用fd0

        phone channel IFX_TAPI_LINE_FEED_SET使用fd1

 

 

2、系统使用经过PCM的FXO

 

我们打大麦盒子使用的是外部桥接PCM的FXO口,PCM的接口和通道的配置和控制在Chapter 5.3. FXO的控制在Chapter 5.1.1 Chapter 5.2.4.

 

 

  1. FXO使用XWAY的SLIC121

 

大麦盒子使用的PCM和SPI连接的FXO,若是使用SLIC121连接的FXO,那么控制DAA设备连接SLIC实现FXO的功能。

  1. voice采样率

 

Lantiq设备的dect channel,ALM和PCM channel支持8kHz和16kHz使用在电话系统的采样比例。

 

对于的ATA和Gateway应用的宽带,PCM通道编码已经扩展支持G.711编码和16-bit linear。注意,在时序的编码序列中,2时隙的给G711,4时隙的给16-bit linear。Chapter 5.3.2.

 

对于ALM,采样比率的选择是通过选择数据类型决定的Chapter 5.1.1 Chapter 5.1.1.2.

 

 

  1. 调用流的实例

 

VoIP-FXS调用的拨号

 

 

 

 

 

 

 

 

 

 

 

 

 

VoIP-FXS调用的设定RTP流

 

VoIP-FXS调用的断开连接

 

二:架构

  1. 开发环境

 

GR909功能凯子与分开的库函数,不节能在一些操作系统的驱动层,使能GR909的支持。

 

Qos驱动是使用Linux IP栈和通过用户孔家你的TPAI更新RTP包流,为了使用这个功能,给定的linux网络协议栈和Qos驱动必须连接进入和出去的RTP包的交换。Chapter 5.7 Chapter 5.7.2.

 

在各种linux内核的线程和tasklets中,一些线程作为linux的tasklets,这取决于内核的配置。

 

Kpi2udp(Qos驱动)-这个threads/tasklets处理来自linux网络协议栈的RTP的交换。

Kpi_in-这个TAPI的KPI执行一个tasklet来从KPI接口接收数据和使用一个内核线程从KPI接口接收包。TAPI_OS_THREAD_PRIO_HIGHEST 和tasklet_hi_schedule()" 处理优先级。

Event Handler-使用linux工作队列“TAPIevents ”分配事件到工作context中

Dxs_int 驱动底层使用内核的线程处理中断请求

 

 

2.驱动接口和初始化

 

TAPI驱动实现下列的字符驱动接口

open/close         获得/释放文件描述符   Chapter 4.2.1 Chapter 4.3.2.

 

 

 

select              在中断/事件中阻塞     Chapter 5.7.1.

read/write         从中断模式,来自和给设备接收/发送数据包 Chapter 5.7.1.

ioctl               配置和控制设备 Chapter 8.1.

 

 

 

TAPI包含linux内核的接口ifx_tapi_kioctl() ,允许ioctl用户空间接口

 

 

设备与通道初始化

 

TAPI设备初始化

IFX_TAPI_DEV_START 以默认的值初始化TAPI软件,读取当前的voip部分固件和分配所有的操作系统资源,TAPI使用这些容量去分配资源。

if (ioctl(fd, IFX_TAPI_DEV_START, 0) != 0)

       return IFX_ERROR;

 

TAPI通道初始化

IFX_TAPI_CH_INIT

for (i = 0; i < TAPI_MAX_CHANNELS; i ++) {

/* Initialize all system channels */

 if (ioctl (fd_vmmc[i], IFX_TAPI_CH_INIT, (IFX_int32_t) &init) != 0)

 

 

 

三:特性

在excel表格中,有支持的特性列表,而下面是对这些特性应用说明。

 

  1. POTS特性

 

  1. 设置线路类型:FXS、FXO和宽带

模拟通道可以被使用作为FXS和FXO的接口,这个主要的不同是FXS接口连接slic设备,而FXO的接口是DAA设备连接模拟通道。

 

 

应用软件需要配置每个模拟通道在正确的模式:FXS或者FXO模式,以及采样频率。

使用命令:IFX_TAPI_LINE_TYPE_SET,

结构体IFX_TAPI_LINE_TYPE_CFG_t.          

       IFX_TAPI_LINE_TYPE_t.

 

注意:配置正确的线路类型,如果配置正确,DAA驱动加载起来,线路只能设置FXO模式

      设置通道线路类型之前,需要使用命令IFX_TAPI_CH_INIT初始化通道

 

 

 

设置线路的宽带:

IFX_TAPI_LINE_TYPE_FXS_NB

IFX_TAPI_LINE_TYPE_FXS_WB

IFX_TAPI_LINE_TYPE_FXO_NB

IFX_TAPI_LINE_TYPE_FXS_AUTO

 

 

设置线路反馈模式:

IFX_TAPI_LINE_FEED_SET.

IFX_TAPI_LINE_FEED_STANDBY

 

 

 

 

 

设置脉冲时序验证

IFX_TAPI_LINE_HOOK_VT_SET

IFX_TAPI_LINE_HOOK_VT_t

IFX_TAPI_LINE_HOOK_VALIDATION_TYPE_t

 

设置FXS接口的拨号检测

描述了如何在FXS接口配置脉冲拨号的检测参数,这个接口如何使能事件检测在Chapter 7.

IFX_TAPI_EVENT_PULSE_DIGIT     ( 0 1 2 3 4 5 6 7 8 9 * # )

IFX_TAPI_EVENT_PULSE_START

设置模拟线路通道容量

对模拟电话端口进行调整读写增益

IFX_TAPI_PHONE_VOLUME_SET.

IFX_TAPI_COD_VOLUME_SET

设置FXS接口的振铃

FXS端口的振铃处理分为两步:振铃节奏和类型的编程,周期性振铃。

配置振铃类型:IFX_TAPI_RING_CFG_SET

              IFX_TAPI_RING_CFG_MODE_t

IFX_TAPI_RING_CFG_SUBMODE_t

配置振铃节奏:IFX_TAPI_RING_CADENCE_HR_SET

IFX_TAPI_RING_CADENCE_t,

开始停止振铃:IFX_TAPI_RING_START

              IFX_TAPI_RING_STOP.

 

 

设置CID支持

TAPI接口接收/传输CID和振铃。

 

IFX_TAPI_CID_TX_INFO_START,

 

CID的配置:IFX_TAPI_CID_CFG_SET

IFX_TAPI_CID_STD_TYPE_t

            IFX_TAPI_CID_CFG_t

 

CID时序配置:IFX_TAPI_CID_TX_SEQ_START

IFX_TAPI_CID_TIMING_t.

                        

CID    Tx:  IFX_TAPI_CID_TX_SEQ_START

              IFX_TAPI_CID_TX_INFO_START

IFX_TAPI_CID_MSG_t

准备CID消息:IFX_TAPI_CID_MSG_t

IFX_TAPI_CID_ST_VISINDIC.

               IFX_TAPI_CID_MSG_ELEMENT_t

 

 

 

 

CID -Rx   FSK接收器:IFX_TAPI_CID_RX_START

                      IFX_TAPI_CID_HOOK_MODE_t

                      IFX_TAPI_CID_RX_STOP

                      IFX_TAPI_CID_RX_DATA_GET

IFX_TAPI_CID_RX_STATUS_GET:

 

设置消息等待提示灯 :   IFX_TAPI_MWL_ACTIVATION_SET

 

 

 

 

 

 

  1. )高级POTS特性

 

 

设置线路回声消除

 

WLEC(Window-based Line Echo Canceller)需要在模拟电话接口(IFX_TAPI_WLEC_PHONE_CFG_SET)

或者在PCM接口(IFX_TAPI_WLEC_PCM_CFG_SET) 中被激活。

 

结构体:IFX_TAPI_WLEC_CFG_t;

     IFX_TAPI_WLEC_WIN_SIZE_t.

 

 

设置计数器

TAPI提供计数脉冲的产生,这个主要的过程为:

 

 

使用命令:IFX_TAPI_METER_BURST.

 

 

设置自动电话状态检测机制:

 

 

使用命令:IFX_TAPI_LINE_PHONE_DETECT_CFG_SET.

           

 

 

设置FXO 支持

TPAI接口提供控制一个和多个FXO线路

IFX_TAPI_FXO_LINE_MODE_SET 允许FXO线路激活和关闭

 

 

设置FXO线路状态事件

 

 

 

设置FXO线路拨号

IFX_TAPI_FXO_DIAL_START

IFX_TAPI_FXO_DIAL_t.

IFX_TAPI_FXO_DIAL_STOP

IFX_TAPI_FXO_DIAL_CFG_SET

 

设置FXO连接的状态:

IFX_TAPI_FXO_HOOK_SET

IFX_TAPI_FXO_FLASH_SET

IFX_TAPI_FXO_FLASH_CFG_SET

设置持续的测量(电压和电流值)

IFX_TAPI_CONTMEASUREMENT_GET

IFX_TAPI_CONTMEASUREMENT_REQ

IFX_TAPI_EVENT_CONTMEASUREMENT

IFX_TAPI_CONTMEASUREMENT_RESET

 

设置自动模拟线路校准

IFX_TAPI_CALIBRATION_START

IFX_TAPI_LINE_FEED_DISABLED

设置GR909测试

ifxphone_LT_GR909_Start.

IFX_TAPI_EVENT_LT_GR909_RDY

Ifxphone_LT_GR909_GetResults.

 

 

  1. PCM

 

PCM接口通讯被使用连接额外的设备Duslic或者DECT芯片集,每个产品能够通过PCM和外部设备进行通信。

 

 

 

设置PCM接口(主机/从机模式)

使用命令:IFX_TAPI_PCM_IF_CFG_SET

设置PCM通道通讯

使用命令:IFX_TAPI_PCM_ACTIVATION_SET

配置LEC、Timeslots、Windband

 

 

建立PCM通道给Fax/Modem和RFC 4040

IFX_TAPI_PCM_RES_NB_ALAW_8BIT

IFX_TAPI_PCM_DEC_HP_SET

IFX_TAPI_PCM_VOLUME_SET

 

 

设置PCM通道在HDLC和Loop模式

 

HDLC的控制器,写入相同的时序,控制包交换在内核包的接口。IFX_TAPI_PCM_HDLC_CFG_SET

 

 

Loop环回验证   IFX_TAPI_PCM_LOOP_CFG_SET

 

 

 

 

  1. 语音产生

 

设置语音表

早语音产生和被定义以前,它们被IFX_TAPI_TONE_SIMPLE_t /IFX_TAPI_TONE_COMPOSED_t定义使用,保存在内部的语音表中。

 

设置播放语音

IFX_TAPI_TONE_LOCAL_PLAY

IFX_TAPI_TONE_NET_PLAY

设置单一语音

IFX_TAPI_TONE_t

IFX_TAPI_TONE_SIMPLE_t.

IFX_TAPI_TONE_TABLE_CFG_SET.

 

定义混合语音

IFX_TAPI_TONE_t

IFX_TAPI_TONE_COMPOSED_t.

IFX_TAPI_TONE_TABLE_CFG_SET.

 

设置预定义语音

IFX_TAPI_TONE_TABLE_CFG_SET

IFX_TAPI_TONE_SIMPLE_t

 

设置高电平输出产生语音表

IFX_TAPI_LINE_LEVEL_SET

IFX_TAPI_PHONE_VOLUME_SET

5)语音/信号检测

 

 

设置打开/关闭信号检测

IFX_TAPI_SIG_DETECT_ENABLE

IFX_TAPI_SIG_DETECTION_t

IFX_TAPI_SIG_t

IFX_TAPI_SIG_EXT_t.

 

 

 

 

设置DTMF检测参数

IFX_TAPI_DTMF_RX_CFG_SET

IFX_TAPI_DTMF_RX_CFG_t

设置调用过程语音检测

IFX_TAPI_TONE_CPTD_START

IFX_TAPI_TONE_CPTD_t

IFX_TAPI_EVENT_TONE_DET_CPT

 

 

 

 

 

 

 

  1. 编码配置和控制

 

 

设置编码/解码配置

IFX_TAPI_ENC_CFG_SET

IFX_TAPI_ENC_VAD_CFG_SET

IFX_TAPI_COD_VOLUME_SET:

IFX_TAPI_COD_DEC_HP_SET,

IFX_TAPI_DEC_CFG_SET,

 

设置G711或G722 RFC4040

IFX_TAPI_JB_CFG_SET.

IFX_TAPI_ENC_AGC_ENABLE.

 

编码器/解码器控制

IFX_TAPI_ENC_START

IFX_TAPI_ENC_STOP.

IFX_TAPI_ENC_HOLD

 

 

设置室内噪声检测

IFX_TAPI_ENC_ROOM_NOISE_DETECT_START

IFX_TAPI_ENC_ROOM_NOISE_DETECT_STOP.

IFX_TAPI_ENC_ROOM_NOISE_DETECT_t.

IFX_TAPI_EVENT_COD_ROOM_NOISE

IFX_TAPI_EVENT_COD_ROOM_SILENCE

 

设置抖动缓存

IFX_TAPI_JB_CFG_SET,

 

设置包丢失隐藏

 

 

 

 

设置RTP配置

IFX_TAPI_PKT_RTP_PT_CFG_SET

IFX_TAPI_PKT_RTP_CFG_SET

 

 

设置上流DTMF和Fax/Modem事件包

IFX_TAPI_PKT_EV_OOB_DTMF_SET.

IFX_TAPI_PKT_EV_OOB_MFTD_SET.

 

设置RTCP和JB分析

IFX_TAPI_PKT_RTCP_STATISTICS_GET

IFX_TAPI_JB_STATISTICS_GET

设置来自应用软件的RFC 2833 RFC4733

IFX_TAPI_PKT_EV_GENERATE

 

 

设置RTP流通知

IFX_TAPI_EVENT_COD_ANNOUNCE_END,

IFX_TAPI_COD_ANNOUNCE_BUFFER_FREE

 

 

设置PCM接口(主机/从机模式)

使用命令:IFX_TAPI_PCM_IF_CFG_SET

设置PCM通道通讯

使用命令:IFX_TAPI_PCM_ACTIVATION_SET

配置LEC、Timeslots、Windband

 

 

建立PCM通道给Fax/Modem和RFC 4040

IFX_TAPI_PCM_RES_NB_ALAW_8BIT

IFX_TAPI_PCM_DEC_HP_SET

IFX_TAPI_PCM_VOLUME_SET

 

 

设置PCM通道在HDLC和Loop模式

 

HDLC的控制器,写入相同的时序,控制包交换在内核包的接口。IFX_TAPI_PCM_HDLC_CFG_SET

 

 

Loop环回验证   IFX_TAPI_PCM_LOOP_CFG_SET

 

 

 

 

  1. 语音产生

 

设置语音表

早语音产生和被定义以前,它们被IFX_TAPI_TONE_SIMPLE_t /IFX_TAPI_TONE_COMPOSED_t定义使用,保存在内部的语音表中。

 

设置播放语音

IFX_TAPI_TONE_LOCAL_PLAY

IFX_TAPI_TONE_NET_PLAY

设置单一语音

IFX_TAPI_TONE_t

IFX_TAPI_TONE_SIMPLE_t.

IFX_TAPI_TONE_TABLE_CFG_SET.

 

定义混合语音

IFX_TAPI_TONE_t

IFX_TAPI_TONE_COMPOSED_t.

IFX_TAPI_TONE_TABLE_CFG_SET.

 

设置预定义语音

IFX_TAPI_TONE_TABLE_CFG_SET

IFX_TAPI_TONE_SIMPLE_t

 

设置高电平输出产生语音表

IFX_TAPI_LINE_LEVEL_SET

IFX_TAPI_PHONE_VOLUME_SET

5)语音/信号检测

 

 

设置打开/关闭信号检测

IFX_TAPI_SIG_DETECT_ENABLE

IFX_TAPI_SIG_DETECTION_t

IFX_TAPI_SIG_t

IFX_TAPI_SIG_EXT_t.

 

 

 

 

设置DTMF检测参数

IFX_TAPI_DTMF_RX_CFG_SET

IFX_TAPI_DTMF_RX_CFG_t

设置调用过程语音检测

IFX_TAPI_TONE_CPTD_START

IFX_TAPI_TONE_CPTD_t

IFX_TAPI_EVENT_TONE_DET_CPT

 

 

 

 

 

 

 

  1. 编码配置和控制

 

 

设置编码/解码配置

IFX_TAPI_ENC_CFG_SET

IFX_TAPI_ENC_VAD_CFG_SET

IFX_TAPI_COD_VOLUME_SET:

IFX_TAPI_COD_DEC_HP_SET,

IFX_TAPI_DEC_CFG_SET,

 

设置G711或G722 RFC4040

IFX_TAPI_JB_CFG_SET.

IFX_TAPI_ENC_AGC_ENABLE.

 

编码器/解码器控制

IFX_TAPI_ENC_START

IFX_TAPI_ENC_STOP.

IFX_TAPI_ENC_HOLD

 

 

设置室内噪声检测

IFX_TAPI_ENC_ROOM_NOISE_DETECT_START

IFX_TAPI_ENC_ROOM_NOISE_DETECT_STOP.

IFX_TAPI_ENC_ROOM_NOISE_DETECT_t.

IFX_TAPI_EVENT_COD_ROOM_NOISE

IFX_TAPI_EVENT_COD_ROOM_SILENCE

 

设置抖动缓存

IFX_TAPI_JB_CFG_SET,

 

设置包丢失隐藏

 

 

 

 

设置RTP配置

IFX_TAPI_PKT_RTP_PT_CFG_SET

IFX_TAPI_PKT_RTP_CFG_SET

 

 

设置上流DTMF和Fax/Modem事件包

IFX_TAPI_PKT_EV_OOB_DTMF_SET.

IFX_TAPI_PKT_EV_OOB_MFTD_SET.

 

设置RTCP和JB分析

IFX_TAPI_PKT_RTCP_STATISTICS_GET

IFX_TAPI_JB_STATISTICS_GET

设置来自应用软件的RFC 2833 RFC4733

IFX_TAPI_PKT_EV_GENERATE

 

 

设置RTP流通知

IFX_TAPI_EVENT_COD_ANNOUNCE_END,

IFX_TAPI_COD_ANNOUNCE_BUFFER_FREE

 

篇二

Voip的子系统提供了完整的VoIP在lantiq的语音平台上的具体功能,这个VoIP子系统支持不同类型的终端和网络接口,如大麦盒子的终端POTS,FXS和DECT。在网络接口侧,VoIP子系统支持VoIP和POTS FXO,另外提供的VoIP的功能,如提供PBX的特性给网关内部互打电话,这个VoIP子系统的参数通过网络和远程管理接口,这个VoIP子系统提供了接口的终端,帮助了更好定义第三方的APIs。

 

 

 

 

一:软件架构

VoIP子系统架构分为了两个独立的逻辑分区:应用程序库和VoIP库

应用程序库是一系类的写入VoIP协议的模块,应用程序库实现了非VoIP库的子系统特性。

VoIP库是一系类的VoIP的功能的核心,信号通过SIP和媒体交换通过RTP

依赖模块不是严格的VoIP子系统,是结合VoIP子系统提供的扩展功能。

VoIP子系统是运行在linux用户空间的来自Application和VoIP库的模块,语音处理固件的接口在TAPI调用过程中,Linux系统的调用将被使用。

 

 

 

 

应用库的组成的部分

• Endpoint Agents: FXS Agent, DECT Agent

• Network Agent: FXO Agent

• Call Manager

调用管理CMGR是VoIP中心的部分,这个CMGR提供了复杂的框架给VoIP系统进行调用。CMGR提供了内部的调用和外部的VoIP和PSTN和网关之间的调用管理,CGMR充当一个调用路由的角色,CMGR管理呼叫保持,3 parter 会话等等

• Media Manager

媒体管理MMGR是VoIP重要的部分,帮助建立建立各种调用的媒体路径,如Voice和Fax,音频资源被MMGR管理的类型有,信号、VoIP、DECT、PCM。

• FXS Agent

• DECT Agent

• FXO Agent

• Configuration Agent

配置代理主要是管理来自管理接口(Web,TR104和终端代理)的管理配置。

• Web Adaptation Layer

 

VoIP库的组成部分:

• SIP (Network) Agent

SIP网络代理是提供SIP用户的功能,实现会话初始化协议RFC 3261,注意不能用作MMGR接口

• RTP Agent

• VoIP Data Model

 

• SIP Toolkit

• RTP Toolkit

 

依赖模块:

VoIP需要从依赖模块实现完整的VoIP路由的功能,这模块是

• TR-104 Adaptation Layer

• Management API Framework

• Fax Agent

• Utilities Library

 

二、接口描述

 

VoIP系统有两种不同类型的接口:功能接口和消息接口

 

  1. 功能接口

功能接口以两种类型的方式实现VoIP系统,第一种类型是导出功能的模块,第二种类型是提供注册的回调函数。

 

 

CMGR实现各个代理的功能接口,这个功能接口实现调用管理的API。

• Call Control

实现逻辑初始化,应答和释放呼叫及其唤醒呼叫

• Call Transfer 

实现逻辑去绑定(uattented)和咨询(attentend)调用转移

• Subscription / Notification

建立订阅/通知机制

• SMS

实现建立基于VoIP的消息

• RTP and Fax Session management

 

 

1)呼叫控制服务

 

下面列出了call manager的服务

 

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

函数类型概要及其简要说明:

 

pfn_IFX_CMGR_CallFwdInfo :回调函数通知呼叫前端的状态,然后对该代理初始化

pfn_IFX_CMGR_CallHoldRsp :回调函数异步响应呼叫保持申请

pfn_IFX_CMGR_CallIncoming :回调函数初始化呼叫建立的申请

pfn_IFX_CMGR_CallResumeRsp :回调函数异步响应呼叫继续申请

pfn_IFX_CMGR_ConfStatus :报导会话的状态

pfn_IFX_CMGR_DigitsInCallRcv :接收呼叫的数字

pfn_IFX_CMGR_MediaNegReq : 改变调用的媒体协商

pfn_IFX_CMGR_MediaNegRsp : 在呼叫的过程中反百年媒体

pfn_IFX_CMGR_MediaParamsGet :获得媒体参数

pfn_IFX_CMGR_RemoteCallAccept :通知呼叫端,呼叫已接收

pfn_IFX_CMGR_RemoteCallAnswer :通知呼叫端,呼叫已应答

pfn_IFX_CMGR_RemoteCallHold :通知远端,呼叫进入了保持状态

pfn_IFX_CMGR_RemoteCallRelease:终止接出的呼叫

pfn_IFX_CMGR_RemoteCallResume :通知远端,呼叫被唤醒

 

呼叫控制服务结构体概要说明

/voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

/voip_ifx_gateway_appln/CallMgr/h/IFX_LineMgr.h

/voip_ifx_gateway_appln/CallMgr/h/IFX_CallMgr.h

 

 

x_IFX_CMGR_CodecParams :一系列的Codecs和相关信息

x_IFX_CMGR_FaxParams :包含Fax传输参数

x_IFX_CMGR_RtpParams :RTP参数

x_IFX_CMGR_VoipAddr :VoIP地址信息

x_IFX_CMGR_VoipMediaParams :媒体相关参数

 

 

x_IFX_CMGR_AddressInfo

x_IFX_CMGR_CallParams

x_IFX_CMGR_CidInfo

x_IFX_CMGR_DgtInfo

x_IFX_CMGR_ExtnMediaParams

x_IFX_CMGR_ExtnParams

x_IFX_CMGR_FxoInfo

x_IFX_CMGR_FxoParams

x_IFX_CMGR_MediaParams

x_IFX_CMGR_RegParams

x_IFX_CMGR_RegServerInfo

x_IFX_CMGR_VoipParams

ux_IFX_CMGR_AddressInfo

ux_IFX_CMGR_CallParams

ux_IFX_CMGR_MediaParams

呼叫控制的枚举类型概要

e_IFX_CallForwardType

e_IFX_CallRegisterType

e_IFX_CMGR_CallType

e_IFX_CMGR_FeatStatus

e_IFX_CMGR_Status

e_IFX_EndptType

呼叫控制服务函数概要

./voip_ifx_gateway_appln

./voip_ifx_gateway_appln/CallMgr/src/IFX_CallMgr.c:

IFX_CMGR_CallAccept :函数通知调用管理这个代理已经节后接入的呼叫,例如终端振铃作为对pfn_IFX_CMGR_CallIncoming回调函数的响应。

IFX_CMGR_CallAnswer :函数通知代理已经应答了这次呼叫

IFX_CMGR_CallDeflect :检测呼叫

IFX_CMGR_CallHold :函数呼叫保持

IFX_CMGR_CallHoldRsp :函数开始激活保持的呼叫

IFX_CMGR_CallInitiate :函数初始化一个申请建立的呼叫

IFX_CMGR_CallRelease :函数终止呼出和拒绝接入

IFX_CMGR_CallResume :函数开始继续呼叫

IFX_CMGR_CallResumeRsp :函数需要继续一个保持的呼叫

IFX_CMGR_ConfBreak :函数关闭会议到独立呼叫

IFX_CMGR_ConfMake :函数建立会议

IFX_CMGR_DigitsInCallSnd :函数将拨号数字进入调用管理,发送DTMF给用户

IFX_CMGR_FaxStart :函数开始Fax传输

IFX_CMGR_MediaNegReq :函数转换媒体,在一个申请呼叫的情况下

IFX_CMGR_MediaNegRsp :同上 SIP代理

e_IFX_Return IFX_CMGR_MediaNegRsp(

IN uint32 uiCallId,

IN x_IFX_CMGR_MediaParams* pxMediaParams,

IN_OUT e_IFX_CMGR_Status* peStatus,

IN_OUT e_IFX_ReasonCode* peReason

);

IFX_CMGR_MediaParamsGet :在处理呼叫过程的时候,获得媒体参数

e_IFX_Return IFX_CMGR_MediaParamsGet(

IN uint32 uiCallId,

OUT x_IFX_CMGR_MediaParams* pxMediaParams);

IFX_CMGR_MediaParamsSet :在处理呼叫过程的时候,设置媒体参数

e_IFX_Return IFX_CMGR_MediaParamsGet(

IN uint32 uiCallId,

OUT x_IFX_CMGR_MediaParams* pxMediaParams);

 

2)RTP服务

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

RTP服务函数类型概要

pfn_IFX_CMGR_DateTimeNtfn :回调函数提供获得终端日期和时间的接口

pfn_IFX_CMGR_ListAccessFreeVmapiObj:回调函数将提供释放MAPI-V对象的接口

pfn_IFX_CMGR_ListAccessNtfn :回调函数将提供列表中通知的改变

pfn_IFX_CMGR_RtpSessionModify :回调函数修改RTP会话的参数

pfn_IFX_CMGR_RtpSessionStart :回调函数修改给VoIP 呼叫的RTP会话

pfn_IFX_CMGR_RtpSessionStop :会带哦函数停止和中止一个VoIP的RTP会话

 

RTP服务结构体

x_IFX_CMGR_RtpAgentInfo

 

RTP服务枚举类型

e_IFX_CMGR_LA_Type

 

RTP服务函数概要

IFX_CMGR_DateTimeNtfy :提供接口设置终端的时间日期

IFX_CMGR_ListAccessNtfy :提供列表中的通知的改变

IFX_CMGR_RtpMediaError :提供来自RTP代理的异步错误报道

IFX_CMGR_SetAtxCnxt :设置attended转移内容的context的接口

 

  1. Fax服务

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

Fax服务类型概要

pfn_IFX_CMGR_FaxServerListen :回调函数显示FAx TCP连接等待提示

pfn_IFX_CMGR_FaxSessionStart :回调函数开始使用作为Fax会话给FoIP呼叫

pfn_IFX_CMGR_FaxSessionStop :回调函数终止给FoIP的Fax呼叫

 

Fax结构体

x_IFX_CMGR_FaxAgentInfo

 

Fax服务函数概要

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h:

./voip_ifx_gateway_appln/Agents/src/IFX_FAX_Agent.c

IFX_CMGR_FaxMediaError :通过CMGR的实现唤醒Fax代理通知发生的错误

IFX_CMGR_FaxSessionEnd :这个函数提供了异步的错误和来自Fax代理的状态报道

 

 

  1. 配置服务

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

配置服务的函数类型

pfn_IFX_CMGR_Register :回调函数帮之注册和注销VoIP线路

pfn_IFX_CMGR_RegisterRsp :回调函数通知注销和注销申请的状态

pfn_IFX_CMGR_VM_NtfnRcv :回调函数通知接收在Voice邮件上的订阅者

pfn_IFX_CMGR_VM_SubnRsp :回调函数通知voice 订阅者的请求

 

配置服务结构体

x_IFX_CMGR_VoiceMailEPNotify

x_IFX_CMGR_VoiceMailNotifyInfo

 

配置服务函数

IFX_CMGR_AllCallsDisc :函数断开系统上的ongoing的呼叫

IFX_CMGR_CallsDiscForEndpt :函数断开所有的终端上的ongoing的呼叫

IFX_CMGR_CallsDiscForLine :函数断开所有的VoIP线路上的呼叫

IFX_CMGR_Register :函数帮助注测和注销VoIP线路的支持

IFX_CMGR_RegisterRsp :函数通知注销和注册的申请状态

IFX_CMGR_VM_Subn :函数帮助订阅者到Voice邮件服务

 

 

  1. 订阅/通知服务

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

订阅/通知服务函数类型

pfn_IFX_CMGR_ARD_NtfnRcv :回调函数接收在订阅者自动重播忙音的通知

pfn_IFX_CMGR_ARD_Register :回调函数报导自动重播忙音的订阅者申请

pfn_IFX_CMGR_ARD_Status :回调函数通知自动重播的忙音申请状态

pfn_IFX_CMGR_NtfnSnd :回调函数在接收订阅时帮助发送SIP NOTIFY消息

pfn_IFX_CMGR_SubnSnd :回调函数帮助远端在实践中订阅

pfn_IFX_CMGR_SubnStatus :回调函数通知订阅请求的状态

 

订阅/通知服务结构体

x_IFX_CMGR_ARD_NotifyInfo

x_IFX_CMGR_NotifyInfo

订阅/通知服务公用体

ux_IFX_CMGR_NotifyInfo

订阅/通知服务枚举类型

e_IFX_CMGR_SubsEvent

 

订阅/通知服务函数

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

./voip_ifx_gateway_appln/Agents/src/IFX_FXS_Agent.c:

./dect_ifx_agent/src/IFX_DECT_Agent.c:

IFX_CMGR_ARD_Activate :这个函数在VoIP线路激活了自动重播忙音

IFX_CMGR_ARD_Ntf :这个函数在终端有效的通讯

IFX_CMGR_NtfnRcv :这个函数通知了在订阅接收的状态

IFX_CMGR_SubnRcv :这个函数通知了接入的远端的订阅申请

IFX_CMGR_SubnStatus :这个函数报导了订阅的需求状态

 

 

  1. 转接服务

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

转接服务函数类型

pfn_IFX_CMGR_AttendedTxReq :回调函数处理加入的转接申请

pfn_IFX_CMGR_AttendedTxStatus :回调函数报导加入的转接申请

pfn_IFX_CMGR_BlindTxReq :回调函数绑定呼叫转接申请

pfn_IFX_CMGR_BlindTxStatus :回调函数报呼叫转接申请的状态

pfn_IFX_CMGR_CallIdReplace :回调函数在转接的情形下替换呼叫识别

 

转接服务枚举类型

e_IFX_TransferStatus

 

 

转接服务函数类

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

./voip_ifx_gateway_appln/CallMgr/src/IFX_CallMgr.c

./voip_ifx_network_agent/src/IFX_SIPAPP_PAIf.c

IFX_CMGR_AttendedTx :函数帮助完成加入的呼叫转接

IFX_CMGR_AttendedTxStatus :函数确认代理端口的转接是否良好

IFX_CMGR_BlindTx :函数帮助完成绑定呼叫转接

IFX_CMGR_BlindTxStatus :函数确认代理端转接是否良好

 

 

  1. 其他杂项服务

./voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

Misc服务函数类型

pfn_IFX_CMGR_InfoRcv :回调函数通知分配消息

pfn_IFX_CMGR_OffHkCidRcv: 回调函数接收摘机的CID消息

 

Misc服务结构体概要

x_IFX_CMGR_CallBackList

 

Misc服务函数概要.

/voip_ifx_gateway_appln/Interface/IFX_CallMgrIf.h

/voip_ifx_gateway_appln/Agents/src/IFX_RTP_Agent.c

./voip_ifx_gateway_appln/Agents/src/IFX_FAX_Agent.c:

./voip_ifx_gateway_appln/Agents/src/IFX_FXO_Agent.c                     

./voip_ifx_gateway_appln/Agents/src/IFX_CFG_Agent.c:                              

./voip_ifx_gateway_appln/Agents/src/IFX_FXS_Agent.c:              

./voip_ifx_gateway_appln/Agents/src/IFX_FXS_Agent.c                                              

 

IFX_CMGR_CallBacksRegister :函数注册代理的调用管理的回调函数

IFX_CMGR_CallBacksUnRegister :函数注销代理调用管理的回调函数

IFX_CMGR_InfoSnd :函数在代理之间的消息交换

IFX_CMGR_Init :函数初始化调用管理

IFX_CMGR_LineIdFromCallIdGet :函数获得VoIP线路的一个特殊的呼叫标识

IFX_CMGR_LineIdFromReqIdGet :函数获得VoIP线路的一个特殊的呼叫标识的申请

IFX_CMGR_OffHkCidSnd :函数获得摘机的CID的前端信息

IFX_CMGR_PrivateDataFromCallIdGet :函数提供私有的数据给特定的标识符

IFX_CMGR_PrivateDataFromReqIdGet :函数使用私有的数据给特定的标识申请

IFX_CMGR_PrivateDataToCallIdSet :函数设定私有数据给特定的呼叫标识

IFX_CMGR_PrivateDataToReqIdSet :函数设定私有数据给特定的申请标识

IFX_CMGR_Shut :函数关闭调用管理

 

 

 

 

 

 

 

 

 

 

MMGR实现功能接口,使用CMGR和各个终端节点的使用的MMGR接口。

• Basic Telephony

帮助代理处理信号资源,播放和停止语音(调用过程和DTMF)、CID和接收,发送连接时间到FXO接口和传输/接收FSK数据

 

基本电话服务的结构体

e_IFX_MMGR_CidRxMode

 

x_IFX_MMGR_CidParams

x_IFX_MMGR_FreqGain

x_IFX_MMGR_FSK_CallDuration

x_IFX_MMGR_FSK_ChargeParam

x_IFX_MMGR_FSK_Data

x_IFX_MMGR_FSK_DateTime

x_IFX_MMGR_FSK_DisplayInfo

x_IFX_MMGR_FSK_MsgId

x_IFX_MMGR_Tone

基本电话服务的枚举

e_IFX_MMGR_CidTxMode

e_IFX_MMGR_CodecType

e_IFX_MMGR_FSK_CallFwdType

e_IFX_MMGR_FSK_CallingUserType

e_IFX_MMGR_FSK_CallType

e_IFX_MMGR_FSK_MsgType

e_IFX_MMGR_FSK_ParamType

e_IFX_MMGR_Return

e_IFX_MMGR_ToneType

基本电话服务函数概要

./voip_ifx_gateway_appln/MediaMgr/src/IFX_MediaMgr.c

./voip_ifx_gateway_appln/Interface/IFX_MediaMgrIf.h

IFX_MMGR_ApohStatusGet :获得在线路上其他的电话的摘机状态

IFX_MMGR_CidRxStart :这个功能在FXO 线路是哪个有开始CID接收的函数

IFX_MMGR_CidRxStop :这个函数在FXO线路是停止CID的接收

IFX_MMGR_CidTxStart :这个函数开始在FXS终端的CID接收

IFX_MMGR_CptdStart :这个函数开始在FXO线路上的调用过程语音检测

IFX_MMGR_CptdStop :这个函数停止在FXO线路上的调用过程语音检测

IFX_MMGR_DectResActivate :这个函数激活了DECT通道资源和先前获得试用

                              IFX_MMGR_DectResAlloc 的呼叫

IFX_MMGR_DectResAlloc :这个函数保留了可以利用的资源池的DECT通道资源

IFX_MMGR_DectResDeActivate :这个函数激活了一个先前分配的DECT通道

IFX_MMGR_DectResDealloc :这个函数释放了DECT通道资源

IFX_MMGR_DtmfPlayLocal :这个函数产生了DTMF语音

IFX_MMGR_DtmfPlayRemote :这个函数播放在连接的DTMF语音

IFX_MMGR_DtmfStopLocal :这个函数停止当前播放的语音表

IFX_MMGR_DtmfStopRemote :这个函数停止了在网络侧的DTMF语音

IFX_MMGR_FSKDataRcv :这个函数接收了FSK的数据传输

IFX_MMGR_FSKDataSnd :这个函数发送FSK的数据

IFX_MMGR_HookFlashSet :这个函数发送在FXO到PSTNHook Flash事件

IFX_MMGR_OffHookSet :这个函数设定FXO线路到摘机状态

IFX_MMGR_OnHookSet ;这个函数设定FXO 线路在挂机状态

IFX_MMGR_RingCadenceTimeGet :这个函数设定振铃节奏

IFX_MMGR_SetFxsToActive :这个函数设定FXS激活状态

IFX_MMGR_SetFxsToStandBy :这个函数设定FXS

IFX_MMGR_SigResAlloc :这个函数分配了信号资源channel

IFX_MMGR_SigResDealloc :这个函数释放了分配的信号资源channel

IFX_MMGR_ToneAdd :这个函数增加了保存在媒体管理的一个新的语音表

IFX_MMGR_TonePlay :这个函数在一个终端播放语音

IFX_MMGR_ToneRemove :这个函数移除了来自媒体管理的先前注册的语音表

IFX_MMGR_ToneStop :这个函数播放了一个终端的语音表

 

• Media Control

帮助代理和CMGR去处理和配置媒体资源给VoIP的调用和建立会话的媒体通道

 

媒体控制服务结构体

x_IFX_MMGR_CodecInfo

x_IFX_MMGR_CodecList

x_IFX_MMGR_JitterBuffer_Conf

x_IFX_MMGR_MediaParams

x_IFX_MMGR_SessionInfo

x_IFX_MMGR_TelephonyEvent_Info

媒体控制服务枚举

e_IFX_MMGR_RFC2833_Rx_Action

e_IFX_MMGR_TelephonyEvent

e_IFX_MMGR_TypeOfCall

媒体控制函数概要

IFX_MMGR_MediaCfg :这个函数配置了一个呼叫的媒体配置

IFX_MMGR_MediaModify :在接出的媒体会话修改了媒体参数

IFX_MMGR_MixingDisable :这个函数关闭了固件语音流的混合

IFX_MMGR_MixingEnable :这个函数配置固件处理语音流的混合

IFX_MMGR_QosActivate :这个函数激活了RTP重定向的包流

IFX_MMGR_QosStart :这个函数是使能了RTP的重定向会话

IFX_MMGR_QosStop :这个函数关闭了RTP的重定向通道的包流

IFX_MMGR_ResFreeForCall :这个函数释放了所有的呼叫资源

IFX_MMGR_ResMove :这个函数转一个终端到另一个终端的转接

IFX_MMGR_ResReserveForCall :这个函数预留了需要的呼叫的所有的资源

 

 

 

• Miscellaneous

提供初始化和事件报道功能,帮助代理获得物理接口的事件,动态配置codec宽带和窄带

 

Misc服务结构体概要

ux_IFX_MMGR_Device_Params

x_IFX_MMGR_ChannelParams

x_IFX_MMGR_Coder_ResourceInfo

x_IFX_MMGR_Coder_Resources

x_IFX_MMGR_CountrySettingsParams

x_IFX_MMGR_DECT_ResourceInfo

x_IFX_MMGR_DECT_Resources

x_IFX_MMGR_Device_Info

x_IFX_MMGR_DeviceEvents

x_IFX_MMGR_DspDevParam

x_IFX_MMGR_FdSet

x_IFX_MMGR_FXO_ResourceInfo

x_IFX_MMGR_FXO_Resources

x_IFX_MMGR_FxoDevparam

x_IFX_MMGR_FXS_ResourceInfo

x_IFX_MMGR_FXS_Resources

x_IFX_MMGR_GR909_Param

x_IFX_MMGR_GR909_Result

x_IFX_MMGR_InitParams

Misc服务枚举类型

e_IFX_MMGR_CidStd

e_IFX_MMGR_GR909_Freq

e_IFX_MMGR_GR909_TestType

Misc服务函数概要

IFX_MMGR_ChannelReCfg :这个函数重新再通道接口重新配置参数

IFX_MMGR_DeviceEventsGet :这个函数返回了在设备中的事件发生

IFX_MMGR_GR909TestStart :这个加密手机开始在FXS端口的GR909的测试

IFX_MMGR_Init :这个函数初始化媒体管理

 

MAPI-V数据模型实现配置代理和管理接口web和TR104,方位VoIP的数据模块接提供有限的分析数据。

 

对象和方法

 

Objects 描述了MAPI Voice对象

./voip_ifx_vmapi/src/ifx_vmapi_obj_param_tbl.c

/voip_ifx_vmapi/h/ifx_vmapi.h

 

Methods 描述了MAPI Voice方法

./voip_ifx_vmapi/src/ifx_vmapi_api.c

./voip_ifx_vmapi/h/ifx_vmapi_api.h

./voip_ifx_vmapi/test/ifx_vmapi_test.c

 

 

Configure API帮助VoIP子系统模块方位VoIP子系统的参数

 

SIP工具包API

通过SIP代理和实现SIP用户代理功能

• SDP message

./voip_ifx_network_agent/src/IFX_SDPAPP_ParsePredefAttr.c

./voip_ifx_sip/stack_h/IFX_SDP_GetSet.h

 

• SIP Call Control

 

 

• Dialog Handling

./voip_ifx_network_agent/src/IFX_SIPAPP_CallIf.c

./voip_ifx_network_agent/src/IFX_SIPAPP_Uas.c

 

• Event Package

./voip_ifx_network_agent/src/IFX_SIPAPP_Refer.c

./voip_ifx_network_agent/src/IFX_SIPAPP_CallBk.c

• Messaging

 

 

• SIP Headers

• Option method handling

• Registration

• Stack Configuration

• Transaction handling

• Signaling Compression

 

RTP工具包API

这个工具包API提供功能帮助RTP代理管理RTP会话和处理RTP和RTCP包相关功能,

 Media Session

帮助创建和RTP和RTCP会话和帮助声音媒体,这个媒体会话服务保持在数据库相联系的数据过程中。

 

1)媒体会话服务结构体

x_IFX_RTP_AddOnCallBks

x_IFX_RTP_CallBks

x_IFX_RTP_SyncCallBks

  1. 媒体会话枚举概要

e_IFX_RTP_AddOnType

 

  1. 媒体会话服务函数概要

./voip_ifx_rtp/app/src/ifx_rtpapp_app.c

./voip_ifx_rtp/app/src/ifx_rtpapp_app.c

 

IFX_RTCP_SessConfig:配置RTCP会话参数

IFX_RTP_GetRxSSRC :获得远程的SSRC会话

IFX_RTP_GetSdesItem :获得Sdes项目连接会话和连接

IFX_RTP_Init :函数初始化RTP协议栈和数据库

IFX_RTP_RtpShut: 关闭RTP歇息栈和RTP的资源联系

IFX_RTP_SessAddToConfList: 加入新的会话到会话列表

IFX_RTP_SessClose :关闭会话

IFX_RTP_SessConfig :函数配置会话参数

IFX_RTP_SessCreate :函数创建会话和返回会话ID

IFX_RTP_SessGetRtcpFooterSize: 会话获得RTCP的footer的大小

IFX_RTP_SessGetRtcpHeaderSize :会话获得RTCP的header的大小

IFX_RTP_SessGetRtpFooterSize :会话获得RTP的footer的大小

IFX_RTP_SessGetRtpHeaderSize :会话获得RTP的header的大小

IFX_RTP_SessGetRtpSequenceNum: 会话获得RTP顺序标号

IFX_RTP_SessGetSsrc :会话获得SSRC

IFX_RTP_SessOpen :打开会话

IFX_RTP_SessRegisterAddOn: 会话增加注册

IFX_RTP_SessRemoveFromConfList: 从会话列表中移除会话

IFX_RTP_SessSendRawPkt :函数发送原始的RTP包

IFX_RTP_SessSendRtcpPkt :函数范松RTCP包

IFX_RTP_SessSendRtpPkt :函数发送RTP包到既定的会话

IFX_RTP_SessSetAddOnProcAidData :函数设置procAid给Addon

IFX_RTP_SessSetSsrc :函数会的SSRC会话

IFX_RTP_SetSdesItem :函数设定联系的Sdes 项目

IFX_RTP_SetSessPocSessId: :函数设定Poc会话Id到会话Id

IFX_RTP_StackCfg :函数配置RTP协议栈参数

IFX_RTP_SyncRecvPkt: 函数接收来自SYNC模式的RTP

 

 

• RTP/RTCP Packet handling

设置接收独立的字段在接收RTP和RTCP包处理

  1. 包处理结构体

x_IFX_RTCP_App

x_IFX_RTCP_Bye

x_IFX_RTCP_Header

x_IFX_RTCP_RR

x_IFX_RTCP_SDES_PRIV_Item

x_IFX_RTCP_SdesItemBlock

x_IFX_RTCP_SdesItems

x_IFX_RTCP_SR

x_IFX_RTP_Header

  1. 包处理枚举

e_IFX_RTCP_PktType

e_IFX_RTCP_SDES_Item

  1. 包处理服务函数

./voip_ifx_rtp/stack/src/ifx_rtp_api.c

./voip_ifx_rtp/stack_h/ifx_rtp_pkt.h

IFX_RTCP_BYE_GetByeOpt :获得RTCP包的Bye字段

IFX_RTCP_BYE_GetSsrc :获得RTCP包的SSRC

IFX_RTCP_GET_SDES_Size :获得RTCP SDEC包的大小

IFX_RTCP_GetSdesItemFromPkt :获得RTCP SDES包的SDES项目

IFX_RTCP_RR_GetRepBlock :接收RTCP包的块

IFX_RTCP_SetAppData :设定RTCP的APPPKTAPPData

IFX_RTCP_SetAppName :设定RTCP的APPPKTAPPData

IFX_RTCP_SetAppSubType :设定RTCP的APP的子类型

IFX_RTCP_SR_GetSenderInfo :设定Sender显示接收RTCPSR

IFX_RTP_APP_GetAppRec: 获得APP包的来自RTCPAPP

IFX_RTP_GetRtcpHdr :接收RTCP包的RTCP

IFX_RTP_GetRtpExtnHdr :获得RTP的扩展的头

IFX_RTP_GetRtpHeader :从接收的RTP包获得RTP

 

实用工具API包含以下的服务

• Debug

• Timer

• IPC

• OS Interface

 

模块概要:

1)Misc服务:显示杂项服务

结构体

x_IFX_CalledAddr

x_IFX_Codec

x_IFX_CodecLis

x_IFX_FaxCfg

x_IFX_FaxParams

x_IFX_MediaParams

x_IFX_RtpParams

 

枚举

e_IFX_AddrType

e_IFX_DtmfType

e_IFX_Mode

e_IFX_ReasonCode

e_IFX_Return

e_IFX_TransportType

2)拨号方案服务:认识拨号方案函数

结构体:x_IFX_DP_Rule

枚举体:e_IFX_DP_Action

 

3)定时服务:提供定时接口模块

函数类型

pfn_IFX_TIM_TimerCallBack

IFX_TIM_Init

IFX_TIM_Shut

IFX_TIM_TimerMsgReceived

IFX_TIM_TimerStart

IFX_TIM_TimerStop

消息路由API

帮助代理注册事件和手机的消息的回调函数,实用这些功能导出文件描述符。

 

 

 

 

 

 

 

 

 

----------------------------------------------------------

VOIP的代理(客户端)的调用管理配置

---------------------------------------------------------

 

1、VoIP代理端的配置

 

  1. 给代理配置服务的结构体

x_IFX_AgentStatus

x_IFX_CIF_DectSubsInfo

x_IFX_CIF_FxResourceInfo

  1. 给代理配置服务的枚举

e_IFX_AgentState

  1. 给代理配置服务的函数

./voip_ifx_gateway_appln/Utils/src/IFX_CfgIf.c

 

IFX_CIF_AddrBookEntryGet :这个函数加入新的实体去调用注册

IFX_CIF_AddressBookEntryModify :这个函数需要获得默认的FAX端口进行配置

IFX_CIF_AssocLineIdSet :这个函数分配了DECT手持设备到线路中

IFX_CIF_BS_NameGet :这个函数重置了DECT基本初始化的名称

IFX_CIF_BS_PinGet :这个函数重置了基本的pin

IFX_CIF_BS_PinSet :这个函数设置了基本的pin

IFX_CIF_CallReturnAddrGet :这个函数重置了终端的调用返回参数

IFX_CIF_CountryNameGet :这个函数重置了当前应用的国家

IFX_CIF_DectDbgGet:这个函数重置配置DECT的高斯值

IFX_CIF_DectEncryptionFlagGet :这个函数重置了DECT加密的标志

IFX_CIF_DectSubsInfoGet :这个函数重值了手持设备的订阅信息

IFX_CIF_DectSubsInfoSet :这个函数重置了DECT系统的高斯值

IFX_CIF_DefaultOutBoundIfGet :这个函数获得了默认的国外接口VoIP/PSTN的呼叫

IFX_CIF_DefaultOutBoundIfSet: 这个函数设置了默认的国外终端接口

IFX_CIF_DeviceListGet :这个函数重置了设备列表的获得

IFX_CIF_EndptAnonymousCallBlockSet :这个函数设定了异步物理块列表

IFX_CIF_EndptCallFwdInfoSet :这个函数配置了默认线路上的呼叫前向选项

IFX_CIF_EndptCallWaitingSet :这个函数切换默认语音线路终端的呼叫等待提示功能

IFX_CIF_EndptCidStatusSet :这个函数切换了在默认线路终端的CID传输

IFX_CIF_EndptDataUpdate :这个函数切换了终端数据的更新

IFX_CIF_EndptDefaultVLRegStatusCheck :这个函数核对语音线路是否被注册

IFX_CIF_EndptDefaultVLSet :这个函数设定默认的语音线路的终端

IFX_CIF_EndptDNDStatusSet :这个函数设定在默认的终端的DND的状态

IFX_CIF_EndptListGet :这个函数设置一个特定的类型去重置终端

IFX_CIF_EndptVLListGet :这个函数通常获得联系终端的语音线路列表

IFX_CIF_EndptVLListSet :这个函数设定终端的语音线路

IFX_CIF_EndptVMRetrievalAddrGet :这个函数获得重置地址的语音的mailbox

IFX_CIF_EndptVMStatusCheck :这个函数核对是否语音线路已经不读语音mails

IFX_CIF_FreeVmapiObj :这个函数释放VMAPI列表对象

IFX_CIF_FxEndptResInfoGet :这个函数重置FXS.FXO终端资源消息

IFX_CIF_FxoCallForwardAddrGet: 这个是FXO呼叫的前端地址

IFX_CIF_FxoModeGet :这个是FXO线路模式的获得

IFX_CIF_FxoSmsScNumberGet :这个是FXO线路的SMS-SC编号

IFX_CIF_FxoVLIdGet :这个是FXO线路的语音线路的ID的获取

IFX_CIF_FxsSMSCapablityCheck :这个电话连接的FXS端口设备是否是SMS容量

IFX_CIF_FxsWidebandCapablityCheck :这函数是电话连接的FXS端口设备是否是宽带设备

IFX_CIF_IncomingCallBlockCheck :这个函数是接入调用块检查

IFX_CIF_Init :这个函数初始化配置接口

IFX_CIF_IsInterceptAllowed :这个函数核对是否允许

IFX_CIF_IsIntrusionAllowed :这个函数核对是否线路允许

IFX_CIF_IsLineTypeMulti :这个函数检测是否语序相同的对个呼叫,还是单一的呼叫

IFX_CIF_OutgoingCallBlockCheck :这个函数检查试过阻塞和允许接出呼叫

IFX_CIF_ProfileIdListGet :这个函数重置语音文件的标识列表

IFX_CIF_RFPIGet :

IFX_CIF_UnsolicitedNtfyStatusGet 这个函数通常核对是否通知被接受

IFX_CIF_UpdateProfilePorts :这个函数更新文件端口

IFX_CIF_VLRegisterStatusSet :这个函数在语音线路设置注册状态

IFX_CIF_VLVMStatusSet :这个函数设置Voice mail的状态

IFX_CIF_VLVMWaitingStatusSet :这个函数设置语音线路的Voice mail

IFX_UpdateEnptDefaultLine :这个函数跟新所有的终端线路id

 

2、调用管理的配置服务

配置调用管理的配置服务的函数概要

./voip_ifx_gateway_appln/Utils/src/IFX_CfgIf.c

./voip_ifx_gateway_appln/CallMgr/src/IFX_LineMgr.c

 

IFX_CIF_CallRegisterAdd :这个函数开始加入新的实体到调用注册

IFX_CIF_DefaultFaxPortGet 这个函数使用默认的FAX端口进行配置

IFX_CIF_EndptCodecListGet :这个函数冲洗分配了语音文件id列表

IFX_CIF_EndptDefaultFxoLineGet :这个函数使用给终端使用默认的FXO线路id

IFX_CIF_EndptDefaultVLGet :这个函数获得终端默认的语音线路

IFX_CIF_EndptLinesGet :这个函数获得终端的线路id的联系

IFX_CIF_EndptTypeGet :这个函数获得终端的类型

IFX_CIF_FxoLineEndptListGet :这个函数获得FXO线路与终端的联系

IFX_CIF_GetCallFrwdDomain :这个函数获得呼叫前端的与地址

IFX_CIF_ReleasePort :这个函数获得释放的端口

IFX_CIF_UrlFromVLGet :这个函数获得语音线路的addr(URL

IFX_CIF_VLAnonCallBlkStatusGet :这个函数获得语音线路的异步呼叫块状态

IFX_CIF_VLCallFwdInfoGet :这个函数使用呼叫语音线路的前向信息

IFX_CIF_VLCallWaitingCheck :这个函数使能语音线路的前向信息

IFX_CIF_VLCidStatusGet :这个函数是语音线路的CID状态

IFX_CIF_VLCodecInfoGet :这个函数重置语音线路codec列表和参数

IFX_CIF_VLDigitMethodGet :这个函数重置语音线路的DTMF传输类型

IFX_CIF_VLDNDStatusGet :这个函数获得语音线路的DND状态

IFX_CIF_VLEndptListGet :这个函数获得语音线路的终端列表

IFX_CIF_VLFaxMediaCfgGet :这个函数获得媒体Fax传真配置

IFX_CIF_VLFromUrlGet :这个函数获得SIP URL的语音线路

IFX_CIF_VLJBCfgGet :这个函数获得语音线路的Jiffer Buffer

IFX_CIF_VLModeGet :这个函数获得语音线路的模式

IFX_CIF_VLRtpMediaCfgGet: 这个函数获得RTP媒体参数通知语音线路

IFX_CIF_VLSIDCheck :这个函数重置SID

IFX_CIF_VLStatusGet :这个函数获得语音线路的状态

IFX_CIF_VLVMStatusGet :这个函数重置了给定的语音线路的voice mail状态

 

三:调用流

 

 

  1. 子系统初始化

 

-配置代理,开始操作VoIP子系统,在开始的时候对芯片初始化

-MAPI-V模块初始化,这是确保其他模块在初始化的过程中是有效的

-实用工具模块,如定时器,调试进行初始化

-当系统支持DECT,DECT代理初始化DECT模块下载固件

-媒体管理和调用管理初始化

-配置媒体管理的回调函数

-终端和媒体代理初始化,在他们注册的过程中,回调函数也注册在调用管理中

-同样的方式初始化SIP代理

-SIP代理使用数据注册VoIP线路和初始化线路

-VoIP系统开始其他的功能

 

 

  1. 系统来自管理接口的配置

 

  1. MAPI-V获得来自适配层的请求,如Web/TR104AL
  2. TAPI用新的数据更新rc.conf。MAPI-V使用MAPI的框架存档
  3. 配置代理和通知MAPI-V改变到特性的对象,配置代理通知这个改变
  4. 配置代理包含新的数据和分配VoIP子系统模块
  5. 在一些情形下,当前的正在的调用可能会失去应用新值
  6. 一些VoIP文件和VoIP线路的参数的改变,可能会需要VoIP线路去注销和暂时取消订阅

 

 

  1. 基本呼叫情形

• Internal Call between endpoints in a Gateway

 

  1. 用户获得FXS终端的摘机信号,摘机事件被TAPI报导到FXS代理
  2. FXS代理从媒体管理获得信号资源,信号资源需要播放资源
  3. 媒体管理资源在信号资源有效和音频固件被正在运行的信号资源加载之后,才分配资源
  4. 在信号资源成功获得之后,FXS开始播放拨号音,FXS代理使用媒体管理函数播放语音
  5. 在第一次数字接收停止后,拨号音停止,每次接收数字,FXS代理唤醒数字编号方案函数匹配拨号串。
  6. 通信动作被提取和规则相匹配,就这个例子而言,通信动作建立内部呼叫
  7. FXS代理唤醒调用管理函数初始化另一个FXS的呼叫,在这个类型的拨号也被提示,这个调用类型是数字编号方案的输出
  8. 调用管理唤醒媒体管理函数去保存呼叫的资源
  9. 媒体管理保存申请的资源和诊断CPU是否有足够用的能力运行这次呼叫
  10. 成功保存资源后,调用管理唤醒在FXS接入调用函数
  11. FXS代理分配信号资源给第二个终端,在终端振铃以前,这个振铃状态也通过回调函数作为输出。
  12. 这个调用管理的转态通知FXS代理的Context中第一个终端
  13. FXS代理给第一个终端播放回铃音
  14. 当用户开始摘机应答呼叫的时候,FXS代理,在context中的第二个终端唤醒调用福安里的呼叫应答函数
  15. 调用管理唤醒远FXS代理context中的第一个终端的远程呼叫应答回调函数,这个FXS代理停止在第一个终端的回铃音
  16. 这个调用管理调用媒体管理函数去交互连接FXS终端件的语音路径
  17. 在这个时间节点,两个用户在会话中

 

 

 

• External Call between the Gateway and PSTN

 

  1. 用户开始在FXS终端摘机,这个摘机事件通过TAPI被报导在FXS代理
  2. FXS代理需要申请来自媒体管理的信号资源,信号资源需要播放拨号音
  3. 媒体管理资源在信号资源有效和音频固件被正在运行的信号资源加载之后,才分配资源
  4. 在成功获得信号资源的时候,FXS开始播放拨号音FXS代理使用媒体管理函数播放语音
  5. 在第一次数字接收停止后,拨号音停止,每次接收数字,FXS代理唤醒数字编号方案函数匹配拨号串。
  6. 通信动作被提取和规则相匹配,就这个例子而言,通信动作建立PSTN呼叫
  7. FXS代理唤醒调用管理区初始化PSTN的呼叫,在这个功能,呼叫的类型也被提示,这个呼叫的类型作为编号方案处理的输出
  8. 媒体调用管理唤醒媒体管理函数去保存呼叫的资源
  9. 媒体管理保存申请的资源和诊断CPU是否有足够用的能力运行这次呼叫
  10. 在成功分配信号资源到FXO线路的时候,这个调用管理唤醒FXO代理的呼叫回调函数
  11. 这个FXO代理分配信号资源给FXO线路,这个信号资源需要在FXP线路产生信号事件
  12. 这个FXO代理,在FXO线路中接收一个摘机事件和开始拨号这个数字,在终端,这个网关已经连接了PSTN,这些数字被拨号一个接着一个在极短事件内传输
  13. 在完整的PSTN号码被拨号之后,这个FXO代理换气呼叫应答函数显示呼叫已经被远端的对方应答
  14. 这个调用管理使用远程呼叫应答回调函数通知FXS代理
  15. 这个FXS用户连接PSTN和开始接听PSTN,这个回铃音和忙音开始被接收
  16. 当PSTN用户开始接受呼叫,通话开始了

 

接出到PSTN可以建立两种方式

• Single stage dialing

• Two stage dialing

 

 

 

• External Call between the Gateway and VoIP

接入:

 

 

  1. 这个SIP代理接收来自远端VoIP实体的SIP INVITE消息
  2. 这个SIP代理唤醒调用管理函数去初始化FXS端口的呼叫
  3. 这个媒体参数,codecs,远程rtp/rtcp端口数字开始连接调用管理初始化申请
  4. 这个媒体管理核对一个语音线路(SIP account)的存在和一些物理终端
  5. 这个调用管理开始唤醒媒体管理功能保存资源
  6. 这个媒体管理开始保存一个编码资源和开始核对CPU的负载足够运行这个申请的Codec的呼叫,如果CPU负载不足,那么媒体管理匹配一个合适的CPU负载。
  7. 在成功保存资源的时候,调用管理在FXS唤醒接入呼叫调用函数。
  8. FXS代理需要来自媒体管理的信号资源,这个信号资源在FXS播放振铃音。
  9. 这个FXS代理唤醒TAPI振铃服务播放振铃音
  10. 这个振铃的状态在调用管理返回参数的接入呼叫回调函数作为返回参数
  11. 这个调用管理连接同一个状态到SIP 代理作为初始化呼叫函数的返回参数
  12. 这个SIP代理在振铃状态通讯连接到远程的VoIP对方和SIP 180振铃消息
  13. 一旦用户开始摘机,这个振铃语音开始停止,FXS代理花型调用管理的呼叫应答函数去显示用户呼叫应答
  14. 这个调用管理唤醒媒体管理的媒体配置函数去做RTP配置,jitter Buffer(抖动缓存)配置和配置合适的编码资源和是和的Codec类型
  15. 这个调用管理也唤醒了媒体会话,创建了了RTP的回调函数器创建RTP呼叫会话。
  16. 这个调用管理唤醒SIP代理的呼叫应答回调函数去显示回答呼叫的本地终端
  17. 这个SIP代理结合SDP参数去咨询200响应到通过唤醒媒体管理函数获得SIP INVITE消息
  18. 这个SIP代理发送200响应,在这个时间点,双方在在会话中

 

这个调用流也许展现了VoIP的断开,就这个而言,FXS终端用户断开呼叫

  1. 当本地用户断开连接,这个挂机事件写入了FXS代理,这个FXS代理唤醒媒体管理去重新分配信号资源
  2. 这个FXS的代理然后唤醒呼叫调用管理的释放函数显示用户终端挂机
  3. 这个调用管理唤醒体制RTP代理的媒体会话回调函数,这是调整终端的RTP会话
  4. 这个呼叫管理唤醒媒体管理的释放资源函数去释放codec资源和CPU负载
  5. 在释放资源之后,这个调用管理唤醒SIP代理的回调函数,这发送SIP BYE到远端VoIP实体

 

 

  1. 用户获得FXS端口的摘机信号,这个摘机事件被TAPI报导到了FXS代理
  2. 这个FXS代理需要来自媒体管理的信号资源,这个信号资源西药播放拨号音
  3. 这个媒体管理在核对是否信号资源有效和音频固件是否被正在运行的信号资源加载后准许分配资源
  4. 在成功获得信号资源之后,在FXS代理播放语音,这个FXS代理使用媒体管理语音服务区播放拨号音
  5. 在第一次数字接收停止后,拨号音停止,每次接收数字,FXS代理唤醒数字编号方案函数匹配拨号串。
  6. 通信动作被提取和规则相匹配,就这个例子而言,通信动作建立VoIP呼叫
  7. FXS代理唤醒调用管理区初始化对远端VoIP的呼叫,在这个功能,呼叫的类型也被提示,这个呼叫的类型作为编号方案处理的输出
  8. 调用管理核对FXS终端是否连接了,如果连接,它保存Codecs,RTP/RTCP端口号码和来自线路数据的SIP信号的参数
  9. 这个调用管理唤醒媒体管理功能区保存呼叫的资源
  10. 这个媒体管理保留了编码资源和核对了CPU负载是否对运行在codec的呼叫充足,如果CPU负载不足,那么媒体管理匹配一个合适的CPU负载。
  11. 在成功保存资源之后,这个调用管理唤醒SIP代理的回调函数
  12. 这个SIP代理需要给调用管理给呼叫参数,这个数据需要产生和传输SIP INVITE消息到远端VoIP对端
  13. SIPdialing在接收远端VoIP对方的180响应,唤醒呼调用管理的叫接收函数显示远端的VoIP实体接收。
  14. 接收呼叫信号重新回到FXS代理,将分配回铃音给FXS终端
  15. 这个SIP代理,接收来自远端VoIP的200响应,唤醒调用管理的呼叫应答函数显示远端应答呼叫
  16. 这个调用管理唤醒获得呼叫参数去取得协商参数,这个呼叫配自己哦媒体管理的媒体函数,这个媒体管理函数RTP配置,用合适的参数配置jitter Buffer和Coder资源。
  17. 这个调用管理唤醒媒体会话穿件RTP代理的回调函数刦创建呼叫的RTP会话
  18. 这个呼叫管理唤醒FXS代理调用函数显示VoIP应答这次呼叫
  19. 这个FXS代理停止回铃音
  20. 在这个时间,双方建立通话

 

 

 

 

 

  1. 补充呼叫情形

• Call Hold

 

  1. 这个VoIP呼叫(在FXS终端和远程VoIP端)在会话中
  2. 这个FXS代理,在接收用户放置呼叫保持的接收输入(Hook Flash),唤醒调用管理呼叫保持函数显示用户想要放置呼叫为保持状态
  3. 这个调用管理唤醒呼叫SIP代理的保持回调函数,显示FXS代理正在建立呼叫保持
  4. 这个SIP代理唤醒参数功能和建立再次的Re-INVITE请求
  5. 这个远端的VoIP端口联系Re-INVITE的200响应
  6. 这个SIP代理唤醒呼叫保持函数
  7. 这个呼叫管理然后唤醒获得参数参数函数去再次修改会话的参数,这个修改的媒体管理的媒体函数被决定去修改会话
  8. 这个调用管理然后唤醒保持回调函数去通知FXS代理关于呼叫保持的成功的状态
  9. 呼叫下载保持

 

 

 

 

 

• Call Resume

  1. 这个VoIP呼叫(在FXS终端和远程VoIP方)被保持
  2. 这个呼叫被FXS唤醒,这个FXS代理唤醒调用管理的调用函数去继续这个保持呼叫
  3. 这个调用管理转而唤醒SIP代理的继续拨号回调函数
  4. 这个SIP代理发送Re-INVITE请求给远方的VoIP方和等待200响应
  5. 接收200响应,这个SIP代理唤醒呼叫响应功能
  6. 这个调用管理然后唤醒重新修改会话的参数,这个修改媒体管理的媒体函数的会话被修改
  7. 这个调用管理然后被唤醒调用唤醒响应功能去通知FXS代理关于成功的转态和呼叫继续的申请
  8. 呼叫开始继续

 

 

• Call Forwarding

 

  1. 这个从FXS终端及接入到远端的VoIP对方的呼叫建立起来
  2. SIP代理接收302消息从远端的VoIP对方显示需要的forward到另一个VoIP对方
  3. 这个SIP代理唤醒释放呼叫函数,显示因为forward请求接收,呼叫被释放
  4. 这个调用管理唤醒了呼叫的forward回调函数通知FXS代理关于呼叫被转移,这个呼叫管理也提供了可能被藤椅代理所显示的呼叫forward消息。
  5. 这个调用管理释放了所有的呼叫资源,同一时间,这个调用管理也保留了所有的forward的呼叫
  6. 新的forward的呼叫已经被建立起来了。

 

• Attended Call Transfer

 

  1. Call 1在网关FXS终端和远程的VoIP端口RV1,Call 2在同一个FXS终端和远程的VoIP对方RV2对端。
  2. 当FXS代理初始化attended呼叫transfer,唤醒attended呼叫transfer函数的时候,Call 1和Call 2保持
  3. 这个调用管理,唤醒SIP代理的attended 转移回调函数功能
  4. 这个SIP代理初始化通过发送REFER 替换RV1的申请,Rv1初始化一个呼叫为Rv2
  5. 在从Rv1的REFER上接收200响应的时候,这个SIP代理呼叫attended转移状态函数接收转态
  6. 这个状态重新反馈给FXS代理,唤醒状态来自调用管理的attended transfer状态回调函数。
  7. 接收来自RV1的BYE请求,这个SIP代理唤醒呼叫释放函数去释放Rv1
  8. 这个调用管理释放Call 1的所用资源,并且唤醒呼叫释放回调函数终止call 1
  9. 在接收NOTIFY提示的时候,这个transfer已经实现了,这个SIP代理唤醒加入attended transfer状态函数去状态应答
  10. 这个调用管理释放保存的资源和初始化程序去终止Call2
  11. 这个调用transfer的状态给了FXS代理

 

• Blind Call Transfer

 

  1. 这个呼叫在FXS终端和远端的VoIP保持
  2. 这个FXS代理唤醒了绑定转移函数在呼叫管理,当用户试图绑定Rv2的呼叫的时候,查阅相关的编号方案规则去给比好代码处理化一个绑定转移。
  3. 这个调用管理,转而唤醒了SIP代理的bind transfer 回调函数
  4. 这个SIP代理初始化了tansfer发送REFER请求给RV1,RV1初始化和Rv2的呼叫
  5. 在接收从Rv1的REFER的200响应,这个SIP代理呼叫bind transfer状态函数接收状态
  6. 这个状态反馈给FXS代理通过来自调用管理的blind transfer 状态回调函数
  7. 在接收NOTIFY提示的时候,这个转移的是完成,这个SIP代理唤醒来自调用管理的回调函数
  8. 这个调用转移状态给了FXS代理
  9. 这个调用管理释放了所有的保存的资源和初始化程序终止呼叫

 

 

 

 

 

• 3 Party Conference

 

  1. 在这个例子中,Call 1显示了两个FXS终端和Call 2显示了一个FXS终端和远端VoIP端,Call 1和Call 2在保持状态。
  2. 在建立会话从用户的输出的过程中,这个FXS代理唤醒了调用管理的会话功能
  3. 这个调用管理先唤醒了Call 2,后唤醒了Call 1,这个过程唤醒了描述在上图的呼叫
  4. 在呼叫重新消耗之后和媒体会话转移之后,这个调用管理呼叫开始使能媒体管理函数去混合call 1和Call 2 的语音流
  5. 这个管理驱动在唤醒了在FXS代理的会话状态回调函数显示这个会话建立成功建立
  6. 这两个呼叫(Call 1 和 Call 2)此时在会话中。

 

第二个部分的调用流的步骤为关闭一个会话

  1. 这个请求关闭了来自远端VoIP对方的会话,就饿SIP BYE的请求而言
  2. 这个SIP代理唤醒了终止Call 2的呼叫
  3. 这个调用管理唤醒了在FXS代理的远端释放呼叫回调函数终止Call 2
  4. 这个调用管理也修改了媒体配置去关闭声音流的混合,这个保留的Call 2资源也被释放
  5. 这个调用管理报导了FXS代理通过唤醒状态回调函数,关闭了会话。
  6. 这个会话关闭了,只是Call 1是在激活状态。

06_openwRT Voice之TAPI与VoIP的应用编程相关推荐

  1. 《实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版)》一导读

    前 言 实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版) 鉴于Voice over IP(VoIP)技术迅速获得了市场的采纳,很多电话和数据网络领域的技术员.工程师和设计师现已 ...

  2. Google Voice的简单介绍。(一点都不简单)

    I. 引言 传统的通信方式一直存在着一些弊端,比如我想打电话,就得打开电话软件,想发短信就得打开短信软件,想发邮箱就得打开邮箱发送,通讯的时间成本可以说是巨大的. 通信方式繁琐的问题主要表现在以下几个 ...

  3. VoIP全球发展现状

    市场用户数持续高速增长 2006年全球IP电话用户从1030万增长到1870万,增幅达83%.预计2007年VoIP通话量将达到全部通话量的75%.数据显示,PC2Phone < src=&qu ...

  4. 靠谱的voip系统解决方案

    三种实现方式: (1)电脑到电脑 这种方式适合那些拥有 多媒体电脑( 声卡须为全双工的,配有 麦克风)并且可以连上互联网的用户,通话的前提是双方电脑中必须安装有同套网络电话软件. 这种网上 点对点方式 ...

  5. 74 Open Source VoIP Apps Resources 【转】

    有一个文章中提到据说不错,但是没找到翻译的,先记录在此. When a body of independent auditors and expertsrecommended that the Sta ...

  6. Asterisk权威指南/第一章 一场电话革命

    当我们开始着手写一本Asterisk书的时候(大概五年前),我们确信Asterisk将会从根本上改变通讯行业.今天,我们预言的这场革命几乎就要完成了.Asterisk现在是世界上最成功的PBX,并且是 ...

  7. freelance平台_完整的Freelance Web开发人员指南:如何通过Freelance编程工作来赚钱

    freelance平台 It's common for developers to go the freelance route. This is true for many who have jus ...

  8. Cisco网络管理的35个常见问题及解答

    1 问题:CiscoWorks for Windows是否能够管理到其它厂家的网络产品 ? 答案:只要第3方厂家的网络产品支持标准的SNMP的协议,那么CiscoWorks for Windows能够 ...

  9. 计算机专业术语全称及含义整理

    因为常常会看到一些缩写或者专业名词,如今開始有记录下来的习惯,记录下来的今后就都放在这个博文里,顺带会补上各自的含义便于查找. 1.用户界面User Interface UI       UI设计则是 ...

  10. (OK) 编译 cm-13-kiwi for (华为 荣耀 5X) - 成功

    编译 cm-13-kiwi for 荣耀畅玩5X =========================================================================== ...

最新文章

  1. uva 1610 聚会游戏
  2. 一个完整的DS1302时钟在STM32上的应用实例
  3. Spring的事务控制-基于注解的方式
  4. QT的QSplashScreen类的使用
  5. 华为智能手表与鸿蒙,不再是大号手环!华为鸿蒙手表来了:要和苹果抢生态?...
  6. java的静态如何理解_java中的静态是什么?如何理解?
  7. 【论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering
  8. 武装突袭3fps服务器不稳定,大神教你解决win10系统玩《武装突袭3》超级卡顿的详细技巧...
  9. 前端每日实战:76# 视频演示如何用纯 CSS 创作一组单元素办公用品(内含2个视频)...
  10. 一个简单的小程序demo
  11. 空间管理 - 碎片化问题及解决思路
  12. 文本分析主要包含哪些技术,文本分析技术的发展方向是什么?
  13. 旋转矩阵和角速度之间的关系
  14. 一千万的股票能一天卖出吗
  15. c语言程序设计教程内容,(C语言程序设计教程.doc
  16. 树莓派3B+使用镜像烧录安装系统与配置教程(入门向)
  17. bzoj 1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典【dp】
  18. springboot下载依赖包
  19. Oralce细粒度审计
  20. 设置coursera DNS

热门文章

  1. 社交网络时代下的网络营销
  2. 网络营销的方案及技巧
  3. html5 vr 制作软件,Object2VR中文免费版
  4. django相关报错知识整理
  5. 哪怕我变成一个庸俗女子
  6. 串口DMA方式发送接收
  7. 容器化运行wine模拟器制作开源代码索引chm文件
  8. win10计算机网络共享打不开,win10系统网络和共享中心打不开的详细方案
  9. Python学习历程-1-20180630
  10. 甘超波:NLP潜意识和意识