欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

 
主機媒體處理(Windows版)參考設(shè)計指南
(二)
 

[ page1 ] [ page2 ]

關(guān)于本文
1.HMP(主機媒體處理)軟件描述
 1.1 概述
 1.2 HMP的商業(yè)驅(qū)動力、市場機會和成本
 1.3 成本降低
 1.4 商業(yè)和市場總結(jié)
 1.5 參考資料
2.主機媒體處理配置描述
 2.1 解決方案配置描述
 2.2 應(yīng)用場合
 2.3 設(shè)備測試
 2.4 軟件參考系統(tǒng)的構(gòu)架
3.安裝主機媒體處理軟件
 3.1 安裝HMP軟件
 3.2 卸載HMP軟件
4.主機媒體處理軟件的許可證程序
 4.1 獲得評估運行許可證
 4.2 購買一個永久的HMP 許可證
 4.3 激活一個HMP許可證
 4.4 使用別的許可證
5.配置主機媒體處理軟件
 5.1 配置概述
 5.2 配置過程
 5.3 啟動和停止系統(tǒng)
6.理解IVR參考程序
 6.1 獲取IVR參考代碼
 6.2 狀態(tài)機
 6.3 一個基本的狀態(tài)機
 6.4 創(chuàng)建對象
 6.5 簡單設(shè)備概念
 6.6 Simple Device Properties
7.解決方案配置的測試與性能
 7.1 解決方案配置測試
 7.2 測試方法
 7.3 測試場景和性能數(shù)據(jù)
 7.4 用Dialogic® NetStructure™ PBX-IP媒體網(wǎng)關(guān)配置HMP
8.你采用的解決方案的可選設(shè)計模式
9.索引

配置主機媒體處理軟件

  本章講述主機媒體處理軟件(HMP)的配置和運行方面的內(nèi)容:

  • 配置概述
  • 配置過程
  • 啟動和停止系統(tǒng)

  5.1 配置概述

  主機媒體處理軟件通過Dialogic® Dialogic® 配置管理器 (DCM)進行配置.本述講述如何啟動和使用DCM。DCM提供了圖形化的用戶界面來瀏覽和修改配置數(shù)據(jù)。當啟動DCM時,它會自動檢測HMP并找到配置設(shè)置。

  5.2 配置過程

  通過以下步驟啟動DCM:

  1. 訪問Dialogic Dialogic 配置管理器 (DCM). 從開始菜單, 選擇程序> Dialogic HMP 1.0 > 配置管理器-DCM.
  注: 你必須有本機或遠程連接的計算機的系統(tǒng)管理員權(quán)限才能使用DCM, 可通過聯(lián)系你的網(wǎng)絡(luò)管理員來給你建立必要的管理員權(quán)限。

  2. DCM啟動后,通過計算機名稱對話框指定要連接的機器
(圖 20). 第一次運行DCM時會自動出現(xiàn)輸入計算機名稱的對話框,如果該對話框沒有出現(xiàn),你可以選擇File下拉菜單中的Connect 選項或點擊DCM主窗口中的Connect圖標打開它

圖 20. 輸入計算機名稱對話框

  3. 系統(tǒng)默認顯示本機名稱,要連接本機,直接點Connect. 要連接遠程計算機,選擇Remote鈕并輸入遠程計算機名稱,再點Connect. 對于TCP/IP網(wǎng)絡(luò),可輸入遠程計算機的IP地址來代替計算機名稱。

  注: Dialogic Dialogic 系統(tǒng)使用DCOM對象來運行遠程計算機上的Dialogic Dialogic 軟件。遠程的DCM Dialogic Dialogic 軟件內(nèi)部程序化的建立了DCOM安全等級。不要使用Windows 的DCOM配置程序dcomcnfg.exe 改變安全設(shè)置.如果你隨意改變,那么Dialogic Dialogic 系統(tǒng)可能無法正常運行。
  注: 連接到計算機上后,將會出現(xiàn)一個窗口指示DCM檢測程序已經(jīng)運行。如果想要DCM識別一個新的許可證,必須從action菜單運行Restore Defaults,這樣DCM將會檢測到這個新的許可證。具體參見4.4節(jié), "使用別的許可證"。
DCM主窗口顯示如圖21。在你指定了計算機名稱(圖20)后,將會出現(xiàn)該窗口。窗口中的第一行的 Configured Devices on...,顯示出你連接的計算機名字。如果你在圖20中輸入的是IP地址,那么就會顯示出該IP地址。

圖 21. DCM主窗口

  5.3 啟動和停止系統(tǒng)

  安裝好HMP后, 請通過使用許可證管理器界面購買一個永久的HMP許可證,并啟動DCM,這時你就可以啟動Dialogic Dialogic 系統(tǒng)了。它將下載HMP的配置參數(shù)設(shè)置并啟動設(shè)備驅(qū)動程序。接下來你可以在工作開始之前,使用 Dialogic 提供的工具檢驗系統(tǒng)的操作是否正確。具體內(nèi)容如下:

  • 啟動系統(tǒng)
  • 設(shè)置啟動模式為自動模式

  5.3.1 啟動系統(tǒng)

  從DCM窗口的Service下拉菜單中點Start Service選項或點DCM主窗口(圖21)中的Start Service圖標就可以啟動系統(tǒng)了。
  注: 啟動設(shè)備參考選型將不出現(xiàn)在DCM服務(wù)的下來菜單中,因為HMP 1.0版本中只有一塊虛擬的板卡(SSPUM4.0)。

