资源简介
主要实现东进语音卡的拨号功能,可以拨号,接听并对话.最多可以同时进行4个电话拨出
代码片段和文件信息
#include “CallMgr.h“
#include
#include “tce1_32.h“
CallMgr::CallMgr()
{
m_bHaveLoadDriver = false;
m_nTotalTrunk = 0;
m_nTotalUser = 0;
}
CallMgr::~CallMgr()
{
}
bool CallMgr::InitSystem( void )
{
//加载板卡,初始化板卡
int nCardNum = DJSys_EnableCard( ““ “PROMPT.INI“ ); //初始化东进中继语音卡的硬件
if ( nCardNum != 0 )
{
printf(“Load Drive Faile!\n“);
return false;
}
m_nTotalTrunk = DJTrk_GetTotalTrunkNum(); //获取系统内中继通道总数
m_nTotalUser = DJUser_GetTotalUserNum(); //获取用户通道总数
m_pTrunk = new TRUNK_STRUCT[m_nTotalTrunk];
m_pUser = new USER_STRUCT[m_nTotalUser];
if( !m_pTrunk || !m_pUser )
{
DJSys_DisableCard(); //退出系统,释放硬件
printf(“Memory alloc error!\n“);
return false;
}
for(nCardNum = 0; nCardNum < m_nTotalTrunk; ++nCardNum)
{
DJTrk_SetTrunkType(nCardNum Type_Export ); //设置通道类型
m_pTrunk[nCardNum].ConnectUser = -1 ;
m_pTrunk[nCardNum].ConnectTrk = -1 ;
m_pTrunk[nCardNum].State = TRK_FREE ;
m_pTrunk[nCardNum].icount = 0;
}
for(nCardNum = 0; nCardNum < m_nTotalUser; ++nCardNum)
{
int nType = DJUser_CheckChType(nCardNum); //获取模拟通道类型
if ( nType == CHTYPE_USER )
DJUser_SetPowerON(nCardNum); //对用户模块馈电
else
DJUser_SetPowerOFF(nCardNum); //对于用户模块停止馈电
if ( ! DJUser_EnableDialSound(nCardNum) ) //允许用户通道在摘机时自动送拨号音
{
DJSys_DisableCard(); //退出系统,释放硬件
printf(“Init UserBoard Error!\n“);
exit( 2 );
}
m_pUser[nCardNum].ConnectTrk = -1;
m_pUser[nCardNum].ConnectUser = -1;
m_pUser[nCardNum].State = USR_ONHOOK;
}
//VocChannel[VOCBUSYCH] = DJVoc_SearchFreeVoiceChannelForPlay() ;
m_nVocChannel[VOCBUSYCH] = DJVoc_SFVC_ForPlay_New(0 false);//返回一个空闲的用于放音的语音通道(新)
DJVoc_LoopPlayPromptFile( m_nVocChannel[VOCBUSYCH] “BUSY“ ) ;//对给定的语音通道循环播放系统提示音
//VocChannel[VOCRINGCH] = DJVoc_SearchFreeVoiceChannelForPlay() ;
m_nVocChannel[VOCRINGCH] = DJVoc_SFVC_ForPlay_New(0 false);//返回一个空闲的用于放音的语音通道(新)
DJVoc_LoopPlayPromptFile( m_nVocChannel[VOCRINGCH] “RING“ ) ;//对给定的语音通道循环播放系统提示音
//VocChannel[VOCTONECH] = DJVoc_SearchFreeVoiceChannelForPlay() ;
m_nVocChannel[VOCTONECH] = DJVoc_SFVC_ForPlay_New(0 false);
DJVoc_LoopPlayPromptFile( m_nVocChannel[VOCTONECH] “TONE“ ) ;//对给定的语音通道循环播放系统提示音
m_DialData.DialLen=5;
strcpy(m_DialData.CallerNum“99999“);
return true;
}
void CallMgr::ExitSystem( void )
{
DJSys_DisableCard() ;//退出系统,释放硬件
SafeDeleteArray(m_pTrunk);
SafeDeleteArray(m_pUser);
m_bHaveLoadDriver = false;
}
void CallMgr::CallOut( char* code )
{
int tmpval = GetDialTrunkId() ; //get a free trunk for callout
if( tmpval == -1 )
{
//cannot find free trunk channel
printf(“找不到空闲的呼出通道\n“);
return;
}
else
{
DJTrk_StartDial( tmpval code m_DialData.CallerNum ) ;//开始呼出
m_pTrunk[tmpval].State = TRK_CALLOUT ;
}
}
int CallMgr::GetDialTrunkId( void )
{
static int CurrentTrunkNo = 0 ;
int i = 0;
for( i = CurrentTrunkNo ; i < m_nTotalTrunk ; i++ )
{
if( DJTr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 906 2015-08-15 20:36 TelephoneCall.sln
文件 1165 2015-08-23 23:03 Debug\Config.conf
文件 3294 2001-07-10 09:13 Debug\fsk_mix.lib
文件 4 2015-09-01 19:01 Debug\macrun.dll
文件 743248 2010-03-18 09:15 Debug\msvcp100d.dll
文件 1498960 2010-03-18 09:15 Debug\msvcr100d.dll
文件 4100 2011-12-08 16:10 Debug\NewSig.lib
文件 70200 2014-09-08 23:06 Debug\tbb.lib
文件 1461248 2014-09-08 23:06 Debug\tbb.pdb
文件 40960 2014-09-08 23:06 Debug\tbbmalloc_debug.dll
文件 2509 2014-09-08 23:06 Debug\tbbmalloc_debug.exp
文件 4772 2014-09-08 23:06 Debug\tbbmalloc_debug.lib
文件 41001 2014-09-08 23:06 Debug\tbbmalloc_debug.map
文件 404480 2014-09-08 23:06 Debug\tbbmalloc_debug.pdb
文件 218624 2014-09-08 23:06 Debug\tbb_debug.dll
文件 215811 2014-09-08 23:06 Debug\tbb_debug.map
文件 74368 2011-12-08 16:10 Debug\Tc08a32.lib
文件 82048 2001-05-18 14:17 Debug\Tce1_32.lib
文件 1209856 2015-09-01 19:46 Debug\TelephoneCall.exe
文件 6338744 2015-09-01 19:46 Debug\TelephoneCall.ilk
文件 12094464 2015-09-01 19:46 Debug\TelephoneCall.pdb
文件 3605 2015-08-16 15:32 TelephoneCall\CallMgr.cpp
文件 876 2015-08-16 07:03 TelephoneCall\CallMgr.h
文件 1556 2015-08-18 16:33 TelephoneCall\CallStruct.h
文件 0 2015-08-18 17:05 TelephoneCall\Char.log
文件 1165 2015-08-23 23:03 TelephoneCall\Config.conf
文件 0 2015-08-18 17:05 TelephoneCall\DBErrors.log
文件 2348587 2015-08-19 21:29 TelephoneCall\Debug\AsioServer.obj
文件 2544546 2015-08-19 21:29 TelephoneCall\Debug\AsioSession.obj
文件 57281 2015-08-17 17:29 TelephoneCall\Debug\CallMgr.obj
............此处省略691个文件信息
- 上一篇:CELite 6.10
- 下一篇:STM32_MPU6050_dmp
评论
共有 条评论