Asterisk

Asterisk AMI - 獲取詳細的擴展狀態

  • January 16, 2014

我正在使用來自 Python 的 AMI。我想同樣可以通過 Asterisk CLI 實現。我希望能夠獲得有關 PBX 中每個分機的詳細資訊。更具體地說,對於我想知道的每個擴展:

  • 如果分機正在通話中,該呼叫的唯一 ID 是什麼,主叫方 ID 是什麼,呼叫的電話號碼是什麼(來電)
  • 如果分機正在振鈴,則目前正在振鈴的是哪條呼入線路。

該系統目前有許多自定義上下文,它們將首先搜尋然後振鈴所有可用的分機,我想知道是誰在哪裡振鈴和說話。我瀏覽了幾乎所有能找到的 AMI 電話,但不知道從哪裡獲得這些資訊。

Digium在其 wiki 上為所有AMI 操作AMI 事件提供了一些完整的文件。我說“有點”是因為它列出了所有可用的操作和事件,以及如何使用它們,但是當涉及到您應該期望看到的輸出時,其中一些有點稀疏。

您可能會覺得有用的操作:

  • 命令- 允許您從 AMI 執行任意 CLI 命令,如果沒有專門的 AMI 操作來獲取 CLI 上的可用資訊,這很有用
  • CoreShowChannels - 相當於 CLI core show channels,顯示頻道名稱和相關的 caller-id 資訊
  • ExtensionState - 獲取擴展的目前狀態,如果您定義了擴展提示,可能最有用
  • Getvar - 獲取通道變數的值
  • 狀態- 顯示通道的目前狀態資訊,包括通道變數(然後您可以使用Getvar查詢)

您可能會發現有用的事件:

  • ExtensionStatus - 當擴展的狀態改變時引發
  • Newchannel - 創建新頻道時引發(例如新來電)
  • Newstate - 當通道的狀態改變時引發(例如現有呼叫轉移並且現在正在響鈴)

在這些操作中,我認為Status將是最有用的,NewchannelNewstate事件會告訴您頻道何時響鈴或得到應答。

引用自:https://serverfault.com/questions/567699