圖22. 啟動系統(tǒng)

  在等待期間,DCM在屏幕右上角顯示一個進度條。當Dialogic Dialogic 系統(tǒng)啟動后,主窗口下方的Dialogic Dialogic System Service Status 提示為Running。進度條直到Dialogic Dialogic系統(tǒng)啟動后才正常顯示。然而當連接到一個遠程結(jié)點,例如,由于網(wǎng)絡(luò)時延,啟動Dialogic Dialogic系統(tǒng)的啟動時間將會延長。如果進度條不再顯示,但Dialogic Dialogic System Service Status沒有提示為Running狀態(tài),這并不一定是出了問題,點Refresh圖標定時地更新Dialogic Dialogic System Service Status 的提示。它最后會提示為Running. 如若不然,檢查窗口事件查看器來看看是否發(fā)生了錯誤。在HMP還沒有啟動好前Dialogic Dialogic系統(tǒng)是啟動不了的。同樣,你也無法從控制面板啟動Dialogic Dialogic 系統(tǒng)且打開DCM。如果你需要檢測設(shè)備,請使用DCM的Action 菜單選項或控制面板中停止Dialogic Dialogic 系統(tǒng)并啟動設(shè)備檢測。

  5.3.2 設(shè)置啟動模式為自動模式

  當Dialogic Dialogic系統(tǒng)需要自動啟動時(不需要人為操作),具有管理員權(quán)限的用戶可以使用DCM的用戶界面中Service下拉菜單(圖22)來設(shè)置啟動模式為自動,也可以程序化地使用NCM API庫。如果啟動模型設(shè)置為自動,Dialogic Dialogic系統(tǒng)將在系統(tǒng)重啟時自動啟動。
  注:
  1. 請別使用Windows 服務(wù)程序來設(shè)置Dialogic Dialogic 系統(tǒng)的啟動模式為自動。你必須使用DCOM的用戶界面或NCM API來設(shè)置。因為Dialogic Dialogic驅(qū)動程序是通過它們內(nèi)部地對啟動模式進行設(shè)置的。如果使用了Windows 服務(wù)程序,將不能正確地建立驅(qū)動從屬關(guān)系。

  2. 如果將啟動模式設(shè)置為自動,你想要在重啟計算機后通過DCM來重配置HMP,你必須使用DCOM來停止Dialogic Dialogic 系統(tǒng),然后再對DCM進行正常的操作。(也可以通過Windows 服務(wù)程序來停止Dialogic Dialogic 系統(tǒng),但是不推薦)



理解IVR參考程序

  本章講述如下主題:

  • 獲取IVR 參考代碼
  • 狀態(tài)機
  • 一個基本狀態(tài)機
  • 創(chuàng)建對象
  • 簡單設(shè)備概念
  • 簡單設(shè)備特性

  IVR參考程序(SimpleIvr)為想用R4和包括軟件開發(fā)包(SDK)的Global Call APIs 建立應(yīng)用程序的Dialogic用戶提供了演示代碼。該應(yīng)用程序用C++開發(fā),使用面向?qū)ο蟮姆椒ㄔ试S增加新的組件及對已有組件的重用。SimpleIvr應(yīng)用程序設(shè)計為單線程、異步,符合必要的性能需求,并使用了一些特殊的技術(shù),比如線程池,來處理長時間的運轉(zhuǎn)。

  應(yīng)用程序組件由SDK標準運行庫(SRL)產(chǎn)生的事件驅(qū)動

  應(yīng)用程序的組件由事件驅(qū)動,這些事件由SDK的標準運行時庫產(chǎn)生,它們是對底層電話或網(wǎng)絡(luò)電路物理動作的直接或間接的反應(yīng),同應(yīng)用程序產(chǎn)生的事件一樣,會放入SRL事件隊列(自動布署的反應(yīng)事件)中。就這方面而言,可以把應(yīng)用程序看成一個反應(yīng)系統(tǒng),由事件驅(qū)動并且持續(xù)不斷的響應(yīng)來自外撥或內(nèi)部的刺激信號。

  6.1 獲取IVR參考代碼

  可以從以下的網(wǎng)址獲取IVR 參考代碼:
http://www.Dialogic.com/

  6.2 狀態(tài)機

  以上描述的系統(tǒng)能夠用有限狀態(tài)機來進行最佳的實現(xiàn)。有限自動機和與之對應(yīng)的狀態(tài)轉(zhuǎn)移圖是用來描述狀態(tài)集合的規(guī)范機制。例如:"當事件α發(fā)生時,系統(tǒng)從狀態(tài)A轉(zhuǎn)變?yōu)闋顟B(tài)B"。然而,復(fù)雜的系統(tǒng)往往會擁有非常多的狀態(tài)以及更多的狀態(tài)間的可能的轉(zhuǎn)移關(guān)系。這將給我們帶來的問題是如何為應(yīng)用管理好狀態(tài)圖。有以下幾種辦法能夠解決這個問題:可以開發(fā)一個外掛的狀態(tài)管理子系統(tǒng),它有自己的數(shù)據(jù)庫來存儲狀態(tài)圖,前段界面提供編輯和校對功能,代碼生成器用來產(chǎn)生偽碼,甚至用實際的編程語言來實現(xiàn)狀態(tài)機。另外一種方法更復(fù)雜,它將一個大的狀態(tài)機分解為小一些的相對獨立或正交的子狀態(tài)機(簇),然后橋接起來,這樣能夠降低成指數(shù)增加的狀態(tài)轉(zhuǎn)移的數(shù)量。還有其它一些方法能夠解決大型狀態(tài)機的問題,但這已經(jīng)超出了本文的討論范圍。

  6.3 一個基本的狀態(tài)機

  SimpleIvr示例程序?qū)崿F(xiàn)了一個基本的狀態(tài)機,它由用AαB的形式進行抽象的描述。由于使用了一個通用的狀態(tài)W,狀態(tài)的復(fù)雜度得以降低,它處理程序運行期間可能發(fā)生的異常和錯誤條件,并且將它們記錄下來以供以后的分析和系統(tǒng)改進使用。這種抽象在應(yīng)用程序中用SimpleStateMachine的形式進行表示,而且用SimpleStateMachine類來加以實現(xiàn)。

  為了舉例說明如何創(chuàng)建一個狀態(tài)機,下面用一段簡單的代碼來展示    SimpleIvrStateMachine 類構(gòu)造器:

