Не получаю никаких событий от 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 - это имя приложения, поэтому оно уже есть в вашем скрипте. Теперь при поступлении любого звонка будет отображаться вся информация о вашем сокете. Теперь вы должны обработать эту информацию для любой конкретной задачи. \

Другие вопросы по тегам