C#应用程序尝试将TAPI与Toshiba CIX一起使用

时间:2011-11-10 17:30:13

标签: c# phone-call tapi

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

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

当我试着回答时,我得到了:

  

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

我的应用基于: http://www.codeproject.com/KB/IP/devangpro.aspx 由于交叉线问题导致代码项目至少正常运行,我确实需要创建一个委托才能将项目添加到列表框中。

以下是断开连接:

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");
        }

2 个答案:

答案 0 :(得分:1)

我将tapimediatype从audio更改为datamodem因为我只希望在我的应用程序中看到来电显示并且它有效 问题的原因可能是您的调制解调器不支持音频,因此您必须将tapimediatype更改为其他类型

答案 1 :(得分:0)

我在我的项目中遇到了同样的问题,我对它进行了大量搜索,但没有发现任何问题,问题出现在我的代码中,只有当您在不选择任何tapi线(设备)的情况下进行任何操作时才会出现此错误。 / p>

似乎你没有选择任何TAPI线来进行任何操作。