GVOS 8.2 SP1 (ADL)& CT ADE 结构
(二)
 

 

6. VOS语言

  6.25. 图形化VOS,运行程序

  菜单选项"Run"包括编译和运行VOS程序所需的所有选项,编译过程就是VOS检测并把VOS代码转换为p-code。VOS编译项目中的每一个应用程序。编译程序为:VLC8.exe1。
  编译过程中,有一个状态窗口显示编译状态,编译和连接过程中产生的错误和警告:

  程序编译完成后(无错误),就可以运行了。
  运行过程中,VOS调用VOS.exe程序,VOS.exe解释执行编译后的VOS代码,可以通过F5键或者按钮 来实现。
  VOS运行有许多设置:

  6.25.1. 用户界面,-设置

  VOS启动时,用户界面是一个称为VOS控制面板(VOS Control Panel)的对话框。VOS对话框如下所示:

  任务栏中有一个当前file.VOS的索引。
  编译(vlc)和运行(vos)的设置通过两个文件完成:VOS.ini和扩展名为.VOS的文件。

  6.25.1.1. configurationfile.VOS 文件


  从版本7(version 7)开始,VOS和VLC的设置就固定在两个文件中:VOS.INI和称为VOS设置文件的一种新文件,其扩展名为.vos。
  设置文件与INI文件非常相象,VOS.INI文件应用于VOS运行引擎的每一个时间例程,而对于每一个VOS项目都可以有一个不同的设置文件。运行一个VOS程序时,可以指定使用某一个设置文件。如果没有指定设置文件,VOS使用VOS.INI文件中[Setings]部分指定的缺省设置。此设置文件可以移出Windows目录,也允许任意改变文件名,可以很容易在运行在不同的系统中。
  VOS设置文件格式基于Widows的INI文件格式,并且VOS使用Windwos API函数来管理INI文件,所有指定段落名,关键词、值和注释的用法都相同。

  文件可以在三个地方编辑
  ·使用图形化的VOS(Graphical VOS)->Project->VOS Settings。
  ·使用VOS控制面板,单击右键。
  ·直接使用记事本(NotePad)编辑VOS.ini文件。
  设置文件中的节(Sections)包括:
  [AutoStart]
  VOS设置文件的[AutoStart]部分指定.vx文件,最多指定16个,当VOS使用此设置文件时,都要载入这些.vx文件。例如:
    [AutoStart]
    VXProgram1=C:\VoiceMail\VX\Master.vx
    VXProgram2=Q:\Shared Vos Files\VX\Database.vx
    VXProgram3=Q:\Shared Vos Files\VX\Pager.vx

  [Buf]
  VOS设置文件的[Buf]部分指定使用缓冲区的函数可以使用的缓冲区的数目。
  例:
    [Buf]
    Count=10
    [Colors]

  VOS设置文件的[Colors]部分保存16种自定义颜色,用来设置VOS控制面板。

     条目     含义
    Custom0  自定义颜色 0.
    Custom1  自定义颜色 1.
    Custom2  自定义颜色 2.
    Custom3  自定义颜色 3.
    Custom4  自定义颜色 4.
    Custom5  自定义颜色 5.
    Custom6  自定义颜色 6.
    Custom7  自定义颜色 7.
    Custom8  自定义颜色 8.
    Custom9  自定义颜色 9.
    Custom10  自定义颜色 10.
    Custom11  自定义颜色 11.
    Custom12  自定义颜色 12.
    Custom13  自定义颜色 13.
    Custom14  自定义颜色 14.
    Custom15  自定义颜色 15.
  自定义颜色的格式使用Win32RGB的十六进制值。
  [Consts]
  VOS设置文件的[Consts]部分指定VLC开始运行时声明的常量。
    [Consts]
    Const1=<Name>[:Value]
    Const2=<Name>[:Value]
    ... etc. for Const3, Const4, ...

  [DateTime]
  VOS 设置文件的[DateTime]部分可以使用户覆盖(override)VOS的时间设置。

  条目 含义
  DST 设置为0表示使用标准的时间,设置值大于0表示使用夏令时。如果设置值小于0,对于给定的日期,VOS计算决定使用标准时间或者daylight savings时间。

  [DBF]
  VOS设置文件的[DBF]部分设置使用DBF数据库的VOS参数。

  条目 含义
  AllowUnsafe2 是否允许使用不安全的db_fput调用?1:可以使用,0:不可以使用。
  MaxBases 最大的活动数据库数目
  MaxBaseHandles 最大数据库句柄(描述符)数目
  MaxFields 一个数据库的最大字段数
  MaxRecHandles 最大记录句柄(描述符)数目
  MaxRecBytes 记录的最大长度,必须大于数据库中的记录长度,使用dmpdbf.exe函数检查数据库记录长度
  MaxRecs 最大的活动记录数。

  [Exceptions]
  VOS设置文件的[Exceptions]部分设置异常处理。

  条目 含义
  Handler Handler的值可以为1或2,如果为1表示VOS不作任何异常处理或记录日志。如果Handler值为2表示VOS进行异常处理(在EXCEPT.RPT文件中记录异常日志),并且在ERRORLEVEL为3的情况下立即退出程序,可以在批处理中使用。
