1

我想拥有的数据:Num From、Num To、Duration、Codec、Context、Hold status

ofc 实时更新

我使用 node.js + nami

获取此信息的最佳方式是什么?

尝试使用动作状态(),但这给了我关于调用的不完整信息,如果我每隔一秒就运行一次浏览器死机。

这是我所拥有的:

updateCallList();
function updateCallList() {
    socket.emit('GET_ACTIVE_CALLS', function(calls) {
        $("#callsList").find("tr:gt(0)").remove();
        if (calls.response != 'Success') return;
        var calls = calls.events;
        for (call in calls) {
            if (calls[call].privilege == 'Call') {

            var callFrom     = calls[call].calleridnum + '<' + calls[call].calleridname + '>';
            var callTo       = calls[call].extension;
            var callDuration = calls[call].seconds;
            var callRoute    = calls[call].context;

            var tmpRow = '<tr>';
            tmpRow = tmpRow + '<td>' + callFrom     + '</td>';
            tmpRow = tmpRow + '<td>' + callTo       + '</td>';
            tmpRow = tmpRow + '<td>' + callDuration + '</td>';
            tmpRow = tmpRow + '<td>' + callRoute    + '</td>';
            tmpRow = tmpRow + '</tr>';

            $('#callsList tr:last').after(tmpRow);
        }
    }
    setInterval(function(){
        updateCallList();
    },1000);
});

}

服务器端

socket.on('GET_ACTIVE_CALLS', function (callback) {
    action = new namiLib.Actions.Status();
    nami.send(action, function (response) {
        callback(response);
    });
});
4

1 回答 1

1

您需要启动守护程序,它将收集 NewExten、Link、Unlink、Hangup 事件并创建频道列表。 http://www.voip-info.org/wiki/view/asterisk+manager+events

你也可以用“core show channels”“core show channel XXXXX”来做动作命令,但是如果你做了很多,星号会死。

http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Command

于 2013-05-09T23:26:12.693 回答