关于TAPI的简单问题,大仙小仙们快救我!
我使用LINEMEDIAMODE_AUTOMATEDVOICE方式执行lineOpen,成功,但Modem的TR指示灯不亮,这是不是正常(用LINEMEDIAMODE_DATAMODEM执行后TR灯亮)?在lineOpen成功执行后(虽然TR灯没亮),我执行lineMakeCall,Modem根本没有任何反应,程序总是返回这样的消息:Disconnected: Unknown reason
我的目的是通过Modem拨电话,然后播放WAV文件,用的是TAPI2.0,初次接触,可能犯的错误很低级,请各位赐教!
问题点数:100、回复次数:13Top
1 楼vcmfc(【痛苦的虫虫】)回复于 2001-03-23 07:58:00 得分 15
老大,到这里去看一下:刘虎 http://www.chinadeveloper.net 网络,ISDN,TAPI等 Top
2 楼sxbyl(sxbyl)回复于 2001-03-23 08:21:00 得分 0
以前我见你说过这个站点,早都收藏了,我也去看了,他那里只有一般的数据传输,没有关于自动应答之类的东西:(Top
3 楼sxbyl(sxbyl)回复于 2001-03-23 09:51:00 得分 0
U~~~~~~~~P~~~~~~~~~~~~Top
4 楼sxbyl(sxbyl)回复于 2001-03-23 14:46:00 得分 0
各路神仙都干什么去了?去云游了?:(Top
5 楼sxbyl(sxbyl)回复于 2001-03-24 08:37:00 得分 0
Faint~~~~~~~~
一晚上没来,居然跑到第四页了~~~~~~~~~~
神啊!救救我吧……Top
6 楼sxbyl(sxbyl)回复于 2001-03-24 21:50:00 得分 0
这回说什么呢?Top
7 楼feng007yan(风情牛仔)回复于 2001-03-25 18:43:00 得分 0
你可真笨,就这么简单的问题还用问我!!!!!!!Top
8 楼sxbyl(sxbyl)回复于 2001-03-25 19:27:00 得分 0
哦……原来是大师啊,给点提示啦……Top
9 楼lyczm(小勇)回复于 2001-03-26 10:21:00 得分 85
我以前做过,并没有出现你说的问题,你好好检查一下,
int CTapiLine::LineDevInitialize()
{
LONG retcode = 0; // local returns
DWORD i; // counter for lines
LINEEXTENSIONID extensions;
// Initialize the line, register the callback
if( m_LineHandle == NULL ) {
retcode = ::lineInitialize( &m_LineHandle, m_hInst,
(LINECALLBACK)lineCallbackFunc,
"MSM TAPI", &m_dwLines );
if( retcode < 0 ) {
TapiStatus("线路初始化错误!" );
return (retcode);
}
else
TapiStatus("线路初始化完毕,等待呼叫..." );
}
//
// go through all the lines to get API and properties
// if you find one that has the right properties,
// jump out and continue to next section of code
//
m_hLine = (HLINE)GetProp( m_hWnd, "HLINE" );
if( m_hLine == NULL )
{
// check every logical line for one that support modem data
for (i=0; (unsigned)i<m_dwLines; i++)
{
// negotiate version of TAPI to use
retcode = lineNegotiateAPIVersion(m_LineHandle, i,
EARLY_TAPI_VERSION, WIN95TAPIVERSION,
&m_dwAPIVersion,&extensions);
if (retcode)
{
continue;
}
// get line device caps
retcode = GetlineDevCaps (i);
if (retcode)
return( ERRORS );
// check that the line supports modems
if (pLinedevcaps->dwMediaModes & LINEMEDIAMODE_AUTOMATEDVOICE )
{
m_dwLineDeviceID = i;
break;
}
}
retcode = ::lineOpen( m_LineHandle,m_dwLineDeviceID, &m_hLine,
m_dwAPIVersion, 0, (DWORD)m_hWnd,
LINECALLPRIVILEGE_MONITOR |
LINECALLPRIVILEGE_OWNER,
LINEMEDIAMODE_AUTOMATEDVOICE ,
(LPLINECALLPARAMS) &m_LineParams );
if( retcode != 0 )
return( ERRORS );
}
//
// found a good line
SetProp( m_hWnd, "HLINE",(HANDLE)(HLINE)m_hLine );
bWaitForCall = TRUE;
return retcode;
}
这是我原来写的一个初始化函数,希望对你有所帮助,
如果还不行,把工程发过来。
Email:lyczm@sohu.com
Top
10 楼sxbyl(sxbyl)回复于 2001-03-26 11:58:00 得分 0
多谢大仙的关注,我先去试试。Top
11 楼sxbyl(sxbyl)回复于 2001-03-26 15:13:00 得分 0
To:lyczm(小勇)
工程已经发过去了,请帮忙看看。多谢!另外,不知这是否和硬件有关?我用的Modem是Fast80 V.90 支持Data Voice/FaxTop
12 楼lyczm(小勇)回复于 2001-03-27 10:22:00 得分 0
我看了一下,程序没有问题,我试拨了几个号也没问题(我拨的是外线,没条件做分机的实验),
我把带EXE的工程发还给你,你比较一下内、外线的区别,最好用Debug 好好跟踪一下各函数的
返回值。
Top
13 楼sxbyl(sxbyl)回复于 2001-03-29 14:31:00 得分 0
问题还未解决,可能是硬件问题,先结帖子,以后再说吧。Top