SimpleIvrStateMachine::SimpleIvrStateMachine()
{
// Associate states with actions
addStateAction(STATE_NULL, NullAction);
addStateAction(STATE_WAIT_CALL, WaitCall);
addStateAction(STATE_CALL_ACK, CallAck);
addStateAction(STATE_ANSWER, AnswerCall);
addStateAction(STATE_INIT_PROMPT, PlayInitialPrompt);

addStateAction(STATE_DROP, DropCall);
addStateAction(STATE_RELEASE, ReleaseCall);
addStateAction(STATE_RESET, ResetLineDev);
// Create state transitions
add(STATE_NULL, GCEV_UNBLOCKED, STATE_WAIT_CALL);
add(STATE_WAIT_CALL, GCEV_OFFERED, STATE_CALL_ACK);
add(STATE_WAIT_CALL, GCEV_DISCONNECTED, STATE_RESET);
add(STATE_CALL_ACK, GCEV_CALLPROC, STATE_ANSWER);
add(STATE_CALL_ACK, GCEV_DISCONNECTED, STATE_RESET);
add(STATE_ANSWER, GCEV_ANSWERED, STATE_INIT_PROMPT);
add(STATE_ANSWER, GCEV_DISCONNECTED, STATE_RESET);
add(STATE_PLAY_INIT_PROMPT, TDX_PLAY, STATE_PLAY_ENTER_CHOICE);
add(STATE_PLAY_INIT_PROMPT, GCEV_DISCONNECTED, STATE_DROP);
add(STATE_PLAY_ENTER_CHOICE, TDX_PLAY, STATE_ENTER_CHOICE);
add(STATE_PLAY_ENTER_CHOICE, GCEV_DISCONNECTED, STATE_DROP);
add(STATE_ENTER_CHOICE, TDX_GETDIG, STATE_ENTER_CHOICE_ANALYZE);
add(STATE_ENTER_CHOICE, GCEV_DISCONNECTED, STATE_DROP);
add(STATE_ENTER_CHOICE_ANALYZE, EV_DIGIT_1, STATE_PLAY_ENTER_ACCOUNT);
add(STATE_ENTER_CHOICE_ANALYZE, EV_DIGIT_2, STATE_PLAY_ENTER_DIGITS);
add(STATE_ENTER_CHOICE_ANALYZE, EV_DIGIT_3, STATE_PLAY_ENTER_MAILBOX_R);
add(STATE_ENTER_CHOICE_ANALYZE, EV_DIGIT_4, STATE_PLAY_ENTER_MAILBOX_P);
add(STATE_ENTER_CHOICE_ANALYZE, EV_DIGIT_STAR, STATE_PLAY_ENTER_CHOICE);
add(STATE_ENTER_CHOICE_ANALYZE, EV_DIGIT_OTHER, STATE_PLAY_ENTER_CHOICE);
add(STATE_ENTER_CHOICE_ANALYZE, GCEV_DISCONNETED, STATE_DROP);
add(STATE_PLAY_ENTER_ACCOUNT, TDX_PLAY, STATE_ENTER_ACOUNT);
add(STATE_PLAY_ENTER_ACCOUNT, GCEV_DISCONNECTED, STATE_DROP);
add(STATE_ENTER_ACCOUNT, TDX_GETDIG, STATE_ENTER_ACCOUNT_ANALYZE);
add(STATE_ENTER_ACCOUNT, GCEV_DISCONNECTED, STATE_DROP);
add(STATE_ENTER_ACCOUNT_ANALYZE, EV_DB_RETRIEVED, STATE_ACCOUNT_PLAY);
add(STATE_ENTER_ACCOUNT_ANALYZE, EV_DB_ERR, STATE_PLAY_ACCOUNT_NOT_FOUND);
add(STATE_ENTER_ACCOUNT_ANALYZE, GCEV_DISCONNECTED, STATE_DROP);
add(STATE_ACCOUNT_PLAY, TDX_PLAY, STATE_PLAY_ENTER_CHOICE);
add(STATE_ACCOUNT_PLAY, GCEV_DISCONNECTED, STATE_DROP);
add(STATE_PLAY_ACCOUNT_NOT_FOUND, TDX_PLAY, STATE_ENTER_ACCOUNT);
add(STATE_PLAY_ACCOUNT_NOT_FOUND, GCEV_DISCONNECTED, STATE_DROP);
...
add(STATE_DROP, GCEV_DROPCALL,STATE_RELEASE);
add(STATE_DROP, GCEV_DISCONNECTED,STATE_RELEASE);
add(STATE_RELEASE, GCEV_RELEASECALL,STATE_WAIT_CALL);
add(STATE_RELEASE, GCEV_DROPCALL,STATE_RELEASE);
}

  結(jié)果如圖23, "狀態(tài)轉(zhuǎn)移圖".
  對所有SimpleStateMachines 的驅(qū)動是一個且只是一個SimpleEventWaiter 對象的實例。這個類完成對程序內(nèi)部SRL事件管理和分發(fā)相關(guān)的所有功能。它同樣也是一個可見的對象,允許程序上下文中其它對象通過它進行注冊并獲得系統(tǒng)中發(fā)生的事件通報。這個主循環(huán)實現(xiàn)該功能,代碼說明如下:

// Event listening loop until requested to stop
while (!m_bStop)
{
// Wait for all events from SRL
m_ret = sr_waitevt(m_tmout);
if (SR_TMOUT == m_ret) {}
// Platform-specific event properties retrieval
#ifdef _WIN32
lEventType = sr_getevttype(0);
lEventDev = sr_getevtdev(0);
lEventLen = sr_getevtlen(0);
pData = sr_getevtdatap(0);
#else
lEventType = sr_getevttype();
lEventDev = sr_getevtdev();
lEventLen = sr_getevtlen();
pData = sr_getevtdatap();
#endif
waitevt = m_ret;
// Create a SimpleEvent object based on event properties
SimpleEvent event(waitevt, lEventType, lEventDev, lEventLen, pData);
// Set object status to changed and notify it observers
setChanged();
notifyObservers(&event);
}



圖 23. 狀態(tài)轉(zhuǎn)移圖

  6.4創(chuàng)建對象

  SimpleEventWaiter產(chǎn)生的事件主要提供給SimpleIvrEngine對象,在初始化階段,SimpleIvrEngine對象創(chuàng)建并保持所有的SimpleIvrStateMachine對象,同時分配事件給相應(yīng)的狀態(tài)機。SimpleIvrEngine可能被視為一個應(yīng)用程序的主類。它是最早被創(chuàng)建的的對象之一,它輪流配合所有包括SimpleEventWaiter在內(nèi)的其它支持實體的創(chuàng)建。SimpleIvrEngine將控制傳遞給SimpleEventWaiter 并作為收聽者進入被動模式。以下的代碼說明實現(xiàn)過程:

// Create an engine object
SimpleIvrEngine engine;
engine.create();

