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クライアントを作成するサンプルコードです。
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);
}
}
}
}
