Stu*_*919 7 javascript jquery asterisk express
我目前正在为星号开发一个静音功能,我可以使用星号ARI从我的网络前端运行.
但每次我尝试运行/调用静音函数时,它会给我以下错误:
Error: {
"message": "Channel not in Stasis application"
}
Run Code Online (Sandbox Code Playgroud)
但据我所知,我将通道数据直接传递给这个功能,但无济于事.
任何一个建议或用于与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");
}
});
Run Code Online (Sandbox Code Playgroud)
服务器端
将从客户端接收的数据存储到var中,然后调用stasis函数.
io.sockets.on('connection', function (socket) {
updateSip();
socket.on('muting', function (data) {
mute(data);
console.log("Reached listener for muting")
});
});
Run Code Online (Sandbox Code Playgroud)
瘀滞功能
使用ARI客户端命令将您刚刚从客户端传递到服务器端的通道静音,用户将被静音并将显示在stasis应用程序中.
function mute(mutval) {
console.log("Muting:" + mutval);
client.channels.mute
({
channelId : mutval
},
function (err) {
if (err) {
throw err;
}
});
}
Run Code Online (Sandbox Code Playgroud)
该频道在应用程序中并被传递给静音功能,因此我不确定其当前是否正常工作.
编辑:我有一个挂起/踢功能以相同的方式处理,它工作正常.以下是我的所有调试.
我也试过通过socket.io运行它,没有它,结果是一样的,我有其他功能,他们都工作得很好,它只是静音功能.
结果它不会运行,因为它需要通道 ID 而不是通道名称,但函数会使用通道名称运行。
它与 Asterisk ARI 不一致,因为它应该与通道名称一起使用,而不仅仅是通道 ID,就像其他功能(例如挂断和发起功能)一样。
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |