Использование .NET сборки

Материал из Oktell
Перейти к: навигация, поиск
Наверх Использования native win32 библиотеки<<< Использование .NET сборки

Основной .NET библиотекой является сборка oktell.VideoCallLib.dll.


Зависимыми библиотеками также являются oktell.HAL.dll и SipClientLib.dll.

Для работы используется .NET-класс oktell.HAL.Video.VideoCall, реализованный в библиотеке oktell.VideoCallLib.dll.


Работа с .NET вариантом реализации библиотеки подразумевает использование ее в .NET проектах. Сборка расширяет возможности native win32 библиотеки SipClientLib.dll, описанной в разделе Native Win32 за счет внедрения работы с видео-камерами.

Вся работа с видео-камерами осуществляется в .NET коде. Сборка использует библиотеку SipClientLib.dll.

Сборка может предоставляться в реализации под FrameWork версий 1.1 и 2.0.


Методы

  • void Init ( System.Windows.Forms.Control videoIn, System.Windows.Forms.Control videoOut ). Инициализирует объект oktellVideoCall. В качестве параметров передаются контролы (.NET) для отображения видео-изображений, получаемых с камеры и с сервера.

VideoIn - контрол для вывода собственного видео, VideoOut - контрол для вывода приходящего видео.

Метод должен быть вызван один раз перед звонком. Звонков можно осуществлять произвольное количество. После использования необходимо выполнить метод Dispose для уничтожения объекта и освобождения ресурсов. В ходе одной сессии работы можно выполнять метод Init несколько раз, если его вызовы каждый раз будут сопровождаться вызовами метода Dispose.

  • bool Call ( string userData ). Инициирует вызов абонента. Вызов осуществляется по адресам с использованием предварительно установленных свойств (подробнее ниже в подразделе «Свойства»). В качестве параметра передается любое пользовательское строковое значение, которое при поступлении вызова на сервер становится доступным в сценарии IVR в качестве функции «XML-INFO абонента». Параметр может быть использован для передачи контекстной информации в целях маршрутизации вызова на сервере или заполнения БД или диалоговых форм оператора. Непустое значение параметра заменяет значение свойства UserInfo.

Метод выполняется синхронно с приостановкой вызвавшего потока до момента полного запуска процедуры инициации исходящего вызова. Возвращает управление после отправки INVITE-инструкции на сервер, но еще до момента установки голосовой связи. Возвращаемое значение определяет результат выполнения метода: TRUE - вызов успешно начат, FALSE - вызов не инициирован из-за возникших проблем (не заданы настройки, заблокированы порты, не обнаружен сетевой интерфейс и т.д.).

В зависимости от значения свойства VideoIsSet осуществляется голосовой или видео-звонок.

  • void StopCall ( ). Завершает текущий активный разговор или вызов абонента. Выполняется синхронно с приостановкой вызвавшего потока.
  • void Dispose (). Уничтожает объект после использования и освобождает ресурсы. После выполнения метода Dispose для осуществления исходящих звонков необходимо вновь выполнить метод Init.
  • int SendDataStart ( string path ). Начинает отправку файла на сервер. Метод может быть вызван только при активной сессии голосовой связи с сервером. Одновременно могут отправляться множество файлов. Размер буфера чтения для отправки в одной итерации устанавливается свойством UploadBufferSize.

Параметр указывает путь к файлу на диске. Возвращает номер сессии передачи файла для обеспечения возможности ее прекращения в случае отмены по инициативе стороннего ПО. В случае необнаружения файла, отказа в доступе к нему, отсутствии голосовой сессии и прочих неудачах, при которых невозможно отправить на сервер по установленному TCP-каналу первую часть указанного файла, возвращается 0.