void SimpleIvrEngine::create()
{
// Create all state machines
for (int i = 0; i < NUM_CHANNELS; ++i) {
SimpleIvrStateMachine* ivr = new SimpleIvrStateMachine;
ivr.addDevices();
addStateMachine(ivr);
}
// Create event waiter
SimpleEventWaiter ew;
setEventWaiter(&ew);
// Kick the engine
kick();
}
void SimpleIvrEngine::kick()
{
m_ew->addObserver(this);
// initial kick of event processor
m_ew->run();
m_ew->deleteObserver(this);
}

  6.5 簡單設(shè)備概念

  SimpleIvr的另一個重要的原理是簡單設(shè)備的概念,SimpleIvr是所有設(shè)備實體的基礎(chǔ),設(shè)備實體是由應(yīng)用程序的對象空間組成。這些實體既可在初始化階段靜態(tài)地創(chuàng)建,也可根據(jù)需要動態(tài)地創(chuàng)建。大多數(shù)實體代表了Dialogic? Dialogic?域的物理設(shè)備,但有一些是虛設(shè)備,它們被設(shè)計用于提供一些外部服務(wù)(如數(shù)據(jù)庫,郵箱等)。

  一個最初的SimpleDevice類完成一個抽象類Gdevice中定義的接口。一個特殊的設(shè)備類型NullDevice被作為一個不做任何事件的設(shè)備而引入。但是在應(yīng)用程序開發(fā)中返回NullDevice比返回一個空指針更有用。因為對返回的空指針進行檢驗有時會很不方便。如圖24"簡單設(shè)備類圖"是一個來自SimpleDevice的所有類的類圖。

圖 24. 簡單設(shè)備類圖

  通過以SimpleDevice的形式有一個最小的共同點,實體能很容易地被統(tǒng)一的進行管理,而且能夠被組合起來形式所謂的"聯(lián)盟",提供單個設(shè)備不能獨自完成的某些功能。換句話說,設(shè)備聯(lián)盟(在應(yīng)用程序中表示為SimpleDeviceAlliance類)是一個容器,它包括一些簡單設(shè)備并把它們橋接起來。

  例如,可以創(chuàng)建一個簡單設(shè)備聯(lián)盟,該簡單設(shè)備聯(lián)盟可以把一個Global Call設(shè)備,一個數(shù)據(jù)庫設(shè)備(句柄)和一個緩存提示設(shè)備組成一組,表示一個狀態(tài)機實例的智能對象。應(yīng)用程序的開發(fā)人員可以使用簡單設(shè)備和簡單設(shè)備聯(lián)盟的概念做為框架,并將其擴展,來滿足特定應(yīng)用場合的需要。以下代碼段說明了創(chuàng)建設(shè)備和聯(lián)盟的過程:

// Create all devices
GlobalCallDevice* gcd = new GlobalCallDevice;
VoiceDevice* vd = new VoiceDevice;
CachedPrompts* prompts = new CachedPrompts;
SimpleIvrDatabaseDevice db = new SimpleIvrDatabaseDevice;
SimpleIvrMailboxDevice* mailbox = new SimpleIvrMailboxDevice;
// Create device alliance
SimpleDeviceAlliance* alliance = new SimpleDeviceAlliance;
// Add all devices to the alliance, making GlobalCallDevice an anchor
alliance->addDevice(gcd, true);
alliance->addDevice(vd);
alliance->addDevice(prompts);
alliance->addDevice(db);
alliance->addDevice(mailbox);


  有必要提及來自Dialogic® Dialogic®域中的設(shè)備和虛設(shè)備之間的一個基本的區(qū)別。來自Dialogic®Dialogic®域中的設(shè)備有內(nèi)在的SRL事件產(chǎn)生機制,而虛設(shè)備不能自己產(chǎn)生SRL事件。這在當虛設(shè)備必須通知狀態(tài)機一些情況以引起狀態(tài)機的注意時會引起一些問題。有可能是一個正常的完成事件的狀態(tài),如異步數(shù)據(jù)庫取得請求完畢或發(fā)生了錯誤。在帶有來自Dialogic® Dialogic® 設(shè)備的事件的統(tǒng)一格式中處理這些類型的事件是非常重要的。

  在SRL事件隊列中有可能直接被放入一個任意的事件。唯一的限制是放入的事件必須是一個Dialogic® Dialogic® 設(shè)備。其次,由上述方法設(shè)計的SimpleDeviceAlliance類允許聯(lián)盟中的設(shè)備發(fā)現(xiàn)彼此因此,一個虛設(shè)備能代表Dialogic® Dialogic® 設(shè)備聯(lián)盟中的另一設(shè)備代表自己將事件放置到SRL事件隊列中。為使這個過程更加容易,在每個聯(lián)盟中的Dialogic® Dialogic®設(shè)備被聲明為一個"anchor" 設(shè)備,它隊了本身的功能外還具有事件放置有效載荷。圖25, "簡單設(shè)備聯(lián)盟概念" 舉例說明了SimpleDeviceAlliance 概念。

  為了有效地運轉(zhuǎn),每個狀態(tài)機應(yīng)該對他們處理的事件有所反應(yīng);否則,將阻礙其它狀態(tài)機對事件的處理,系統(tǒng)將變得失去反應(yīng)。狀態(tài)機依賴于實際執(zhí)行相應(yīng)功能的設(shè)備。因此以下原則被視為狀態(tài)機實現(xiàn)的基礎(chǔ):在簡單設(shè)備上的狀態(tài)機執(zhí)行一個動作時,不能阻礙在另一個簡單設(shè)備上執(zhí)行動作的狀態(tài)機。

  R4 和 Global Call APIs 的設(shè)計理念是,提供兩種通用的執(zhí)行函數(shù)的方式: 同步和異步。應(yīng)用程序異步地調(diào)用這些函數(shù)時必須遵守第一條規(guī)則。然而,有些應(yīng)用程序使用的API并不遵循這個規(guī)則。為了客服這個障礙,應(yīng)用程序開發(fā)人員必須使用一些技術(shù)手段,將過長的操作分為一系列小一些的步驟。在某些情況下,因為代碼的本性或干脆就是一個第三方的API,使用這種技術(shù)也是不可行的。這種情況下,可使用一個代理程序模式,開發(fā)人員將過長的函數(shù)用一段代碼封裝起來,它在一個單獨的進程或線程中發(fā)起函數(shù)的執(zhí)行并立即返回。完成操作后,它向SRL隊列發(fā)一個事件來通知狀態(tài)機它已完成。一些操作系統(tǒng)在它們的SDK中有特殊的工具和函數(shù)來實現(xiàn)以上操作。它們被稱為"線程池"。

  下面的代碼段提供了在Microsoft Windows操作系統(tǒng)上的示例,它在SimpleIvr應(yīng)用程序中使用了線程池:

