0

Gitの問題を読んだ後、sipjs 0.7xからsipjs 0.11に移行しています https://github.com/onsip/SIP.js/pull/426#issuecomment-312065734 および https://sipjs.com/api/0.8.0 /sessionDescriptionHandler/

氷のオプション (coturn、turn、stun) がユーザー エージェントになくなっていることがわかりましたが、問題は、setDescription(sessionDescription, options, modifiers) をどこで使用すればよいかよくわからないことです。

options.peerConnectionOptions.rtcConfiguration.iceServers を使用して、氷がオプションに設定されていることを確認しました。

以下は私が試したものです

session.on('trackAdded', function () {
            // We need to check the peer connection to determine which track was added
            var modifierArray = [
                SIP.WebRTC.Modifiers.stripTcpCandidates,
                SIP.WebRTC.Modifiers.stripG722,
                SIP.WebRTC.Modifiers.stripTelephoneEvent
                ];
            var options = {
            peerConnectionOptions:{
                rtcConfiguration:{
                    iceServers : {
                                [{urls: 'turn:35.227.67.199:3478',
                                username: 'leon',
                                credential: 'leon_pass'}]
                    }
                }
            }
        }
            session.setDescription('trackAdded', options,modifierArray);

            var pc = session.sessionDescriptionHandler.peerConnection;

            // Gets remote tracks
            var remoteStream = new MediaStream();
            pc.getReceivers().forEach(function (receiver) {
                remoteStream.addTrack(receiver.track);
            });
            remoteAudio.srcObject = remoteStream;
            remoteAudio.play();

            // Gets local tracks
            // var localStream = new MediaStream();
            // pc.getSenders().forEach(function(sender) {
            //     localStream.addTrack(sender.track);
            // });
            // localVideo.srcObject = localStream;
            // localVideo.play();
        });
    }

これを試してみましたが、トラフィックが coturn サーバーに送られていないようです。Trickle Ice " https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ " をテストに使用しましたが、問題はありませんが、coturn サーバーを通過するトラフィックがないことがわかりました。これを使用することもできますが、気にしません。

setDescription(sessionDescription, options, modifiers) の使用方法を示すデモは、公式 Web サイトにもありません。この場合、私はいくつかの推奨事項を尋ねることができますか?

4

1 に答える 1

1

新しい UserAgent に渡されるパラメーターで STUN/TURN サーバーを構成します。これはサンプルです。v0.17.1 で動作しているようです:

const userAgentOptions = {
  ...
  sessionDescriptionHandlerFactoryOptions: {
    peerConnectionConfiguration: {
      iceServers: [{
        urls: "stun:stun.l.google.com:19302"
      }, {
        urls: "turn:TURN_SERVER_HOST:PORT",
        username: "USERNAME",
        credential: "PASSWORD"
      }]
    },
  },
  ...
};
const userAgent = new SIP.UserAgent(userAgentOptions);

SimpleUser を使用する場合 - SimpleUserOptions 内に渡します。

const simpleUser = new Web.SimpleUser(url, { userAgentOptions })
于 2020-12-21T21:37:36.337 に答える