Как добавить обратный вызов сеанса в событие нажатия кнопки в Connectycube? - PullRequest
0 голосов
/ 11 марта 2020

Я использую видеозвонок в connectycube . Мне нужно захватить удаленный сеанс с помощью следующего метода. Это значит принимать входящий звонок. До сих пор это работает хорошо, и я принимаю вызов. Но этот поток не добавляет никаких кнопок подтверждения для вызываемого абонента, из-за чего у меня возникает проблема.

// confirmation about call accepted
ConnectyCube.videochat.onAcceptCallListener = function(session, userId, extension) {
console.log('call accepted');
};

ConnectyCube.videochat.onCallListener = (session, extension) => {
console.log('session assigned');
// assign remote session to local sesion
this._session = session;

$('#modalIncomingCall').modal('show');

console.log('print out this._session');
console.log(this._session);
// accept this._session
const mediaParams = {
  audio: true,
  video: true,
  elementId: 'localStream' // ID of audio/video DOM element to attach a video stream to
};

//**** start: this needs to be executed inside a button click event
var extension = {};
this._session.getUserMedia(mediaParams).then(stream => {
    this._session.accept(extension);

});
//***** stop: this needs to be executed inside a button click event
};

Я попытался добавить сюда функцию jquery click, но это приводит к неопределенности сеанса, как в следующем фрагменте нерабочего кода ниже, и здесь возникает вопрос: как мне обернуть ниже указанных строк кода (с начала *** и остановки ***) внутри события щелчка, так что this._session не становится неопределенным?

ConnectyCube.videochat.onCallListener = (session, extension) => {
console.log('session assigned');
// assign remote session to local sesion
this._session = session;

$('#modalIncomingCall').modal('show');

console.log('print out this._session');
console.log(this._session);
// accept this._session
const mediaParams = {
  audio: true,
  video: true,
  elementId: 'localStream' // ID of audio/video DOM element to attach a video stream to
};


// inside this click function this._session is undefined
$('#acceptCallButton').click(function() {
  // hide modal
  $('#modalIncomingCall').modal('hide');
  console.log('acceptcallbutton clicked');

  var extension = {};
  // this._session throws undefined error
  this._session.getUserMedia(mediaParams).then(stream => {
      this._session.accept(extension);
  });
});

};
...