bool ASYNC_db_open(int devh, int* handlep, const char* name, int flags)
{
bool bRet;
// Aggregate parameters in a context structure
DB_OPEN vContext = {
devh,
handlep,
name,
flags,
0
};
// Create a new context and copy parameters
PDB_OPEN pvContext = new DB_OPEN(vContext);
// Keep track of outstanding worker thread requests
InterlockedIncrement(&dwQueuedWorkItems);
// Call Windows SDK to queue a worker item in the thread pool
bRet = QueueUserWorkItem(
THREAD_ASYNC_db_open, // worker item
pvContext, // function data
WT_EXECUTEINLONGTHREAD // long wait
);
return bRet;
}
DWORD WINAPI THREAD_ASYNC_db_open(PVOID pvContext)
{
// Get the function parameters
PDB_OPEN pContext = (PDB_OPEN)pvContext;
long rc;
int handle;
// Call potentially lengthy function
rc = db_open(pContext->name, pContext->flags);
handle = rc;
// Return parameters
if (pContext->handlep != NULL) {
*pContext->handlep = handle;
}
// Post DB_EVENT_OPEN event to SRL queue
DX_PUT_EVENT(pContext->devh, DB_EVENT_OPEN, 0, NULL, rc);
// Get rid of context
delete pContext;
// Keep track of outstanding worker thread requests
InterlockedDecrement(&dwQueuedWorkItems);
return 0;
}


  在上面的程序代碼中,調(diào)用了一個潛在的長時間操作db_open。它用一個代理函數(shù)ASYNC_db_open來表示,它唯一的任務(wù)就是把參數(shù)集中到呼叫內(nèi)容的結(jié)構(gòu)DB_OPEN中,然后請求操作系統(tǒng)將THREAD_ASYNC_db_open排隊到線程池的工作線程中,接下來就是立即返回。操作系統(tǒng)將THREAD_ASYNC_db_open函數(shù)調(diào)度為最有效的方式執(zhí)行。完成了db_open后,事件DB_EVENT_OPEN被公布到SRL隊列中,告訴適當?shù)臓顟B(tài)機操作已完成。

  6.6 Simple Device Properties

  SimpleIvr 參考設(shè)計應(yīng)用程序的目標之一,是使創(chuàng)建對于各種設(shè)備配置和運行的場景變得可配置和可適應(yīng)。為了達到這個目的,使用了屬性的概念和相應(yīng)的抽象類SimpleDeviceProperties來做為應(yīng)用程序的一部分。SimpleDeviceProperties類能夠從流或文件中讀出屬性數(shù)據(jù),或者向流或文件中寫屬性數(shù)據(jù)。, satisfy this所有的應(yīng)用程序?qū)嶓w都能夠進行配置,只要指派一個繼承類SimpleDeviceProperties的特殊屬性類即可。我們將以下面的C++代碼段舉例說明:

// Global Call device properties
GlobalCallDeviceProperties gcdp;
// Open file with properties
ifstream is;
is.open("gc.props");
// Read properties
is >> gcdp;
// Create Global Call device
GlobalCallDevice gcd;
// Set device properties
gcd.setDeviceProperties(gcdp);

  設(shè)備不是能夠通過屬性來進行配置的唯一實體,其它的組件,如狀態(tài)機,引擎等,都能夠使用屬性的概念來實現(xiàn)所期望的靈活性。

解決方案配置的測試與性能

  本章講述如下內(nèi)容:

  • 解決方案配置測試
  • 測試方法
  • 測試場景和性能數(shù)據(jù)
  • 通過Dialogic® NetStructure™ PBX-IP 媒體網(wǎng)關(guān)配置HMP

  7.1 解決方案配置測試

  Dialogic® NetStructure™ 主機媒體處理(HMP)軟件IVR解決方案服從現(xiàn)實世界測試場景。為舉例說明IVR參考(SimpleIVR)系統(tǒng)的性能,我們提供了關(guān)于CPU占用、重DTMF檢測以及忙時呼叫請求次數(shù)等方面的性能數(shù)據(jù)。本節(jié)將集中表述第2章"主機媒體處理配置描述"中說述的系統(tǒng)。

  7.2 測試方法

  系統(tǒng)已經(jīng)過測試,并收集了許多系統(tǒng)級的關(guān)鍵性能參數(shù)。雖然在這個特定的測試系統(tǒng)中運用了許多最優(yōu)化方法,但是單個的應(yīng)用程序和它們的系統(tǒng)配置可能仍需要進一步的精確調(diào)整來保證可用,本節(jié)的內(nèi)容只起一般的指導作用。你也可以使用以下數(shù)據(jù)來幫助你選擇正確的平臺以提供所需的系統(tǒng)性能。

  7.2.1 性能參數(shù)


  以下性能參數(shù)通常被認為是IVR系統(tǒng)的關(guān)鍵性能標準:

  • 忙時呼叫請求次數(shù)(BHCA)
  • 忙時呼叫請求完成次數(shù)(BHCC)
  • 呼損率
  • 話音質(zhì)量
  • 信號檢測錯誤
  • 信號檢測響應(yīng)時間
  • CPU占用
  • 內(nèi)存占用

  收集的性能數(shù)據(jù)數(shù)據(jù)如下:

  • 忙時呼叫請求次數(shù)(BHCA)
  • 忙時呼叫請求完成次數(shù)(BHCC)
  • 呼損率
  • 信號檢測錯誤
  • CPU占用

  7.3 測試場景和性能數(shù)據(jù)

  不同的測試腳本被用于顯示IVR系統(tǒng)的全部潛能,這些腳本能夠?qū)ο到y(tǒng)從密度、性能和響應(yīng)設(shè)計方面進行觀察。

  7.3.1 CPU 占用

  CPU占用的性能信息包括如下幾點:

  • CPU占用的硬件平臺
  • CPU占用的測試腳本
  • CPU占用的性能數(shù)據(jù)

  7.3.1.1 CPU占用的硬件平臺

  CPU占用性能結(jié)果基于從下面表格中定義的硬件平臺中取出的數(shù)據(jù)。

  計算機1

  計算機2

  計算機3

  7.3.1.2 CPU占用的測試場景

  以下測試場景被用于收集CPU占用的性能數(shù)據(jù):

  • 播放: 兩個線程同時播放內(nèi)存中的;每個線程負責半個通道。
  • 錄音: 兩個線程同時記錄話音數(shù)據(jù)到內(nèi)存中;每個線程負責半個通道。

  配置文件

  評測CPU占用主要使用以下HMP 配置文件:
  um_64-0-0.pcd
  This file provides 64 voice channels.

  測試參數(shù)

  測試參數(shù)包括:

  • 播放格式: 每抽樣8 KHz/8bits μ律 PCM 從內(nèi)存中的話音播放
  • 錄音格式: 每抽樣8 KHz/8bits μ律 PCM 話音記錄到內(nèi)存中
  • RTP 音頻性能: G.711, μLaw, 64k, {20, 30ms} 幀大小
  • AGC: 開/關(guān)

  7.3.1.3 CPU占用的性能數(shù)據(jù)

  關(guān)于CPU占用的性能數(shù)據(jù)被分組如下:

  • 計算機 1 播放/錄音 計算機 2
  • 計算機 2 播放/錄音 計算機 1
  • 計算機 3 播放/錄音 計算機 2

  計算機 1 播放/錄音 計算機 2

  下面的圖顯示CPU占用測試結(jié)果:

  • 計算機 1 播放 計算機 2 (Figure 26)
  • 計算機 2 錄音 計算機 1 (AGC on) (Figure 27)
  • 計算機 2 錄音 計算機 1 (AGC off) (Figure 28)

  計算機 2 播放/錄音 計算機 1

  下面的圖形顯示CPU占用的測試結(jié)果:

  • 計算機 2 播放 計算機 1 (Figure 29)
  • 計算機 1 錄音 計算機 2 (AGC on) (Figure 30)
  • 計算機 1 錄音 計算機 2 (AGC off) (Figure 31)

