东进语音卡拨号功能


主要实现东进语音卡的拨号功能,可以拨号,接听并对话.最多可以同时进行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!
“);
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!
“);
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!
“);
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(“找不到空闲的呼出通道
“);
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  DebugConfig.conf

     文件       3294  2001-07-10 09:13  Debugfsk_mix.lib

     文件          4  2015-09-01 19:01  Debugmacrun.dll

     文件     743248  2010-03-18 09:15  Debugmsvcp100d.dll

     文件    1498960  2010-03-18 09:15  Debugmsvcr100d.dll

     文件       4100  2011-12-08 16:10  DebugNewSig.lib

     文件      70200  2014-09-08 23:06  Debug bb.lib

     文件    1461248  2014-09-08 23:06  Debug bb.pdb

     文件      40960  2014-09-08 23:06  Debug bbmalloc_debug.dll

     文件       2509  2014-09-08 23:06  Debug bbmalloc_debug.exp

     文件       4772  2014-09-08 23:06  Debug bbmalloc_debug.lib

     文件      41001  2014-09-08 23:06  Debug bbmalloc_debug.map

     文件     404480  2014-09-08 23:06  Debug bbmalloc_debug.pdb

     文件     218624  2014-09-08 23:06  Debug bb_debug.dll

     文件     215811  2014-09-08 23:06  Debug bb_debug.map

     文件      74368  2011-12-08 16:10  DebugTc08a32.lib

     文件      82048  2001-05-18 14:17  DebugTce1_32.lib

     文件    1209856  2015-09-01 19:46  DebugTelephoneCall.exe

     文件    6338744  2015-09-01 19:46  DebugTelephoneCall.ilk

     文件   12094464  2015-09-01 19:46  DebugTelephoneCall.pdb

     文件       3605  2015-08-16 15:32  TelephoneCallCallMgr.cpp

     文件        876  2015-08-16 07:03  TelephoneCallCallMgr.h

     文件       1556  2015-08-18 16:33  TelephoneCallCallStruct.h

     文件          0  2015-08-18 17:05  TelephoneCallChar.log

     文件       1165  2015-08-23 23:03  TelephoneCallConfig.conf

     文件          0  2015-08-18 17:05  TelephoneCallDBErrors.log

     文件    2348587  2015-08-19 21:29  TelephoneCallDebugAsioServer.obj

     文件    2544546  2015-08-19 21:29  TelephoneCallDebugAsioSession.obj

     文件      57281  2015-08-17 17:29  TelephoneCallDebugCallMgr.obj

............此处省略691个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)