![]() |
SwyxIt! Client SDK 14.20
|
import "CLMgrPub.idl";
Public Member Functions | |
HRESULT | PubInit ([in] BSTR ServerName) |
HRESULT | PubRegisterUser ([in] BSTR UserName, [out] long *pUserId) |
HRESULT | PubReleaseUser ([in] long UserId) |
HRESULT | PubGetNumberOfLines ([out] long *pNumberOfLines) |
HRESULT | PubSetNumberOfLines ([in] long NumberOfLines) |
HRESULT | PubGetLine ([in] long iLineNumber, [out] IClientLinePub **ppIClientLinePub) |
HRESULT | PubGetSelectedLineNumber ([out] long *piLineNumber) |
HRESULT | PubSelectLineNumber ([in] long iLineNumber) |
HRESULT | PubGetSelectedLine ([out] IClientLinePub **ppIClientLine) |
HRESULT | PubSelectLine ([in] IClientLinePub *pIClientLine) |
HRESULT | PubSwitchToLineNumber ([in] long iLineNumber) |
HRESULT | PubSwitchToLine ([in] IClientLinePub *pIClientLine) |
HRESULT | PubGetMicroEnabled ([out] BOOL *pbEnabled) |
HRESULT | PubSetMicroEnabled ([in] BOOL bEnabled) |
HRESULT | PubGetSpeakerEnabled ([out] BOOL *pbEnabled) |
HRESULT | PubSetSpeakerEnabled ([in] BOOL bEnabled) |
HRESULT | PubRegisterMessageTarget ([in] long hWnd, [in] long dwThreadId) |
HRESULT | PubUnRegisterMessageTarget ([in] long hWnd, [in] long dwThreadId) |
HRESULT | PubPickupGroupNotificationCall ([in] long LineNumber) |
HRESULT | PubGetGroupNotificationDetails ([out] PubCLMgrGroupNotificationDetails *pDetails) |
HRESULT | PubIsServerUp ([out] BOOL *pIsServerUp) |
HRESULT | PubGetNumberOfExtensions ([out] long *pNumberOfExtensions) |
HRESULT | PubGetExtension ([in] long iIndex, [out] BSTR *pExtension) |
HRESULT | PubGetNumberOfSpeedDials ([out] long *pNumberOfSpeedDials) |
HRESULT | PubGetSpeedDialName ([in] long iIndex, [out] BSTR *pName) |
HRESULT | PubGetSpeedDialNumber ([in] long iIndex, [out] BSTR *pNumber) |
HRESULT | PubGetSpeedDialState ([in] long iIndex, [out] long *pState) |
HRESULT | PubSimpleDial ([in] BSTR dialstring) |
HRESULT | PubResolveNumber ([in] BSTR Number, [out] BSTR *pName) |
HRESULT | PubConvertNumber ([in] DWORD Style, [in] BSTR NumberFrom, [out] BSTR *pNumberTo) |
HRESULT | PubGetDialParams ([out] BSTR *pCountryCode, [out] BSTR *pAreaCode, [out] BSTR *pPublicAccessPrefix, [out] BSTR *pLongDistanceCallPrefix, [out] BSTR *pInternationCallPrefix) |
Line manager interface Handles connection to server and selection of lines,
Use this interface from C++ clients
HRESULT IClientLineMgrPub::PubConvertNumber | ( | [in] DWORD | Style, |
[in] BSTR | NumberFrom, | ||
[out] BSTR * | pNumberTo ) |
This method will convert a phone number to a different format
requested style:
* typedef enum * { * PubCLMgrNumberStyleFull, //e.g. 0004923147770 or 0023147770 * PubCLMgrNumberStylePlain, //e.g. 4923147770 or 23147770 * PubCLMgrNumberStyleCanonical //e.g. +49 (231) 47770 or +49 (231) 4777-0 * PubCLMgrNumberStyleFullPublic //e.g. 004923147770 or 023147770 * } PubCLMgrNumberStyle; *
Full number: 0023147770 Canonical number: +49 (231) 4777-0 or +49 (231) 47770 (the extension cannot be detected automatically)
HRESULT IClientLineMgrPub::PubGetDialParams | ( | [out] BSTR * | pCountryCode, |
[out] BSTR * | pAreaCode, | ||
[out] BSTR * | pPublicAccessPrefix, | ||
[out] BSTR * | pLongDistanceCallPrefix, | ||
[out] BSTR * | pInternationCallPrefix ) |
This method will return the dial parameters of the PBX
pCountryCode: "49" for Germany, without leading zeros pAreaCode: "231" for Dortmund, without leading zeros pPublicAccessPrefix: e.g. "0" -> a user has to dial "0" for a public line pLongDistanceCallPrefix: e.g. "0" -> a user has to dial "00" (public 0 + long distance 0) for long distance calls pInternationCallPrefix: e.g. "00" -> a user has to dial "000" (public 0 + international 00) for international calls
HRESULT IClientLineMgrPub::PubGetExtension | ( | [in] long | iIndex, |
[out] BSTR * | pExtension ) |
Get configured extension with index i
HRESULT IClientLineMgrPub::PubGetGroupNotificationDetails | ( | [out] PubCLMgrGroupNotificationDetails * | pDetails | ) |
get details of current group notification
HRESULT IClientLineMgrPub::PubGetLine | ( | [in] long | iLineNumber, |
[out] IClientLinePub ** | ppIClientLinePub ) |
Get interface pointer to specified line object if *ppIClientLinePub==NULL the line is not available
HRESULT IClientLineMgrPub::PubGetMicroEnabled | ( | [out] BOOL * | pbEnabled | ) |
get / set microphone state
HRESULT IClientLineMgrPub::PubGetNumberOfExtensions | ( | [out] long * | pNumberOfExtensions | ) |
Get number of configured extensions
HRESULT IClientLineMgrPub::PubGetNumberOfLines | ( | [out] long * | pNumberOfLines | ) |
Get / set number of lines if number of lines is changed, we get message "PubCLMgrNumberOfLinesChangedMessage" PubSetNumberOfLines will only change the number of created lines, the number of configured lines will not be changed
HRESULT IClientLineMgrPub::PubGetNumberOfSpeedDials | ( | [out] long * | pNumberOfSpeedDials | ) |
Get number of configured extensions
HRESULT IClientLineMgrPub::PubGetSelectedLine | ( | [out] IClientLinePub ** | ppIClientLine | ) |
get / set selected line by interface pointer the previous selected line will be set to hold / disconnected if it was active or dialing, alerting etc. the afterwards selected line will not be activated or hooked off S_OK -> success S_FALSE -> could not select line (probably because selected line is active and cannot be hold for some reason)
HRESULT IClientLineMgrPub::PubGetSelectedLineNumber | ( | [out] long * | piLineNumber | ) |
get / set selected line by index (first line == 0, ...) the previous selected line will be set to hold / disconnected if it was active or dialing, alerting etc. the afterwards selected line will not be activated or hooked off returns error code S_OK -> success S_FALSE -> could not select line (probably because selected line is active and cannot be hold for some reason)
HRESULT IClientLineMgrPub::PubGetSpeakerEnabled | ( | [out] BOOL * | pbEnabled | ) |
get / set speaker state
HRESULT IClientLineMgrPub::PubGetSpeedDialName | ( | [in] long | iIndex, |
[out] BSTR * | pName ) |
Get speed dial configuration: Name
HRESULT IClientLineMgrPub::PubGetSpeedDialNumber | ( | [in] long | iIndex, |
[out] BSTR * | pNumber ) |
Get speed dial configuration: Dialnumber
HRESULT IClientLineMgrPub::PubGetSpeedDialState | ( | [in] long | iIndex, |
[out] long * | pState ) |
Get speed dial notification state speed dial signalling states
* typedef enum * { * PubSDUnknown=0, //unknown -> external number * PubSDLoggedOut, //known user, not logged on to PBX * PubSDLoggedIn, //known user, logged on to PBX * PubSDBusy, //known user, client is busy * PubSDGroupCallNotification //known user, that user currently receives a call; notification call * } PubCLMgrSpeedDialStates; *
HRESULT IClientLineMgrPub::PubInit | ( | [in] BSTR | ServerName | ) |
!!! depcreated function! Use IClientLineMgrDisp::RegisterUserEx !!!
HRESULT IClientLineMgrPub::PubIsServerUp | ( | [out] BOOL * | pIsServerUp | ) |
check whether connection to server is up (again), after we received message "PubCLMgrServerDownMessage" while connection to server is down, this method will try to reconnect immediately Client Line Manager will try reconnect in fixed time interval anyway
HRESULT IClientLineMgrPub::PubPickupGroupNotificationCall | ( | [in] long | LineNumber | ) |
pickup group call on specified line set line = -1 if line does not matter -> select first inactive line
HRESULT IClientLineMgrPub::PubRegisterMessageTarget | ( | [in] long | hWnd, |
[in] long | dwThreadId ) |
register thread / window for window messages client line manager will signal events to us by sending windows messages to a given window or thread in order to receive events you need to capture the windows message id as returned by RegisterWindowMessage(_T("WM_LineMgrNotification")); in order to have the messages send to a window, register the window handle in order to have the messages send to a certain thread, register its thread id
possible messages are:
//message parameters for state information from line manager to client, //send as wParam of RegisterWindowMessage(_T("WM_LineMgrNotification")
* typedef enum * { * PubCLMgrLineStateChangedMessage=0, //state of a line has changed * //lParam: index of line * PubCLMgrLineSelectionChangedMessage, //line selection has changed, new line in focus * //lParam: index of now selected line * PubCLMgrLineDetailsChangedMessage, //details of line has changed * //lParam: index of line * PubCLMgrUserDataChangedMessage, //user configuration has changed * PubCLMgrCallDetailsMessage, //details of last call are available, after disconnect, for logging purpose * //lParam: index of line * PubCLMgrServerDownMessage, //server is down, will be rebooted, ... * //-> keep interfaces to line manager, wait for ServerUp message * PubCLMgrServerUpMessage, //server is up again -> keep interfaces to line manger * PubCLMgrWaveDeviceChanged, //speaker and / or micro has been switched on or off * //lParam: 0:no problem * //lParam: 1:there was an error, could not enable micro or speaker * PubCLMgrGroupCallNotificationMessage, //notification about signaled call we could pick up now * //lParam: 1:signaled call available * //lParam: 0:signaled call not available / no longer available * PubCLMgrNameKeyStateChangedMessage, //notification about changed namekey state * //lParam: index of namekey that has new state * PubCLMgrNumberOfLinesChangedMessage, //the number of lines has changed * //lParam: new number of lines * PubCLMgrClientShutDownRequest, //Client Line Manager requests client to shutdown and release all interfaces * PubCLMgrPowerSuspendMessage, //client machine goes to hibernate or suspend mode * //-> keep interfaces to line manager, wait for PowerResume message * PubCLMgrPowerResumeMessage, //client machine has returned from suspend mode -> keep interfaces to line manager * PubCLMgrHandsetStateChangedMessage, //state of handset has changed * //lParam: new handset state 0 = on hook, 1 = off hook * PubCLMgrCallbackOnBusyNotification, //informing clients about available callback on busy * PubCLMgrAsyncErrorMessage //error message for reporting problems that occured within state machine / were reported by server * //lParam will contain the error code * } PubCLMgrMessages; *
HRESULT IClientLineMgrPub::PubRegisterUser | ( | [in] BSTR | UserName, |
[out] long * | pUserId ) |
!!! depcreated function! Use IClientLineMgrDisp::RegisterUserEx !!!
HRESULT IClientLineMgrPub::PubReleaseUser | ( | [in] long | UserId | ) |
!!! depcreated function! Use IClientLineMgrDisp::ReleaseUserEx !!!
HRESULT IClientLineMgrPub::PubResolveNumber | ( | [in] BSTR | Number, |
[out] BSTR * | pName ) |
This method will resolve a phone number to a name
Input: Number Output: Name. If the number can be resolved, *pName is the resolved name and the HRESULT is S_OK. If the number cannot be resolved, *pName is set to NULL and the HRESULT is S_FALSE. If Number is NULL or pName is NULL, HRESULT will be E_INVALIDARG
HRESULT IClientLineMgrPub::PubSelectLine | ( | [in] IClientLinePub * | pIClientLine | ) |
HRESULT IClientLineMgrPub::PubSelectLineNumber | ( | [in] long | iLineNumber | ) |
HRESULT IClientLineMgrPub::PubSetMicroEnabled | ( | [in] BOOL | bEnabled | ) |
HRESULT IClientLineMgrPub::PubSetNumberOfLines | ( | [in] long | NumberOfLines | ) |
HRESULT IClientLineMgrPub::PubSetSpeakerEnabled | ( | [in] BOOL | bEnabled | ) |
HRESULT IClientLineMgrPub::PubSimpleDial | ( | [in] BSTR | dialstring | ) |
dial given dialstring on any free line If selected line is active, an inactive line will be selected automatically before dialing function call will be handled asynchronous, return code S_OK does not guarantee success
HRESULT IClientLineMgrPub::PubSwitchToLine | ( | [in] IClientLinePub * | pIClientLine | ) |
switch to line the previous selected line will be set to hold / disconnected if it was active or dialing, alerting etc. after a short timeout the afterwards selected line will -> be activated if currently on hold -> pickup incoming call if ringing -> hook off if currently inactive / terminated returns error code S_OK -> success S_FALSE -> could not select line (probably because selected line is active and cannot be hold for some reason)
HRESULT IClientLineMgrPub::PubSwitchToLineNumber | ( | [in] long | iLineNumber | ) |
switch to line the previous selected line will be set to hold / disconnected if it was active or dialing, alerting etc. after a short timeout the afterwards selected line will -> be activated if currently on hold -> pickup incoming call if ringing -> hook off if currently inactive / terminated returns error code S_OK -> success S_FALSE -> could not select line (probably because selected line is active and cannot be hold for some reason)
HRESULT IClientLineMgrPub::PubUnRegisterMessageTarget | ( | [in] long | hWnd, |
[in] long | dwThreadId ) |
unregister thread / window for window messages