Метод выполняется асинхронно.

  • void SendDataAbort ( int Number ). Прекращает передачу файла, если она активна. Параметр указывает номер сессии передачи файла, определенный при запуске соответствующей сессии методом SendDataStart.
  • string[] GetVideoInputDevices (). Возвращает список подключенных к терминалу и обнаруженных веб-камер. Метод имеет смысл использовать только в случае, если настраивается отправка видео-потока с веб-камеры.


События

  • event void OnCallStart ( ). Генерируется при установлении голосовой сессии с сервером. Метод Call возвращает управление после отправки INVITE-инструкции, событие генерируется после ответа CONNECTED. В случае корректных настроек сервера, указания его адреса и полной дееспособности обеих сторон, сервер практически мгновенно выдает этот ответ, поскольку вызов принимается главным сценарием и не зависит от человеческого фактора.
  • event void OnCallStop ( ). Генерируется при завершении текущей коммутации или прекращенной сессии исходящего вызова.
  • event void OnError ( int errcode, int errtext ). Генерируется при ошибке, возникающей в ходе исходящей сессии вызова.

Возможные коды и описания ошибок соответствуют ошибкам стандартного HTTP-протокола (400 - bad request, 403 - forbidden, 404 - not found, 503 - service not available, и т.д.).

  • event void OnSendDataStart ( int num ). Генерируется после первой удачной отправки части файла в сеть в ходе текущей голосовой сессии с сервером.
  • event void OnSendDataFinish ( int num ). Генерируется при успешном завершении передачи файла.
  • event void OnSendDataProcess ( int num, int percent ). Генерируется периодически в ходе сессии передачи файла для указания процента выполнения операции относительно размера файла.
  • event void OnSendDataAbort ( int num ). Генерируется при разрыве передачи файла по инициативе стороннего ПО или сервера.


