Объект Device/Методы/TransferCall: различия между версиями

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 3 промежуточные версии этого же участника)
Строка 5: Строка 5:
==Синтаксис==
==Синтаксис==
:<syntaxhighlight lang="c">
:<syntaxhighlight lang="c">
LONG TransferCall (BSTR Phone, LONG Timeout)
LONG TransferCall (VARIANT Target, LONG Timeout)
</syntaxhighlight>
</syntaxhighlight>
|style="width:10%;"|__TOC__
|style="width:10%;"|__TOC__
Строка 13: Строка 13:
:{|border="0" cellspacing="0"
:{|border="0" cellspacing="0"
|-  
|-  
|'''Phone'''
|'''Target'''
| - номер телефона (либо имя абонента, если таковое подразумевается устройством).
| - номер телефона (или имя абонента, если таковое подразумевается устройством). Как правило для SIP протокола это стандартный URI в виде: <номер телефона/абонента>@<имя/адрес sip шлюза>. Либо
устройство, с которым необходимо соединить текущее устройство.
|-
|-
|'''Timeout'''
|'''Timeout'''
Строка 65: Строка 66:
   Device.Say ("CallOffice");
   Device.Say ("CallOffice");
   Device.TransferCall (NumberPhoneTransfer);
   Device.TransferCall (NumberPhoneTransfer);
}
Device.HangUp ();
Device.Close ();
</syntaxhighlight>
:Пример на JavaScript (переключение на другое устройство)
<syntaxhighlight lang="javascript">
var Device = new ActiveXObject ("CallOffice.Device");
var NumberPhone = prompt ("Введите номер телефона",'');
var NumberPhoneTransfer = prompt ("Введите номер перенаправляемого телефона",'');
Device.Open ();
var Result = Device.Dial (NumberPhone, 40);
if (Result == 0){
  Device.Say ("CallOffice");
  var NewCall = new ActiveXObject ('CallOffice.Device');    // Создаём новое устройство
  NewCall.LogFile = 'NewCall.log';                          // Если необходимо, включаем формирование журнала
  NewCall.OpenCall (Device);                                // Создаём новый вызов на текущем устройства
  if (NewCall.Dial ('<номер телефона>@<адрес SIP сервера>', 40) == 0) {    // Набираем номер второго абонента и ждём ответа абонента 40 секунд, если второй абонент ответил
      NewCall.Say ('CallOffice.wav');                        // Произносим второму абоненту звуковое сообщение
      Device.TransferCall (NewCall);                          // Соединяем первого и второго абонента
  }
}
}
Device.HangUp ();
Device.HangUp ();

Текущая версия на 09:18, 31 октября 2018

Метод TransferCall выполняет перенаправление звонка на другой номер и, если указано, выполняет ожидание голосового ответа абонента.

Синтаксис

LONG TransferCall (VARIANT Target, LONG Timeout)

Параметры

Target - номер телефона (или имя абонента, если таковое подразумевается устройством). Как правило для SIP протокола это стандартный URI в виде: <номер телефона/абонента>@<имя/адрес sip шлюза>. Либо

устройство, с которым необходимо соединить текущее устройство.

Timeout - время ожидания ответа абонента. Необязательный параметр.
Если время ожидания указано, после набора номера выполняется ожидание голосового ответа абонента в течение указанного времени.

Результат

Название константы Значение Описание
DEVICE_S_OK 0 (0x00) переназначение завершено успешно/ответ абонента получен
DEVICE_S_FAILED 1 (0x01) ошибка переадресации звонка
DEVICE_S_INTERRUPTED 4 (0x04) ожидание ответа абонента прервано
DEVICE_S_TIMEOUT 5 (0x05) время ожидания ответа абонента истекло
DEVICE_S_BUSY 6 (0x06) номер занят

Описание

Метод осуществляет переключение звонка на другой номер или имя абонента. Если переназначение выполнено успешно и указано время ожидания ответа абонента, осуществляется распознавание голосового ответа абонента в течении указанного времени. Если время ожидания не указано, метод завершает работу сразу после переключения на указанный номер.

Примеры

Пример на JavaScript
var Device = new ActiveXObject ("CallOffice.Device");
var NumberPhone = prompt ("Введите номер телефона",'');
var NumberPhoneTransfer = prompt ("Введите номер перенаправляемого телефона",'');

Device.Open ();
var Result = Device.Dial (NumberPhone, 40);
if (Result == 0){
   Device.Say ("CallOffice");
   Device.TransferCall (NumberPhoneTransfer);
}
Device.HangUp ();
Device.Close ();
Пример на JavaScript (переключение на другое устройство)
var Device = new ActiveXObject ("CallOffice.Device");
var NumberPhone = prompt ("Введите номер телефона",'');
var NumberPhoneTransfer = prompt ("Введите номер перенаправляемого телефона",'');

Device.Open ();
var Result = Device.Dial (NumberPhone, 40);
if (Result == 0){

   Device.Say ("CallOffice");

   var NewCall = new ActiveXObject ('CallOffice.Device');     // Создаём новое устройство
 
   NewCall.LogFile = 'NewCall.log';                           // Если необходимо, включаем формирование журнала
   NewCall.OpenCall (Device);                                 // Создаём новый вызов на текущем устройства
 
   if (NewCall.Dial ('<номер телефона>@<адрес SIP сервера>', 40) == 0) {     // Набираем номер второго абонента и ждём ответа абонента 40 секунд, если второй абонент ответил
      NewCall.Say ('CallOffice.wav');                         // Произносим второму абоненту звуковое сообщение
      Device.TransferCall (NewCall);                          // Соединяем первого и второго абонента
   }
}
Device.HangUp ();
Device.Close ();
Пример на VBScript
Dim Device
Set Device = CreateObject ("CallOffice.Device")
NumberPhone = prompt ("Введите номер телефона","")
NumberPhoneTransfer = prompt ("Введите номер перенаправляемого телефона","")

Device.Open

Result = Device.Dial (NumberPhone, 40)

if Result = 0 then
   Device.Say "CallOffice"
   Device.TransferCall NumberPhoneTransfer
end if

Device.HangUp
Device.Close

Назад к методам объекта Device.