缺省的异常处理是在EXCEPT.RPT文件中记录异常日志,并且控制权交于下一个异常处理器,下一个异常处理器一般情况下为Dr.Watson或者Visual C++调试器。

  [File]
  VOS设置文件的[File]部分用来设置DBF数据库文件的文件和记录锁定参数。

  条目 含义
  MaxLocks 文件锁的最大数目

  [FunFileDirs]
  VOS文件中的[FunFileDirs]部分用来设定最多8个目录,VLC应该从这8个目录中寻找函数文件。

  条目 含义
  Dir1 第1个函数文件目录
  Dir2 第2个函数文件目录
   
  Dir8 第8个函数文件目录

  VLC检查是从Dir1到Dir8进行的,例如,Dir1中的函数文件比Dir2中的函数文件优先级高。这一点非常重要,尤其在不同的指定目录中有两文件同名的情况下,例如有两个文件名字都为myfunc.fun,一个在C:\functions目录中,另一个在D:\functions中。如果项目的设置文件如下所示:
    [FunFileDirs]
    Dir1=D:\functions
    Dir2=C:\functions

  编译程序时,VOS使用D:\functions目录中的函数。
  [Glb]
  VOS设置文件的[Glb]部分设定编号的全局变量的参数。
  以下的条目不影响命名的全局变量。

  条目 含义
  Count 允许的编号的全局变量的最大数目
  VarBytes 编号的全局变量的最大长度,以字节为单位

  [GUI]
  VOS设置文件的[GUI]部分控制VOS用户接口的外观,可以通过VOS控制面板中的用户接口对话框来设定。

  条目 含义
  AboutBoxText VOS"关于"对话框中显示的字符串
  CtlPanelTitle 设定控制面板的标题
  ConfirmStop 停止VOS时是否要有一个确认对话框?设置为1时,会出现确认对话框,设置为0时,不需确认,VOS直接终止。
  ShowCtlPanel VOS运行时是否显示控制面板?设置为1时,显示控制面板,设置为0时,隐藏控制面板。
  StopIfNoTasks 如果没有任务运行时,VOS是否应该停止?如果设为1,VOS就会停止,如果设置为0,VOS继续运行。

  [IncludeFileDirs]
  VOS设置文件的[IncludeFileDirs]部分设置最多8个包含文件所在的目录,VLC在这些目录中寻找包含文件。

  条目 含义
  Dir1 第1个包含文件的目录
  Dir2 第2个包含文件的目录
   
  Dir8 第8个包含文件的目录
     

  VLC检查是从Dir1到Dir8进行的。例如,Dir1中的函数文件比Dir2中的函数文件优先级高这一点非常重要,尤其在不同的指定目录中有两文件同名的情况下,例如有两个文件名字都为project.inc,一个在C:\include directory目录中,另一个在D:\include directory中。如果项目的设置文件如下所示:
    [IncludeFileDirs]
    Dir1=D:\include
    Dir2=C:\include

  程序编译后,VOS将使用D:\include directory目录中的文件。

  [Load]
  VOS设置文件的[Load]部分设定缺省状态下VOS载入的DLL,
