Verto - инициация вызова.

Теперь, когда мы имеем Verto клиент зарегистрированный на сервере FS, можно совершать аудио/видео вызовы.

Добавим поле ввода и кнопку отправки в html код:
<!--container-->
<div class="container">
  <h1>Verto - Demo Application</h1>
  <input type="text" id="number" name="number"/>
  <button id="make-call">Вызов</button>
</div> 
<!-- /container -->

Внутри функции bootstrap добавим обработчик нажатия кнопки «Вызов» с коллбэком функции makeCall:

function bootstrap(status) {
  // ...
  document.getElementById("make-call").addEventListener("click", makeCall);
};

Нам требуется сохранить события сессии, чтобы реагировать на них в процессе вызова. Для этого объявим новую переменную currentCall в основной функции:

var vertoHandle, vertoCallbacks, currentCall;

Создадим функцию makeCall для коллбэка повешенного на кнопку.

function makeCall() {
// Получим значение из поля ввода.
var numToDial = document.getElementById("number").value
  currentCall = vertoHandle.newCall({
    // Вызываемый номер.
    destination_number: numToDial,
    caller_id_name: 'T.Testov',
    caller_id_number: '6666',
    outgoingBandwidth: 'default',
    incomingBandwidth: 'default',
    // Вкл. стерео.
    useStereo: true,
    // Установите false для выкл. видео.
    useVideo: true,
    // Вы также можете назначить любую пользовательскую переменную. 
    // Она будет доступна в диалплане с префиксом 'verto_dvar_'.
    userVariables: {
      // Например, приведенная ниже переменная 'email' может быть вызвана в диалплане, как -'verto_dvar_email'.
      email: 'test@test.com'
    },
    // Использовать укзанный внешним источником кодек для видео.
    // ПРИМЕЧАНИЕ: Не рекомендуется..
    dedEnc: false,
    // Данные параметры переназначат указанные ранее в vertoHandler .
    //useMic: 'any',
    //useSpeak: 'any',
  });
};

Коллбэк onDialogState используется для отслеживания событий. События отправляются каждый раз при изменении состояния вызова.

// Состояния вызова получаемые от Freeswitch.
function onDialogState(dialog) {
  switch (dialog.state.name) {
    case "trying":
      break;
    case "answering":
      break;
    case "active":
      break;
    case "hangup":
      console.log("Причина завершения: " + dialog.cause);
      break;
    case "destroy":
      // Что-то по завершению вызова...
      break;
  }
  if(!currentCall){
      currentCall = dialog;
      }
}
 
vertoCallbacks = {
  onDialogState: onDialogState,
  // Other callbacks...
};

Теперь мы можем инициировать вызов. Далее рассмотрим, как его завершить: Verto: Ответ, отбой, удержание и перевод вызова.

А затем, как получить информацию о событиях других сущностей, таких как телеконференция - Subscribing to the live array.

Документация Freeswitch Verto: WebRTC софтфон

  • freeswitch/verto/004-making-a-call.txt
  • Последние изменения: 2019/08/22