圖29 CPU占用(播放)

圖30 CPU占用(錄音 AGC:開)

圖31 CPU占用(錄音 AGC:關(guān))

  計算機 3 播放/錄音 計算機 2

  下面的圖顯示CPU占用測試的結(jié)果:

  • 計算機 3 播放 計算機 2 (圖 32)
  • 計算機 3 錄音 計算機 1 (AGC on) (圖 33)

 

圖32 CPU占用(播放)

 

圖33 CPU占用(錄音 AGC:開)

  7.3.2 DTMF 檢測測試

  DTMF 檢測性能是IVR系統(tǒng)中最重要的參數(shù)。即時檢測和低錯誤率是IVR的關(guān)鍵。在測試中,計算機在全異的網(wǎng)段上通過局域網(wǎng)相連,這是典型的企業(yè)環(huán)境。DTMF檢測的性能信息包括如下內(nèi)容:

  • DTMF檢測測試的硬件平臺
  • DTMF檢測測試的測試場景
  • DTMF檢測測試的性能數(shù)據(jù)

  7.3.2.1 DTMF 檢測測試的硬件平臺

  使用以下硬件平臺:


  7.3.2.2 DTMF檢測測試的測試場景


  計算機4和計算機5使用IPML庫建立64個全雙工G.711 μ律, 30ms RTP 的對話。 計算機4產(chǎn)生一系列的隨機長度的DTMF隨機信號串并使用呼入模式撥打這些信號。計算機5發(fā)送回信號給計算機4。計算機4檢測信號并與它發(fā)出的信號作比較。

  7.3.2.3 DTMF 檢測測試的性能數(shù)據(jù)

  經(jīng)過12小時的測試,64個通道都被使用,在274,240個數(shù)字串中只有43個發(fā)生了錯誤,錯誤率小于0.02% 。錯誤要么是丟失了幾個數(shù)字,要么是重復(fù)進行檢測到了2次。

  7.3.3 忙時呼叫請求次數(shù)(BHCA)


  測試的主要目的是確定IVR系統(tǒng)能處理多少呼叫,如果:

  • 所有的呼叫同時到達
  • 所有的呼叫都很短(3秒鐘的持續(xù)時間和1秒鐘的呼叫間隔)
    極端的情況有現(xiàn)實的應(yīng)用,比如投票呼叫和瞬間信息核查

  忙時呼叫請求次數(shù)的性能信息包括如下內(nèi)容:

  • BHCA硬件平臺
  • BHCA測試場景
  • BHCA性能數(shù)據(jù)

  7.3.3.1 BHCA硬件平臺

  7.3.1節(jié)"CPU占用"中描述的計算機1 和 計算機2 用來收集關(guān)于BHCA的性能數(shù)據(jù)。

  7.3.3.2 BHCA測試場景

  系統(tǒng)(計算機 1 做為呼出系統(tǒng),計算機 2做為呼入系統(tǒng)) 運行BHCA性能測試程序,能夠執(zhí)行每小時48750個H.323呼叫,它使用64個端口連續(xù)的進行Global Call循環(huán),保持3秒鐘的連接時間,每兩次呼叫間隔1秒。這相當于每小時每端口成功進行762次呼叫。

  7.3.3.3 BHCA性能數(shù)據(jù)

  外呼系統(tǒng)使用的是,所有64個端口在63000秒內(nèi)執(zhí)行了853000次呼叫,錯誤率只有0.18%(1560個呼叫失敗)。呼入系統(tǒng)也是使用的HMP的BHCA性能測試程序,成功的接收了除1560個失敗呼叫以外的所有外呼系統(tǒng)發(fā)出的呼叫。

  7.4 用Dialogic® NetStructure™ PBX-IP媒體網(wǎng)關(guān)配置HMP

  HMP軟件可被配置用來和Dialogic® NetStructure™ PBX-IP媒體網(wǎng)關(guān)(PIMG)共同使用。如圖34所示,一條模擬線通過PBX連接到PIMG。PIMG是電路交換網(wǎng)絡(luò)和IP網(wǎng)絡(luò)之間的網(wǎng)關(guān)。連接在IP網(wǎng)絡(luò)上的一臺計算機提供了IVR功能,在這里就是SimpleIVR程序,它使用了H.323做為呼叫控制協(xié)議。

  7.4.1 配置事項

  在配置時,某些PIMG參數(shù)需要被設(shè)置為特定的值。這些參數(shù)和值包括:

  • 操作模式 = H.323仿真
  • 電話交換類型=none
  • PCM 編碼方式=μ律
  • 呼叫路由方式=點對點
  • PBX 端口/IP端點分配=為每一個連接到PBX或PBX仿真器上的端口分配一個合適的IP終端地址
  • 信號傳輸方式 = 帶內(nèi)音頻

