在 FreePbx 上未从 Asternet.Ari 获取任何事件

Not getting Any Events From Asternet.Ari On FreePbx

我已经设置了 FreePbx,它正在运行,我可以在 pbx 中进行呼叫,也可以从 pbx 中进行呼叫。我启用了 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);
    }

A​​ctionClient 已连接。 然后我拨通分机但没有任何反应。我没有收到任何其他事件。调用任何扩展时是否应该触发事件?不确定我是否正确设置了 pbx。当我从软 phone 或从小区 phone.

上的局域网外部呼叫时,我没有收到任何呼叫事件

好吧,您的 Asterisk Ari 正在连接,但要在其中获取任何内容,您必须创建扩展,以便您的呼叫转到 Stasis 应用程序。

请使用以下信息编辑您的 extensions.conf 文件

exten => _1XX,1,NoOp()
same => n,Stasis(HelloWorld,PJSIP/${EXTEN}, 45)
same => n,Hangup()

此脚本首先检查任何以 1 开头的传入号码将被转发到您的 ARI 脚本。 HelloWorld 是应用程序的名称,因此您已经将其包含在脚本中。现在任何来电都会在您的套接字上显示全部信息。现在您必须处理此信息以执行任何特定任务。 \

很久过去了,但也许有用。 只需将 subscribeAllEvents 参数设置为 true。

        ActionClient = new AriClient(
            new StasisEndpoint("voip", 8088, "root", "password"),
            "HelloWorld",
            true);