One feature of SwyxWare v6.12 is the exclusion of SwyxIt! mobile devices when a call is delivered. In SwyxWare v6.11 if you've enabled SwyxMobile each call you get is automatically delivered to all of your logged in devices including SwyxIt! Mobile. Calling your mobile is not really necessary when you're working in the office. A call routing rule which first tries to reach you on you office phone and on your SwyxIt!Mobile after that would be useful, but that's not possible in SwyxWare v6.11.
One feature of SwyxWare v6.12 is the exclusion of SwyxIt! mobile devices when a call is delivered. In SwyxWare v6.11 if you've enabled SwyxMobile each call you get is automatically delivered to all of your logged in devices including SwyxIt! Mobile. Calling your mobile is not really necessary when you're working in the office. A call routing rule which first tries to reach you on you office phone and on your SwyxIt!Mobile after that would be useful, but that's not possible in SwyxWare v6.11.
In SwyxWare v6.12 Call Routing Manager and Graphical Script Editor you get an additional option in the Connect-To function:
If you uncheck it, the call is delivered to all of your logged in devices except SwyxIt! Mobile. On SwyxServer's script API there are more options. If you're familiar with writing custom scripts, you might find this useful.
The method responsible for delivering a call is called ConnectToEx and is a member of the PBXCall object. In SwyxWare v6.12 it has one additional parameter. Here's declaration from the interface definition file:
HRESULT ConnectToEx([in] BSTR bstrDestinationAddresses,
[in] int nTimeOut,
[in] BOOL bProceedWithDestinationScript,
[in] BSTR bstrUserDefinedAlertTone,
[in] BSTR bstrAbortDTMFDigits,
[in, out] VARIANT* DetectedDigit,
[in, defaultvalue(PBXDeviceTypeAll)] unsigned int AllowedDeviceTypes,
[out,retval] PBXResult* retVal);
The new parameter AllowedDeviceTypes (marked in red color above) is a bitfield with one bit per device type. The following devices types are supported:
const PBXDeviceTypeSoftClient = 1
const PBXDeviceTypePhoneLxxx = 2
const PBXDeviceTypePhoneSxxx = 4
const PBXDeviceTypeSIPClient = 8
const PBXDeviceTypeMobile = 16
const PBXDeviceTypeH323Client = 32
const PBXDeviceTypeAll = &hffffffff
As you can see from the declaration the default value is PBXDeviceTypeAll, i.e. the call will be delivered to all of your logged in devices. By using a combination of the above constants you can include or exclude certain device types. Some examples:
| To deliver call to | Set AllowedDeviceTypes to |
| SwyxIt | PBXDeviceTypeSoftClient |
| SwyxIt and SwyxPhone Lxxx | (PBXDeviceTypeSoftClient or PBXDeviceTypePhoneLxxx) |
| All except S315 | (PBXDeviceTypeAll and not PBXDeviceTypePhoneSxxx) |
| All except SwyxIt!Mobile | (PBXDeviceTypeAll and not (PBXDeviceTypeMobile) |
Here's an example vbscript snippet you could paste into an Insert-Script-Code block in GSE:
UseExit = 0 ' default exit
dim DetectedDigit
dim AllowedDeviceTypes
AllowedDeviceTypes = PBXDeviceTypeSoftClient or PBXDeviceTypePhoneLxxx
dim result
result = PBXCall.ConnectToEx(CalledNumber(), 60, false, "", "", DetectedDigit, CLng(AllowedDeviceTypes))
if result<>0 then
UseExit = 1 ' Please use the variable UseExit for the block exits 0..9
else
bCallConnected = true ' Skips postprocessing, because call is connected
end if
For something more reusable you could create a GSE action which gets the device types as parameters. The action then calculates the correct AllowedDeviceTypes value and calls ConnectTo.