COM-объект Device, метод TransferCall
Добавлено: 31 июл 2018, 11:20
Здравствуйте,
Где-то уже год используем COM-объект Device и осуществляем вызов этого объекта из 1С.
Недавно встала задача осуществить перенаправление разговора. Судя по документации для этого предназначен метод TransferCall.
Пример кода:
Устройство = Новый COMОбъект("CallOffice.Device");
Устройство.Open("SIP\SIP");
Устройство.SetCallerID(Параметры.ТелефонияИсходящийНомер);
Устройство.LogOn(Параметры.ТелефонияЛогин,Параметры.ТелефонияПароль,Параметры.ТелефонияСервер);
...
Устройство.Echo=Телефон.Параметры.ТелефонияЭхо;
Устройство.AsynchronousMode=0;
Результат=Устройство.Dial(Номер+"@"+Телефон.Параметры.ТелефонияСервер, Телефон.Параметры.ТелефонияВремяОжидания);
До этой точки код отрабатывает нормально, абонент берет трубку и отвечает. Далее делаем перенаправление, пробовали оба варианта:
Номер1="89219346268"; //мой номер
Устройство.TransferCall(Номер1); //вариант 2: Устройство.TransferCall(Номер1+"@"+Телефон.Параметры.ТелефонияСервер);
Отладчик показывает, что есть вход в метод TransferCall, далее отладчик ожидает выхода из TransferCall, но его нет. Связь не прерывается, разговор продолжается, перенаправления не происходит. Метод заканчивает работу, если абонент прервал связь.
Ожидалось, что произойдет перенаправление и немедленный выход из метода TransferCall, т. к. не указан таймаут.
Вопрос: что мы делаем не так?
Спасибо.
Где-то уже год используем COM-объект Device и осуществляем вызов этого объекта из 1С.
Недавно встала задача осуществить перенаправление разговора. Судя по документации для этого предназначен метод TransferCall.
Пример кода:
Устройство = Новый COMОбъект("CallOffice.Device");
Устройство.Open("SIP\SIP");
Устройство.SetCallerID(Параметры.ТелефонияИсходящийНомер);
Устройство.LogOn(Параметры.ТелефонияЛогин,Параметры.ТелефонияПароль,Параметры.ТелефонияСервер);
...
Устройство.Echo=Телефон.Параметры.ТелефонияЭхо;
Устройство.AsynchronousMode=0;
Результат=Устройство.Dial(Номер+"@"+Телефон.Параметры.ТелефонияСервер, Телефон.Параметры.ТелефонияВремяОжидания);
До этой точки код отрабатывает нормально, абонент берет трубку и отвечает. Далее делаем перенаправление, пробовали оба варианта:
Номер1="89219346268"; //мой номер
Устройство.TransferCall(Номер1); //вариант 2: Устройство.TransferCall(Номер1+"@"+Телефон.Параметры.ТелефонияСервер);
Отладчик показывает, что есть вход в метод TransferCall, далее отладчик ожидает выхода из TransferCall, но его нет. Связь не прерывается, разговор продолжается, перенаправления не происходит. Метод заканчивает работу, если абонент прервал связь.
Ожидалось, что произойдет перенаправление и немедленный выход из метода TransferCall, т. к. не указан таймаут.
Вопрос: что мы делаем не так?
Спасибо.