• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
     
    GVOS 8.2 SP1 (ADL)& CT ADE 結構
    (二)
     

     

    6. VOS語(yǔ)言

      6.25. 圖形化VOS,運行程序

      菜單選項"Run"包括編譯和運行VOS程序所需的所有選項,編譯過(guò)程就是VOS檢測并把VOS代碼轉換為p-code。VOS編譯項目中的每一個(gè)應用程序。編譯程序為:VLC8.exe1。
      編譯過(guò)程中,有一個(gè)狀態(tài)窗口顯示編譯狀態(tài),編譯和連接過(guò)程中產(chǎn)生的錯誤和警告:

      程序編譯完成后(無(wú)錯誤),就可以運行了。
      運行過(guò)程中,VOS調用VOS.exe程序,VOS.exe解釋執行編譯后的VOS代碼,可以通過(guò)F5鍵或者按鈕 來(lái)實(shí)現。
      VOS運行有許多設置:

      6.25.1. 用戶(hù)界面,-設置

      VOS啟動(dòng)時(shí),用戶(hù)界面是一個(gè)稱(chēng)為VOS控制面板(VOS Control Panel)的對話(huà)框。VOS對話(huà)框如下所示:

      任務(wù)欄中有一個(gè)當前file.VOS的索引。
      編譯(vlc)和運行(vos)的設置通過(guò)兩個(gè)文件完成:VOS.ini和擴展名為.VOS的文件。

      6.25.1.1. configurationfile.VOS 文件


      從版本7(version 7)開(kāi)始,VOS和VLC的設置就固定在兩個(gè)文件中:VOS.INI和稱(chēng)為VOS設置文件的一種新文件,其擴展名為.vos。
      設置文件與INI文件非常相象,VOS.INI文件應用于VOS運行引擎的每一個(gè)時(shí)間例程,而對于每一個(gè)VOS項目都可以有一個(gè)不同的設置文件。運行一個(gè)VOS程序時(shí),可以指定使用某一個(gè)設置文件。如果沒(méi)有指定設置文件,VOS使用VOS.INI文件中[Setings]部分指定的缺省設置。此設置文件可以移出Windows目錄,也允許任意改變文件名,可以很容易在運行在不同的系統中。
      VOS設置文件格式基于Widows的INI文件格式,并且VOS使用Windwos API函數來(lái)管理INI文件,所有指定段落名,關(guān)鍵詞、值和注釋的用法都相同。

      文件可以在三個(gè)地方編輯
      ·使用圖形化的VOS(Graphical VOS)->Project->VOS Settings。
      ·使用VOS控制面板,單擊右鍵。
      ·直接使用記事本(NotePad)編輯VOS.ini文件。
      設置文件中的節(Sections)包括:
      [AutoStart]
      VOS設置文件的[AutoStart]部分指定.vx文件,最多指定16個(gè),當VOS使用此設置文件時(shí),都要載入這些.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種自定義顏色,用來(lái)設置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的十六進(jìn)制值。
      [Consts]
      VOS設置文件的[Consts]部分指定VLC開(kāi)始運行時(shí)聲明的常量。
        [Consts]
        Const1=<Name>[:Value]
        Const2=<Name>[:Value]
        ... etc. for Const3, Const4, ...

      [DateTime]
      VOS 設置文件的[DateTime]部分可以使用戶(hù)覆蓋(override)VOS的時(shí)間設置。

      條目 含義
      DST 設置為0表示使用標準的時(shí)間,設置值大于0表示使用夏令時(shí)。如果設置值小于0,對于給定的日期,VOS計算決定使用標準時(shí)間或者daylight savings時(shí)間。

      [DBF]
      VOS設置文件的[DBF]部分設置使用DBF數據庫的VOS參數。

      條目 含義
      AllowUnsafe2 是否允許使用不安全的db_fput調用?1:可以使用,0:不可以使用。
      MaxBases 最大的活動(dòng)數據庫數目
      MaxBaseHandles 最大數據庫句柄(描述符)數目
      MaxFields 一個(gè)數據庫的最大字段數
      MaxRecHandles 最大記錄句柄(描述符)數目
      MaxRecBytes 記錄的最大長(cháng)度,必須大于數據庫中的記錄長(cháng)度,使用dmpdbf.exe函數檢查數據庫記錄長(cháng)度
      MaxRecs 最大的活動(dòng)記錄數。

      [Exceptions]
      VOS設置文件的[Exceptions]部分設置異常處理。

      條目 含義
      Handler Handler的值可以為1或2,如果為1表示VOS不作任何異常處理或記錄日志。如果Handler值為2表示VOS進(jìn)行異常處理(在EXCEPT.RPT文件中記錄異常日志),并且在ERRORLEVEL為3的情況下立即退出程序,可以在批處理中使用。
    缺省的異常處理是在EXCEPT.RPT文件中記錄異常日志,并且控制權交于下一個(gè)異常處理器,下一個(gè)異常處理器一般情況下為Dr.Watson或者Visual C++調試器。

      [File]
      VOS設置文件的[File]部分用來(lái)設置DBF數據庫文件的文件和記錄鎖定參數。

      條目 含義
      MaxLocks 文件鎖的最大數目

      [FunFileDirs]
      VOS文件中的[FunFileDirs]部分用來(lái)設定最多8個(gè)目錄,VLC應該從這8個(gè)目錄中尋找函數文件。

      條目 含義
      Dir1 第1個(gè)函數文件目錄
      Dir2 第2個(gè)函數文件目錄
       
      Dir8 第8個(gè)函數文件目錄

      VLC檢查是從Dir1到Dir8進(jìn)行的,例如,Dir1中的函數文件比Dir2中的函數文件優(yōu)先級高。這一點(diǎn)非常重要,尤其在不同的指定目錄中有兩文件同名的情況下,例如有兩個(gè)文件名字都為myfunc.fun,一個(gè)在C:\functions目錄中,另一個(gè)在D:\functions中。如果項目的設置文件如下所示:
        [FunFileDirs]
        Dir1=D:\functions
        Dir2=C:\functions

      編譯程序時(shí),VOS使用D:\functions目錄中的函數。
      [Glb]
      VOS設置文件的[Glb]部分設定編號的全局變量的參數。
      以下的條目不影響命名的全局變量。

      條目 含義
      Count 允許的編號的全局變量的最大數目
      VarBytes 編號的全局變量的最大長(cháng)度,以字節為單位

      [GUI]
      VOS設置文件的[GUI]部分控制VOS用戶(hù)接口的外觀(guān),可以通過(guò)VOS控制面板中的用戶(hù)接口對話(huà)框來(lái)設定。

      條目 含義
      AboutBoxText VOS"關(guān)于"對話(huà)框中顯示的字符串
      CtlPanelTitle 設定控制面板的標題
      ConfirmStop 停止VOS時(shí)是否要有一個(gè)確認對話(huà)框?設置為1時(shí),會(huì )出現確認對話(huà)框,設置為0時(shí),不需確認,VOS直接終止。
      ShowCtlPanel VOS運行時(shí)是否顯示控制面板?設置為1時(shí),顯示控制面板,設置為0時(shí),隱藏控制面板。
      StopIfNoTasks 如果沒(méi)有任務(wù)運行時(shí),VOS是否應該停止?如果設為1,VOS就會(huì )停止,如果設置為0,VOS繼續運行。

      [IncludeFileDirs]
      VOS設置文件的[IncludeFileDirs]部分設置最多8個(gè)包含文件所在的目錄,VLC在這些目錄中尋找包含文件。

      條目 含義
      Dir1 第1個(gè)包含文件的目錄
      Dir2 第2個(gè)包含文件的目錄
       
      Dir8 第8個(gè)包含文件的目錄
         

      VLC檢查是從Dir1到Dir8進(jìn)行的。例如,Dir1中的函數文件比Dir2中的函數文件優(yōu)先級高這一點(diǎn)非常重要,尤其在不同的指定目錄中有兩文件同名的情況下,例如有兩個(gè)文件名字都為project.inc,一個(gè)在C:\include directory目錄中,另一個(gè)在D:\include directory中。如果項目的設置文件如下所示:
        [IncludeFileDirs]
        Dir1=D:\include
        Dir2=C:\include

      程序編譯后,VOS將使用D:\include directory目錄中的文件。

      [Load]
      VOS設置文件的[Load]部分設定缺省狀態(tài)下VOS載入的DLL,
    調試和非調試DLL文件的名字和路徑名在VOS.INI文件中的[DLLs]部分設定。

      條目 含義
      DebugDLL VOS缺省狀態(tài)下是否載入調試DLL(即調試模式下開(kāi)始)?如果設為1,則缺省為調試模式,如果設為0,則缺省為非調試模式。

      [Log]
      VOS設定文件的[Log]部分設定VOS日志文件的參數。

      條目 含義
      Append 是否將一條新的日志附在一個(gè)存在的日志后?如果設為1,則VOS運行時(shí),將新的日志添加在舊的日志文件后,如果設為0,則VOS開(kāi)始運行時(shí),將覆蓋所有舊的日志。
      Buffer 布爾值,設置為1是允許緩沖,設置為0是不允許緩沖。如果允許緩沖,VOS在內存中保留多于1行的日志,往日志文件中一次寫(xiě)入一組日志。如果不允許緩沖,VOS不在內存中保留,一次往日志文件中寫(xiě)入1行日志。
      Commit 布爾值,如果設為1,每向日志文件寫(xiě)入一行時(shí),都要將日志文件寫(xiě)入磁盤(pán)(此操作相當于Windows是否緩沖)。如果Commit=1時(shí),只有Windows終止一個(gè)進(jìn)程時(shí)才向硬盤(pán)寫(xiě)入日志文件。通常情況下不需要這樣,因為即使一個(gè)進(jìn)程終止時(shí),Windows會(huì )把緩沖區的所有字節寫(xiě)入文件,這種操作會(huì )很慢,所以如果真正需要,設為1。
      Dir 日志文件vos?.log所存儲的目錄
      MaxSizeKb VOS日志的最大長(cháng)度

      [Msg]
      VOS 設置文件的[Msg]部分設定消息函數參數。

      條目 含義
      MaxCount 消息的最大數目
      MaxChars 消息的最大字符數,加上一個(gè)終止符字節
      Msg_IntervalMs  

      [NTX]
      VOS設置文件的[NTX]部分設定DBF數據庫索引參數。

      條目 含義
      Buffers 每個(gè)索引的緩沖:參見(jiàn)設定文件索引要求。
      Clipper NTX:0=older VOS 1=自由排列 2=關(guān)鍵詞排序 3=both
      MaxKey 索引字段最大長(cháng)度:參見(jiàn)文件索引要求。
      MaxOpen 索引文件最大數目:參見(jiàn)文件索引要求。
      PageErrFatal 一個(gè)頁(yè)面錯誤是否關(guān)鍵?設為1表示頁(yè)面錯誤關(guān)鍵,設為0表示頁(yè)面錯誤不關(guān)鍵。

      [Pio]
      VOS設置文件中的[Prio]部分可以設定VOS進(jìn)程、基本線(xiàn)程、GUI線(xiàn)程在Windows中的優(yōu)先級。Windows優(yōu)先級在MSDN庫中詳細解釋?zhuān)瑓⒁?jiàn)MSDN庫中的SetThreadPriority和SetThreadPriorityBoost Win32 API函數。
      VOS開(kāi)始時(shí),調用SetThreadPriority和SetThreadPriorityBoost Win32 API函數(使用VOS設置文件本部分設定值)。通過(guò)控制面板的優(yōu)先級設定對話(huà)框改變設置時(shí),也要調用上述2個(gè)API函數,不需要重啟動(dòng)VOS來(lái)改變屬性。

      條目 含義
      GuiBoost 是否允許提高VOS GUI線(xiàn)程的優(yōu)先級,如果設為1,允許,設為0,不允許。
      GuiThread 設定VOS GUI線(xiàn)程的優(yōu)先級。線(xiàn)程優(yōu)先級和有效優(yōu)先級的值參見(jiàn)MSDN庫SetThreadPriority(Win32API函數)。
      PrimaryBoost 是否允許提高VOS基本線(xiàn)程的優(yōu)先級,1表示允許,0表示不允許。關(guān)于提高優(yōu)先級的解釋參見(jiàn)MSDN 庫 SetThreadPriorityBoost(一個(gè)Win32 API函數)。
      PrimaryThread 設置VOS基本線(xiàn)程的優(yōu)先級。線(xiàn)程優(yōu)先級和有效優(yōu)先級的值參見(jiàn)MSDN庫SetThreadPriority(Win32API函數)。
      ProcessClass 設置VOS例程類(lèi)的優(yōu)先級。線(xiàn)程優(yōu)先級和有效優(yōu)先級的值參見(jiàn)MSDN庫SetThreadPriority(Win32API函數)。

      [R4]
      VOS設置文件的[R4]部分設定傳統(legacy)VOS函數的參數,如sc_,DTI_函數等等。
      如果應用程序中沒(méi)有使用這些函數,設置文件中刪去此節。

      條目 含義
      Enable VOS是否載入R4驅動(dòng)?1表示載入,0表示不載入。
      fxSendFiles 單個(gè)FaxSend發(fā)送的傳真文件的最大數目。
      gcIEBytes ISDN信息元素中字節的最大數目。
      scEnablePCPA 系統是否使用Perfect CPA?1表示使用,0表示不使用。
      scNshgup 是否把連續音視為掛機?1表示是,0表示否。
      scPhraseWords 短語(yǔ)中最多單詞數,必須大于0

      [RLLs]
      VOS設置文件[RLLs]部分設定VOS或VLC運行時(shí)載入那些RLL。

      條目 含義
      RLL1 第1個(gè)RLL路徑名
      RLL2 第2個(gè)RLL路徑名
       
      RLL8 第8個(gè)RLL路徑名

      [SearchPaths]

      VOS設置文件中的[SearchPaths]部分設定查詢(xún)IPF、Par文件和VX文件的路徑。
      如果一條SearPaths要列出多個(gè)路徑,各路徑用分號隔開(kāi):
      [SearchPaths]
      IPF=.;.\IPF;c:\Projects\IPFs;

      條目 含義
      IPF 設定查詢(xún)索引的提示語(yǔ)文件的路徑
      Par 設定查詢(xún)PAR文件的路徑
      VX 設定VOS命令行下或chain、spawn下查詢(xún).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]部分設定任務(wù)管理參數

      條目 含義
      MaxCount 任務(wù)的最大數目
      MaxName VOS任務(wù)名的最大長(cháng)度

      [Trace]
      VOS設置文件[Trace]部分設定跟蹤選項

      條目 含義
      ActiveX VOS是否應進(jìn)入對象跟蹤(只在調試模式下使用)?設為1表示跟蹤,設為0表示不跟蹤。
      Builtins VOS是否應跟蹤所有的內置函數?設為1表示跟蹤,0表示不跟蹤。
      Drivers 跟蹤API函數調用
      InOut 調用函數前后都要跟蹤。當函數調用使VOS崩潰時(shí)有用,正常情況下函數調用在返回后寫(xiě)入日志,但如果函數崩潰,在日志中不會(huì )記錄。
      Layer 為傳統函數sc_、DTI_等創(chuàng )建DOS到Windows轉換層的日志。
      OutputToVosBox 跟蹤信息是否既顯示在VOS對話(huà)框中,又記錄在日志文件中?1表示既顯示跟蹤信息,又記錄在日志文件中,0表示只記錄在日志文件中。
      Override 單個(gè)程序中,是否用此設置文件中的條目替換trace()函數設定的跟蹤選項?設為1表示替換,設為0表示使用程序的設定。
      Pcode VOS是否跟蹤所有的p-code指令?設為1表示跟蹤,設為0表示禁止p-code跟蹤。(p-code跟蹤會(huì )產(chǎn)生大量的日志數據)。
      RLLs VOS是否跟蹤所有的RLL調用?設為1表示跟蹤,設為0表示禁止RLL跟蹤。
      Stack VOS進(jìn)行p-code跟蹤時(shí)是否包含堆棧?設為1表示包含堆棧,設為0表示忽略堆棧。
      Structs VOS是否跟蹤API結構的成員?設為1表示跟蹤,設為0忽略結構。
      Vars VOS跟蹤p-code時(shí)是否包含變量?設為1表示包含,設為0表示忽略變量。

      [TrayIcon]
      VOS設置文件中的[TrayIcon]部分設定當VOS運行時(shí)系統圖標。從VOS控制面板中的用戶(hù)接口對話(huà)框中可以找到這些條目。

      條目 含義
      Animate 圖標是否為動(dòng)畫(huà)?設為1表示運行動(dòng)畫(huà),設為0表示禁止動(dòng)畫(huà)。
      HWND VOS內部使用。
      Show VOS運行時(shí)是否顯示系統圖標?設為1表示顯示,設為0表示隱藏。
      Tooltip 設定系統圖標的提示語(yǔ),用戶(hù)圖標停在系統圖標上時(shí),顯示提示語(yǔ)。

      [VLC]
      VOS設置文件的[VLC]部分設置VOS語(yǔ)言編譯選項。

      條目 含義
      GenerateDebugSymbols VLC是否產(chǎn)生調試符號?設為1表示產(chǎn)生,設為0表示不產(chǎn)生,缺省狀態(tài)下為產(chǎn)生調試符號。
      GenerateLineMarks VLC是否產(chǎn)生行標記?設為1表示產(chǎn)生,設為0表示不產(chǎn)生,缺省狀態(tài)下為產(chǎn)生行標記。
      ListFileName 指定創(chuàng )建的列表的文件名,如果此項沒(méi)有指定,則不創(chuàng )建列表文件。
      ReportUnusedVariables 設為1表示報告未用的變量,設為0表示不報告未用的變量,缺省為不報告。
      LongFileNameSupport VLS查找函數文件時(shí)是否使用長(cháng)文件名?如果設為1,VLC使用完整的函數名作為長(cháng)文件名,如果沒(méi)有找到,報告錯誤。例如,如果一個(gè)函數名為MyFunction(),VLC查找MyFunction.Fun文件。如果設為2,VLC使用完整的函數名作為長(cháng)文件名,如果沒(méi)有找到,把函數名截短為8字符,繼續尋找相應的.Fun文件,如果沒(méi)有找到,報告錯誤。例如,如果一個(gè)函數為MyFunction(),VLC查詢(xún)文件MyFunction.Fun。如果VLC沒(méi)有找到,繼續尋找MyFuncti.Fun。如果設為3,VLC截短函數名,只尋找截短函數名的文件。例如,如果尋找MyFunction(),VLC只尋找MyFuncti.Fun。缺省狀態(tài)下,支持長(cháng)文件名。
      StackDepth 設置堆棧深度。
      StackSize 設置堆棧的大小,以字節為單位,缺省為2048。
      Verbose 顯示編譯過(guò)程,數值從0到9來(lái)顯示進(jìn)行的細節。

      [VLs]
      VOS設置文件中[VLs]部分指定VOS或VLC運行時(shí)載入的VL文件,一個(gè)Vlc庫文件是一組函數文件的集合,Vlc庫文件的擴展名為.VL。
        [VLs]
        Lib1=<VL path name>
        ... etc for Lib2, Lib3...


      [VosBox]
      "VOS Box"窗口是一個(gè)模擬MS-DOS PC的25x80字符的窗口,此窗口是為了與DOS版本的VOS后向兼容。
      VOS設置文件的[VosBox]設定VOX Box的選項,也可以從VOS控制面板的用戶(hù)接口對話(huà)框來(lái)設置。

      條目 含義
      BkBlue 背景顏色中藍色的密度(0到255)
      BkGreen 背景顏色中綠色的密度(0到255)
      BkRed 背景顏色中紅色的密度(0到255)
      EnableCtrlBreak 是否支持按Ctrl+Break來(lái)停止VOS?設為1表示支持,設為0表示不支持,缺省為不支持Ctrl+Break停止VOS。
      Font 用來(lái)選擇屏幕顯示的字體,對于顯示國家字符是必需的。
      FontBlue 文本字體顏色中藍色的密度(0到255)
      FontGreen 文本字體顏色中綠色的密度(0到255)
      FontItalic 字體是否為斜體?設為1表示是斜體,0表示正常。
      FontRed 文本字體顏色中紅色色的密度(0到255)
      FontSize 設定屏幕顯示字體的大小,以點(diǎn)為單位
      FontWeight 字體粗細度(有效值參見(jiàn)Win32 CreatFont函數)
      Show VOS運行時(shí)是否顯示VOS Box?設為1表示顯示,設為0表示不顯示。
      ShowTime VOS Box是否顯示當前時(shí)間?設為1表示顯示,設為0表示不顯示。
      Title 此字符串為VOS Box的標題,如果沒(méi)有設置標題,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]指定業(yè)務(wù)相關(guān)性和VOS作為WindowsNT/2000業(yè)務(wù)運行時(shí)所需的其他設置:
        [Service]
        GroupName=VoiceMail
        Dependencies=Dialogic;Telephony
        GroupOrderTag=2

    7. CT ADE 體系結構(Topaz),介紹

      第一個(gè)問(wèn)題:什么是 CT ADE體系結構(TOPAZ)?
      回答這個(gè)問(wèn)題之前,首先回顧一下CTI應用所提出的問(wèn)題。
      開(kāi)發(fā)電話(huà)應用程序時(shí)必須清楚:電話(huà)線(xiàn)的類(lèi)型、電路板的類(lèi)型和相關(guān)的不同的API。有3種接口:
      ·模擬
      ·數字(R2,ISDN,SS7等等)
      ·IP(Voice over IP)
      比如,如果需要為每種接口開(kāi)發(fā)和維護相同的應用,應該開(kāi)發(fā)3種不同的程序:模擬版本、數字版本和IP版本。另外,這些應用程序直接依賴(lài)于電路板API。而且,如果要把應用程序應用到CT 媒體上,就必須重新從開(kāi)始開(kāi)發(fā)整個(gè)程序。
    CTADE_A具有很多的好處,隨 CTADE_A帶有可以一組簡(jiǎn)單的命令,這允許我們?yōu)椴煌?lèi)型的中繼和API只開(kāi)發(fā)一套應用程序就可以了。這種概念稱(chēng)為API透明性。
    CTADE_A怎樣實(shí)現透明?
      下面圖表顯示了在系統中TOPAZ處在何處,它是怎樣分開(kāi)應用程序和API的。

      從上圖中可以看出,TOPAZ處于A(yíng)PI和應用程序之間。TOPAZ檢測API函數和安裝的板卡(使用Topaz Profile,以后介紹)。
      TOPAZ是面向資源的,它直接處理系統中的電話(huà)資源。
      這就是我們所謂的面向系統資源。什么是資源?
      資源是指可以共享和使用的一個(gè)和一組元素,其中每一個(gè)元素都代表實(shí)體元素。首先要定義資源的類(lèi)型。VOS中有下列資源:
      ·中繼資源:線(xiàn)路接口資源
      ·媒體資源:播放、錄音、產(chǎn)生和檢測各種聲音的資源。
      ·傳真資源:發(fā)送和接收傳真的資源
      ·語(yǔ)音識別資源:語(yǔ)音識別資源
      ·文本到語(yǔ)音轉換資源:文本到語(yǔ)音轉換資源
      ·會(huì )議資源:協(xié)商安排和控制資源
      由下面的VOS代碼可以看出,關(guān)于資源的函數名總是以相應資源的名稱(chēng)開(kāi)始:

     7.1. 圖形化VOS,CT ADE 體系結構(Unleashed)

      我們已經(jīng)知道了怎樣創(chuàng )建一個(gè)項目和怎樣向一個(gè)項目加入必須的文件,另外,我們已經(jīng)知道了怎樣設置一個(gè)VOS項目。
      下面介紹CTADE_A和VOS語(yǔ)言,我們已經(jīng)知道,CTADE_A是一組軟件模塊,用來(lái)銜接CTADE_A命令(MediaPlayFile、MediaRecofd等等)和安裝的CTI API。
    CTADE_A是面向資源的。從前面的介紹可以得知,有許多種資源(中繼、媒體、傳真、ASR、TTS、會(huì )議(Conference))等等,Dialogic板卡上的這些資源使用不同的技術(shù)。
    這些資源中每一種資源都包含許多內部狀態(tài),這些狀態(tài)的轉換都與資源短語(yǔ)(resource live phases)有關(guān)。關(guān)于這些狀態(tài),請參見(jiàn)Graphical
      VOS User's Guide en la sección CTADE_A->Resource Stats.。

      7.1.1. CTADE_A,資源和資源索引號碼

      許多VOS函數控制CTADE_A資源,例如,函數MediaPlayFile在當前的媒體資源上播放一個(gè)聲音文件。現在,我們介紹資源的概念并且討論資源編號方式是怎樣工作的。
      資源就是呼叫處理系統的一個(gè)組成部分。在大多情況下,單個(gè)資源在一條電話(huà)線(xiàn)或一個(gè)數字中繼上播放單個(gè)語(yǔ)音流。
      每一資源由資源索引號碼來(lái)區分,通常不需要考慮資源索引號碼,因為當應用程序需要資源時(shí),VOS負責這些資源的預留和路由。但如果要控制應用程序使用資源的方式,就需要靠資源索引號碼來(lái)指定資源。每種資源的索引號碼都從0開(kāi)始且獨立編碼:一個(gè)VOS任務(wù)能夠很方便的使用中繼資源1和媒體資源4。
      另外,可以通過(guò)多個(gè)函數來(lái)得到資源索引的資源:
      -ResourceTypeGetIndex,返回當前資源的索引號,如:MediaGetIndex,   TrunkGetIndex
      -ResourceTypeGetCount,返回資源的總數,如:MediaGetCount,      TrunkGetCount。

      7.1.2. CTADE_A 函數概述

      CTADE_A中,所有的函數有資源分組,CTADE_A的每一種資源根據不同的特征形成一組函數。通常情況下,系統中的所有資源都有一個(gè)號碼,我們可以通過(guò)索引來(lái)操作每一種資源。有兩種資源來(lái)請求資源:自動(dòng)和手動(dòng)。例子:

       7.1.2.1. CTADE_A函數,異步模式。

      缺省狀態(tài)下,VOS一直在等待,直到所有的CTADE_A函數執行結束(同步模式),例:
        MediaPlayFile("LeaveMsg.vox");
        MediaRecordFile("Message");

      缺省狀態(tài)下,MediaPlayFile在vox文件播放完畢或者其他終止條件(DTMF,靜音等等)下退出執行。
      但是,在許多情況下,需要調用函數的同時(shí)繼續執行程序(異步模式),例:
        MediaPlayFile("Welcome.vox");
        Balance=CheckBalance(AccountNo);
        MediaPlayFile(Balance&".vox");
      
    假設函數CheckBalance要運行1到10秒(決定于數據庫服務(wù)器的忙閑程度),最差情況下,呼入的用戶(hù)需要在第一次播放和balance的結果之間等待10秒。
      異步執行通過(guò)使用函數MediaEnableAsync()可以避免這些問(wèn)題,如下:
        MediaEnableAsync();
        MediaPlayFile("Welcome.vox");
        Balance=CheckBalance(AccountNo);
        MediaWait();--------------------→此函數一直等到媒體資源變?yōu)榭臻e狀態(tài)
        MediaPlayFile(Balance&".vox");

      7.1.2.2. CTADE_A函數,中繼資源和函數
      中繼函數是用來(lái)管理系統中的中繼資源,目的是做以下事情:
      ·進(jìn)行呼出
      ·呼叫過(guò)程分析
      ·應答或拒接一個(gè)呼入呼叫
      ·獲得呼叫信息(ANI,DNIS,呼叫者姓名,等等)
      ·掛斷電話(huà)
      可以看出,中繼資源負責所有的呼叫控制,一個(gè)中繼資源處理單個(gè)語(yǔ)音流,所以下列都可以看作是一個(gè)中繼資源
      ·單個(gè)模擬線(xiàn)的中繼接口
      ·E1/T1的一個(gè)時(shí)隙
      ·一個(gè)MSI站(An MSI Station)
      ·SimPhone模擬中繼線(xiàn)(索引號總為0)
      控制中繼資源的函數:

      7.1.2.3. CTADE_A函數,媒體資源與函數

      媒體資源控制播放、錄制語(yǔ)音文件和各種提示音,并且從呼叫方接收DTMF位。
      ·向呼叫方播放語(yǔ)音文件和提示語(yǔ)。
      ·播放可變信息:"你地余額為300.17元"。
      ·錄制語(yǔ)音文件,提示怎樣將呼叫方的語(yǔ)音錄制成語(yǔ)音文件。
      ·使用停止播放來(lái)表示摘機音,當呼叫方撥號時(shí),停止播放或錄音。
      ·從呼叫方接收描述檢索摘機音的數目。
      ·向呼叫方展示怎樣播放普通的提示音。
      控制媒體資源的函數如下:





      7.1.2.4 CTADE_A 函數,傳真資源和函數

      傳真資源控制傳真數據的傳送與處理。Dialogic VFZ板上或GammaLink CP板上的一個(gè)單個(gè)的傳真通道為一個(gè)傳真資源。
      必須注意傳真資源只能收發(fā)傳真數據,所有其他需要呼出或呼入電話(huà)的操作應由中繼資源或媒體資源完成。
      傳真資源由傳真函數管理,
      ·發(fā)傳真
      ·收傳真
      ·輪循傳送或逆向傳送



      7.1.2.5. CTADE_A函數,會(huì )議(Conference)函數

      會(huì )議資源用來(lái)創(chuàng )建和管理會(huì )議。
      會(huì )議函數完成下列功能:
      ·創(chuàng )建會(huì )議
      ·從一會(huì )議中刪去某與會(huì )方
      ·刪除會(huì )議
      多會(huì )議函數如下:



      7.1.2.6. CTADE_A 函數,語(yǔ)音識別函數

      語(yǔ)音識別資源把呼叫者的語(yǔ)音轉變?yōu)槲谋咀址R粋(gè)VR資源可以對一個(gè)語(yǔ)音流數據(來(lái)自一中繼或會(huì )議資源)進(jìn)行識別。
      可以通過(guò)VrGetCount函數來(lái)查找系統中VR資源的數目。
      注:系統中CTADE_A為每一媒體資源創(chuàng )建一語(yǔ)音識別資源,由于語(yǔ)音引擎的限制,可能不能同時(shí)使用VR資源。






    [ 全文英文版 ]

     

     

    本文[ 目錄 ] [ 第一頁(yè) ] [ 第二頁(yè) ] [ 第三頁(yè) ]

    融合通信專(zhuān)欄>>技術(shù)開(kāi)發(fā)>>

     
     

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 崇阳县| 柘荣县| 温州市| 凤冈县| 黄石市| 霍林郭勒市| 南郑县| 哈密市| 鹤岗市| 都匀市| 朝阳县| 潜山县| 高要市| 英德市| 江津市| 宜州市| 昭平县| 新化县| 桂东县| 清新县| 松阳县| 葫芦岛市| 福海县| 砚山县| 上犹县| 鄂伦春自治旗| 马关县| 兰溪市| 黎平县| 鞍山市| 西昌市| 海城市| 阳信县| 巨野县| 罗平县| 澄江县| 同德县| 奉新县| 商洛市| 哈尔滨市| 昌乐县| http://444 http://444 http://444 http://444 http://444 http://444