ARI JS客户端静音错误

时间:2015-10-19 09:32:35

标签: javascript jquery express asterisk

我目前正在为星号开发一个静音功能,我可以使用星号ARI从我的网络前端运行。

但每次我尝试运行/调用静音函数时,它都会出现以下错误:

Error: {
  "message": "Channel not in Stasis application"
}

但是,据我所知,我将通道数据直接传递给这个功能,但无济于事。

是否有任何建议或曾经与ARI JS客户合作?

客户端

单击静音按钮时,将td中的数据发送到服务器端。

   $(document).on('click', '.mute', function () {
        var mute = $(this).closest('td').siblings(':first-child').text();
        socket.emit('muting', mute);
        if ($(this).hasClass('mute')) {
            $(this).removeClass('mute').addClass('unmute').find('span').text('Unmute');
        } else {
            console.log("Error");
        }
    });

服务器端

将从客户端接收的数据存储到var中,然后调用stasis函数。

    io.sockets.on('connection', function (socket) {
    updateSip();
    socket.on('muting', function (data) {
        mute(data);
        console.log("Reached listener for muting")
    });
});

停滞功能

使用ARI客户端命令将您刚刚从客户端传递到服务器端的频道静音,用户将被静音并显示在stasis应用程序中。

function mute(mutval) {
    console.log("Muting:" + mutval);
    client.channels.mute
    ({
        channelId : mutval
    },
        function (err) {
        if (err) {
            throw err;
        }
    });

}

频道在应用程序中并被传递给静音功能,因此我不确定其当前是否正常工作。

编辑:我有一个挂机/踢功能以相同的方式处理,它工作正常。以下是我的所有调试。

频道转储 jsfiddle demo

免费PBX日志 Channel Dump Asterisk CLI Debug Level 5 enter image description here

Socket.io错误 enter image description here

我也试过通过socket.io运行它,没有它,结果是一样的,我有其他功能,它们都工作正常,它只是静音功能。

1 个答案:

答案 0 :(得分:2)

原来它不会运行,因为它需要通道ID而不是通道名称,但函数将使用通道名称运行。

它与Asterisk ARI不一致,因为它应该与频道名称一起使用,而不像其他函数那样使用频道ID,例如挂断和发起函数。