如何拒绝WebRTC通话

时间:2013-02-16 20:10:11

标签: javascript html5 html5-video html5-audio webrtc

我使用WebRTC创建了一个简单的调用应用程序。 我建立了一个连接,我现在可以从一个浏览器调用另一个浏览器。

我仍然无法弄清楚并且在WebRTC标准中找不到的一件事是......我如何拒绝接听电话。

如果我收到来电者的报价,我正在考虑关注

if(msg.type == 'offer') {
    if(confirm(msg.sender+" is calling you ...")) {
        $.calling.calleePeer.setRemoteDescription(new RTCSessionDescription(msg));
        $.calling.calleePeer.addStream($.calling.localstream);
        $.calling.calleePeer.createAnswer($.calling.setLocalCalleeAndSendDescription, null, $.calling.mediaConstraints);

    } else {
        // TODO What to do here in order to reject the offer?
    }
}

现在当我接受这个提议时一切正常,但我怎么能让来电者知道我现在对这个电话没什么兴趣?我想标准中有一些解决方案。

谢谢

1 个答案:

答案 0 :(得分:0)

在WebRTC中,信令协议是您定义的任何内容,因此应用程序应向另一方发送命令,通知用户拒绝该提议。

执行此操作时,必须关闭双方的PeerConnection对象,浏览器将停止等待或尝试建立连接。

if(msg.type == 'offer') {
    if(confirm(msg.sender+" is calling you ...")) {
        $.calling.calleePeer.setRemoteDescription(new RTCSessionDescription(msg));
        $.calling.calleePeer.addStream($.calling.localstream);
        $.calling.calleePeer.createAnswer($.calling.setLocalCalleeAndSendDescription, null, $.calling.mediaConstraints);

    } else {
        $.calling.calleePeer.close();
        // Send a command to the other party (i.e. a response to the invitation) rejecting the offer.
    }
}

启动流程的客户端在收到拒绝时也应该这样做。

// I suppose you have something like this.
$.calling.callerPeer.close();