座机电话异常挂机

本文关键字:挂机 异常 电话 座机 | 更新日期: 2023-09-27 18:09:29

我正在使用c#和TAPI 3库开发固定电话和全双工语音调制解调器的软件。呼叫应答工作正常,但呼叫挂断抛出异常。我做了很多搜索来找到解决方案,但我找不到。以下是错误:

调用方法ici.ReleaseUserUserInfo()时发生异常;{"这个实现不接受建议(来自HRESULT的异常:0 x80040003 (OLE_E_ADVISENOTSUPPORTED))"}系统。异常{System.Runtime.InteropServices.COMException} "

我的目标是保存通话记录。一个有趣的事情是,如果在挂断电话之前,我关闭应用程序,它成功地保存了录制的通话。

我代码:

private void BtnAnswer_Click(object sender, EventArgs e)
{
    IEnumCall ec = ia[line].EnumerateCalls();
    uint arg = 0;
    ITCallInfo ici;
    ITTerminal recordTerminal;//NY test record
    try
    {
        ec.Next(1, out ici, ref arg);
        ITBasicCallControl2 bc = (TAPI3Lib.ITBasicCallControl2)ici;
        recordTerminal =    bc.RequestTerminal(TapiConstants.CLSID_String_FileRecordingTerminal,
        TapiConstants.TAPIMEDIATYPE_MULTITRACK,
        TAPI3Lib.TERMINAL_DIRECTION.TD_RENDER);
        ITMediaControl mediacontrol = (ITMediaControl)recordTerminal;
        ITMediaRecord mediarecord = (ITMediaRecord)recordTerminal;
        mediarecord.FileName = "a.wav";
        bc.SelectTerminalOnCall(recordTerminal);
        bc.Answer();
        mediacontrol.Start();
    }
    catch (Exception exp)
    {
        MessageBox.Show("There may not be any calls to answer! 'n'n" + exp.ToString(), "TAPI3");
    }
}
private void BtnHang_Click(object sender, EventArgs e)
{
    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");
    }
}

座机电话异常挂机

我相信您看到的错误代码实际上是tapie_notsupported !

根据MSDN文档ITCallInfo::ReleaseUserUserInfo:

ReleaseUserUserInfo方法通知服务提供者,应用程序已经处理了从ITCallInfo::GetCallInfoBuffer方法获得的用户-用户信息,该方法由CALLINFO_BUFFER的CIB_USERUSERINFO成员调用,随后接收到的用户-用户信息现在可以写入了。

但是,User-user信息是特定于ISDN Q.931标准的,并不是所有的服务提供商都支持它。

除非您特别希望在客户端和远程端之间交换此信息,否则可能只需删除有问题的代码行就足够了,否则它既不使用也不受支持。