2

使用 PHP 星号管理器界面,我可以通过发出 QueueStatusAction 来查询星号以获取当前队列状态。这为我提供了有用的统计数据,例如:

  1. 保持时间
  2. 已放弃通话
  3. 通话完成
  4. 平均通话时间。

据我了解,这些统计信息仅针对服务器上星号进程的生命周期计算,并且一旦进程停止就会丢失。

在我的应用程序中,我想显示关于最近 {day|week|month|year} 队列的上述统计信息。有没有办法通过星号管理器接口或在其之上的一些抽象来检索历史静态数据,还是由我来编写一种方法来从星号 queue_log 表中的数据中生成这些统计数据?

如果有人这样做或对如何解决这个问题有一些想法,请分享。

4

1 回答 1

4

你走错路了。

Asterisk 是 PBX 软件。它不负责保存/记录/管理有关队列的信息。它并非旨在将有关队列的信息存储在星号内,而是提供以下方式:

  1. 通过管理器 API 的代理登录/注销/呼叫等事件
  2. 事件记录在 /var/log/asterisk/queue_log
  3. 同 2,但 queue_log 在数据库中(推荐方式)。看到这个:

放置数据后,您可以使用 SQL 查询语言创建您需要的报告。实际上,对于任何具有 sql 技能的人来说,它都是简单的 SQL。

例如要获得保持时间,您需要选择所有带有您的队列号和事件 CONNECT 的事件,它提供等待时间。对于通话时间,您需要检查 CONNECT 并检查具有相同唯一 ID 的下一个事件 COMPLETECALLER/COMPLETEAGENT。

如果由于某种原因您对 sql 不太满意,您可以检查一些开源项目,例如 Asternic Call Center Stats 或其他(通过队列管理/报告谷歌)并检查它使用的 SQL 或雇用某人来完成您的 sql 部分。

于 2013-03-13T06:37:42.040 回答