Использования native win32 библиотеки — различия между версиями
Строка 4: | Строка 4: | ||
− | + | ==Перечисления== | |
− | * | + | Возможные состояния телефона (транка): |
+ | |||
+ | <span style="color:blue">enum</span> SIP_STATE | ||
+ | { | ||
+ | SIP_STATE_IDLE = 0, <span style="color:darkviolet">// телефон </span> | ||
+ | SIP_STATE_CONNECTING = 1, <span style="color:darkviolet">// соединение по tcp </span> | ||
+ | SIP_STATE_CONNECTED = 2, <span style="color:darkviolet">// соединение по tcp установленно </span> | ||
+ | SIP_STATE_CALLING = 3, <span style="color:darkviolet">// телефон начал вызов по сип </span> | ||
+ | SIP_STATE_INCALL = 4, <span style="color:darkviolet">// телефон в разговоре </span> | ||
+ | SIP_STATE_DISCONNECTING = 5, <span style="color:darkviolet">// разрыв соединения </span> | ||
+ | }; | ||
+ | |||
+ | |||
+ | Поддерживаемые аудио кодеки: | ||
+ | |||
+ | <span style="color:blue">enum</span> SIP_CODEC | ||
+ | { | ||
+ | SIP_CODEC_G711A = 0, | ||
+ | SIP_CODEC_G711U = 1, | ||
+ | SIP_CODEC_GSM = 2, | ||
+ | SIP_CODEC_G729 = 3, | ||
+ | }; | ||
+ | |||
+ | |||
+ | ==События (callback-методы)== | ||
+ | |||
+ | '''С++:''' | ||
+ | |||
+ | :<span style="color:blue">typedef DWORD</span> (<span style="color:blue">__stdcall</span> *PFN_SIPCLIENT_EVENTS)(SIP_CALLBACK event, <span style="color:blue">DWORD</span> dwParam, <span style="color:blue">LPCWSTR</span> wzParam); | ||
+ | |||
+ | |||
+ | Возможные типы событий | ||
+ | |||
+ | <span style="color:blue">enum</span> SIP_CALLBACK | ||
+ | { | ||
+ | SIP_CALL_CONNECTED = 0, <span style="color:darkviolet">// вызов принят : dwparam - 0, szparam - текстовое описание </span> | ||
+ | SIP_CALL_REJECTED = 1, <span style="color:darkviolet">// вызов отвергнут : dwparam - код ошибки (SIP), szparam - текстовое описание</span> | ||
+ | SIP_CALL_FINISHED = 2, <span style="color:darkviolet">// вызов завершен : dwparam - инициатор разрыва (1 - localEnd, 0 - remoteEnd),zparam - текстовое описание </span> | ||
+ | |||
+ | SIP_DATA_SENT = 3, <span style="color:darkviolet">// файл отправлен : dwparam - handle потока </span> | ||
+ | SIP_DATA_ERROR = 4, <span style="color:darkviolet">// ошибка отправки файла: dwparam - handle потока, szparam - текстовое описание </span> | ||
+ | SIP_DATA_INCOME = 5, <span style="color:darkviolet">// принят запрос на прием файла, параметры: dwParam - handle для потока, wzparam - описание потока. </span> | ||
+ | SIP_DATA_RECEIVED = 6, <span style="color:darkviolet">// данные приняты : dwparam - handle потока </span> | ||
+ | |||
+ | SIP_ERROR = 7, <span style="color:darkviolet">// ошибка соединения : dwparam - код ошибки (SIP), szparam - текстовое описание </span> | ||
+ | SIP_STATE_CHANGED = 8, <span style="color:darkviolet">// изменено состояние телефона : dwParam - новое состояние </span> | ||
+ | SIP_VIDEO_FRAME_READY = 9, <span style="color:darkviolet">// получен следующий видео-кадр : dwparam - HBITMAP нового кадра </span> | ||
+ | SIP_VIDEO_STARTED = 10, <span style="color:darkviolet">// видео связь установленна </span> | ||
+ | SIP_VIDEO_PAUSED = 11, <span style="color:darkviolet">// входящий видео поток в паузе/остановлен </span> | ||
+ | }; | ||
+ | |||
+ | |||
+ | ==Методы== | ||
+ | |||
+ | <u>Инициализация и уничтожение</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> InitSipClientLib ( PFN_SIPCLIENT_EVENTS );''' Инициализация библиотеки. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">void __stdcall</span> FreeSipClientLib ( );''' Очистка, освобождение ресурсов и завершение работы библиотеки. | ||
+ | |||
+ | |||
+ | <u>Осуществление вызовов</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> Call ( <span style="color:blue">LPCWSTR</span> szMessage );''' Запрос исходящего вызова на соединение с сервером и создания голосовой сессии (соединение по TCP каналу с сервером, передача szUserInfo, при получении положительного ответа совершается звонок на сервер и голосовое соединение с главным сценарием). | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">void __stdcall</span> Hungup ( );''' Завершает активное соединение. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> SentDTMF ( <span style="color:blue">CHAR</span> chDTMF );''' Отправляет DTMF сигнал на сервер в ходе активной голосовой сессии. | ||
+ | |||
+ | |||
+ | <u>Передача файлов</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">HANDLE __stdcall</span> StartSending ( <span style="color:blue">LPCWSTR</span> szTag, <span style="color:blue">BYTE</span>* pData, <span style="color:blue">int</span> size, <span style="color:blue">BOOL</span> bEOF, <span style="color:blue">int</span>* pSent );''' Инициирует отправку файла на сервер в ходе активной сессии связи. Если файл достаточно больших размеров, то запрашивает для первого блока файла с последующим вызовом метода '''SendBlock''' для отправки других частей файла или '''AbortSending''' для прекращения отправки. | ||
+ | |||
+ | Параметры: | ||
+ | :<span style="color:green">szTag</span> - строка с XML-содержимым, описывающим передаваемый файл. (<fileinfo><key=filesize, | ||
+ | :<span style="color:green">pData</span> - ссылка на буфер с содержимым первой части файла. | ||
+ | :<span style="color:green">size</span> - размер буфера с содержимым в байтах. | ||
+ | :<span style="color:green">bEOF</span> - признак последней отправки (если считана и передается последняя часть файла). | ||
+ | :<span style="color:green">pSent</span> - возвращает количество отправленных байтов. | ||
+ | :Возвращаемое значение - адрес сессии передачи файла для последующего обращения к сессии методами '''SendBlock''' или '''AbortSending'''. | ||
+ | |||
+ | |||
+ | *'''SIP_API <span style="color:blue">int __stdcall</span> SendBlock ( <span style="color:blue">HANDLE</span> handle, <span style="color:blue">BYTE</span>* pData, <span style="color:blue">int</span> size, <span style="color:blue">BOOL</span> bEOF );''' Инициирует отправку второй и последующих частей файла в ходе одной сессии. | ||
+ | |||
+ | Параметры: | ||
+ | :<span style="color:green">handle</span> - адрес сессии, определенный при вызове метода StartSending. | ||
+ | :<span style="color:green">pData</span> - ссылка на буфер с содержимым первой части файла. | ||
+ | :<span style="color:green">size</span> - размер буфера с содержимым в байтах. | ||
+ | :<span style="color:green">bEOF</span> - признак последней отправки (если считана и передается последняя часть файла). | ||
+ | :Возвращает количество реально отправленных байтов. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">void __stdcall</span> AbortSending ( <span style="color:blue">HANDLE</span> handle );''' Обрывает сессию отправки файла. Параметр указывает на адрес сессии, определенный при вызове метода '''StartSending'''. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> ReceiveBlock ( <span style="color:blue">HANDLE</span> handle, <span style="color:blue">BYTE</span>* pData, <span style="color:blue">int</span> size, <span style="color:blue">int</span>* pRecv );''' Получает очередной блок файла. В текущей реализации не используется. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">void __stdcall</span> AbortReceiving ( <span style="color:blue">HANDLE</span> handle );''' Обрывает сессию получения файла. В текущей реализации не используется. | ||
+ | |||
+ | |||
+ | <u>Запись в лог-журнал</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">void __stdcall</span> LogWrite ( <span style="color:blue">LPCWSTR</span> szTag, <span style="color:blue">LPCWSTR</span> szString);''' Осуществляет запись в лог-журнал, ведущийся библиотекой. | ||
+ | |||
+ | |||
+ | <u>Установка параметров SIP-клиента</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> SetupSIPAccount ( <span style="color:blue">LPCWSTR</span> szDomain, <span style="color:blue">LPCWSTR</span> szSIPProxy, <span style="color:blue">LPCWSTR</span> szRemoteId, <span style="color:blue">LPCWSTR</span> szUserId, <span style="color:blue">LPCWSTR</span> szUserName, <span style="color:blue">LPCWSTR</span> szUserInfo);''' Устанавливает параметры SIP-клиента для последующего совершения исходящих звонков. | ||
+ | |||
+ | Параметры: | ||
+ | :<span style="color:green">szDomain</span> - имя сервера (например: «myhost.ru», «192.168.0.10», и т.д. ) | ||
+ | :<span style="color:green">szSIPProxy</span> - IP-адрес или DNS-имя сервера с опциональным портом (например: «myhost.ru», «212.333.111.213:5070»). Порт по умолчанию 5060. | ||
+ | :<span style="color:green">szRemoteId</span> - идентификатор вызываемой службы (должно совпадать с соответствующим параметром в карте). | ||
+ | :<span style="color:green">szUserId</span> - идентификатор абонента (userid) - составная часть sip-адреса user@domain, определяемого сервером как CallerId. Может содержать латинские буквы, цифры, точки и прочие символы, которые могут быть использованы в именах e-mail до символа «@». | ||
+ | :<span style="color:green">szUserName</span> - необязательное имя клиента. | ||
+ | :<span style="color:green">szUserInfo</span> - информация, которую необходимо передать на сервер (при передаче кодируется в utf-8). Строка с любым (возможно XML) содержимым, которая становится доступна серверу в функции сценариев IVR «XML-INFO абонента» и используется для маршрутизации вызова или начального заполнения диалоговых форм оператора или БД. | ||
+ | |||
+ | Возвращаемое значение указывает на успешность выполнения операции. | ||
+ | |||
+ | Установка и получение параметров по отдельности. Применение происходит до осуществления звонка (клиент должен находится в состоянии IDLE). Каждая функция устанавливает значение полей, соответствующих параметрам функции SetupSIPAccount. | ||
+ | |||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetSIPDomain ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetSIPDomain ( LPCWSTR newVal );</span> | ||
+ | |||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetSIPProxy ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetSIPProxy ( LPCWSTR newVal );</span> | ||
+ | |||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetRemoteId ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetRemoteId ( LPCWSTR newVal );</span> | ||
+ | |||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetUserId ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetUserId ( LPCWSTR newVal );</span> | ||
+ | |||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetUserName ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetUserName ( LPCWSTR newVal );</span> | ||
+ | |||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetUserInfo ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetUserInfo ( LPCWSTR newVal );</span> | ||
+ | |||
+ | |||
+ | <u>Настройка звуковой подсистемы</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> SetupVoiceDevice ( <span style="color:blue">LPCWSTR</span> szSpkDevice, <span style="color:blue">LPCWSTR</span> szMicDevice, <span style="color:blue">SIP_CODEC</span> prefCodec );''' Устанавливает устройства вывода звука (динамик), ввода звука (микрофон) и выбор используемого аудио-кодека. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">int __stdcall</span> GetSpkDevCount ( );''' Возвращает количество устройств вывода звука (динамиков) в системе. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> GetSpkDeviceAt ( <span style="color:blue">int</span> nIndex, <span style="color:blue">LPWSTR</span> pszDeviceName, <span style="color:blue">int</span> cch );''' Возвращает имя устройства вывода звука (динамика) по индексу перечисления в системе. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">int __stdcall</span> GetMicDevCount ( );''' Возвращает количество устройств ввода звука (микрофонов) в системе. | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> GetMicDeviceAt ( <span style="color:blue">int</span> nIndex, <span style="color:blue">LPWSTR</span> pszDeviceName, <span style="color:blue">int</span> cch );''' Возвращает имя устройства ввода звука (микрофона) по индексу перечисления в системе. | ||
+ | |||
+ | |||
+ | Установка и получение параметров по отдельности. Применение происходит до осуществления звонка (клиент должен находится в состоянии IDLE). Каждая функция устанавливает значение полей, соответствующих параметрам функции SetupVoiceDevice. | ||
+ | |||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetSelectedSpkDevice ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetSelectedSpkDevice ( LPCWSTR newVal );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetSelectedMicDevice ( LPWSTR pBuff, int cch );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetSelectedMicDevice ( LPCWSTR newVal );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall GetPreferredCodec ( SIP_CODEC* pVal );</span> | ||
+ | *<span style="color:green">SIP_API BOOL __stdcall SetPreferredCodec ( SIP_CODEC newVal );</span> | ||
+ | |||
+ | |||
+ | <u>Настройка SOCKS</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> SetupSocksServer ( <span style="color:blue">LPCWSTR</span> szSocksAddress, <span style="color:blue">WORD</span> wPort, <span style="color:blue">LPCWSTR</span> szSocksUser, <span style="color:blue">LPCWSTR</span> szSocksPassword );''' Настройка socks на случай невозможности определить автоматом (не реализовано. клиент может звонить только через NAT или напрямую). | ||
+ | |||
+ | |||
+ | <u>Настройка видео</u> | ||
+ | |||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> SetupVideoCodec ( <span style="color:blue">BOOL</span> bShowDialog );''' Открывает окно настроек видео-кодека. | ||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> StartVideo ( <span style="color:blue">int</span> width, <span style="color:blue">int</span> height );''' Начинает прием/передачу видео в ходе текущей активной голосовой сессии с сервером. В качестве параметров принимаются размеры (ширина и высота) кадров. | ||
+ | *'''SIP_API <span style="color:blue">void __stdcall</span> StopVideo ( );''' Прекращает прием/передачу видео. | ||
+ | *'''SIP_API <span style="color:blue">BOOL __stdcall</span> SendNextFrame ( <span style="color:blue">HBITMAP</span> hBitmap );''' Отправляет видео-фрейм в качестве собственного видео на сервер. Объект уничтожается внутри функции после отправки. |
Версия 10:07, 1 апреля 2014
Работа с native Win32 библиотекой SipClientLib.dll предоставляет полную функциональность интеграционной схемы, за исключением работы с камерами для отправки видео-изображения на сервер в ходе установленной сессии. Библиотека принимает на вход изображения, которые необходимо получать в стороннем ПО и передавать ей для отправки на сервер в заданные интервалы времени.
Перечисления
Возможные состояния телефона (транка):
enum SIP_STATE { SIP_STATE_IDLE = 0, // телефон SIP_STATE_CONNECTING = 1, // соединение по tcp SIP_STATE_CONNECTED = 2, // соединение по tcp установленно SIP_STATE_CALLING = 3, // телефон начал вызов по сип SIP_STATE_INCALL = 4, // телефон в разговоре SIP_STATE_DISCONNECTING = 5, // разрыв соединения };
Поддерживаемые аудио кодеки:
enum SIP_CODEC
{
SIP_CODEC_G711A = 0,
SIP_CODEC_G711U = 1,
SIP_CODEC_GSM = 2,
SIP_CODEC_G729 = 3,
};
События (callback-методы)
С++:
- typedef DWORD (__stdcall *PFN_SIPCLIENT_EVENTS)(SIP_CALLBACK event, DWORD dwParam, LPCWSTR wzParam);
Возможные типы событий
enum SIP_CALLBACK { SIP_CALL_CONNECTED = 0, // вызов принят : dwparam - 0, szparam - текстовое описание SIP_CALL_REJECTED = 1, // вызов отвергнут : dwparam - код ошибки (SIP), szparam - текстовое описание SIP_CALL_FINISHED = 2, // вызов завершен : dwparam - инициатор разрыва (1 - localEnd, 0 - remoteEnd),zparam - текстовое описание SIP_DATA_SENT = 3, // файл отправлен : dwparam - handle потока SIP_DATA_ERROR = 4, // ошибка отправки файла: dwparam - handle потока, szparam - текстовое описание SIP_DATA_INCOME = 5, // принят запрос на прием файла, параметры: dwParam - handle для потока, wzparam - описание потока. SIP_DATA_RECEIVED = 6, // данные приняты : dwparam - handle потока SIP_ERROR = 7, // ошибка соединения : dwparam - код ошибки (SIP), szparam - текстовое описание SIP_STATE_CHANGED = 8, // изменено состояние телефона : dwParam - новое состояние SIP_VIDEO_FRAME_READY = 9, // получен следующий видео-кадр : dwparam - HBITMAP нового кадра SIP_VIDEO_STARTED = 10, // видео связь установленна SIP_VIDEO_PAUSED = 11, // входящий видео поток в паузе/остановлен };
Методы
Инициализация и уничтожение
- SIP_API BOOL __stdcall InitSipClientLib ( PFN_SIPCLIENT_EVENTS ); Инициализация библиотеки.
- SIP_API void __stdcall FreeSipClientLib ( ); Очистка, освобождение ресурсов и завершение работы библиотеки.
Осуществление вызовов
- SIP_API BOOL __stdcall Call ( LPCWSTR szMessage ); Запрос исходящего вызова на соединение с сервером и создания голосовой сессии (соединение по TCP каналу с сервером, передача szUserInfo, при получении положительного ответа совершается звонок на сервер и голосовое соединение с главным сценарием).
- SIP_API void __stdcall Hungup ( ); Завершает активное соединение.
- SIP_API BOOL __stdcall SentDTMF ( CHAR chDTMF ); Отправляет DTMF сигнал на сервер в ходе активной голосовой сессии.
Передача файлов
- SIP_API HANDLE __stdcall StartSending ( LPCWSTR szTag, BYTE* pData, int size, BOOL bEOF, int* pSent ); Инициирует отправку файла на сервер в ходе активной сессии связи. Если файл достаточно больших размеров, то запрашивает для первого блока файла с последующим вызовом метода SendBlock для отправки других частей файла или AbortSending для прекращения отправки.
Параметры:
- szTag - строка с XML-содержимым, описывающим передаваемый файл. (<fileinfo><key=filesize,
- pData - ссылка на буфер с содержимым первой части файла.
- size - размер буфера с содержимым в байтах.
- bEOF - признак последней отправки (если считана и передается последняя часть файла).
- pSent - возвращает количество отправленных байтов.
- Возвращаемое значение - адрес сессии передачи файла для последующего обращения к сессии методами SendBlock или AbortSending.
- SIP_API int __stdcall SendBlock ( HANDLE handle, BYTE* pData, int size, BOOL bEOF ); Инициирует отправку второй и последующих частей файла в ходе одной сессии.
Параметры:
- handle - адрес сессии, определенный при вызове метода StartSending.
- pData - ссылка на буфер с содержимым первой части файла.
- size - размер буфера с содержимым в байтах.
- bEOF - признак последней отправки (если считана и передается последняя часть файла).
- Возвращает количество реально отправленных байтов.
- SIP_API void __stdcall AbortSending ( HANDLE handle ); Обрывает сессию отправки файла. Параметр указывает на адрес сессии, определенный при вызове метода StartSending.
- SIP_API BOOL __stdcall ReceiveBlock ( HANDLE handle, BYTE* pData, int size, int* pRecv ); Получает очередной блок файла. В текущей реализации не используется.
- SIP_API void __stdcall AbortReceiving ( HANDLE handle ); Обрывает сессию получения файла. В текущей реализации не используется.
Запись в лог-журнал
- SIP_API void __stdcall LogWrite ( LPCWSTR szTag, LPCWSTR szString); Осуществляет запись в лог-журнал, ведущийся библиотекой.
Установка параметров SIP-клиента
- SIP_API BOOL __stdcall SetupSIPAccount ( LPCWSTR szDomain, LPCWSTR szSIPProxy, LPCWSTR szRemoteId, LPCWSTR szUserId, LPCWSTR szUserName, LPCWSTR szUserInfo); Устанавливает параметры SIP-клиента для последующего совершения исходящих звонков.
Параметры:
- szDomain - имя сервера (например: «myhost.ru», «192.168.0.10», и т.д. )
- szSIPProxy - IP-адрес или DNS-имя сервера с опциональным портом (например: «myhost.ru», «212.333.111.213:5070»). Порт по умолчанию 5060.
- szRemoteId - идентификатор вызываемой службы (должно совпадать с соответствующим параметром в карте).
- szUserId - идентификатор абонента (userid) - составная часть sip-адреса user@domain, определяемого сервером как CallerId. Может содержать латинские буквы, цифры, точки и прочие символы, которые могут быть использованы в именах e-mail до символа «@».
- szUserName - необязательное имя клиента.
- szUserInfo - информация, которую необходимо передать на сервер (при передаче кодируется в utf-8). Строка с любым (возможно XML) содержимым, которая становится доступна серверу в функции сценариев IVR «XML-INFO абонента» и используется для маршрутизации вызова или начального заполнения диалоговых форм оператора или БД.
Возвращаемое значение указывает на успешность выполнения операции.
Установка и получение параметров по отдельности. Применение происходит до осуществления звонка (клиент должен находится в состоянии IDLE). Каждая функция устанавливает значение полей, соответствующих параметрам функции SetupSIPAccount.
- SIP_API BOOL __stdcall GetSIPDomain ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetSIPDomain ( LPCWSTR newVal );
- SIP_API BOOL __stdcall GetSIPProxy ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetSIPProxy ( LPCWSTR newVal );
- SIP_API BOOL __stdcall GetRemoteId ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetRemoteId ( LPCWSTR newVal );
- SIP_API BOOL __stdcall GetUserId ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetUserId ( LPCWSTR newVal );
- SIP_API BOOL __stdcall GetUserName ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetUserName ( LPCWSTR newVal );
- SIP_API BOOL __stdcall GetUserInfo ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetUserInfo ( LPCWSTR newVal );
Настройка звуковой подсистемы
- SIP_API BOOL __stdcall SetupVoiceDevice ( LPCWSTR szSpkDevice, LPCWSTR szMicDevice, SIP_CODEC prefCodec ); Устанавливает устройства вывода звука (динамик), ввода звука (микрофон) и выбор используемого аудио-кодека.
- SIP_API int __stdcall GetSpkDevCount ( ); Возвращает количество устройств вывода звука (динамиков) в системе.
- SIP_API BOOL __stdcall GetSpkDeviceAt ( int nIndex, LPWSTR pszDeviceName, int cch ); Возвращает имя устройства вывода звука (динамика) по индексу перечисления в системе.
- SIP_API int __stdcall GetMicDevCount ( ); Возвращает количество устройств ввода звука (микрофонов) в системе.
- SIP_API BOOL __stdcall GetMicDeviceAt ( int nIndex, LPWSTR pszDeviceName, int cch ); Возвращает имя устройства ввода звука (микрофона) по индексу перечисления в системе.
Установка и получение параметров по отдельности. Применение происходит до осуществления звонка (клиент должен находится в состоянии IDLE). Каждая функция устанавливает значение полей, соответствующих параметрам функции SetupVoiceDevice.
- SIP_API BOOL __stdcall GetSelectedSpkDevice ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetSelectedSpkDevice ( LPCWSTR newVal );
- SIP_API BOOL __stdcall GetSelectedMicDevice ( LPWSTR pBuff, int cch );
- SIP_API BOOL __stdcall SetSelectedMicDevice ( LPCWSTR newVal );
- SIP_API BOOL __stdcall GetPreferredCodec ( SIP_CODEC* pVal );
- SIP_API BOOL __stdcall SetPreferredCodec ( SIP_CODEC newVal );
Настройка SOCKS
- SIP_API BOOL __stdcall SetupSocksServer ( LPCWSTR szSocksAddress, WORD wPort, LPCWSTR szSocksUser, LPCWSTR szSocksPassword ); Настройка socks на случай невозможности определить автоматом (не реализовано. клиент может звонить только через NAT или напрямую).
Настройка видео
- SIP_API BOOL __stdcall SetupVideoCodec ( BOOL bShowDialog ); Открывает окно настроек видео-кодека.
- SIP_API BOOL __stdcall StartVideo ( int width, int height ); Начинает прием/передачу видео в ходе текущей активной голосовой сессии с сервером. В качестве параметров принимаются размеры (ширина и высота) кадров.
- SIP_API void __stdcall StopVideo ( ); Прекращает прием/передачу видео.
- SIP_API BOOL __stdcall SendNextFrame ( HBITMAP hBitmap ); Отправляет видео-фрейм в качестве собственного видео на сервер. Объект уничтожается внутри функции после отправки.