Highlight a phrase and click this icon to search it on Swyx-Forum    Highlight a phrase and click this icon to search it within the Swyx Knowledgebase    Highlight a phrase and click this icon to search it using Goolge    Highlight a phrase and click this icon to search it using Wikipedia

Highlight a phrase and click this icon to search it on Swyx-Forum    Highlight a phrase and click this icon to search it within the Swyx Knowledgebase    Highlight a phrase and click this icon to search it using Goolge    Highlight a phrase and click this icon to search it using Wikipedia

List of Blogs
Search Blogs

Blog Archive

Most recent blog entries

 

Most recent blog entries

 

Mrz19

Written by:Martin
19.03.2008 17:32 

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:

image

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.

 

 

Tags:

 

1 comment(s) so far...

Re: Script API change in SwyxWare v6.12

The costs for the meta blog api seem to work out very fast ;-)

By tom.wellige on  19.03.2008 17:39

Your name:
Your email:
(Optional) Email used only to show Gravatar.
Title:
Comment:
Security Code
Enter the code shown above in the box below
Add Comment  Cancel 
Blog Help
Sponsors