Не получаю никаких событий от Asternet.Ari на FreePbx
Я установил FreePbx, и он работает, я могу звонить в АТС и из АТС. Я включил REST API и добавил пользователя и пароль. Я клонировал Asternet.Ari https://github.com/skrusty/AsterNET.ARI.
Программа запускается, и я получаю связанное событие:
// Create a new Ari Connection
ActionClient = new AriClient(
new StasisEndpoint("192.168.1.14", 8088, "userId", "password"),
"HelloWorld");
// Hook into required events
ActionClient.OnStasisStartEvent += c_OnStasisStartEvent;
ActionClient.OnChannelDtmfReceivedEvent += ActionClientOnChannelDtmfReceivedEvent;
ActionClient.OnConnectionStateChanged += ActionClientOnConnectionStateChanged;
ActionClient.OnChannelCallerIdEvent += ActionClient_OnChannelCallerIdEvent;
ActionClient.Connect();
........
private static void ActionClientOnConnectionStateChanged(object sender)
{
Console.WriteLine("Connection state is now {0}", ActionClient.Connected);
}
ActionClient подключен. Затем я звоню на добавочный номер, но ничего не происходит. Я не получаю никаких других событий. Должно ли событие вызываться при вызове какого-либо расширения? Не уверен, правильно ли я установил АТС. Я не получаю никаких звонков, когда я звоню с мобильного телефона или снаружи Lan на сотовый телефон.
1 ответ
Прошло много времени, но, может быть, еще полезно. Просто установите для аргумента subscribeAllEvents значение true.
ActionClient = new AriClient(
new StasisEndpoint("voip", 8088, "root", "password"),
"HelloWorld",
true);
Хорошо, ваш Asterisk Ari подключается, но чтобы получить что-то в нем, вы должны создать Extension, чтобы ваш вызов перешел в приложение Stasis.
Пожалуйста, отредактируйте файл extensions.conf, указав следующую информацию
exten => _1XX,1,NoOp()
same => n,Stasis(HelloWorld,PJSIP/${EXTEN}, 45)
same => n,Hangup()
Этот скрипт сначала проверяет любой входящий номер, который начинается с 1, будет передан вашему скрипту ARI. HelloWorld - это имя приложения, поэтому оно уже есть в вашем скрипте. Теперь при поступлении любого звонка будет отображаться вся информация о вашем сокете. Теперь вы должны обработать эту информацию для любой конкретной задачи. \