调试和非调试DLL文件的名字和路径名在VOS.INI文件中的[DLLs]部分设定。

  条目 含义
  DebugDLL VOS缺省状态下是否载入调试DLL(即调试模式下开始)?如果设为1,则缺省为调试模式,如果设为0,则缺省为非调试模式。

  [Log]
  VOS设定文件的[Log]部分设定VOS日志文件的参数。

  条目 含义
  Append 是否将一条新的日志附在一个存在的日志后?如果设为1,则VOS运行时,将新的日志添加在旧的日志文件后,如果设为0,则VOS开始运行时,将覆盖所有旧的日志。
  Buffer 布尔值,设置为1是允许缓冲,设置为0是不允许缓冲。如果允许缓冲,VOS在内存中保留多于1行的日志,往日志文件中一次写入一组日志。如果不允许缓冲,VOS不在内存中保留,一次往日志文件中写入1行日志。
  Commit 布尔值,如果设为1,每向日志文件写入一行时,都要将日志文件写入磁盘(此操作相当于Windows是否缓冲)。如果Commit=1时,只有Windows终止一个进程时才向硬盘写入日志文件。通常情况下不需要这样,因为即使一个进程终止时,Windows会把缓冲区的所有字节写入文件,这种操作会很慢,所以如果真正需要,设为1。
  Dir 日志文件vos?.log所存储的目录
  MaxSizeKb VOS日志的最大长度

  [Msg]
  VOS 设置文件的[Msg]部分设定消息函数参数。

  条目 含义
  MaxCount 消息的最大数目
  MaxChars 消息的最大字符数,加上一个终止符字节
  Msg_IntervalMs  

  [NTX]
  VOS设置文件的[NTX]部分设定DBF数据库索引参数。

  条目 含义
  Buffers 每个索引的缓冲:参见设定文件索引要求。
  Clipper NTX:0=older VOS 1=自由排列 2=关键词排序 3=both
  MaxKey 索引字段最大长度:参见文件索引要求。
  MaxOpen 索引文件最大数目:参见文件索引要求。
  PageErrFatal 一个页面错误是否关键?设为1表示页面错误关键,设为0表示页面错误不关键。

  [Pio]
  VOS设置文件中的[Prio]部分可以设定VOS进程、基本线程、GUI线程在Windows中的优先级。Windows优先级在MSDN库中详细解释,参见MSDN库中的SetThreadPriority和SetThreadPriorityBoost Win32 API函数。
  VOS开始时,调用SetThreadPriority和SetThreadPriorityBoost Win32 API函数(使用VOS设置文件本部分设定值)。通过控制面板的优先级设定对话框改变设置时,也要调用上述2个API函数,不需要重启动VOS来改变属性。

  条目 含义
  GuiBoost 是否允许提高VOS GUI线程的优先级,如果设为1,允许,设为0,不允许。
  GuiThread 设定VOS GUI线程的优先级。线程优先级和有效优先级的值参见MSDN库SetThreadPriority(Win32API函数)。
  PrimaryBoost 是否允许提高VOS基本线程的优先级,1表示允许,0表示不允许。关于提高优先级的解释参见MSDN 库 SetThreadPriorityBoost(一个Win32 API函数)。
  PrimaryThread 设置VOS基本线程的优先级。线程优先级和有效优先级的值参见MSDN库SetThreadPriority(Win32API函数)。
  ProcessClass 设置VOS例程类的优先级。线程优先级和有效优先级的值参见MSDN库SetThreadPriority(Win32API函数)。

  [R4]
  VOS设置文件的[R4]部分设定传统(legacy)VOS函数的参数,如sc_,DTI_函数等等。
  如果应用程序中没有使用这些函数,设置文件中删去此节。

  条目 含义
  Enable VOS是否载入R4驱动?1表示载入,0表示不载入。
  fxSendFiles 单个FaxSend发送的传真文件的最大数目。
  gcIEBytes ISDN信息元素中字节的最大数目。
  scEnablePCPA 系统是否使用Perfect CPA?1表示使用,0表示不使用。
  scNshgup 是否把连续音视为挂机?1表示是,0表示否。
  scPhraseWords 短语中最多单词数,必须大于0

  [RLLs]
  VOS设置文件[RLLs]部分设定VOS或VLC运行时载入那些RLL。

  条目 含义
  RLL1 第1个RLL路径名
  RLL2 第2个RLL路径名
   
  RLL8 第8个RLL路径名

  [SearchPaths]

  VOS设置文件中的[SearchPaths]部分设定查询IPF、Par文件和VX文件的路径。
  如果一条SearPaths要列出多个路径,各路径用分号隔开:
  [SearchPaths]
  IPF=.;.\IPF;c:\Projects\IPFs;

  条目 含义
  IPF 设定查询索引的提示语文件的路径
  Par 设定查询PAR文件的路径
  VX 设定VOS命令行下或chain、spawn下查询.vx文件的路径。

  [Sem]
  VOS设置文件的[Sem]部分设定信号量(Semaphore)参数。

  条目 含义
  Count 编号的信号量(Semaphore)的最大数量

  [Ser]
  VOS设置文件的[Ser]部分设定串口的参数。

  条目 含义
  BuffKb 串口缓冲区大小,以字节为单位
  Ports 支持的串口数目
  Ser_IntervalMs 轮循串口的间隔,毫秒为单位,缺省为50

  [SRL]
  VOS设置文件的[SRL]部分设定标准运行库(SRL)事件的参数。

  条目 含义
  Srl_IntervalMs 轮循DialogicSRL事件的间隔,毫秒为单位,缺省为25。

  [Task]
  VOS设置文件[Task]部分设定任务管理参数

  条目 含义
  MaxCount 任务的最大数目
  MaxName VOS任务名的最大长度

  [Trace]
  VOS设置文件[Trace]部分设定跟踪选项

  条目 含义
  ActiveX VOS是否应进入对象跟踪(只在调试模式下使用)?设为1表示跟踪,设为0表示不跟踪。
  Builtins VOS是否应跟踪所有的内置函数?设为1表示跟踪,0表示不跟踪。
  Drivers 跟踪API函数调用
  InOut 调用函数前后都要跟踪。当函数调用使VOS崩溃时有用,正常情况下函数调用在返回后写入日志,但如果函数崩溃,在日志中不会记录。
  Layer 为传统函数sc_、DTI_等创建DOS到Windows转换层的日志。
  OutputToVosBox 跟踪信息是否既显示在VOS对话框中,又记录在日志文件中?1表示既显示跟踪信息,又记录在日志文件中,0表示只记录在日志文件中。
  Override 单个程序中,是否用此设置文件中的条目替换trace()函数设定的跟踪选项?设为1表示替换,设为0表示使用程序的设定。
  Pcode VOS是否跟踪所有的p-code指令?设为1表示跟踪,设为0表示禁止p-code跟踪。(p-code跟踪会产生大量的日志数据)。
  RLLs VOS是否跟踪所有的RLL调用?设为1表示跟踪,设为0表示禁止RLL跟踪。
  Stack VOS进行p-code跟踪时是否包含堆栈?设为1表示包含堆栈,设为0表示忽略堆栈。
  Structs VOS是否跟踪API结构的成员?设为1表示跟踪,设为0忽略结构。
  Vars VOS跟踪p-code时是否包含变量?设为1表示包含,设为0表示忽略变量。

  [TrayIcon]
  VOS设置文件中的[TrayIcon]部分设定当VOS运行时系统图标。从VOS控制面板中的用户接口对话框中可以找到这些条目。

  条目 含义
  Animate 图标是否为动画?设为1表示运行动画,设为0表示禁止动画。
  HWND VOS内部使用。
  Show VOS运行时是否显示系统图标?设为1表示显示,设为0表示隐藏。
  Tooltip 设定系统图标的提示语,用户图标停在系统图标上时,显示提示语。

  [VLC]
  VOS设置文件的[VLC]部分设置VOS语言编译选项。

  条目 含义
  GenerateDebugSymbols VLC是否产生调试符号?设为1表示产生,设为0表示不产生,缺省状态下为产生调试符号。
  GenerateLineMarks VLC是否产生行标记?设为1表示产生,设为0表示不产生,缺省状态下为产生行标记。
  ListFileName 指定创建的列表的文件名,如果此项没有指定,则不创建列表文件。
  ReportUnusedVariables 设为1表示报告未用的变量,设为0表示不报告未用的变量,缺省为不报告。
  LongFileNameSupport VLS查找函数文件时是否使用长文件名?如果设为1,VLC使用完整的函数名作为长文件名,如果没有找到,报告错误。例如,如果一个函数名为MyFunction(),VLC查找MyFunction.Fun文件。如果设为2,VLC使用完整的函数名作为长文件名,如果没有找到,把函数名截短为8字符,继续寻找相应的.Fun文件,如果没有找到,报告错误。例如,如果一个函数为MyFunction(),VLC查询文件MyFunction.Fun。如果VLC没有找到,继续寻找MyFuncti.Fun。如果设为3,VLC截短函数名,只寻找截短函数名的文件。例如,如果寻找MyFunction(),VLC只寻找MyFuncti.Fun。缺省状态下,支持长文件名。
  StackDepth 设置堆栈深度。
  StackSize 设置堆栈的大小,以字节为单位,缺省为2048。
  Verbose 显示编译过程,数值从0到9来显示进行的细节。

  [VLs]
  VOS设置文件中[VLs]部分指定VOS或VLC运行时载入的VL文件,一个Vlc库文件是一组函数文件的集合,Vlc库文件的扩展名为.VL。
    [VLs]
    Lib1=<VL path name>
    ... etc for Lib2, Lib3...


  [VosBox]
  "VOS Box"窗口是一个模拟MS-DOS PC的25x80字符的窗口,此窗口是为了与DOS版本的VOS后向兼容。
  VOS设置文件的[VosBox]设定VOX Box的选项,也可以从VOS控制面板的用户接口对话框来设置。

  条目 含义
  BkBlue 背景颜色中蓝色的密度(0到255)
  BkGreen 背景颜色中绿色的密度(0到255)
  BkRed 背景颜色中红色的密度(0到255)
  EnableCtrlBreak 是否支持按Ctrl+Break来停止VOS?设为1表示支持,设为0表示不支持,缺省为不支持Ctrl+Break停止VOS。
  Font 用来选择屏幕显示的字体,对于显示国家字符是必需的。
  FontBlue 文本字体颜色中蓝色的密度(0到255)
  FontGreen 文本字体颜色中绿色的密度(0到255)
  FontItalic 字体是否为斜体?设为1表示是斜体,0表示正常。
  FontRed 文本字体颜色中红色色的密度(0到255)
  FontSize 设定屏幕显示字体的大小,以点为单位
  FontWeight 字体粗细度(有效值参见Win32 CreatFont函数)
  Show VOS运行时是否显示VOS Box?设为1表示显示,设为0表示不显示。
  ShowTime VOS Box是否显示当前时间?设为1表示显示,设为0表示不显示。
  Title 此字符串为VOS Box的标题,如果没有设置标题,VOS使用缺省的标题"VOS Box"。

  6.25.1.2. VOS.INI文件

  VOS.INI文件保存影响VOS的设置,设置如下:
