星号AMI – 获取详细的扩展状态

我正在使用Python的AMI。 我猜也可以通过Asterisk CLI实现。 我希望能够了解有关集团电话中每个分机的详细信息。 更具体地说,对于我想知道的每个扩展:

  • 如果分机在通话中,该通话的唯一ID是什么,来电号码是什么,电话号码是什么(来电线路)
  • 如果分机正在振铃,那么现在有什么呼入线路正在振铃。

系统目前有一些自定义的上下文,将首先狩猎,然后振铃所有可用的扩展,我想知道谁和在哪里振铃和谈话。 我浏览了几乎所有可以find的AMI的电话,但是不知道从哪里得到这些信息。

Digium在其wiki上的所有AMI操作和AMI事件都有一些完整的文档。 我说“有点”,因为它列出了所有可用的操作和事件,以及如何使用它们,但是当涉及到您应该期望看到的输出时,其中的一些有点稀疏。

您可能会发现有用的操作:

  • Command – 允许您从AMI运行任意CLI命令,如果没有专用的AMI操作来获取CLI上的信息
  • CoreShowChannels – 相当于CLI core show channels ,显示频道名称和关联的来电显示信息
  • ExtensionState – 获取扩展的当前状态,如果您定义了扩展提示,则可能是最有用的
  • Getvar – 获取通道variables的值
  • 状态 – 显示一个通道的当前状态信息,包括通道variables(然后可以用Getvar查询)

您可能会觉得有用的事件:

  • ExtensionStatus – 当扩展状态改变时产生
  • Newchannel (新通道) – 创build新通道时引发(例如新来电)
  • 新状态 – 当一个频道的状态发生变化时(例如现有的电话转移,现在正在响铃)

在这些行动中,我认为“ 状态”将是最有用的,而“新频道”和“ 事件”事件会告诉你频道何时响起或得到回答。