圖 34. 用于和PIMG互操作使用的HMP 配置

你采用的解決方案的可選設(shè)計模式

  Dialogic® 電信服務(wù)提供了專業(yè)的資源,來指導服務(wù)提供商完成解決方案的生命周期-從計劃、設(shè)計到開發(fā)和實現(xiàn)。Dialogic在通信領(lǐng)域的顧問和專家,將提供一系列服務(wù),包括網(wǎng)絡(luò)設(shè)計、呼叫和媒體流分析、程序開發(fā)、實驗室測試已經(jīng)現(xiàn)場實現(xiàn)。

  Dialogic的顧問能夠幫助服務(wù)提供商從現(xiàn)有的電信基礎(chǔ)設(shè)施向高級的模塊化網(wǎng)絡(luò)平臺升級,包括開發(fā)媒體服務(wù)器和媒體網(wǎng)關(guān)。Dialogic能夠使用Dialogic積木技術(shù)來幫助設(shè)計和實現(xiàn)網(wǎng)絡(luò)基礎(chǔ),包括特殊的和預(yù)留的網(wǎng)絡(luò)與外部設(shè)備和程序之間的接口。擁有SS7、H.323、 SIP、 MGCP、 Megacom、 ISDN 和 TCP/IP等技術(shù)方面的專家,Dialogic的顧問能夠幫助服務(wù)提供商向模塊化的網(wǎng)絡(luò)轉(zhuǎn)移。

  特別顧問服務(wù)包括:

  • 項目發(fā)現(xiàn)工作室--為項目早期規(guī)劃階段的開發(fā)人員設(shè)計,這些工作室能夠為項目提供全面的估計。2-3天的會議將幫助開發(fā)人員分析技術(shù)的需求并提供設(shè)計規(guī)范方面的指導、可能的架構(gòu)、運作方面需要考慮的問題、實現(xiàn)步驟和估計需要的資源。

  • 設(shè)計服務(wù)――在項目的設(shè)計階段,Dialogic顧問能為系統(tǒng)和應(yīng)用程序開發(fā)出設(shè)計和功能規(guī)范,以及測試計劃。

  • 提升服務(wù)――Dialogic提供快步的、手把手的技術(shù)指導,安裝配置指導,個性化的咨詢來幫助解決方案提供商將范圍廣大的Dialogic硬件和軟件積木集成進他們的產(chǎn)品或系統(tǒng)設(shè)計中。

  • 開發(fā)服務(wù)――Dialogic顧問將同服務(wù)提供商的開發(fā)團隊一起工作,將新的特性和程序合并到解決方案中。可交付使用的包括代碼、功能規(guī)范書、用戶手冊以及相關(guān)的咨詢。

  • 實驗室服務(wù)――Dialogic實驗室提供了完美的電話環(huán)境,用以開發(fā)原型機、測試和精確調(diào)整程序。實驗室提供各種第三方的交換機和Dialogic的設(shè)備。實驗室的專家開發(fā)和實施一系列的測試計劃,包括可用性、性能、集成、負荷和壓力以及特點的一致性。

  • 現(xiàn)場實施服務(wù)――現(xiàn)場實施服務(wù)包括各種遠程和現(xiàn)場的安裝和開發(fā)任務(wù),這些任務(wù)需要專業(yè)的網(wǎng)絡(luò)、語音和計算機電話集成方面的專家。例如Dialogic提供現(xiàn)場安裝服務(wù),幫助服務(wù)提供商在短時間內(nèi)將他們的SS7平臺安裝到網(wǎng)絡(luò)提供商的設(shè)備上。Dialogic顧問與服務(wù)和網(wǎng)絡(luò)提供商一起工作,在網(wǎng)絡(luò)環(huán)境中進行正確的配置和安裝。

  如需了解更多,請發(fā)送郵件到ctcmarketing@Dialogic.com或參考顧問服務(wù)網(wǎng)址:http://developer.Dialogic.com/network/csp/products/4383web.htm.

索 引

A

activating a license 激活許可證 52
add components to HMP software installation 為主機媒體處理軟件增加部件 45
administration 管理 22
administrative privileges 管理特權(quán) 55
algorithms 算法
voice media processing 語音媒體處理 18
applications
host media processing 主機媒體處理 14
IVR 交互式語音應(yīng)答 35
IVR reference 交互式語音應(yīng)答參考 61
Simple IVR 簡化的交互式語音應(yīng)答 61
VoIP IP語音 30
Architecture 體系結(jié)構(gòu) 17
software reference system 軟件參考系統(tǒng) 40

B

basic state machine 基本狀態(tài)機 62
business and market segments 商業(yè)和市場
summary 總結(jié) 32
business drivers 商業(yè)驅(qū)動力 23
busy hour call attempts 忙時呼叫請求 83

C

call control 呼叫控制 20
call signaling 呼叫信令 20
circuit interface 電路接口 19
code 編碼 61
concept 概念 66
configuration considerations 配置注意事項 84
configuration file 配置文件
CPU utilization CPU利用率 75
configuration overview 配置概述 55
configuring HMP 配置主機媒體處理 55
configuring HMP with PIMG 為PIMG配置HMP 84
connection control 連接控制 21
control 控制
connection 21 連接
media 21 媒體
cost 23 成本
cost reduction 成本降低29
CPU utilization 74 CPU利用率
creating objects 65 創(chuàng)建對象

D

DCM Dialogic配置管理
administrative privileges 55 管理特權(quán)
configuring HMP 55 配置主機媒體處理
remote 56 遠程
DCOM object 56 分布式組件對象模型
density requirements 31 密度需求
deployment environments 15 布署環(huán)境
DTMF detection test 82 雙音多頻信號檢測測試

E

economics of VoIP 24 VoIP的經(jīng)濟效果
equipment tested with HMP 39 主機媒體處理設(shè)備的測試
Ethernet 19 以太
Ethernet interface 19 以太接口
evaluation run-time license 評估運行時許可
obtaining 47 獲取

H

hardware platforms 硬件平臺
busy hour call attempts 84 忙時呼叫請求次數(shù)
CPU utilization CPU 利用率74
heavy DTMF detection test 重DTMF檢測 83
high capacity trunk interfaces 大容量中繼接口 16

HMP

