Работа с COM объектом Infinity

Коллеги, всем привет!
Вопрос следующий:
Имеем интеграцию с инфинити, необходимо получить время разговора оператора, которое хранится в свойстве ActiveX объекта ...Call.Duration.
При попытке вывести значение при помощи MessageBox() выводится значение продолжительности разговора в миллисекундах, однако typeof() этого свойства выдает unknown. Из этого возникает проблема в том, что я не могу записать данное значение ни в одно из полей датасета, т.к. jscript не понимает в каком формате данные и ругается на то что это "Не строка", "Не число" и т.д.
Методы toString(), Number(), естественно не работают, не понимая что за объект им следует обрабатывать.
Может можно как-то насильно указать тип этому объекту?
Или я что-то упустил?
Буду признателен, спасибо.

Нравится

3 комментария

Забыл указать что в COM Инфинити необходимое мне свойство имеет формат Time Span

Если сделать так тоже получаете unknown?

var MyCallDuration = ...Duration;
var Type = typeof MyCallDuration;

Если да, тогда боюсь никак.
Используйте обходные пути, а именно, при старте звонка (событие CommutationStarted) запускайте таймер, а при завершении (ChainExit либо RingFinished) останавливайте. Полученное время - и будет временем разговора. Так, кстати, в коробке и реализовано.

Да, unknown никак не обойти видимо :-)

Я уже другим костылем реализовал таймер разговора.
Спасибо.

Показать все комментарии