全文参考SIP.JS官方文档https://sipjs.com/;
以及一个博主( 月下家宴)的博客
https://blog.csdn.net/Java_lilin/article/details/88417686
代码很简单,大部分拷贝博主( 月下家宴)的博客的代码,他的代码就算一个Demo了。
讲一下我的思路
1、首先安装好Sip.js,让我们可以使用它。
2、然后我们就可以创建一个账号一样的userAgent ,作为拨打端
var userAgent = new UA(config);
config即代表你的具体账号名,可以用freeswitch的账号,我用的是SIP.JS自带服务器OnSip注册的账号。
3、作为邀请人拨打视频即
userAgent.invite(‘bob@example.com’);
4、被邀请到的人接到邀请后怎么反应呢:
userAgent.on(‘invite’,function (session) => session.accept());
function (session)里面写具体判断;
并在里面加入判断视频流,让两个实现双方互相视频
注意:实现两个vedio都有播放要用accept而不是trackAdded,不然localStream或者remoteStream的active一直为false
xsipsession.on('accepted', function() {
var pc = session.sessionDescriptionHandler.peerConnection;
console.log(pc);
// Gets remote tracks
var remoteStream = new MediaStream();
pc.getReceivers().forEach(function(receiver) {
remoteStream.addTrack(receiver.track);
});
console.log('remoteStream:',remoteStream);
remoteVideo.srcObject = remoteStream;
remoteVideo.play();
if(pc.getSenders() ){
var localStream = new MediaStream();
pc.getSenders().forEach(function(sender) {
localStream.addTrack(sender.track);
});
console.log('localStream',localStream);
document.getElementById('localVideo').srcObject = localStream;
document.getElementById('localVideo').play();
}
5、最后是挂断:
sipsession.terminate();
sipsession是接电话那一端的session而不是打电话这端的!!!