0

我有一个 C# Tapi 应用程序,我正在开发它以从计算机发送到路由到手机的 Toshiba CIX tapi 命令。这条线本身并不重要,因为那部分正在工作。我可以从应用程序拨打电话。但是,接听和挂断无法正常工作。当我尝试断开连接时,我收到此错误:

此实现不接受建议(来自 HRESULT 的异常:0x80040003 (OLE_E_ADVISENOTSUPPORTED))

当我尝试回答时,我得到:

无法将“System.__ComObject”类型的 COM 对象转换为接口类型“TAPI3Lib.ITBasicCallControl”。此操作失败,因为 IID 为“{B1EFC389-9355-11D0-835C-00AA003CCABD}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(HRESULT 异常:0x80004002 (E_NOINTERFACE)) .

我的应用程序基于: http ://www.codeproject.com/KB/IP/devangpro.aspx 由于跨线程问题,我确实必须委托将项目添加到列表框,以便在 codeproject 上获取应用程序至少运行正确。

这是断开连接:

IEnumCall ec = ia[line].EnumerateCalls();
        uint arg = 0;
        ITCallInfo ici;
        try
        {
            ec.Next(1,out ici,ref arg);
            ITBasicCallControl bc=(ITBasicCallControl)ici;
            bc.Disconnect(DISCONNECT_CODE.DC_NORMAL);
            ici.ReleaseUserUserInfo();
        }
        catch(Exception exp)
        {
            MessageBox.Show("No call to disconnect!","TAPI3");
        }

这是答案:

        IEnumCall ec = ia[line].EnumerateCalls();
        uint arg=0;
        ITCallInfo ici;
        try
        {
            ec.Next(1,out ici,ref arg);
            ITBasicCallControl bc=(TAPI3Lib.ITBasicCallControl)ici;
            if(!reject)
            {
                bc.Answer();
            }
            else
            {
                bc.Disconnect(DISCONNECT_CODE.DC_REJECTED);
                ici.ReleaseUserUserInfo();
            }
        }
        catch(Exception exp)
        {
            MessageBox.Show("There may not be any calls to answer!     \n\n"+exp.ToString(),"TAPI3");
        }
4

2 回答 2

1

我将 tapimediatype 从音频更改为 datamodem,因为我只想在我的应用程序中查看呼叫者 ID,它可以工作,问题的原因可能是您的调制解调器不支持音频,因此您必须将 tapimediatype 更改为另一种类型

于 2012-08-04T10:14:14.653 回答
0

我在我的项目中遇到了同样的问题,我在上面进行了很多搜索,但没有找到任何东西,问题是我的代码,这个错误只有在你没有选择任何 Tapi 线(设备)的情况下进行任何操作时才会发生。

看来您没有选择任何 TAPI 行进行任何操作。

于 2017-02-14T05:15:25.613 回答