Свойства

  • bool UseSeparateHAL { get; set; }. Устанавливает/возвращает режим использования модуля в отдельном процессе. Каждый Init() приводит к загрузке процесса, каждый Dispose() к выгрузке. В текущем процессе остается механизм взаимодействия с камерами, а вся остальная деятельность Win32 библиотеки переносится в другой процесс. По умолчанию свойство не установлено, однако грузит в отдельный процесс. На результат влияют также числовые ключи реестра SeparateHAL и GeneralSeparateHAL (ветка USER\software\oktell\VideoCallLib\). При наличии первого устанавливается начальное значение, которое может быть изменено путем установки данного свойства в 0 или 1, а также установкой второго ключа. Второй ключ имеет приоритет по сравнению с установкой данного свойства. Может применяться на уже работающих системах, где в код ПО зашито использование того или иного значения.
  • ECameraType CameraType { get; set; }. Устанавливает/возвращает тип устройства для захвата исходящего видео-потока.
  • None = 0 - исходящее видео игнорируется
  • IPCam = 1 - исходящее видео с IP-камеры, должны быть заданы Ip-адрес, логин и пароль для подключения к устройству.
  • WebCam = 2 - исходящее видео с Web-камеры.
  • string VideoDeviceName { get; set; }. Устанавливает/возвращает название текущей выбранной веб-камеры (название устройства в системе). При подключении нескольких веб-камер может случиться, что их имена в операционной системе будут совпадать. В этом случае будет выбрана первая камера с указанным названием. В случае, если установленное имя не обнаружено среди реально подключенных устройств, будет взято первое доступное. Свойство имеет смысл задать только в случае, если настроено получение видео-потока с веб-камеры.
  • string CameraIp { get; set; }. Устанавливает/возвращает IP-адрес IP-камеры, с которой необходимо получать видео поток для отправки в качестве собственного изображения. Например «192.168.0.90». Изображение будет отображаться также на окне videoOut, которое было указано в качестве параметра метода Init. Свойство необходимо задать только в случае, если настроено получение видео-потока с IP-камеры.
  • string CameraUserName { get; set; }. Устанавливает/возвращает логин для базовой авторизации при запросе видео-потока с IP-камеры. Например «root». Свойство необходимо задать только в случае, если настроено получение видео-потока с IP-камеры.
  • string CameraPassword { get; set; }. Устанавливает/возвращает пароль для базовой авторизации при запросе видео-потока с IP-камеры. Например «pass». Свойство необходимо задать используется только в случае, если настроено получение видео-потока с IP-камеры.
  • bool UseDirectX { get; set; }. Устанавливает/возвращает режим использования DirectAudio для взаимодействия со звуковой подсистемой. По умолчанию FALSE - использовать WaveOut и WaveIn. Значение TRUE инициирует DirectAudio. По умолчанию DirectX устанавливается в TRUE. На применение влияют также ключи реестра DirectX и GeneralDirectX (ветка USER\software\oktell\VideoCallLib\). Первый изменяет значение по умолчанию, второй принудительно выставляет значение, которое применяется вне зависимости от установки данного свойства. Значения 0 или 1. При отсутствии ключей используется значение, выставленное данным свойством, или значение по умолчанию.
  • string SpkDevice { get; set; }. Устанавливает/возвращает устройство для вывода звука (динамик) в ходе голосовой сессии с сервером. Указывается строковое название устройства в ОС, например «Logitech USB Headset». В случае, если значение не указано, вывод звука осуществляется в стандартное звуковое устройство.
  • string MicDevice { get; set; }. Устанавливает/возвращает устройство для ввода звука (микрофон) в ходе голосовой сессии с сервером. Указывается строковое название устройства в ОС, например «Logitech USB Headset». В случае, если значение не указано, вывод звука осуществляется в стандартное звуковое устройство.
  • string ServerName { get; set; }. Устанавливает/возвращает DNS-имя хоста или IP-адрес сервера, к которому необходимо осуществлять подключение. Может быть указано доменное имя сервера в интернет.
  • string ServerAddress { get; set; }. Устанавливает/возвращает адрес сервера, куда необходимо отправлять пакеты инициализации SIP-сессии связи с сервером. Фактически это адрес SIP-PROXY.
  • string UserId { get; set; }. Устанавливает/возвращает идентификатор абонента (userid) - составная часть sip-адреса user@domain, определяемого сервером как CallerId. Может содержать латинские буквы, цифры, точки и прочие символы, которые могут быть использованы в именах e-mail до символа «@».
  • string ServiceNumber { get; set; }. Устанавливает/возвращает номер, на который осуществлять вызов. В рамках обсуждаемого режима интеграции этот номер будет определен сервером и распознан как набираемый номер. В дополнение к нему на сервере может быть настроен анализ параметра «XML-INFO абонента», передающий произвольную пользовательскую информацию на сервер с терминала.
  • string UserInfo { get; set; }. Устанавливает/возвращает пользовательский параметр произвольного строкового вида, передаваемый на сервер еще до совершения вызова. Может быть подменена при вызове метода Call с непустым значением параметра. Строка UserInfo при осуществлении вызова не должна быть пустой. Сервер получает доступ к этой переданной информации через функцию «XML-INFO абонента» сценариев IVR.
  • int VideoCompression { get; set; }. Устанавливает/возвращает степень сжатия изображений кодеком (0-100). Значение «-1» не изменяет текущие установки самой камеры.
  • System.Drawing.Size Resolution { get; set; }. Устанавливает/возвращает разрешение видео-изображения, передаваемое с камеры терминала на сервер, например «new Size (176, 144)».
  • int VideoBufferSize { get; set; }. Устанавливает/возвращает размер буфера в байтах для считывания видео с камеры, например 2048. Значение «0» устанавливает размер буфера по умолчанию.
  • int UploadBufferSize { get; set; }. Устанавливает/возвращает размер буфера в байтах для итерации чтения файла и загрузки на сервер, например 65536. Значение «0» устанавливает размер буфера по умолчанию.


Наверх Использования native win32 библиотеки<<< Использование .NET сборки