[Settings]
  VOS.INI文件中[Settings]指定为缺省设置文件:
    [Settings]
    Default=c:\Vos\Settings\Default.vos

[DLLs]
  VOS.INI文件中[DLLs]指出调试和非调试 VOS DLL的位置:
    [DLLs]
    Debug=c:\Vos\Bin\Vosd.dll
    NonDebug=c:\Vos\Bin\Vos.dll

[Service]
  VOS.INI文件中[Service]指定业务相关性和VOS作为WindowsNT/2000业务运行时所需的其他设置:
    [Service]
    GroupName=VoiceMail
    Dependencies=Dialogic;Telephony
    GroupOrderTag=2

7. CT ADE 体系结构(Topaz),介绍

  第一个问题:什么是 CT ADE体系结构(TOPAZ)?
  回答这个问题之前,首先回顾一下CTI应用所提出的问题。
  开发电话应用程序时必须清楚:电话线的类型、电路板的类型和相关的不同的API。有3种接口:
  ·模拟
  ·数字(R2,ISDN,SS7等等)
  ·IP(Voice over IP)
  比如,如果需要为每种接口开发和维护相同的应用,应该开发3种不同的程序:模拟版本、数字版本和IP版本。另外,这些应用程序直接依赖于电路板API。而且,如果要把应用程序应用到CT 媒体上,就必须重新从开始开发整个程序。
