3

WeBRTCを使用して簡単な呼び出しアプリケーションを作成しました。接続が確立され、あるブラウザーから別のブラウザーに呼び出すことができるようになりました。

私がまだ理解できず、WebRTC標準で見つけることができないことの1つは...どうすればコールオファーを拒否できますか。

発信者からオファーが来たらフォローしようと思っていた

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 に答える