Объект Device/Методы/TransferCall

From Call Office Wiki
Jump to navigation Jump to search
Метод 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.