CTADE_A具有很多的好处,随 CTADE_A带有可以一组简单的命令,这允许我们为不同类型的中继和API只开发一套应用程序就可以了。这种概念称为API透明性。
CTADE_A怎样实现透明?
  下面图表显示了在系统中TOPAZ处在何处,它是怎样分开应用程序和API的。

  从上图中可以看出,TOPAZ处于API和应用程序之间。TOPAZ检测API函数和安装的板卡(使用Topaz Profile,以后介绍)。
  TOPAZ是面向资源的,它直接处理系统中的电话资源。
  这就是我们所谓的面向系统资源。什么是资源?
  资源是指可以共享和使用的一个和一组元素,其中每一个元素都代表实体元素。首先要定义资源的类型。VOS中有下列资源:
  ·中继资源:线路接口资源
  ·媒体资源:播放、录音、产生和检测各种声音的资源。
  ·传真资源:发送和接收传真的资源
  ·语音识别资源:语音识别资源
  ·文本到语音转换资源:文本到语音转换资源
  ·会议资源:协商安排和控制资源
  由下面的VOS代码可以看出,关于资源的函数名总是以相应资源的名称开始:

 7.1. 图形化VOS,CT ADE 体系结构(Unleashed)

  我们已经知道了怎样创建一个项目和怎样向一个项目加入必须的文件,另外,我们已经知道了怎样设置一个VOS项目。
  下面介绍CTADE_A和VOS语言,我们已经知道,CTADE_A是一组软件模块,用来衔接CTADE_A命令(MediaPlayFile、MediaRecofd等等)和安装的CTI API。
