3

我使用 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?
    }
}

现在,当我接受报价时一切正常,但我如何让来电者知道我现在对电话不感兴趣?我想标准中有一些解决方案。

4

1 回答 1

2

在 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();
于 2013-02-18T11:12:05.290 回答