基於網關終端設備的模擬通話方法及語音器件檢測方法
2023-09-17 06:46:10
專利名稱:基於網關終端設備的模擬通話方法及語音器件檢測方法
技術領域:
本發明涉及網管終端設備應用技術領域,特別涉及網管終端設備檢測技術領域,具體是指一種基於網關終端設備實現模擬通話方法及語音器件檢測方法。
背景技術:
當前的VoIP(Voice over Internet Protocol)產品,其應用方式都是註冊到一個軟交換伺服器上,然後才能實現互相撥打電話。如果要對VoIP網關終端設備進行語音器件的檢測,也只能通過這種方法,搭建軟交換伺服器,然後接通電話的方式,才能判斷語音器件好壞。搭建這樣一個軟交換伺服器環境,甚至有的還可能需要一些網絡設備,既佔用資 源,浪費時間,又需要專業人員指導,應用十分方便,對網關終端設備的生產效率產生了極大的制約。
發明內容
本發明的目的是克服了上述現有技術中的缺點,提供一種在不用搭建環境和註冊,簡單地摘掛電話機即可實現通話,並模擬電話場景測量器件參數,實現語音器件檢測,適合應用於工廠生產的大規模自動化測試的,從而有效解決現有技術中語音器件檢測不便的問題,且應用方式簡便,實現成本低廉,應用範圍極為廣泛的基於網關終端設備實現模擬通話的方法及語音器件檢測的方法網絡終端設備包括主控制器、語音器件和數位訊號處理器,所述的主控制器和語音器件分別連接所述的數位訊號處理器,所述的網絡終端設備還包括通過用戶線接口電路連接所述的數位訊號處理器的網絡接口。為了實現上述的目的,本發明的基於網關終端設備實現模擬通話的方法包括以下步驟(I)根據用戶操作,將所述的網關終端設備設置為測試模式,所述的主控制器啟動語音驅動;(2)所述的主控制器運行語音測試進程,所述的語音測試進程攔截所述的網關終端設備的所有話機事件,並基於所述的話機事件、終端狀態和時間軸對所述的數位訊號處理器和用戶線接口電路進行控制;(3)所述的語音測試進程檢測到所述的話機事件,所述的主控制器判斷網關終端設備電話埠數是否大於等於兩個,如果是,則進入步驟(4),否則進行一埠事件處理;(4)所述的網關終端設備包括本方網關終端設備和對方網關終端設備,本方網關終端設備的主控制器判斷所述的話機事件類型,若為摘機事件,則進入步驟(5),若為撥號事件,則進入步驟(6),若為掛機事件,則進入步驟(7);(5)所述的主控制器判斷所述的語音測試進程的進程狀態,並分別對掛機狀態和響鈴狀態的摘機事件進行控制;(6)所述的主控制器進行撥號控制;(7)所述的主控制器判斷所述的語音測試進程的進程狀態,並分別對摘機狀態、通話狀態和響鈴狀態的掛機事件進行控制。該基於網關終端設備實現模擬通話的方法中,所述的步驟(5)具體包括以下步驟(51)所述的本方網關終端設備的主控制器判斷所述的語音測試進程的進程狀態,若為掛機狀態,則進入步驟(52),若為響鈴狀態,則進入步驟(53);(52)所述的本方網關終端設備主控制器將對方網關終端設備的狀態設置為響鈴狀態;(53)所述的本方和對方網關終端設備結束響鈴狀態,並進入步驟(54);(54)所述的本方網關終端設備獲取對方網關終端設備的數位訊號處理器參數,進行數位訊號處理器設置,並進入步驟(55)通話狀態;(55)所述的本方網關終端設備和對方網關終端設備均進入通話狀態。該基於網關終端設備實現模擬通話的方法中,所述的步驟¢)具體包括以下步驟(61)所述的本方網關終端設備的主控制器的語音測試進程的進程狀態是否為通話狀態,若是,則進入步驟(62),若否,則返回步驟(3);(62)所述的本方網關終端設備向所述的對方網關終端設備發送數字事件信號。該基於網關終端設備實現模擬通話的方法中,所述的步驟(7)具體包括以下步驟(71)所述的本方網關終端設備的主控制器判斷所述的語音測試進程的進程狀態,若為摘機狀態,則進入步驟(72),若為通話狀態,則進入步驟(73),若為響鈴狀態,則進入步驟(76);(72)所述的本方網關終端設備播放忙音,並將本方網關終端設備設置為掛機狀態;(73)所述的本方網關終端設備進行數位訊號處理器設置,控制本方網關終端設備進入掛機狀態,並進入步驟(74);(74)所述的本方網關終端設備的主控制器判斷所述的對方網關終端設備是否為通話狀態,若否,則返回步驟(3),若是,則進入步驟(75);(75)所述的本方網關終端設備播放忙音,並將對方網關終端設備設置為摘機狀態;(76)所述的本方網關終端設備的主控制器控制本方網關終端設備結束響鈴狀態,並進入掛機狀態,並進入步驟(77);(77)所述的本方網關終端設備的主控制器判斷所述的對方網關終端設備是否為通話狀態,若否,則返回步驟(3),若是,則進入步驟(78);(78)所述的本方網關終端設備結束對方網關終端設備的鈴音狀態,並將對方網關終端設備設置為掛機狀態。本發明還提供一種基於所述的實現模擬通話的方法實現網關終端設備中語音器件檢測的方法,其中,所述的語音器件還通過一音頻檢測設備與所述的主控制器相連接,所述的步驟⑵包括以下步驟 (21)所述的主控制器運行語音測試進程,所述的語音測試進程攔截所述的網關終端設備的所有話機事件;(22)所述的音頻檢測設備根據所述的主控制器的語音測試進程,對所述的語音器件進行音頻檢測。採用了該發明的基於網關終端設備實現模擬通話的方法,由於其主控制器運行語音測試進程,該語音測試進程攔截所述的網關終端設備的所有話機事件,並基於所述的話機事件、終端狀態和時間軸對所述的數位訊號處理器和用戶線接口電路進行控制,從而可以根據相互連接的網關終端設備的話機事件,控制數位訊號處理器和用戶線接口電路進行控制,實現模擬通話,從而免去現有技術中必須搭建的軟交換伺服器環境,使實現通話的方式更為簡便。另外,基於該實現模擬通話的方法,本發明還提供了一種實現網關終端設備中語音器件檢測的方法,音頻檢測設備連接於主控制器和語音器件,並在模擬通話的過程中,根據所述的主控制器的語音測試進程,對所述的語音器件進行音頻檢測,從而可以在不用軟交換伺服器的環境中實現語音器件檢測,適合應用於工廠生產的大規模自動化測試,以此有效解決現有技術中語音器件檢測不便的問題。且本發明的基於網關終端設備實現模擬通話的方法及語音器件檢測的方法的應用方式簡便,實現成本低廉,應用範圍極為廣泛。
圖1為本發明的基於網關終端設備實現模擬通話的方法的步驟流程圖。圖2為實際應用中本發明的基於網關終端設備實現模擬通話的方法的流程示意圖。
具體實施例方式為了能夠更清楚地理解本發明的技術內容,特舉以下實施例詳細說明。請參閱圖I所示,為本發明的基於網關終端設備實現模擬通話的方法的步驟流程圖。在一種實施方式中,所述的網絡終端設備包括主控制器、語音器件和數位訊號處理器,所述的主控制器和語音器件分別連接所述的數位訊號處理器,所述的網絡終端設備還包括通過用戶線接口電路連接所述的數位訊號處理器的網絡接口。所述基於網關終端設備實現模擬通話的方法包括以下步驟(1)根據用戶操作,將所述的網關終端設備設置為測試模式,所述的主控制器啟動語音驅動;(2)所述的主控制器運行語音測試進程,所述的語音測試進程攔截所述的網關終端設備的所有話機事件,並基於所述的話機事件、終端狀態和時間軸對所述的數位訊號處理器和用戶線接口電路進行控制;(3)所述的語音測試進程檢測到所述的話機事件,所述的主控制器判斷網關終端設備電話埠數是否大於等於兩個,如果是,則進入步驟(4),否則進行一埠事件處理;(4)所述的網關終端設備包括本方網關終端設備和對方網關終端設備,本方網關終端設備的主控制器判斷所述的話機事件類型,若為摘機事件,則進入步驟(5),若為撥號事件,則進入步驟(6),若為掛機事件,則進入步驟(7);(5)所述的主控制器判斷所述的語音測試進程的進程狀態,並分別對掛機狀態和響鈴狀態的摘機事件進行控制;(6)所述的主控制器進行撥號控制;(7)所述的主控制器判斷所述的語音測試進程的進程狀態,並分別對摘機狀態、通話狀態和響鈴狀態的掛機事件進行控制。在一種優選的實施方式中,所述的步驟(5)具體包括以下步驟(51)所述的本方網關終端設備的主控制器判斷所述的語音測試進程的進程狀態,若為掛機狀態,則進入步驟(52),若為響鈴狀態,則進入步驟(53);
(52)所述的本方網關終端設備主控制器將對方網關終端設備的狀態設置為響鈴狀態;(53)所述的本方和對方網關終端設備結束響鈴狀態,並進入步驟(54);(54)所述的本方網關終端設備獲取對方網關終端設備的數位訊號處理器參數,進行數位訊號處理器設置,並進入步驟(55)通話狀態;(55)所述的本方網關終端設備和對方網關終端設備均進入通話狀態。在另一種優選的實施方式中,所述的步驟(6)具體包括以下步驟(61)所述的本方網關終端設備的主控制器的語音測試進程的進程狀態是否為通話狀態,若是,則進入步驟(62),若否,則返回步驟(3);(62)所述的本方網關終端設備向所述的對方網關終端設備發送數字事件信號。在一種更優選的實施方式中,所述的步驟(7)具體包括以下步驟(71)所述的本方網關終端設備的主控制器判斷所述的語音測試進程的進程狀態,若為摘機狀態,則進入步驟(72),若為通話狀態,則進入步驟(73),若為響鈴狀態,則進入步驟(76);(72)所述的本方網關終端設備播放忙音,並將本方網關終端設備設置為掛機狀態;(73)所述的本方網關終端設備進行數位訊號處理器設置,控制本方網關終端設備進入掛機狀態,並進入步驟(74);(74)所述的本方網關終端設備的主控制器判斷所述的對方網關終端設備是否為通話狀態,若否,則返回步驟(3),若是,則進入步驟(75);(75)所述的本方網關終端設備播放忙音,並將對方網關終端設備設置為摘機狀態;(76)所述的本方網關終端設備的主控制器控制本方網關終端設備結束響鈴狀態,並進入掛機狀態,並進入步驟(77);(77)所述的本方網關終端設備的主控制器判斷所述的對方網關終端設備是否為通話狀態,若否,則返回步驟(3),若是,則進入步驟(78);(78)所述的本方網關終端設備結束對方網關終端設備的鈴音狀態,並將對方網關終端設備設置為掛機狀態。本發明還提供一種基於所述的實現模擬通話的方法實現網關終端設備中語音器件檢測的方法,其中,所述的語音器件還通過一音頻檢測設備與所述的主控制器相連接,所述的步驟⑵包括以下步驟(21)所述的主控制器運行語音測試進程,所述的語音測試進程攔截所述的網關終端設備的所有話機事件;(22)所述的音頻檢測設備根據所述的主控制器的語音測試進程,對所述的語音器件進行音頻檢測。在實際應用中,本發明的目的就是繞開語音協議棧,模擬通話的過程,直接利用語音器件的驅動接口實現在兩語音口之間完成通話流程。其突破了傳統的對VoIP固有觀念,沒有直接使用語音協議棧而達到電話互通的目的。應用中,在網關終端設備中添加一種配置模式,即測試模式。在此模式下將自動啟 動語音驅動,並攔截所有的話機事件,如摘機或掛機,使其不傳向語音協議棧,而只傳向語音測試進程。在語音測試進程中依據外來事件、自身的狀態及時間軸對DSP (數位訊號處理器)及SLIC (用戶線接口電路)驅動接口進行控制管理,對DSP及SLIC驅動接口的操作完全實現模擬現實的通話過程。具體而言如圖2所示,當A方摘機時,另一方B方能聽到響鈴,A方能聽到回鈴音,如B方一定時間不摘機,則A方則聽到忙音,如A方在一段時間內還沒有掛機,過會就能聽到催掛機音。如B方聽到響鈴後,摘機,則A方停掉回鈴音,A、B雙方進入通話狀態。A或B掛機,則雙方通話中斷。因此模擬的電話呼叫流程只需在本產品內部就能實現,不需藉助外部環境,達到簡單易用的實效。進一步的,利用本技術可以實現不依賴語音協議棧及軟交換伺服器等環境的語音器件的測試。在VoIP產品上電啟動後,接上兩部話機,配置成測試模式後,即進入測試流程。一方摘話機,另一話機就響鈴,當摘起時,雙方就能通話,並在整個通話過程中對語音器件進行測試,達到測試迅速的效果。本發明的方法中的主要事件處理進程代碼如下#define TIMER—RINGBACK—LOCALTEST20
#define TIMER—DIALTONE^LOCALTEST5
#define TIMER—DIALTIMEOUT—LOCALTEST4
//獲取設置DSP的參數信息
void getDefaultDSPParaLT(EPZCNXPARAM *param)
{
param->mode = EPCNXMODE_SNDRX;
param->cnxParmList. send. codecs
.type = CODEC_PCMU; param->cnxParmList.recv. codecs
.type = CODEC_PCMU;
param->cnxParmList. send. codecs
.rtpPayloadType = 0; param->cnxParmList. send. codecs
.options.rfc2198Type = 0;
param->cnxParmList. send. codecs[I] . type = 19; param->cnxParmList. send. codecs[I] .rtpPayloadType = 101; param->cnxParmList. send. codecs[I] .options.rfc2198Type = 0;
return ;
}
//處理話機事件的核心進程void process—event—for—call—simulate (BCMCMD ^evtp)
{ — —— — int port = evtp->opl; int peer—port;PHONE_STATE curState; char sLedCmd[48];
//處理接收到的事件,轉成所需的事件
switch(evtp->op2)
{
case EPEVT_O FFHOOK:
curState= OFFHOOK; break; case EPEVT_ONHOOK:
curState = ONHOOK; break; case EPEVT_DTMFO: case EPEVT_DTMF1: case EPEVT_DTMF2: case EPEVT_DTMF3: case EPEVT_DTMF4: case EPEVT DTMF5: case EPEVT_DTMF6: case EPEVT—DTMF8: case EPEVT_DTMF9:
curState = DTMFDIGIT; break; case EPEVT_DTMFH:
curState = DTMFSPEEDDIAL; break; default:
Il curState = OFFHOOK; break;
}
//在這裡處理FXS 口是二口或二口以上的情況
if(NUM—CHANNELS - NUM_FXO_CHANNELS > I)
{ _
if (curState != phonePortState[port])
{
peer port = port==0 1:0; if (curState == ONHOOK)
{
//狀態機的處理,在不同的狀態下,如何處理掛機事件
switch(phonePortState[port] ) //old state{
//當一方已掛機,本方還沒掛時,本方放忙音 case OFFHOOK:
endptSignal( &cmEndpt[port] .endptObj State, -I, EPSIG BUSY,
o T -1, _1, -1 );
phonePortState [port] = 0ΝΗ00Κ;
sprintf(sLedCmd, "/bin/ledctl Voip%d Off」, port+1);
system(sLedCmd);
break;
//當雙方處在響鈐狀態時掛機,停止響鈐 case RINGING:
endptSignal(&cmEndpt[port] .endptObj State ,一I,
EPSIG_RINGBACK, 0, -I, -I, -I );
phonePortState [port] = 0ΝΗ00Κ;
if (phonePortState[peer_port] == RINGING )
{ _
endptSignal( ScmEndpt[peer port] .endptObj State, —I,EPSIG_RINGO, 0, -I, -I, -I );
phonePortState[peer port] = ONHOOK ;
} _
sprintf (sLedCmd, ,T/bin/ledctl Voip%d Off」, port+1);
system (sLedCmd);
break;
case CALLING:
endptDe IeteConnection ( ^cmEndpt [port] . endptOb j State,. port);
endptDeIeteConnection(&cmEndpt[peer port] .endptObj State , peer port);
phonePortState[port] = ONHOOK;
//掛機,通話斷開
if (phonePortState[peer—port] == CALLING )
{ 一
endptSignal( &cmEndpt[peer_port] .endptObj State, -I,EPSIG—BUSY, I, -I, -I, -I );_
phonePortState[peer port] = OFFHOOK ;/^assume
offhook to close busy tone */
endptSignal( &cmEndpt[peer_port] .endptObj State, -I,EPSIG—REVERSE_P〇LARITY, 0, -I, -I, -I );_
sprintf(sLedCmd, "/bin/ledctl Voip%d Off", port+1); s ystem(sLedCmd);
sprintf (sLedCmd, TT/bin/ledctl Voip%d On" , peer_port+l); s ystem(sLedCmd);
}
break;
default: break;
}
}
//狀態機的處理,在不同的狀態下,如何處理摘機事件
else if (curState == OFFHOOK) //offhook {
switch(phonePortState[port] ) //old state{
case ONHOOK:
if (phonePortState[peer port] 二二 ONHOOK)
{ 一//本方從空閒到摘機,則讓對方響鈴,本方聽回鈴音
endptSignal( &cmEndpt[peer_port] .endptObj State, -I,EPSIG—RINGO, I, -I, -I, -I);
endptSignal (&cmEndpt[port] .endptObjState,-I,
EPSIG—RINGBACK, I, -I, -I, -I );
phonePortState[peer_port] = RINGING ; phonePortState[port] = RINGING ;
}
sprintf (sLedCmd, ,T/bin/ledctl Voip%d On", port+1);
system (sLedCmd);
break;
//下面是當本方是響鈴狀態時
case RINGING:
EPZCNXPARAM param;
endptSignal ( &cmEndpt[peer—port] .endptObj State, -I,EPSIG—REVERSE—POLARITY, I, -I, -I, -I );
endptSignal ( &cmEndpt[peer port] .endptObj State, -I,EPSIG_RINGBACK,〇,-I, -I, -I );
endptSignal( &cmEndpt[port] .endptObj State, -I, EPSIG—RINGO,
〇,-I, -I, -I );
//下面設置DSP參數,進入到通話狀態
if(phonePortState[peer—port] == RINGING )
{ 一
getDefaultDSPParaLT(¶m);
endptCreateConnection(&cmEndpt[port] .endptObjState,
port, ¶m);
endptCreateConnection(ScmEndpt[peer—port] .endptObj State, peer—port, ¶m);
phonePortState[port] = CALLING ; phonePortState[peer port] = CALLING ;
sprintf(sLedCmd,"/bin/ledctlVoipl
SlowBlinkContinues ,T);
system(sLedCmd);
sprintf(sLedCmd,"/bin/ledctlVoip2
SlowBlinkContinues IT);
system(sLedCmd);
}
}
break;
case CALLING: break;
default: break;
}
}
} }
//在這裡處理FXS 口是一口的情況,依據事件及狀態機實現模擬過程,情況較為複雜,不再解釋。else //if(MAX—SLIC—FXS—NUM <=1)
{ - -- char *state str [ ] = { nONHOOKn,
"OFFHOOK",
"RINGING",
」CALLING」, nDTMFDIGITnr "DTMFSPEEDDIAL", nLOCALTESTTIMEOUT"
};
time—t time—begin,time—now; while (I)
{
switch(evtp->op2)
{
case EPEVT—〇FFH〇〇K:
curState= OFFHOOK; break; case EPEVT_ONHOOK:
curState = ONHOOK; break; case EPEVT_DTMFO: case EPEVT~DTMF1: case EPEVT_DTMF2: case EPEVT—DTMF3: case EPEVT—DTMF4:case EPEVT—DTMF5: case EPEVT_DTMF6: case EPEVT_DTMF8: case EPEVT~DTMF9:
curState = DTMFDIGIT; break; case EPEVT—DTMFH:
curState 二 DTMFSPEEDDIAL; break; default:
//curState = OFFHOOK;
break;
}
evtp->op2 = EPEVT_NULL; switch ( curState)
{
case ONHOOK:
{
switch (phonePortState
)
{
case OFFHOOK:
endptSignal( &cmEndpt
.endptObjState , -I, EPSIG DIAL, 0,
-I, -i, -I );_
break; case DTMFDIGIT: break; case RINGING:
endptSignal( ScmEndpt
.endptObj State, -I, EPSIG RINGBACK,
〇,-I, -I, -I );
break; case CALLING:
endptDeIeteConnection (&cmEndpt
.endptObj State ,0); break;
}
phonePortState
=〇;
sprintf(sLedCmd, "/bin/ledctl Voipl Off");system (sLedCmd);
}
return; case OFFHOOK:
{
switch(phonePortState
)
{
case ONHOOK:
endptSignal( &cmEndpt
.endptObjState , -I, EPSIG DIAL, I,
-I, -I, -I );_
time (&time begin); phonePortState
二 OFFHOOK ;
sprintf(sLedCmd, "/bin/ledctl Voipl On");system(sLedCmd);break;
case OFFHOOK:
time (&time_now);
if (time_now - time_taegin >= TIMER—DIALT〇NE_L〇CA;LTEST)
{ — — curState = LOCALTESTTIMEOUT;
}
break;
case RINGING:
time (&time_now);
if(time_now - time_begin >= TIMER_RINGBACK_LOCALTEST)
{ — — curState = LOCALTESTTIMEOUT;
I
break;
default: break;
}
}
break;
case DTMFDIGIT:
{
switch(phonePortState
)
{
case OFFHOOK:
endptSignal( ScmEndpt
.endptObj State, -I,
EPSIG—DIAL, 0, -I, -I, -I );
time (begin); phonePortState
= DTMFDIGIT; break;
case DTMFDIGIT:
time (&time now);
if (time now-time begin>=
TIMER—DIALT IME〇UT_L〇CALTEST)
— ~ {
curState = LOCALTESTTIMEOUT;
}
break;case RINGING:
{
EPZCNXPARAM param;
endptSignal( &cmEndpt
.endptObj State, -I,EPSIG—RINGBACK, 0, -I, -I, -I );
getDefaultDSPParaLT(¶m);
endptCreateConnection(ScmEndpt
.endptObj State,〇,¶m);
phonePortState
二 CALLING ;
curState = CALLING ; sprintf(sLedCmd,M/bin/ledctlVoipl
SlowBlinkContinues");
system(sLedCmd);
}
break;
default:break;
}
}
break;
case DTMFSPEEDDIAL:
{
switch(phonePortState[O])
{
case OFFHOOK: case DTMFDIGIT:
if ( phonePortState[O] == OFFHOOK)
endptSignal( &cmEndpt[O] .endptObj State , -I,
EPSIG_DIAL, 0, -I, -I, -I );
endptSignal ( &cmEndpt
.endptObjStateA -I,EPSIG_RINGBACK, I, -I, -I, -I );
time (&time_begin);curState = OFFHOOK ;phonePortState[O] = RINGING;break;
default:break;
}
}
break;
case LOCALTESTTIMEOUT:
switch(phonePortState[〇])
{
case OFFHOOK:
endptSignal ( &cmEndpt[O] .endptObjState, -I,
EPSIG_DIAL,〇,-I, -I, -I );
endptSignal ( &cmEndpt[O] .endptObjState, -I,EPSIG_RINGBACK, I, -I, -I, -I );
curState 二 OFFHOOK; time (&time begin); phonePortState
= RINGING; break;
case DTMFDIGIT:
endptSignal( &cmEndpt
.endptObjState, -I,EPSIG—RINGBACK, I, -I, -I, -I );
time (Stime begin);phonePortState
= RINGING ;curState = OFFHOOK ;break;
case RINGING:
{
EPZCNXPARAM param;
endptSignal ( &cmEndpt[O] .endptObj State , 一I,EPSIG—RINGBACK, 0, -I, -I, -I );
getDefaultDSPParaLT(¶m);
endptCreateConnection(&cmEndpt
.endptObj State, 0, ¶m);
phonePortState
= CALLING ;curState = CALLING ;sprintf(sLedCmd,"/bin/ledctlVoipl
SlowBlinkContinues M);
system (sLedCmd);
}
break;
default:break;
}
break;
case CALLING: break;
default:break;
}
usleep(200000);
}
}
return;
}採用了該發明的基於網關終端設備實現模擬通話的方法,由於其主控制器運行語音測試進程,該語音測試進程攔截所述的網關終端設備的所有話機事件,並基於所述的話機事件、終端狀態和時間軸對所述的數位訊號處理器和用戶線接口電路進行控制,從而可以根據相互連接的網關終端設備的話機事件,控制數位訊號處理器和用戶線接口電路進行控制,實現模擬通話,從而免去現有技術中必須搭建的軟交換伺服器環境,使實現通話的方式更為簡便。另外,基於該實現模擬通話的方法,本發明還提供了一種實現網關終端設備中語音器件檢測的方法,音頻檢測設備連接於主控制器和語音器件,並在模擬通話的過程中,根據所述的主控制器的語音測試進程,對所述的語音器件進行音頻檢測,從而可以在不用軟交換伺服器的環 境中實現語音器件檢測,適合應用於工廠生產的大規模自動化測試,以此有效解決現有技術中語音器件檢測不便的問題。且本發明的基於網關終端設備實現模擬通話的方法及語音器件檢測的方法的應用方式簡便,實現成本低廉,應用範圍極為廣泛。在此說明書中,本發明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發明的精神和範圍。因此,說明書和附圖應被認為是說明性的而非限制性的。
權利要求
1.一種基於網關終端設備實現模擬通話的方法,所述的網絡終端設備包括主控制器、語音器件和數位訊號處理器,所述的主控制器和語音器件分別連接所述的數位訊號處理器,所述的網絡終端設備還包括通過用戶線接口電路連接所述的數位訊號處理器的網絡接口,其特徵在於,所述的方法包括以下步驟 (1)根據用戶操作,將所述的網關終端設備設置為測試模式,所述的主控制器啟動語音驅動; (2)所述的主控制器運行語音測試進程,所述的語音測試進程攔截所述的網關終端設備的所有話機事件,並基於所述的話機事件、終端狀態和時間軸對所述的數位訊號處理器和用戶線接口電路進行控制; (3)所述的語音測試進程檢測到所述的話機事件,所述的主控制器判斷網關終端設備電話埠數是否大於等於兩個,如果是,則進入步驟(4),否則進行一埠事件處理; (4)所述的網關終端設備包括本方網關終端設備和對方網關終端設備,本方網關終端設備的主控制器判斷所述的話機事件類型,若為摘機事件,則進入步驟(5),若為撥號事件,則進入步驟(6),若為掛機事件,則進入步驟(7); (5)所述的主控制器判斷所述的語音測試進程的進程狀態,並分別對掛機狀態和響鈴狀態的摘機事件進行控制; (6)所述的主控制器進行撥號控制; (7)所述的主控制器判斷所述的語音測試進程的進程狀態,並分別對摘機狀態、通話狀態和響鈴狀態的掛機事件進行控制。
2.根據權利要求I所述的基於網關終端設備實現模擬通話的方法,其特徵在於,所述的步驟(5)具體包括以下步驟 (51)所述的本方網關終端設備的主控制器判斷所述的語音測試進程的進程狀態,若為掛機狀態,則進入步驟(52),若為響鈴狀態,則進入步驟(53); (52)所述的本方網關終端設備主控制器將對方網關終端設備的狀態設置為響鈴狀態; (53)所述的本方和對方網關終端設備結束響鈴狀態,並進入步驟(54); (54)所述的本方網關終端設備獲取對方網關終端設備的數位訊號處理器參數,進行數位訊號處理器設置,並進入步驟(55)通話狀態; (55)所述的本方網關終端設備和對方網關終端設備均進入通話狀態。
3.根據權利要求I所述的基於網關終端設備實現模擬通話的方法,其特徵在於,所述的步驟(6)具體包括以下步驟 (61)所述的本方網關終端設備的主控制器的語音測試進程的進程狀態是否為通話狀態,若是,則進入步驟(62),若否,則返回步驟(3); (62)所述的本方網關終端設備向所述的對方網關終端設備發送數字事件信號。
4.根據權利要求I所述的基於網關終端設備實現模擬通話的方法,其特徵在於,所述的步驟(7)具體包括以下步驟 (71)所述的本方網關終端設備的主控制器判斷所述的語音測試進程的進程狀態,若為摘機狀態,則進入步驟(72),若為通話狀態,則進入步驟(73),若為響鈴狀態,則進入步驟(76);(72)所述的本方網關終端 設備播放忙音,並將本方網關終端設備設置為掛機狀態; (73)所述的本方網關終端設備進行數位訊號處理器設置,控制本方網關終端設備進入掛機狀態,並進入步驟(74); (74)所述的本方網關終端設備的主控制器判斷所述的對方網關終端設備是否為通話狀態,若否,則返回步驟(3),若是,則進入步驟(75); (75)所述的本方網關終端設備播放忙音,並將對方網關終端設備設置為摘機狀態; (76)所述的本方網關終端設備的主控制器控制本方網關終端設備結束響鈴狀態,並進入掛機狀態,並進入步驟(77); (77)所述的本方網關終端設備的主控制器判斷所述的對方網關終端設備是否為通話狀態,若否,則返回步驟(3),若是,則進入步驟(78); (78)所述的本方網關終端設備結束對方網關終端設備的鈴音狀態,並將對方網關終端設備設置為掛機狀態。
5.ー種基於權利要求I所述的方法實現網關終端設備中語音器件檢測的方法,其特徵在於,所述的語音器件還通過一音頻檢測設備與所述的主控制器相連接,所述的步驟(2)包括以下步驟 (21)所述的主控制器運行語音測試進程,所述的語音測試進程攔截所述的網關終端設備的所有話機事件; (22)所述的音頻檢測設備根據所述的主控制器的語音測試進程,對所述的語音器件進行音頻檢測。
全文摘要
本發明涉及一種基於網關終端設備實現模擬通話的方法,網關終端設備的主控制器運行語音測試進程,以攔截網關終端設備的所有話機事件,並基於話機事件、終端狀態和時間軸對DSP和DLIC進行控制,從而可根據相互連接的網關終端設備的話機事件、控制DSP和DLIC進行控制,實現模擬通話,免去軟交換伺服器環境,使通話更為簡便。本發明還提供了一種實現網關終端設備中語音器件檢測的方法,在上述模擬通話的過程中,根據主控制器的語音測試進程,對語音器件進行音頻檢測,從而在不用軟交換伺服器的環境中實現語音器件檢測,適用於大規模自動化測試,有效解決現有技術中語音器件檢測不便的問題。且本發明的方法的應用方式簡便,實現成本低廉,應用範圍極為廣泛。
文檔編號H04L12/66GK102624585SQ201210066470
公開日2012年8月1日 申請日期2012年3月14日 優先權日2012年3月14日
發明者徐正偉, 雷波濤 申請人:上海大亞科技有限公司