architecture 結(jié)構(gòu)17
business drivers 商業(yè)驅(qū)動力23
configuring 配置 55
configuring with PIMG 為PIMG配置 84
cost 成本23
deployment environments 開發(fā)環(huán)境15
equipment tested with 設(shè)備測試39
features 特性36
market segment opportunities 市場機會23
Moore's Law 摩爾定律24
reference architecture 參考構(gòu)架17
software 軟件18
software programming interfaces 軟件編程接口20
support for management or administration 支持管理22

HMP software 主機媒體處理軟件


configuration overview 55 配置概述
installing 43 安裝
programming interfaces 編程接口20 
reinstalling 45 重新安裝
uninstalling 45 卸載

Host Media Processing 主機媒體處理

product description 13 產(chǎn)品描述

Host Media Processing (HMP) software 主機媒體處理軟件

configuration 55 配置
licensing 47 許可證
host media processing applications 14 主機媒體處理應(yīng)用程序

I

Interface 接口
circuit 19 電路
Ethernet 19 以太網(wǎng)
HMP software programming 20 主機媒體處理軟件編程
voice and data storage 20 語音和數(shù)據(jù)存貯
interfaces 接口
network 19 網(wǎng)絡(luò)
IP media server 43 IP媒體服務(wù)器
IP penetration IP穿透
enterprise 25 企業(yè)
service providers 26 服務(wù)提供商
IP penetration for enterprise 25 企業(yè)IP穿透
IP penetration for service providers 26 服務(wù)提供商IP穿透
IP-based IVR system 36 基于IP的交互式語音應(yīng)答系統(tǒng)
IVR 交互式語音應(yīng)答
performance testing 73 性能測試
solution testing 73 解決方案測試
IVR application 35 交互式語音應(yīng)答應(yīng)用軟件
IVR application scenarios 交互式語音應(yīng)答應(yīng)用場合
HMP based 39 基于主機媒體處理的
PSTN network 38 公共交換電話網(wǎng)
IVR reference application 61交互式語音應(yīng)答參考應(yīng)用
IVR system 交互式語音應(yīng)答系統(tǒng)
HMP based 39基于主機媒體處理的
IP-based 36 基于IP的
key features 35 關(guān)鍵特性
speech enabled 36 語音激活的

K

key features of IVR system 35 交互性語音應(yīng)答系統(tǒng)的關(guān)鍵特性

L

License 許可證
activating 52 激活
licensing 47 許可證
activating a license 52 激活一個許可證
obtaining evaluation run-time license 47 獲得評估運行許可證
purchasing a permanent license 47 購買一個永久許可證

M

management 22 管理
market segment opportunities 23 市場機會
media control 21 媒體控制
media switching 18 媒體交換
modify HMP software installation 45 修改主機媒體軟件安裝配置
Moore's Law 24 摩爾定律

N

network interfaces 19 網(wǎng)絡(luò)接口

O

Objects 對象
creating 65 創(chuàng)建
obtaining evaluation run-time license 47獲得評估運行許可證
obtaining IVR reverence code 61 獲得交互性語音應(yīng)答參考代碼

P

PBX-IP Media Gateway 84 交換機-IP媒體網(wǎng)關(guān)
performance 73 性能
91 Host Media Processing - Reference Design Guide 主機媒體處理-參考設(shè)計指南
performance data 74 性能數(shù)據(jù)
busy hour call attempts 84 忙時呼叫請求次數(shù)
CPU utilization 76 中央處理器占用
heavy DTMF detection test 83 重DTMF檢測測試
performance parameters 73 性能參數(shù)
permanent license 永久許可證
purchasing 47 購買
PIMG
configuration considerations 84 配置考慮事項
configuring with HMP 84 配置HMP
product description 13 產(chǎn)品描述
properties of simple devices 70 簡單設(shè)備的屬性
purchasing a permanent license 47 購買一個永久許可證

R

reference architecture 17 參考體系機構(gòu)
reinstall HMP software 45 重裝主機媒體處理軟件
remote DCM 56 遠程DCM
remove an HMP software installation 45 刪除主機媒體處理軟件的安裝
remove components from HMP installation 45 從主機媒體處理軟件的安裝中刪除組件
repair an HMP software installation 45 修復(fù)主機媒體處理軟件的安裝
requirements 需求
density 31 密度
running terminal services 43 運行終端服務(wù)

S

setting startup mode to automatic 59 設(shè)置自動啟動模式
simple device 66 簡單設(shè)備
concept 66 概念
simple device properties 70 簡單設(shè)備屬性
SimpleIVR application 61 簡單交互式語音應(yīng)答應(yīng)用程序
software 18 軟件
software programming interfaces 20 軟件編程接口
software reference system 軟件參考系統(tǒng)
architecture 40 體系結(jié)構(gòu)
software voice switching 18 軟件語音交換
speech enabled IVR system 36 具有語音功能的IVR系統(tǒng)
starting and stopping system 57 啟停系統(tǒng)
starting the system 57 啟動系統(tǒng)
startup mode 啟動模式
setting to automatic 59 設(shè)置為自動
state machine 62 狀態(tài)機
basic 62 基本的
summary of business and market segments 32 商業(yè)和市場總結(jié)
system 系統(tǒng)
starting and stopping 57 啟動和停止

T

terminal services 終端服務(wù)
running 43 運行
test methodology 73 測試方法
test parameters 測試參數(shù)
CPU utilization 75 中央處理器占用
test scenario 測試場合
CPU utilization 75 中央處理器占用
CPU utilzation 74 中央處理器占用
heavy DTMF detection test 83 重DTMF檢測測試
test scenarios 74 測試場合
busy hour call attempts 84 忙時呼叫請求次數(shù)
testing the IVR solution 73 測試交互式語音應(yīng)答解決方案

U

uninstalling the HMP software 45 卸載主機媒體處理軟件

V

voice and data storage interface 20 話音和數(shù)據(jù)存貯接口
voice media processing algorithms 18 話音媒體處理算法
voice over IP 24 IP話音
voice over IP applications 30 IP話音應(yīng)用
voice switching 18 話音交換
VoIP IP話音
applications 30 應(yīng)用
economics 24 經(jīng)濟學


進一步了解信息,訪問我們網(wǎng)站http://www.Dialogic.com

[ 全文英文版 ]

 


[ page1 ] [ page2 ]

主機媒體處理(Windows版)參考設(shè)計指南
Dialogic®NetStructure™ 主機媒體處理軟件(HMP)1.0產(chǎn)品手冊
Dialogic® NetStructure™ 主機媒體處理軟件(HMP)常見問題



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