5.6 事件相关问题解答

1. 为什么收到的呼叫状态事件(如,RING/ALERT等)没有 visitor/outer id和callid等信息?

问题原因:

因为外线的API没有开启,导致分机不能获取外线信息。

解决方法:

  • 开启外线的API功能开关;

  • 注:监控和控制模式都可以,根据具体情况选择。

2. 外呼的时候,没有接通就挂断了,为什么会收到ANSERED事件,而且CDR的通话时长大于0?

问题原因:

  • 因为模拟外线没有开启反极性信号导致。

  • 通过模拟外线外呼时,模拟外线并不能检测到对方是否接通,且默认为一旦呼叫被送出就立马接通了。所以,会收到ANSERED事件,且不管对方接通不接通,本次通话结束后,CDR的通话时长都将大于0。

  • 注:此问题仅仅在通过模拟外线外呼时才会出现。

解决方法:

  • 如果你使用的模拟外线已通过电信运营商开通了反极性信号的业务,则可以通过OM的web页面开启对应线路的反极性检测开关,即可判断对方是否接通。

  • 重要说明:如果未通过电信运营商开启反极性信号,请勿开启设备的反极性检测开关,否则,会造成即使对方摘机了也没有ANSERED事件,CDR的通话时长将一直为0。

3. Event中的callid为什么和CDR中的不一致?callid为什么不唯一?我如何判断通话的唯一性?

问题原因:

  • 对于用户而言,A和B的通话虽然表示是一路,但对于OM而言,实际上是由很多段通话组合起来的,目的是方便OM 对通话的任意节点进行拆分和转接(如将来电和分机A的通话转给分机B等);

  • 具体细节,你可以不去考虑,知道不要用callid作为通话的唯一标识写入数据库即可。

解决方法:

  • visitor id和outer id从通话开始到结束的时间内是唯一的,但会被回收循环利用,可作为临时唯一标识。

  • 在第一次收到visitor/outer id时,将当前的时间戳与visitor/outer id建立一对一的映射关系,用时间戳保证唯一性(常见应用有:通话过程中的便签记录,需要和其通话记录一一绑定);

  • 当通话结束后,cdr id是唯一的,可以写入数据库作为通话的唯一标识。另外,cdr中同样会包含visitor/outer id,再次通过和时间戳的映射关系,找到cdr和时间戳的映射关系。(对应通话便签记录的应用方式:最终实现通话便签记录内容和通话记录的绑定)。

4. 什么时候判断通话被接通?

解答:

  • 对于来电,当收到分机的Answer事件时,说明通话接通;

  • 对于去电,当收到OM推送的Answered事件时,说明通话接通;

  • 补充说明:若有Alert事件说明成功呼叫,对方回铃,若无Alert事件,说明对方号码为空号或其他原因导致呼叫失败。

results matching ""

    No results matching ""