CTADE_A是面向资源的。从前面的介绍可以得知,有许多种资源(中继、媒体、传真、ASR、TTS、会议(Conference))等等,Dialogic板卡上的这些资源使用不同的技术。
这些资源中每一种资源都包含许多内部状态,这些状态的转换都与资源短语(resource live phases)有关。关于这些状态,请参见Graphical
  VOS User's Guide en la sección CTADE_A->Resource Stats.。

  7.1.1. CTADE_A,资源和资源索引号码

  许多VOS函数控制CTADE_A资源,例如,函数MediaPlayFile在当前的媒体资源上播放一个声音文件。现在,我们介绍资源的概念并且讨论资源编号方式是怎样工作的。
  资源就是呼叫处理系统的一个组成部分。在大多情况下,单个资源在一条电话线或一个数字中继上播放单个语音流。
  每一资源由资源索引号码来区分,通常不需要考虑资源索引号码,因为当应用程序需要资源时,VOS负责这些资源的预留和路由。但如果要控制应用程序使用资源的方式,就需要靠资源索引号码来指定资源。每种资源的索引号码都从0开始且独立编码:一个VOS任务能够很方便的使用中继资源1和媒体资源4。
  另外,可以通过多个函数来得到资源索引的资源:
  -ResourceTypeGetIndex,返回当前资源的索引号,如:MediaGetIndex,   TrunkGetIndex
  -ResourceTypeGetCount,返回资源的总数,如:MediaGetCount,      TrunkGetCount。

  7.1.2. CTADE_A 函数概述

  CTADE_A中,所有的函数有资源分组,CTADE_A的每一种资源根据不同的特征形成一组函数。通常情况下,系统中的所有资源都有一个号码,我们可以通过索引来操作每一种资源。有两种资源来请求资源:自动和手动。例子:

   7.1.2.1. CTADE_A函数,异步模式。

  缺省状态下,VOS一直在等待,直到所有的CTADE_A函数执行结束(同步模式),例:
    MediaPlayFile("LeaveMsg.vox");
    MediaRecordFile("Message");

  缺省状态下,MediaPlayFile在vox文件播放完毕或者其他终止条件(DTMF,静音等等)下退出执行。
  但是,在许多情况下,需要调用函数的同时继续执行程序(异步模式),例:
    MediaPlayFile("Welcome.vox");
    Balance=CheckBalance(AccountNo);
    MediaPlayFile(Balance&".vox");
  
