c#, jquery /tapi3 CallerId返回空字符串

本文关键字:返回 字符串 CallerId tapi3 jquery | 更新日期: 2023-09-27 18:12:44

我正在使用c#和jquery .tapi3(itapi)库开发一个座机电话应用程序。当获取callerId时,它的行为是不一致的,当一步一步跟踪代码时,有时它返回callerId,大多数时候它什么也不返回。

我使用了搜索时找到的代码,但它返回空字符串

此链接描述了在监视器模式下打开线路以获取来电显示,我尝试过,但仍然存在相同的问题。

我在某处读到CallInfoChange事件必须被触发才能获得CallerId,但在我的情况下没有触发。

是否支持callerId

下面是我用来获取来电显示

的代码
private void IncomingForm_Load(object sender, EventArgs e)
    {
        _tapiMgr.Initialize();
        foreach (TAddress addr in _tapiMgr.Addresses)
        {
            if (addr.QueryMediaType(TAPIMEDIATYPES.AUDIO))
            {
                try
                {
                    TAPIMEDIATYPES mt = TAPIMEDIATYPES.AUDIO;
                    addr.OpenAndMonitor(mt);
                   // addr.Open(mt);
                }
                catch(TapiException ex)
                {
                }
            }
        }
    }
  private void OnNewCall(object sender, TapiCallNotificationEventArgs e)
            {
                if (e.Call.Privilege == CALL_PRIVILEGE.CP_OWNER)
                {             MessageBox.Show(e.Call.get_CallInfo(CALLINFO_STRING.CIS_CALLERIDNUMBER).ToString());
                }
            }

c#, jquery /tapi3 CallerId返回空字符串

在大多数系统上,调用者id不能立即可用。在北美,来电显示是在第一响之后发送的。为了可靠地获取调用者id,除了NewCall事件之外,还需要处理CallInfo事件。如果调用方id在NewCall事件处理程序中不可用,则在稍后触发CallInfo事件时它将可用。