ARI(Asterisk REST Interface)は、AsteriskのリアルタイムイベントをRESTfulな方法で操作するためのインターフェースです。WebSocketを介してリアルタイムイベントを受け取ることができます。
1)Asteriskの設定ファイルを編集
/etc/asterisk/ari.conf
ファイルを編集し、ARIのユーザーとパスワードを設定します。
[general]
enabled = yes
pretty = no
[myuser]
type = user
read_only = no
password = mypassword
2)WebSocketクライアントの作成
C#でWebSocketクライアントを作成し、ARIのイベントを受け取ることができます。
以下は、C#でWebSocketクライアントを作成するサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
using System; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { string uri = "ws://<AsteriskのIPアドレス>:8088/ari/events?api_key=myuser:mypassword"; using (ClientWebSocket client = new ClientWebSocket()) { await client.ConnectAsync(new Uri(uri), CancellationToken.None); byte[] buffer = new byte[1024]; while (client.State == WebSocketState.Open) { WebSocketReceiveResult result = await client.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); string response = Encoding.UTF8.GetString(buffer, 0, result.Count); Console.WriteLine(response); } } } } |