假设函数CheckBalance要运行1到10秒(决定于数据库服务器的忙闲程度),最差情况下,呼入的用户需要在第一次播放和balance的结果之间等待10秒。
  异步执行通过使用函数MediaEnableAsync()可以避免这些问题,如下:
    MediaEnableAsync();
    MediaPlayFile("Welcome.vox");
    Balance=CheckBalance(AccountNo);
    MediaWait();--------------------→此函数一直等到媒体资源变为空闲状态
    MediaPlayFile(Balance&".vox");

  7.1.2.2. CTADE_A函数,中继资源和函数
  中继函数是用来管理系统中的中继资源,目的是做以下事情:
  ·进行呼出
  ·呼叫过程分析
  ·应答或拒接一个呼入呼叫
  ·获得呼叫信息(ANI,DNIS,呼叫者姓名,等等)
  ·挂断电话
  可以看出,中继资源负责所有的呼叫控制,一个中继资源处理单个语音流,所以下列都可以看作是一个中继资源
  ·单个模拟线的中继接口
  ·E1/T1的一个时隙
  ·一个MSI站(An MSI Station)
  ·SimPhone模拟中继线(索引号总为0)
  控制中继资源的函数:

  7.1.2.3. CTADE_A函数,媒体资源与函数

  媒体资源控制播放、录制语音文件和各种提示音,并且从呼叫方接收DTMF位。
  ·向呼叫方播放语音文件和提示语。
  ·播放可变信息:"你地余额为300.17元"。
  ·录制语音文件,提示怎样将呼叫方的语音录制成语音文件。
  ·使用停止播放来表示摘机音,当呼叫方拨号时,停止播放或录音。
  ·从呼叫方接收描述检索摘机音的数目。
  ·向呼叫方展示怎样播放普通的提示音。
  控制媒体资源的函数如下:





  7.1.2.4 CTADE_A 函数,传真资源和函数

  传真资源控制传真数据的传送与处理。Dialogic VFZ板上或GammaLink CP板上的一个单个的传真通道为一个传真资源。
  必须注意传真资源只能收发传真数据,所有其他需要呼出或呼入电话的操作应由中继资源或媒体资源完成。
  传真资源由传真函数管理,
  ·发传真
  ·收传真
  ·轮循传送或逆向传送



  7.1.2.5. CTADE_A函数,会议(Conference)函数

  会议资源用来创建和管理会议。
  会议函数完成下列功能:
  ·创建会议
  ·从一会议中删去某与会方
  ·删除会议
  多会议函数如下:



  7.1.2.6. CTADE_A 函数,语音识别函数

  语音识别资源把呼叫者的语音转变为文本字符串。一个VR资源可以对一个语音流数据(来自一中继或会议资源)进行识别。
  可以通过VrGetCount函数来查找系统中VR资源的数目。
  注:系统中CTADE_A为每一媒体资源创建一语音识别资源,由于语音引擎的限制,可能不能同时使用VR资源。






[ 全文英文版 ]

 

 

本文[ 目录 ] [ 第一页 ] [ 第二页 ] [ 第三页 ]

融合通信专栏>>技术开发>>