Professional Documents
Culture Documents
程序员开发手册
VERSION 6.86
长丰健业通讯技术有限公司
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-1-
手册 序言
欢 迎使用长丰健业新一代高性能CT 系列PCI 模拟中继语音卡。
今天,技术改变了人们的生活方式,CTI 技术让人们有了更多的通讯手段。长丰健业新一代高
性能PCI
语音卡,全面接口国际技术需求,采用多级高端DSP 处理器架构,专有的数字信号处理算法,
具有更高的
可靠性和性能优势。高密度全资源设计,提供更具竞争性的成效比;单块模拟中继语音卡可完
成24 通道
所有资源接入,分为语音、高端传真、短信数据收发、高阻监控、话务坐席5 大专业类别; CT系
列也是
目前高集成度、高带宽的PCI 语音卡;CT系列全面采用国际标准H.100 交换总线,可与其它
CT 系列的任
何语音资源板卡相交换,具有足够灵活的扩容空间,可支持更多的系统应用方案。
CT 系列统一了软件开发平台,所有语音卡使用同一驱动程序,模拟中继和数字中继使用同一
接口,
二者的应用程序可无逢移植。
一.本手册的编写:
本手册为长丰健业CT240A 系列24线PCI 模拟中继语音卡的程序员手册。
将为您在开发和使用CT240A系列语音卡时提供有益的帮助和参考。
CT240A 是长丰健业高密度、全资源PCI 24 线系列模拟语音卡的总称;包括CT240A 在内共有五
个产品型号:
CT240A 24线模拟中继CTI全资源语音卡
CT240AF 20线PCI高端语音传真卡
CT240AT 24线PCI短信数据收发卡
CT240MR 24线PCI高阻监控录音卡
CT240AG 24线高密度人工座席卡
本手册以CT240A 为介绍范本,其它各型号或配 置的模拟中继语音卡可参阅本手册使用。
二.本手册结构:本手册分为二部分
第一部分:CT240A硬件手册
注:本部分已经删除,并移入《硬件手册》中
第二部分:程序员开发参考手册
详细介绍了OCX编程接口和DLL编程接口,包括所有32 位Windows环境下的应用。
注:程序范例和测试工具。由于该部分不断更新,因此不包含在本手册中,但随卡配送在安装光盘中。程序范例
包含了范例程序的源代码供用户参考,测试工具则允许用户针对系统中可能出现的硬件故障作出测试分析。
让用户能够对系统的应用程序和硬件底层作出故障排查。
三.产品购买信息:您所购买的产品的具体型号和产品编号已标注在您收到的《质保证书》上。
本
套产品至少应包括:·语音卡一套(具体配置在购买时已确定)
·型号为CT-240A 的2 4路高精度电话接线分线盒
·50针电缆连接线
·程序员开发手册
·安装光盘一张
·质保证书
四.技术支持和服务:
如果在产品使用过程中遇有困难或需要特别技术协助,敬请您与我们联系,您将会得到我们及
时
的解答,我们的联系方法是:
地址:深圳市高新技术产业园区南区高新南一道中国科技开发院大楼7层
电话:(0755) 26994718 26994708 26994822 传真: 26994899
E-mail: techsupport@telefine.com E-mail: sales@telefine.com
同时您也可以登录我们的网站Http://www.telefine.com参阅。
-2-
目录
第一部分:CT240A硬件手册... 4
第二部分:CT240A程序员开发参
考....................................................................................................................... 5
一.统一开发平台(TASK)简介和安
装............................................................................................................. 5
1.1 总体介绍.... 5
1.2 软件的安装 6
二.驱动程序...................... 7
2.1 驱动程序功能............................................................................................................................ 7
2.2 驱动程序加载............................................................................................................................ 7
三.用户接口——DLL编程接
口..................................................................................................................... 7
3.0 使用名词.... 8
3.1 控制流程.... 8
3.2 数据结构.... 8
3.3 函数说明.... 9
BOOL __stdcall PCIINITCARD(long PARAM)......................................................... 9
BOOL __stdcall PCIEXITCARD ()............................................................................. 9
long __stdcall PCIGETCARDNUM() ......................................................................... 9
long __stdcall PCIGETCONFIGCARDNUM()......................................................... 10
long __stdcall PCIGETTOTALLOGICCHNUM() .................................................... 10
long __stdcall PCIGETCARDHARDWARESERIAL(long CARDNO) ................... 10
long __stdcall PCIGETCARDHARDWARETYPE (long CARDNO) .......................11
long __stdcall PCIGETLOGICCHNUM(long CHTYPE) ..........................................11
long __stdcall PCISENDMSG(RMSG *PMSG) ........................................................11
long __stdcall PCIGRABMSG(RMSG *PMSG,unsigned short MSGNUM).............11
3.4 函数PCISENDMSG 使用详细说明..................................................................................... 12
3.4.1 通道呼出(CALL)..................................................................................... 13
3.4.2 通道释放(RELEASE).............................................................................. 15
3.4.3 地址收全(ACM) ........................................................................................ 16
3.4.4 被叫应答(ACK)......................................................................................... 17
3.4.5 拍叉簧(FLASH)......................................................................................... 18
3.4.6 通道交换(ROUTER) ................................................................................. 19
3.4.7 电话会议(CONFERENCE) ....................................................................... 21
3.4.8 通道开关(ONOFF) .................................................................................... 22
3.4.9 设置参数(SETPARAM) ............................................................................ 22
3.4.10 多媒体(MEDIA) ........................................................................................ 22
3.5 函数PCIGRABMSG 使用详细说明.................................................................................... 22
3.5.1 通道呼入(CALL)..................................................................................... 23
3.5.2 通道释放(RELEASE).............................................................................. 25
3.5.3 地址收全(ACM) ...................................................................................... 27
3.5.4 被叫应答(ACK)......................................................................................... 27
3.5.5 拍叉簧(FLASH)......................................................................................... 28
3.5.5 上传消息分配到的呼出通道(UPMSG_CALLOUTCHANNEL).......... 29
3.5.7 电话会议(CONFERENCE) ....................................................................... 31
3.5.8 通道开关(ONOFF) .................................................................................... 31
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-3-
3.5.9 参数设置错误(PARAMERROR)...............................................................31
3.5.10 线路告警(ALARM)....................................................................................32
3.5.11 硬件故障(DAMAGE).................................................................................32
3.5.12 多媒体(MEDIA).........................................................................................33
四、用户接口—OCX 编程接口..................................................................................................................
34
4.0 使用名词....34
4.1 控制流程、结构.......................................................................................................................34
4.2 数据结构..34
4.3 属性说明..34
4.4 方法说明..36
4.4.1 通道呼出(CALL)......................................................................................37
4.4.2 通道释放(RELEASE)...............................................................................38
4.4.3 地址收全(ACM).........................................................................................38
4.4.4 被叫应答(ACK)..........................................................................................39
4.4.5 拍叉簧(FLASH) .........................................................................................39
4.4.6 通道交换(ROUTER) ..................................................................................40
4.4.7 电话会议(CONFERENCE)........................................................................40
4.4.8 通道开关(ONOFF).....................................................................................41
4.4.9 设置参数(SETPARAM) .............................................................................41
4.4.10 多媒体(MEDIA).........................................................................................42
4.5 事件说明..44
4.5.1 通道呼入(CALL)......................................................................................44
4.5.2 通道释放(RELEASE)...............................................................................45
4.5.3 地址收全(ACM).......................................................................................45
4.5.4 被叫应答(ACK)..........................................................................................45
4.5.5 拍叉簧(FLASH) .........................................................................................46
4.5.6 上传消息分配到的呼出通道(UPMSG_CALLOUTCHANNEL)...........46
4.5.7 电话会议(CONFERENCE)........................................................................46
4.5.8 通道开关(ONOFF).....................................................................................47
4.5.9 参数设置错误(PARAMERROR)...............................................................47
4.5.10 线路告警(ALARM)....................................................................................48
4.5.11 硬件故障(DAMAGE).................................................................................48
4.5.12 多媒体(MEDIA).........................................................................................48
五、呼叫流程状态图和多媒体资源使用流程状态
图.................................................................................50
附录............................................62
文档版本历史............62
-4-
第一 部分: CT240A 硬件 手册
注:本部分已经删除,并移入《硬件手册》中
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-5-
用户 接口
驱动 程序 配置 器
管理 器
第二 部分: CT240A 程序 员开发 参考
一.统一开发平台 (TASK)简介和安装
1.1 总体 介绍
长丰健业PCI 语音卡统一开发平台分为驱动程序、管理器、配置器和用户接口四大部分。
应用程 序
用户接 口PCICARD.DLL
硬件系统配置文件
MainCfg.INI(卡上物理 通道配置 )
MediaCfg.INI(多媒 体参数设 置)
TBCfg.INI(模拟 线外线配 置)
AGENTCfg.INI(模拟线内 线配置)
HBCfg.INI(模拟 线高阻模 块配置)
NO1cfg.INI(一号 信令参数 设置)
DSS1cfg.INI(ISDN信令参 数设置)
NO7CFG.INI(七号 TUP参数设 置)
NO7MTP.INI(七号 MTP参数设置)
驱动程 序
PCICARD.SYS
管道
管理器
MANAGER.EXE
第三方 中间件 ActiveX控件
(PCICARD.OCX)
语音合 成库
文件系统
直接编 程接口
配置器
CONFIG.EXE
硬件
-6-
(1)驱动程序检测硬件的存在,加载DSP 微代码,处理对时间敏感的一些流程。驱动程序采用
WDM结构,
在WINDOWS98/WINDOWS2000/WINDOWSXP 中的代码完全相同。该层软件用户不需要
关心。
(2)管理器负责对硬件资源进行调度,支持多种语音编码和文件格式,支持TTS 语音合成。通过
配置文
件设置硬件和软件参数,并进行数字信令处理。该层软件用户需要了解配置文件中参数的含义
和设置。
(3)用户接口通过层次划分,可以提供多个不同等级的平台,适用于不同性质的用户群。该层相
对于用
户来说是最重要的,通过该层接口,可以在VC++,BC++,VB,DELPHI,PB中控制语音卡。
用户接口目前主要提供DLL 动态库编程接口。DLL可以在
WINDOWS98/WINDOWS2000/WINDOWSXP环境下无
缝移植,用户代码不需要做任何改动。支持多线程环境。
(4)DLL 接口(直接编程接口)通过一个固定的消息结构来传递用户命令和硬件消息,为无阻塞
全异步方
式。适合于系统集成商和中间件开发人员使用。用户编程语言推荐为VC++或DELPHI。
(5)OCX 接口(ActiveX控件)实现标准的方法和事件,方便直接应用程序开发人员使用。本接口
基于DLL
接口实现,提供源码。
1.2 软件 的安装
1、硬件设备驱动程序的安装
长丰健业PCI 语音卡是即插即用的硬件设备,当机器启动时会自动监测到新插入的PCI语音卡,
并提
示用户需要提供硬件驱动程序安装盘。此时需要将保存有PCICARD.INF和PCICARD.SYS 两个
文件的光盘插入
电脑,并提供正确的文件路径(光盘:\Driver),系统将自动拷贝这两个文件,并加载。
当硬件驱动程序正确加载后,卡上的指示灯会指示运行状态,此时可以开始安装PCI卡软件的
开发品
平台部分。
2、TASK 其它部分的安装
运行安装盘上的SETUP.EXE 程序,按提示进行操作,系统将会拷贝所有需要的文件到系统内。
文件包
括管理器、用户接口程序、开发文档、事例程序和配置文件。配置文件拷贝时不会覆盖掉用户以前
的配置内
容。
当用户需要删除用户接口软件时,只要在"控制面板"中选择"添加删除程序",在列表中找到已
经安装
的本软件,按删除钮即可,系统会自动删掉除硬件设备驱动程序之外的所有文件。
用户接口程序安装后的文件列表:
文件名用途缺省安装路径
Manager.EXE 管理器程序\TeleFine\Tools
Config.EXE 配置器程序\TeleFine\Tools
TTSVOICE.VOC 语音合成库\TeleFine\Tools
MainCfg.INI 管理器使用硬件主配置文件\TeleFine\Tools
MediaCfg.INI 管理器使用的多媒体参数配置文件\TeleFine\Tools
NO1Cfg.INI 管理器使用的一号信令参数配置文件\TeleFine\Tools
NO7Cfg.INI 管理器使用的七号信令TUP参数配置文件\TeleFine\Tools
NO7Mtp.INI 管理器使用的七号信令MTP参数配置文件\TeleFine\Tools
DSS1Cfg.INI 管理器使用的ISDN 信令参数配置文件\TeleFine\Tools
TBCfg.INI 管理器使用的模拟外线配置文件\TeleFine\Tools
AGENTCfg.INI 管理器使用的模拟内线配置文件\TeleFine\Tools
HBCfg.INI 管理器使用的模拟线高组模块配置文件\TeleFine\Tools
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-7-
PCICARD.DLL DLL 用户接口程序SYSTEM32 或SYSTEM
PCICARD.OCX OCX 用户接口程序SYSTEM32 或SYSTEM
PCICARD.LIB PCICARD.DLL 的导入库\TeleFine\Lib
PCICARD.H PCICARD.DLL 的头文件\TeleFine\Lib
STRUCTO.H 内部数据结构定义头文件\TeleFine\Lib
PCICARD.PAS DELPHI 用内部数据结构定义头文件\TeleFine\Lib
*.VOC VOC 语音文件样本\TeleFine\Voc
*.VOX VOX 压缩语音文件样本\TeleFine\Voc
*.WAV WAVE 语音文件样本\TeleFine\Voc
*.TIF 传真语音文件样本\TeleFine\Voc
模拟语音卡程序员手册.PDF 本文档\TeleFine\Doc
数字语音卡程序员手册.PDF \TeleFine\Doc
安装完成后,需要重新启动系统。
如果需要使用OCX 用户接口,在菜单中选择“安装控件PCICARD.OCX”,由于OCX 可能会
修改接口,一
般情况下还需要对Delphi,VB 等编译器重新装配PCICARD.OCX,然后再重新编译应用程序。
二.驱动程序
2.1 驱动 程序功 能
驱动程序是管理系统硬件的控制核心。负责对硬件板卡自动检测、上电,初始化卡上芯片,下载
DSP 微代码,响应硬件事件等。
2.2 驱动 程序加 载
驱动程序在硬件被操作系统检测到之后自动加载,如果用户是第一次使用语音板卡,操作系统
会
提示插入驱动程序安装盘,见上一节“硬件设备驱动程序的安装”。
操作系统对于发现的每一块PCI板卡都会调用一次驱动程序来初始化硬件。驱动程序识别出正确
的卡后,会进行相应的硬件操作。如果初始化成功,则板卡上的一些红灯会闪亮,板卡铁档片
上安装
的绿色指示灯点亮。如果初始化失败或被用户禁止使用,则所有的灯都不会亮。
注:用户可以通过WINDOWS的"设备管理器"打开或禁止系统内任何硬件的使用。
三.用户接口—— DLL编程接口
-8-
3.0 使用 名词
A、线路:在此指模拟外线(TB),模拟内线(AGENT)和高阻线(HB)
B、通道:除非特别说明,通道在此指逻辑通道,包括模拟外线(TB)逻辑通道、模拟内线
(AGENT)逻辑
通道、高阻线(HB)逻辑通道
C、消息:消息在此特指RMSG结构,包括用用户发送给系统的命令和系统返回给用户的事件,
统称
消息
D、用户:指应用程序
E、电话: 泛指与本硬件设备通讯的对方电话(兼容)设备。
F、保留参数:目前没有使用的参数。如果是需要用户填写的,必须设置为0;如果是收到消息中
的参
数,必须忽略掉
3.1 控制 流程
DLL接口为最底层的用户编程接口,可以被VC,Delphi等语言直接调用,建议作为中间件的接
口,推
荐编程语言为VC。对于编程水平高的用户,也可以选择该接口作为应用程序接口。DLL中的函
数可以在多
现线程环境中安全调用。
为了使用DLL,一般用户程序需要一个线程(通常使用主线程)来循环收取事件消息,根据收到
的消息类型,
再将该消息分发到相应的处理函数中处理。发给DLL的命令可以在程序中的任意位置发出,直
接送到DLL
内部的命令队列中。所有的取事件和发命令都使用同一种消息结构来保存信息,收发函数都是
异步函数,不会阻塞,即不论是否收到事件消息,取事件函数都立即返回;不论是否发送成功
命令消息,函
数都立即返回
3.2 数据 结构
DLL使用结构RMSG来保存消息内容,函数通过结构的指针来传递消息。该结构基本内容如下,
其成员函
数没有列出,参见STRUCTO.H,Delphi用户参见PCICARD.PAS文件
#define MAXCALLLEN 32 //最大主叫被叫号码长度,实际有效长度为31
struct RMSG //用于传送消息,分短结构(8字节长)和长结构(最大264字节长).
{
unsigned short MsgType : 4; //消息类型
unsigned short Function : 4; //功能
unsigned short Param : 8; //参数
unsigned short ChIndex :11; //通道逻辑号(0-2047)
unsigned short ChType : 5; //通道类型(见CHTYPE定义)
unsigned short LinkChIndex :11; //相关的另一个通道逻辑号(0-2047)
unsigned short LinkChType : 5; //相关的另一个通道的线路类型
unsigned short DataLen : 8; //0表示没有后面的union部分,
//1--255表示后面的union部分的实际有效字节长度
unsigned short DataSpec : 8; //数据描述
//当消息类型为呼叫消息时,保存主叫和被叫号码长度
union //只有当DataLen >0 时union可以存取
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-9-
{
struct
{
char Called[MAXCALLLEN]; //被叫号码(0-31)
char Caller[MAXCALLLEN]; //主叫号码(0-31)
};
unsigned char DataB[256];
unsigned short DataW[128];
};
};
3.3 函数 说明
所有函数使用标准DLL接口方式,保证在任何编程语言中都可以调用。函数头文件为
PCICARD.H,
导入库为PCICARD.LIB,动态库为PCICARD.DLL
BOOL __stdcall PCIINITCARD(long PARAM)
入口参数:
PARAM 参数,有效值0
出口参数:
成功返回TRUE,否则为FALSE
说明:
该函数用于开启管理器服务,应该在所有其他函数之前调用
相关函数:
PCIEXITCARD
BOOL __stdcall PCIEXITCARD ()
入口参数:
无
出口参数:
如果调用前管理器服务在开启状态,返回TRUE,否则返回FALSE
说明:
该函数用于关闭管理器服务或关闭管理器进程,应该在所有其他函数之后调用
在管理器服务已经开启的状态下调用,会关闭管理器服务;
在管理器服务已经关闭的状态下调用,会关闭管理器进程,如果关闭了管理器进程,相当于管
理器已经
被退出系统了,如果要再次运行系统,必须调用系统调用加载manager.exe或者用其它方法执行
manager.exe,
然后再调用PCIINITCARD;
注:直接连续两次调用本函数将关闭管理器进程。
相关函数:
PCIINITCARD
-10-
long __stdcall PCIGETCARDNUM()
入口参数:
无
出口参数:
成功返回实际可以操作的硬件卡数目,否则为0
说明:
该函数检测目前实际存在并被系统激活的语音卡的数目
相关函数:
PCIGETCONFIGCARDNUM
long __stdcall PCIGETCONFIGCARDNUM()
入口参数:
无
出口参数:
成功返回设置使用的硬件卡数目,否则返回0
说明:
该函数用于返回配置文件中设置使用的语音卡数目,由配置器配置
相关函数:
PCIGETCARDNUM
long __stdcall PCIGETTOTALLOGICCHNUM()
入口参数:
无
出口参数:
返回所有可识别类型的逻辑通道通道数目总和
说明:
该函数用于获取配置文件(*.INI)中设置的所有类型线路的逻辑通道数目,由配置器配置
相关函数:
PCIGETLOGICCHNUM
long __stdcall PCIGETCARDHARDWARESERIAL(long CARDNO)
入口参数:
CARDNO 卡序号,有效值0-15
出口参数:
成功返回值解释为32 位的硬件序列号,否则返回-1
硬件序列号的位域意义
bit[15.. 0] = CardHardwareSerialNo // 实际的本卡硬件序列号,可用于软件加密保护
bit[19..16] = CardHardwareLine // 硬件支持的通道数目
// 数字线:1--8 表示支持1--8 个E1
// 模拟线:1--6 表示支持4--24线(以4 线为单位)
bit[23..20] = CardHardwareRes // 卡上带有的资源类型bit3=fsk,bit2=fax, bit1=modem
bit[27..24] = CardSwitch // 卡序号,应与参数CARDNO相同
bit[31..28] = CardHardwareFlag // 卡类型标志,可用于软件加密保护
// 与函数PCIGETCARDHARDWARETYPE返回值相同
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-11-
说明:
该函数用于返回设置了相应卡序号的语音卡硬件序列号
相关函数:
PCIGETCARDHARDWARETYPE
long __stdcall PCIGETCARDHARDWARETYPE (long CARDNO)
入口参数:
CARDNO 卡序号,有效值0-15
出口参数:
成功返回卡的类型,参见STRUCTO.H中CARDHARDWARE_xxxx的定义
失败返回-1(参数错误)或0(硬件不存在)
说明:
返回设置了相应卡序号的语音卡类型
相关函数:
PCIGETCARDHARDWARESERIAL
long __stdcall PCIGETLOGICCHNUM(long CHTYPE)
入口参数:
CHTYPE 线路通道类型/资源类型,参见STRUCTO.H中的CHCLASS_xxxx/RESTYPE_xxxx定义
出口参数:
返回指定通道类型的逻辑通道通道数目或目前系统内检测到的特定资源数目
说明:
该函数用于获取配置文件(*.INI)中设置的指定类型线路的逻辑通道数目,由配置器设置
或目前系统内检测到的特定资源数目
相关函数:
PCIGETTOTALLOGICCHNUM
long __stdcall PCISENDMSG(RMSG *PMSG)
入口参数:
PMSG 发送命令消息缓冲区,一个消息结构的地址
出口参数:
成功返回1
失败返回0,消息队列满或其它错误
说明:
该函数用于不阻塞发送消息(不论是否成功,函数都立即返回)
相关函数:
PCIGRABMSG
long __stdcall PCIGRABMSG(RMSG *PMSG,unsigned short MSGNUM)
入口参数:
PMSG 接收事件消息缓冲区,可以是一个消息结构的地址或者是消息结构数组
MSGNUM PMSG缓冲区可以容纳的完整消息结构(264字节)的个数
-12-
出口参数:
返回收到的消息个数,大于0 时参数PMSG指向的位置保存了有效数据
说明:
该函数用于不阻塞接收消息(不论是否收到消息,函数都立即返回),应在程序中定时或循环调
用
相关函数:
PCISENDMSG
3.4 函数 PCISENDMSG 使用详 细说明
函数PCISENDMSG 用于将用户命令消息发送给管理器,控制语音卡硬件的操作。
用户命令消息填写在一个RMSG结构中,将该结构变量的地址作为参数调用函数
PCISENDMSG。
如果命令消息能够成功发送,函数返回1,否则返回0。
管理器的接收命令消息缓冲区至少可以一次储存2048 个消息,如果函数返回0表示缓冲区满,
此时需
要等待一段时间再发。
调用范例(C/C++):
RMSG Msg; //构造函数自动将所有结构内成员清0
Msg.Clear(); //将结构内所有成员清0
Msg.MsgType=MSG_CALL; //呼叫消息(呼出)
Msg.Function=F_C_NORMAL; //普通呼叫
Msg.Param=P_C_NORMAL; //呼出前检测拨号音
Msg.ChIndex=0; //逻辑通道号为0(逻辑上第一条线路)
Msg.ChType=CHTYPE_TB; //呼出线路为模拟外线
Msg.LinkChIndex=0; //和LinkChType一起解释
Msg.LinkChType=1; //非0值,表示使用自动分配方案来分配呼出通道
Msg.AppendCalled("9,075526994822"); //添加被叫号码(呼出号码,逗号表示停顿)
PCISENDMSG(&Msg); //发送消息
调用范例(DELPHI)
var
TG : TMSG;
begin
TG:=TMSG.Create; //构造
TG.Clear; //将结构内所有成员清0
TG.MsgType:=MSG_CALL; //呼叫消息(呼出)
TG.MsgFunction:=F_C_NORMAL;//普通呼叫
TG.Msg.Param:=P_C_NORMAL; //呼出前检测拨号音
TG.Msg.ChIndex=0; //逻辑通道号为0(逻辑上第一条线路)
TG.Msg.ChType=CHTYPE_TB; //呼出线路为模拟外线
TG.LinkChType:=0; //和LinkChType一起解释
TG.LinkChIndex:=1; //非0值,表示使用自动分配方案来分配呼出通道
TG.AppendCalled("9,075526994822"); //添加被叫号码(呼出号码,逗号表示停顿)
PCISENDMSG(@TG.Msg); //发送消息
TG.Free;
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-13-
end;
以下通过具体参数解释说明每个命令消息的使用:
3.4.1 通道呼出 (CALL)
说明:
对模拟外线(TB通道)摘机拨号或对模拟内线(AGENT通道)振铃。高阻线(HB通道)不能使用。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
呼出允许自动分配线路呼出时,每一个通道都可以设置是否允许呼出(0=否,1=是)
默认值为1
注意:当用户指定逻辑通道号呼出时不受该参数的限制。
多媒体参数:
DetectCPSignFreq 检测呼叫过程信号音的基准频率。
默认为400Hz(系统内置)和450Hz(可设置),该参数影响到拨号音、忙音和
回铃音的检测
结构成员参数填写:
MsgType = MSG_CALL
Function = F_C_NORMAL | F_C_OVLP
Param = P_C_NORMAL | P_C_1 | P_C_2 | P_C_3 | P_C_4
ChIndex = 逻辑通道号/呼出句柄号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 呼叫副参考号(0--2047)
LinkChType = 呼叫主参考号(0--31)
DataLen = 由AppendCalled和AppendCaller成员函数设置
DataSpec = 由AppendCalled和AppendCaller成员函数设置
Called[] = 被叫号码
Caller[] = 主叫号码
参数说明:
MsgType 设置发送消息类型
取值说明:
MSG_CALL 呼出消息
ChType 设置需要呼出的逻辑通道类型
取值说明:
CHTYPE_TB 使用模拟外线呼出,即摘机后拨号(或只摘机不拨号)
CHTYPE_AGENT 使用模拟内线呼出,即对内线振铃
ChIndex 设置需要呼出的逻辑通道号或优先呼出的逻辑通道
取值说明:
-14-
0--- 取值范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1),可
通过PCIGETLOGICCHNUM函数获得
当Function = F_C_NORMAL时,ChIndex含义如下
当LinkChType = 0 时,系统必须以ChIndex 指定的逻辑通道呼出,不管其是否
设置了呼出允许
当LinkChType != 0 时,系统优先以ChIndex指定的逻辑通道呼出,如果通道
已经被占用,分配其它同类型通道呼出
当Function = F_C_OVLP 时
ChIndex 含义为呼出句柄(该句柄在发出F_C_NORMAL呼叫后由收到的
UPMSG_CALLOUTCHANNEL消息中获得)
注意:该呼出句柄与实际的呼出通道不相同,仅用于重叠呼叫(F_C_OVLP),参见
UPMSG_CALLOUTCHANNEL事件消息。
Function 设置呼出的方式
取值说明:
F_C_NORMAL 普通呼叫(发起呼叫)
对于TB通道相当于摘机后开始拨号,对于AGENT通道相当于对
与其相连的电话振铃
F_C_OVLP 重叠呼叫(后续号码)
对于TB通道可以使用作为后续的呼出号码,对于AGENT通道不
使用
Param 设置呼出的参数,只在Function=F_C_NORMAL时有效
取值说明:
P_C_NORMAL 默认参数
对于TB通道,相当于摘机后先检测到拨号音,然后再拨号
对于AGENT通道,相当于使用与电信系统完全相同的方式振铃(周期
为响0.9 秒停4秒,并在前两次振铃声之间传送FSK方式主叫号码)
P_C_1 参数方式1
对于TB通道,相当于摘机后不检测拨号音,停顿2 秒后直接拨号
对于AGENT通道,相当于使用与电信系统完全相同的方式振铃(周期
为响0.9 秒停4秒,并在第一次振铃声之前先传送DTMF方式主叫号
码)
P_C_2 参数方式2
对于TB通道不使用
对于AGENT通道,使用自定义方式2 振铃(周期为响1.8秒停3秒,
并在第一次振铃声之前先传送DTMF方式主叫号码)
P_C_3 参数方式3
对于TB通道不使用
对于AGENT通道,使用自定义方式3振铃(周期为响0.2 秒停0.2 秒再
响0.3秒停3.9秒,并在第一次振铃声之前先传送DTMF方式主叫号码)
P_C_4 参数方式4
对于TB通道不使用
对于AGENT通道,使用自定义方式4振铃(周期为响0.6 秒停0.6 秒再
响0.6秒停3秒,并在第一次振铃声之前先传送DTMF方式主叫号码)
DataLen/DataSpec 主叫号码和被叫号码长度
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-15-
Called[]/Caller[] 主叫号码和被叫号码内容
取值说明:
由AppendCalled和AppendCaller成员函数设置,用户一般不需要直接对这4 个成员赋值,
设置主/被叫号码方式如下:
InitCallNull(); //清除主叫/被叫号码为空
AppendCaller("26994822"); //对于AGENT通道,
//可以设置该号码以在振铃前(间)传送给相连的电话,
//如果不设置,则不传送主叫号码;对于TB线路无影响
AppendCalled("075526994738"); //对于TB通道,
//设置该号码可以在摘机后拨该串号码,
//对于AGENT通道无影响
注意:对于外线呼出,如果设置被叫号码为空串,可以实现只摘机不拨号。此时外线摘
机,用户会立即收到应答消息(ACM和ACK),然后就可以对该通道执行正常的放音及
连接通道的同能。该功能主要用于内线电话通过外线模块呼叫市话。
LinkChType 呼叫主参考号
LinkChIndex 呼叫副参考号
取值说明:
当Function = F_C_OVLP 时
LinkChType和LinkChIndex必须设置与第一次呼叫(Function = F_C_NORMAL)时相
同的值。
当Function = F_C_NORMAL时
LinkChType和LinkChIndex分别作为呼叫主参考号和呼叫参考号。
如果LinkChType=0,系统必须以ChIndex指定的逻辑通道呼出,不管其是否设
置了呼出允许
如果LinkChType!=0,系统优先以ChIndex指定的逻辑通道呼出,如果通道已经
被占用或禁止呼出,分配其它同类型通道呼出
3.4.2 通道释放 (RELEASE)
说明:
对模拟外线(TB通道)挂机或对模拟内线(AGENT通道)送忙音。高阻线(HB通道)不能使用。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
模拟内线中的“播放忙音” 用于设置对内线发释放消息时是否送忙音。
为‘1’时(默认值),系统送忙音,等待相连的电话听到忙音后挂机
为‘0’时,系统不送忙音,等待相连的电话超时后挂机
多媒体参数:
CPSignFreq 内线播放呼叫过程信号音的基准频率。
默认为450Hz,该参数影响播放忙音的音调高低
BusySignPeriod 内线播放忙音的周期。
默认为1000 毫秒,该参数影响播放忙音的急促度
-16-
CPSignPower 内线播放呼叫过程信号音的音量大小(dB)
默认为-10dB,该参数影响到播放忙音信号的音量大小
结构成员参数填写:
MsgType = MSG_RELEASE
Function = 保留参数
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 设置释放消息类型
取值说明:
MSG_RELEASE 释放消息
ChType 设置需要释放的逻辑通道类型
取值说明:
CHTYPE_TB 对模拟外线释放,即挂机
CHTYPE_AGENT 对模拟内线释放,即对内线放忙音
ChIndex 设置需要释放的逻辑通道号
取值说明:
0--- 取值范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1),可
通过PCIGETLOGICCHNUM函数获得
注意:
对内线送忙音后,如果电话挂机,系统将会停止播放忙音,从VER3.0 开始不会收到一个放音
结束
消息。
3.4.3 地址收全 (ACM)
说明:
模拟内线(AGENT通道)对与其相连的电话送回铃音,表示不再需要接收电话的DTMF码了。外
线
(TB通道)、高阻线(HB通道)不能使用
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
模拟内线中的“播放回铃音”用于设置对模拟内线发送ACM消息后是否对与其相连的电话播
放回铃音。
为‘1’时(默认值),系统送周期性回铃音,通知相连的电话等待连通
为‘0’时,系统不送回铃音,可直接进入下一步操作
多媒体参数:
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-17-
CPSignFreq 内线播放呼叫过程信号音的基准频率。
默认为450Hz,该参数影响播放回铃音的音调高低
结构成员参数填写:
MsgType = MSG_ACM
Function = 保留参数
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 设置地址收全消息类型
取值说明:
MSG_ACM 地址收全消息
ChType 设置需要放回铃音的逻辑通道类型
取值说明:
CHTYPE_AGENT 模拟内线
ChIndex 设置需要放回铃音的逻辑通道号
取值说明:
0--- 取值范围为0--(系统内实际可用的模拟内线的逻辑通道数目-1),可通过
PCIGETLOGICCHNUM 函数获得
注意:
对内线送回铃音后,如果电话挂机或用户发送ACM/RELEASE/ROUTER等消息,系统将会停
止播
放回铃音,从VER3.0 开始不会收到一个放音结束消息。
3.4.4 被叫应答 (ACK)
说明:
对模拟外线(TB通道)摘机或对模拟内线(AGENT通道)响应(停止放信号音)。高阻线(HB通道)不
能
使用。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
无
多媒体参数:
无
结构成员参数填写:
-18-
MsgType = MSG_CALLEDACK
Function = 保留参数
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 设置应答消息类型
取值说明:
MSG_CALLEDACK 应答消息
ChType 设置需要应答的逻辑通道类型
取值说明:
CHTYPE_TB 对模拟外线应答,即收到振铃后摘机
CHTYPE_AGENT 对模拟内线应答,即内线上相连的电话先主动摘机,拨号(可选)
后,将通道上的信号音停止播放,准备下一步操作。
ChIndex 设置需要应答的逻辑通道号
取值说明:
0--- 取值范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1),可
通过PCIGETLOGICCHNUM函数获得
3.4.5 拍叉簧 (FLASH)
说明:
对模拟外线(TB通道)先挂机再快速摘机。模拟内线(AGENT通道)、高阻线(HB通道)不能使用。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
模拟外线中的“拍叉簧时间”用于设置拍叉簧的持续时间。
默认为600毫秒,即先挂机等待600毫秒后再重新摘机,该参数影响拍叉簧动
作的速度。
多媒体参数:
无
结构成员参数填写:
MsgType = MSG_FLASH
Function = 保留参数
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB
LinkChIndex = 保留参数
LinkChType = 保留参数
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-19-
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 设置拍叉簧消息类型
取值说明:
MSG_FLASH 拍叉簧消息
ChType 设置需要拍叉簧的逻辑通道类型
取值说明:
CHTYPE_TB 对模拟外线拍叉簧,相当于按了电话机上"闪断"键、"Flash"键或者
"R"键。
ChIndex 设置需要拍叉簧的逻辑通道号
取值说明:
0--- 取值范围为0--(系统内实际可用模拟外线的逻辑通道数目-1),可通过
PCIGETLOGICCHNUM 函数获得
3.4.6 通道交换 (ROUTER)
说明:
模拟外线(TB通道)、模拟内线(AGENT通道)、内部或互相之间双向通话、单向监听。
模拟外线(TB通道)、模拟内线(AGENT通道)输出静音。
模拟外线(TB通道)或模拟内线(AGENT通道)单向监听某个高阻线(HB通道)。
注意:
当系统内有多卡互连时,模拟线和数字线之间也可以任意互相通话或监听
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
无
多媒体参数:
无
结构成员参数填写:
MsgType = DOWNMSG_ROUTER
Function = F_R_SILENCE | F_R_MONITOR | F_R_TALK| F_R_MONITOR_P
|F_R_MONITOR_CT | F_R_TRANSTO_CT
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 逻辑通道号(0---)
LinkChType = 逻辑通道类型CHTYPE_TB 、CHTYPE_HB或CHTYPE_AGENT
DataLen = 0
-20-
DataSpec = 保留参数
参数说明:
MsgType 设置交换消息类型
取值说明:
DOWNMSG_ROUTER 交换消息
Function 通道交换方式
取值说明:
F_R_MONITOR 单向监听,即A通道监听B 通道而不被B通道知晓.
F_R_MONITOR_P 强制单向连接到放音资源,用于放音和交换混合使用的场合。
F_R_TALK 双向通话,即A 通道和B通道进行双向话路连接,相当于普通的通话
状。
F_R_SILENCE 输出静音,即通道不输出任何声音,与该通道相连的电话听不到任何
声音。
F_R_TRANSTO_CT 特殊用法,直接单向发送到CTBUS上的一个时隙。
F_R_MONITOR_CT 特殊用法,直接单向监听CTBUS上的一个时隙。
ChType 设置需要交换的逻辑通道类型
取值说明:
当Function=F_R_MONITOR时,高阻线(HB通道)禁止使用
CHTYPE_TB 某个模拟外线为监听人
CHTYPE_AGENT 某个模拟内线为监听人
当Function=F_R_TALK时,高阻线(HB通道)禁止使用
CHTYPE_TB 某个模拟外线为需要双向通话的其中一个通道
CHTYPE_AGENT 某个模拟内线为需要双向通话的其中一个通道
当Function=F_R_SILENCE时,高阻线(HB通道)禁止使用
CHTYPE_TB 某个模拟外线输出静音
CHTYPE_AGENT 某个模拟内线输出静音
当Function= F_R_MONITOR_P时,高阻线(HB通道)禁止使用
CHTYPE_TB 某个模拟外线强制单向连接到放音资源
CHTYPE_AGENT 某个模拟内线强制单向连接到放音资源
当Function= F_R_TRANSTO_CT
CHTYPE_TB 某个模拟外线直接输出到一个CTBUS上的时隙
CHTYPE_AGENT 某个模拟内线直接输出到一个CTBUS上的时隙
CHTYPE_HB 某个高阻通道直接输出到一个CTBUS上的时隙
当Function=F_R_MONITOR_CT,高阻线(HB通道)禁止使用。
CHTYPE_TB 某个模拟外线直接监听一个CTBUS上的时隙
CHTYPE_AGENT 某个模拟内线直接监听一个CTBUS上的时隙
ChIndex 设置需要交换的逻辑通道号
取值说明:
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-21-
0--- 取值范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1),可
通过PCIGETLOGICCHNUM函数获得
LinkChType 设置被交换的逻辑通道类型
取值说明:
当Function=F_R_MONITOR时
CHTYPE_TB 某个模拟外线被监听
CHTYPE_AGENT 某个模拟内线被监听
CHTYPE_HB 某个高阻线被监听
当Function=F_R_TALK时,高阻线(HB通道)禁止使用
CHTYPE_TB 某个模拟外线为需要双向通话的另外一个通道
CHTYPE_AGENT 某个模拟内线为需要双向通话的另外一个通道
当Function=F_R_SILENCE时,LinkChType 需设置与ChType 相同
当Function=F_R_MONITOR_P时,LinkChType 需设置与ChType 相同
当Function= F_R_TRANSTO_CT时保留参数
当Function= F_R_MONITOR_CT时保留参数
LinkChIndex 设置被交换的逻辑通道号
取值说明:
当Function=F_R_SILENCE时,LinkChIndex 需设置与ChIndex相同
当Function=F_R_MONITOR_P时,LinkChIndex 需设置与ChIndex 相同
当Function= F_R_TRANSTO_CT时
0—127 被直接发送到的一个CTBUS上的时隙号
当Function= F_R_MONITOR_CT时
0—127 被直接监听的一个CTBUS上的时隙号
当Function=其它值时
0--- 取值范围为0--(系统内实际可用的模拟内线、高阻线路或模拟外线的逻辑通
道数目-1),可通过PCIGETLOGICCHNUM 函数获得
DataSpec 设置直接监听的CTBUS上的数据流号
当Function= F_R_TRANSTO_CT时
0—31 被直接发送到的CTBUS上的数据流号
当Function= F_R_MONITOR_CT时
0—31 被直接监听的CTBUS上的数据流号
当Function=其它值时
保留参数
3.4.7 电话会议 (CONFERENCE)
电话会议功能参见《电话会议编程指南》
-22-
3.4.8 通道开关 (ONOFF)
说明:
设置通道的禁用和使能。
参数说明:
MsgType = MSG_ONOFF
注意:保留将来使用。
3.4.9 设置参数 (SETPARAM)
说明:
设置参数和使用管理功能,用于扩展系统功能。
参数说明:
MsgType = DOWNMSG_SETPARAM
注意:保留将来使用。
3.4.10 多媒体 (MEDIA)
多媒体功能参见《语音媒体编程指南》
3.5 函数 PCIGRABMSG 使用详 细说明
函数PCIGRABMSG 用于从管理器接收语音卡硬件的事件消息,并返回给用户。
用户先声明一个RMSG 变量或RMSG数组变量,将该变量的地址作为参数调用函数
PCIGRABMSG,
并指定允许接收消息的个数。如果命令消息能够成功发送,函数返回实际收到的消息数目(消息
内容已
经填好),否则返回0。
管理器的发送事件消息缓冲区至少可以一次储存2048 个消息,如果函数返回0表示缓冲区空,
此
时需要等待一段时间再收。
调用范例(C/C++):
RMSG msgs[64]; //每次最多取64 个消息
while(1)
{
long num=PCIGRABMSG(&msgs[0],64);
for(int i=0;i<num;i++)
ProcessMsg(&msgs[i]); //用户处理该消息
if(num==0) //如果本次没有取到消息,可以等待,否则应再取一次,确保所有消息
//都处理完
Sleep(50);
}
void ProcessMsg(const RMSG *pmsg)//用户处理该消息
{
switch(pmsg->MsgType)
{
case MSG_CONF:
ProcessConfMsg(pmsg);
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-23-
break;
case MSG_RELEASE:
ProcessReleaseMsg(pmsg);
break;
.
.
.
default:
printf("收到未知消息\n")
}
}
调用范例(DELPHI)
procedure CheckAndProcessMsg; //本过程被主程序定时调用(50 毫秒)
var
RG : TMSG;
begin
TG:=TMSG.Create; //构造
while(PCIGRABMSG(@RG.Msg,1)=1)do //每次取一个消息
begin
ProcessMsg(RG);
end;
RG.Free;
end;
以下具体解释说明收到的每个事件消息的内容:
3.5.1 通道呼入 (CALL)
说明:
模拟外线(TB通道)收到振铃信号或模拟内线(AGENT通道)上的电话在空闲时主动摘机。高阻线
(HB通道)无该消息。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
模拟外线中的“本端号码” 用于设置模拟外线的虚拟号码,当线路振铃时可作为被叫号码
收到。
模拟外线中的“告警检测时间” 用于设置模拟外线是否使用告警功能。
模拟内线中的“本端号码” 用于设置模拟内线的虚拟号码,当电话主动摘机时可作为主叫
号码收到。
模拟内线中的“播放拨号音”用于设置对内线呼入时是否送拨号音。
为‘1’时(默认值),系统送拨号音,等待相连的电话听到拨号音后按键拨号,再自动停
-24-
止播放拨号音
为‘0’时,系统不送拨号音,可以直接播放其它提示语音
多媒体参数:
CPSignFreq 内线播放呼叫过程信号音的基准频率。
默认为450Hz,该参数影响播放拨号音的音调高低
CPSignPower 内线播放呼叫过程信号音的音量大小(dB)
默认为-10dB,该参数影响到播放拨号音信号的音量大小
结构成员参数解释:
MsgType = MSG_CALL
Function = F_C_NORMAL | F_C_OVLP
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 由GetCalled和GetCaller成员函数读取
DataSpec = 由GetCalled和GetCaller成员函数读取
Called[] = 被叫号码
Caller[] = 主叫号码
参数说明:
MsgType 消息类型
参数说明:
MSG_CALL 呼入消息
ChType 呼入的逻辑通道类型
参数说明:
CHTYPE_TB 模拟外线呼入,即检测到振铃
CHTYPE_AGENT 模拟内线呼入,内线主动摘机或摘机后拨了号
ChIndex 呼入的逻辑通道号
参数说明:
0--- 范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1)
Function 呼入的方式
参数说明:
F_C_NORMAL 普通呼叫(呼叫建立)
对于TB通道相当于第一次检测到振铃,对于AGENT通道相当于与其相连的电话主
动摘机
F_C_OVLP 重叠呼叫(后续号码)
对于TB通道相当于随后的振铃或收到FSK主叫号码,
对于AGENT通道,在发送ACM或ACK命令之前如果电话拨了号,此号码作为呼
入消息,由GetCalled()取出
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-25-
DataLen/DataSpec 主叫号码和被叫号码长度
Called[]/Caller[]主叫号码和被叫号码内容
参数说明:
由GetCalled和GetCaller成员函数取出本次呼叫的主叫和被叫号码
当Function = F_C_NORMAL时
对于TB通道,
GetCalled()返回在“逻辑通道/本端号码”中本逻辑通道配置的号码
GetCaller()返回收到的DTMF方式的主叫号码(需要开通服务,在第一次振铃前
收到)
对于AGENT通道,
GetCalled()返回空串
GetCaller()返回在“逻辑通道/本端号码”中本逻辑通道配置的号码
当Function = F_C_OVLP 时
对于TB通道,
GetCalled()返回空串
GetCaller()返回收到的FSK方式的主叫号码(需要开通服务,在第一和第二次振
铃间收到)
对于AGENT通道,
GetCalled()返回电话拨的号码
GetCaller()返回空串
注意: 如果“告警检测时间”设置为0,系统一检测到振铃声响起,即触发通道呼入事件
(CALL),当
使用有告警功能的外线模块时,系统会将该告警事件转换为通道呼入(CALL)事件传送给用户;
如果“告警检测时间”为非0,系统会将触发CALL事件的时机放在振铃声停歇发生时,因此
会推迟1 秒左右,但可以避免高电压对硬件的冲击,如果振铃声迟迟不停歇(使用有告警功能外
线
模块并且未接线时),在设置的“告警检测时间”后,则会触发告警事件(ALARM),而不会触
发通
道呼入(CALL)事件。
3.5.2 通道释放 (RELEASE)
说明:
模拟外线(TB通道)挂机完成,模拟内线(AGENT通道)电话挂机了。高阻线(HB通道)无该消息。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
模拟外线中的“自动挂机” 用于设置当外线检测到忙音信号或极性反转信号后是否自动挂
机。
为‘1’时(默认值),外线在发完ACK消息后(呼入)或收到ACK消息后检测到忙音
或极性反转信号,会自动挂机,并送RELEASE 消息
为‘0’时,外线在上述状态下不挂机,送MEDIA 消息(参见MEDIA 事件消息说明),
通知用户发RELEASE 消息主动挂机
多媒体参数:
无
-26-
结构成员参数解释:
MsgType = MSG_RELEASE
Function = F_R_NORMAL | F_R_CALLOUTERR
Param = 错误原因
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 消息类型
参数说明:
MSG_RELEASE 释放消息
ChType 释放的逻辑通道类型
参数说明:
CHTYPE_TB 模拟外线释放,即挂机完成
CHTYPE_AGENT 模拟内线释放,即内线电话挂机
ChIndex 释放的逻辑通道号
参数说明:
0--- 范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1)
Function 释放的方式
参数说明:
F_R_NORMAL 普通释放
通话完毕正常的挂机
F_R_CALLOUTERR 呼出时错误释放
外线摘机呼出时发生错误,内线振铃后无应答等
Param 错误原因
参数说明:
当Function = F_R_NORMAL时
0 正常释放
当Function = F_R_CALLOUTERR时
P_R_NODIALTONE 外线呼出时没有检测到拨号音
P_R_NOANSWER 外线呼叫后没有响应(没有收到回铃音和任何其它声音)而超
时
P_R_RINGTIMEOUT 外线呼叫收到回铃音后对方电话无人接听而超时;内线振铃
后电话无人接听而超时
P_R_LINEUSED 外线呼叫后收到忙音
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-27-
3.5.3 地址收全 (ACM)
说明:
模拟外线(TB通道)呼出成功,模拟内线(AGENT通道)振铃成功。高阻线(HB通道)无该消息。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
无
多媒体参数:
无
结构成员参数解释:
MsgType = MSG_ACM
Function = F_ACM_IDLE
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 消息类型
参数说明:
MSG_ACM 地址收全消息
ChType 地址收全的逻辑通道类型
参数说明:
CHTYPE_TB 模拟外线地址收全,即呼叫成功,对方电话振铃中
CHTYPE_AGENT 模拟内线地址收全,即内线电话振铃中
ChIndex 地址收全的逻辑通道号
参数说明:
0--- 范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1)
Function 地址收全的线路状态
参数说明:
F_ACM_IDLE 线路空闲
3.5.4 被叫应答 (ACK)
说明:
模拟外线(TB通道)呼出成功后对方电话摘机,模拟内线(AGENT通道)振铃后电话摘机。高阻线
(HB
通道)无该消息。
-28-
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
无
多媒体参数:
无
结构成员参数解释:
MsgType = MSG_CALLEDACK
Function = 保留参数
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 消息类型
参数说明:
MSG_CALLEDACK 被叫应答消息
ChType 被叫应答的逻辑通道类型
参数说明:
CHTYPE_TB 模拟外线被叫应答,即呼出成功后,对方电话摘机应答
CHTYPE_AGENT 模拟内线被叫应答,即内线电话振铃后,电话摘机
ChIndex 被叫应答的逻辑通道号
参数说明:
0--- 范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1)
3.5.5 拍叉簧 (FLASH)
说明:
模拟内线(AGENT通道)上的电话被按了"闪断"("Flash")键或者"R"键。模拟外线(TB通道)无该消
息。
高阻线(HB通道)可以检测到该动作,但无本消息,而是以MEDIA 消息(参见MEDIA 消息说明)
传
送给用户。
注意:
如果电话挂机后再迅速摘机,也会收到该消息
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
模拟外线中的“拍叉簧时间”用于设置外线拍叉簧的持续时间,该值乘以2即为内线检
测拍叉簧的上限时长。
默认为600毫秒,乘以2为1.2秒,即如果内线电话挂机后又在1.2 秒内摘机,则视为一
个FLASH 动作,而不是挂机+摘机。
多媒体参数:
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-29-
无
结构成员参数解释:
MsgType = MSG_FLASH
Function = 保留参数
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 保留参数
LinkChType = 保留参数
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 消息类型
参数说明:
MSG_FLASH 拍叉簧消息
ChType 拍叉簧的逻辑通道类型
参数说明:
CHTYPE_AGENT 模拟内线拍叉簧,即内线电话在通话状态时按了相应的FLASH 按
键或挂机/摘机过快
ChIndex 拍叉簧的逻辑通道号
参数说明:
0--- 范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1)
3.5.5 上传消息分配到的呼出通道 (UPMSG_CALLOUTCHANNEL)
说明:
模拟外线(TB通道)、模拟内线(AGENT通道)呼出时分配的逻辑通道。高阻线(HB通道)无该消息。
相关逻辑通道参数和多媒体参数配置:
逻辑通道参数:
无
多媒体参数:
无
结构成员参数解释:
MsgType = UPMSG_CALLOUTCHANNEL
Function = F_CC_NORMAL | F_CC_NOCHANNEL | F_CC_HANDLE
Param = P_CC_CHBUSY | P_CC_CHCALLMASK | P_CC_CHNOTEXIST
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT
LinkChIndex = 返回呼叫副参考号
-30-
LinkChType = 返回呼叫主参考号
DataLen = 0
DataSpec = 保留参数
参数说明:
MsgType 消息类型
参数说明:
UPMSG_CALLOUTCHANNEL 分配到呼出通道消息
Function 分配结果
参数说明:
F_CC_HANDLE 本呼出分配到参考句柄,该句柄只用于后续的重叠呼叫(参见CALL命
令消息)
F_CC_NORMAL 本呼出分配到呼出逻辑通道,呼叫正在进行中
F_CC_NOCHANNEL 本呼出分配不到呼出通道,呼叫终止,通道释放
本消息可能在F_CC_HANDLE 后收到
收到本消息后不会再收到F_CC_HANDLE 或F_CC_NORMAL,也不会收到
MSG_RELEASE 消息
Param 分配失败原因
参数说明:
当Function=F_CC_NOCHANNEL时,本值为分配失败原因
P_CC_CHBUSY 指定/所有通道使用中
P_CC_CHCALLMASK 在配置中通道呼出被禁止
P_CC_CHNOTEXIST 指定的通道号不存在
ChType 呼出通道的逻辑通道类型
参数说明:
CHTYPE_TB 模拟外线的呼出通道结果
CHTYPE_AGENT 模拟内线的呼出通道结果
ChIndex 呼出通道的呼出句柄/逻辑通道号
参数说明:
当Function=F_CC_HANDLE时,本值为分配到的呼出句柄,不能作为逻辑通道使用(参
见CALL命令消息)
0--- 范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1)
当Function=F_CC_NORMAL时,本值为分配到的呼出逻辑通道
0--- 范围为0--(系统内实际可用的模拟内线或模拟外线的逻辑通道数目-1)
当Function=F_CC_NOCHANNEL时,本值为保留值
保留参数保留参数
LinkChIndex 返回呼叫参考号
LinkChType 返回呼叫主参考号
参数说明:
该返回值与CALL命令消息中的设置值相同,用于识别对应的呼叫消息
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-31-
3.5.7 电话会议 (CONFERENCE)
电话会议功能参见《电话会议编程指南》
3.5.8 通道开关 (ONOFF)
说明:
通道已经被禁用或使能
结构成员参数解释:
MsgType = MSG_ONOFF
注意:
保留将来使用。
3.5.9 参数设置错误 (PARAMERROR)
说明:
使用SETPARAM功能设置的参数有错误或上传某些特殊的参数
结构成员参数解释:
MsgType = UPMSG_PARAMERROR
Function = F_PM_SLOT
Param = 保留参数
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB 或CHTYPE_AGENT 或CHTYPE_HB
LinkChIndex = 输出时隙号(0--127)
LinkChType = 保留参数
DataLen = 0
DataSpec = 输出流号(0--15)
参数说明:
MsgType 消息类型
参数说明:
UPMSG_PARAMERROR 参数有错误或上传某些特殊的参数
Function 上传功能
参数说明:
F_PM_SLOT 上传物理时隙参数
ChType 逻辑通道类型
ChIndex 逻辑通道号
LinkChIndex 该逻辑通道输出到交换总线的物理时隙号
DataSpec 该逻辑通道输出到交换总线的物理流号
注意:
其它功能保留将来使用。
-32-
3.5.10 线路告警 (ALARM)
说明:
模拟外线物理线路故障告警
结构成员参数解释:
MsgType = UPMSG_ALARM
Function = F_AM_CH
Param = 告警原因
ChIndex = 逻辑通道号(0---)
ChType = 逻辑通道类型CHTYPE_TB
LinkChIndex = 告警通道所在的物理通道(时隙)号
DataSpec = 告警通道所在的物理卡序号
DataLen = 0
LinkChType = 保留参数
参数说明:
MsgType 消息类型
参数说明:
UPMSG_ALARM 物理线路故障告警
Function 告警类别
参数说明:
F_AM_CH 某个通道告警
Param 告警原因
参数说明:
当Function= F_AM_CH时(并且ChType=CHTYPE_TB)
P_AM_TB_OK 线路恢复正常
P_AM_TB_NOPOWER 外线上没有直流电压(掉线或短路)
ChType 返回告警线路的逻辑通道类型
ChIndex 返回告警线路的逻辑通道号
DataSpec 返回告警线路所在的物理卡序号
LinkChIndex 返回告警线路所在卡的通道(时隙)号
注意:必须使用有告警功能的外线模块,并且在配置器中“逻辑通道\模拟外线\告警检测时间
”中设置
一个非0 值(推荐设置为3000毫秒),才能完全使用告警功能。
3.5.11 硬件故障 (DAMAGE)
说明:
语音卡有物理故障
结构成员参数解释:
MsgType = UPMSG_DAMAGE
注意:
保留将来使用。
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-33-
3.5.12 多媒体 (MEDIA)
多媒体功能参见《语音媒体编程指南》
-34-
五、呼叫流程状态图和多媒体资源使用流程状态图
空闲
OnRelease
模拟外线呼入
OnCall (F_C_NORMAL)
振铃中
连通
等待释放
Flash
Release
OnRelease
OnRelease
OnCall (F_C_OVLP)
Ack
Acm
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-51-
空闲
分配呼出句柄
OnCalloutChannel
(F_CC_NOCHANNEL)
OnCalloutChannel)
(F_CC_NOCHANNEL)
分配呼出通道
OnCalloutChannel
OnRelease
OnRelease
OnRelease
等待释放
Release
对方应答,连通
Flash
OnAck
Call (F_C_NORMAL,mainref ,subref)
OnCalloutChannel (F_CC_NORMAL)
呼叫成功(回铃音)
呼叫中
OnAcm
OnRelease
摸拟外线呼出(摘机拨号)
(F_CC_HANDLE)
Call (F_C_OVLP,,mainref ,subref)
Call (F_C_OVLP,mainref ,subref)
-52-
空闲
OnRelease
模拟内线呼入
OnCall (F_C_NORMAL)
收号中
OnRelease
OnRelease
OnCall (F_C_OVLP)
Acm
收号完毕等待连通
OnFlash 连通
OnRelease
送忙音等待释放
Release
Ack
Ack
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-53-
空闲
分配呼出句柄
OnCalloutChannel
摸拟内线呼出(对电话振铃)
(F_CC_NOCHANNEL)
OnCalloutChannel)
(F_CC_NOCHANNEL)
分配呼出通道
OnCalloutChannel (F_CC_HANDLE)
OnRelease
OnRelease
OnRelease
送忙音,等待释放
Release
对方应答,摘机,连通OnFlash
OnAck
Call (mainref ,subref)
OnCalloutChannel (F_CC_NORMAL)
呼叫成功(振铃中)
呼叫中
OnAcm
OnRelease
-54-
Media (F_MEDIA_Tx_File)
Media (F_MEDIA_Tx_Memory)
Media (F_MEDIA_Tx_Index)
Media (F_MEDIA_Tx_TTStr)
Media (F_MEDIA_Tx_TTSFile)
Media (F_MEDIA_Tx_DTMF)
Media (F_MEDIA_Tx_CPSign)
OnMedia (F_MEDIA_ERROR,Param= =P_MEDIA_AllocOk)
Media (F_MEDIA_Tx_Memory)
Media (F_MEDIA_Tx_File)
Media (F_MEDIA_Tx_Index)
Media (F_MEDIA_Tx_TTStr)
Media (F_MEDIA_Tx_TTSFile)
Media (F_MEDIA_Tx_DTMF)
Media (F_MEDIA_Tx_CPSign)
OnMedia(F_MEDIA_Tx_Release)
OnMedia(F_MEDIA_Tx_Release)
OnMedia (F_MEDIA_ERROR,
Param< >P_MEDIA_AllocOk)
Media (F_MEDIA_Tx_Release)
停止放音
分配放音资源
排队放音
等待释放资源
播放语音/放信号音/发DTMF
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-55-
停止录音
收信号音/ 收DTMF
录制语音/收信号音/收DTMF码
(收信号音/收DTMF功能在合适的线路状态下自动打开)
录音暂停
等待释放资源
分配录音资源
录音中
OnMedia(F_MEDIA_Rx_Memory)
OnMedia (F_MEDIA_Error,
Param< >P_MEDIA_AllocOk)
Media (F_MEDIA_Rx_File)
Media (F_MEDIA_Rx_Memory)
OnMedia (F_MEDIA_ERROR, Param= =P_MEDIA_AllocOk)
OnMedia
(F_MEDIA_Rx_Release)
OnMedia
(F_MEDIA_Rx_Release)
OnMedia
(F_MEDIA_Rx_Release)
OnMedia
(F_MEDIA_Rx_Memory)
OnMedia
(F_MEDIA_Rx_Memory)
Media
(F_MEDIA_Rx_Release)
OnMedia
(F_MEDIA_Rx_Memory)
Media(F_MEDIA_Rx_Release)
Media
(F_MEDIA_Rx_Resume)
Media(F_MEDIA_Rx_Pause)
-56-
OnMedia (F_MEDIA_ERROR,
Param< >P_MEDIA_AllocOk)
OnMedia(F_MEDIA_Tx_Release)
OnMedia(F_MEDIA_Tx_Release)
Media (F_MEDIA_Tx_File)
OnMedia (F_MEDIA_ERROR, Param= =P_MEDIA_AllocOk)
Media (F_MEDIA_Tx_Release)
停止
分配传真资源
排队发传真
等待释放资源
发送传真
Media (F_MEDIA_Tx_File)
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-57-
OnMedia (F_MEDIA_ERROR,
Param< >P_MEDIA_AllocOk)
OnMedia(F_MEDIA_Rx_Release)
OnMedia(F_MEDIA_Rx_Release)
Media (F_MEDIA_Rx_File)
OnMedia (F_MEDIA_ERROR, Param= =P_MEDIA_AllocOk)
Media (F_MEDIA_Rx_Release)
停止
分配传真资源
收传真
等待释放资源
接收传真
-58-
OnMedia (F_MEDIA_ERROR,
Param< >P_MEDIA_AllocOk)
OnMedia
(F_MEDIA_Tx_Release)
OnMedia
(F_MEDIA_Tx_Release)
Media (F_MEDIA_Tx_Memory)
Media (F_MEDIA_Tx_File)
OnMedia (F_MEDIA_ERROR,
Param= =P_MEDIA_AllocOk)
Media (F_MEDIA_Tx_Release)
停止发送
分配发送FSK资源
排队发送FSK数据
等待释放资源
发送FSK
Media (F_MEDIA_Tx_File)
Media (F_MEDIA_Tx_Memory)
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-59-
OnMedia (F_MEDIA_ERROR,
Param< >P_MEDIA_AllocOk)
OnMedia
(F_MEDIA_Rx_Release)
OnMedia
(F_MEDIA_Rx_Release)
Media (F_MEDIA_Rx_Memory)
Media (F_MEDIA_Rx_File)
OnMedia (F_MEDIA_ERROR,
Param= =P_MEDIA_AllocOk)
(F_MEDIA_Rx_Memory)
OnMedia
Media (F_MEDIA_Rx_Release)
等待释放资源
接收FSK
停止接收
分配接收FSK资源
接收FSK数据中
-60-
OnMedia (F_MEDIA_ERROR,
Param< >P_MEDIA_AllocOk)
OnMedia
(F_MEDIA_Tx_Release)
OnMedia
(F_MEDIA_Tx_Release)
Media (F_MEDIA_Tx_Memory)
Media (F_MEDIA_Tx_File)
OnMedia (F_MEDIA_ERROR,
Param= =P_MEDIA_AllocOk)
Media (F_MEDIA_Tx_Release)
停止发送
分配发送MODEM资源
排队发送MODEM数据
等待释放资源
发送MODEM
Media (F_MEDIA_Tx_File)
Media (F_MEDIA_Tx_Memory)
注:当MODEM握手成功后数据才能发送出去
长丰健业通讯技术有限公司CT240A 高性能PCI 模拟中继语音卡程序员手册
-61-
OnMedia (F_MEDIA_ERROR,
Param< >P_MEDIA_AllocOk)
OnMedia
(F_MEDIA_Rx_Release)
OnMedia
(F_MEDIA_Rx_Release)
Media (F_MEDIA_Rx_Memory)
Media (F_MEDIA_Rx_File)
OnMedia (F_MEDIA_ERROR,
Param= =P_MEDIA_AllocOk)
(F_MEDIA_Rx_Memory)
OnMedia
Media (F_MEDIA_Rx_Release)
等待释放资源
接收MODEM
停止接收
分配接收MODEM资源
接收MODEM数据中
注:握手成功后自动启动接收
注:此时启动握手过程
-62-
附录
文档 版本历 史
VER 6.86 2005-2-20 第一部分删除,并移入《硬件手册》中(第一部分)
VER 5.18 2004-4-1 增加增强型会议最大音量会议人检测功能(第二部分3.4.7)
VER 5.00 2003-12-25 增加系统内特定资源数目统计(第二部分3.3)
增加增强型会议支持(第二部分3.4.7)
VER 4.00 2003-9-9 增加Dialogic VOX 6K/8K语音格式录放音(第一部分3.4.4)
增加V.32B Modem资源(第二部分3.4.10.F)
(第二部分3.5.12.F)
VER 3.40 2003-8-28 增加文件追加录音方式(第二部分3.4.10.A)
VER 3.30 2003-8-18 支持G.723.1软件压缩录放音(第一部分3.4.4)
VER 3.22 2003-8-12 允许指定文件放音起始位置(第二部分3.4.10.A)
(第二部分4.4.10)
VER 3.10 2003-7-30 开放外线告警功能接口(第二部分3.5.10)
(第二部分3.5.1)
VER 3.00 2003-7-22 DLL增加INITCARD 和EXITCARD函数(第二部分3.3)
增加录音切尾功能(第一部分3.4.4)
模拟卡内线改用硬件播放信号音(第二部分3.4.2)
(第二部分3.4.3)
(第二部分3.5.1)
增加与非本公司卡交换功能(限于8M速率) (第一部分3.4.3)
(第二部分3.5.9)
VER 2.00 2003-5-5 正式印刷版本
VER 1.20 2003-3-1 正式发行版本