最近、PBX をアスタリスク 13 にアップグレードしました。これは、新しい REST API と WebSockets のサポートによって、AMI を介した呼び出しの追跡で発生していたいくつかの問題が解決されることを期待してのことです。
Windows ツール トレイに常駐し、ユーザーが電話をかけたり受けたりするたびに CRM にクエリを実行して、発信者 ID に基づいて情報を表示する C# アプリケーションを構築しています。
WS を介して、PBX で発生するすべての (または拡張機能固有の) イベントを報告する WS チャネルにサブスクライブできるかどうかを明確にすることはできますか?
これまでの進捗に関しては、Swagger を使用して ARI を調査しました。チャネル エンドポイントを介して返されるチャネル情報 (例: http://10.0.0.1:8088/ari/channels?api_key=admin:secret
) は完璧に見えます。
[
{
"id": "1466860766.240522",
"name": "PJSIP/905-00000c74",
"state": "Ring",
"caller": {
"name": "",
"number": "020xxx"
},
"connected": {
"name": "CID:020xxx",
"number": "07xxx"
},
"accountcode": "",
"dialplan": {
"context": "macro-dialout-trunk",
"exten": "s",
"priority": 22
},
"creationtime": "2016-06-25T14:19:26.040+0100",
"language": "en"
},
{
"id": "1466860766.240524",
"name": "SIP/siptrunk-000003fc",
"state": "Down",
"caller": {
"name": "CID:02033554047",
"number": "07xxx"
},
"connected": {
"name": "",
"number": "020xxx"
},
"accountcode": "",
"dialplan": {
"context": "ext-did",
"exten": "07xxx",
"priority": 1
},
"creationtime": "2016-06-25T14:19:26.264+0100",
"language": "en"
}
]
このチャネル情報は、必要なものすべてを簡潔で理解しやすい形式で提供します - PJSIP チャネル (つまり内線番号)、状態、発信トランク CID、およびダイヤルされる発信番号。
ただし、/events
私が見る限り、エンドポイントは、Asterisk 内で「アプリケーション」を作成することに依存しています (会議などのように収集できるものから?) - wscat を使用してさまざまなことを試し、ドキュメントを読むことの 2 日間にもかかわらず、私はできます。上記の JSON と同様に、すべてのイベントを返す WS チャネルにサブスクライブできる方法はありません。
Asterisk 13 での WS サポートの背後にある意図を誤解していますか? この目的のためのものではありませんか?ポーリングせずに私の目的を達成するためのより良い方法はあり/channels
ますか? ヘルプ/ポインタをいただければ幸いです。