Quantcast
Channel: Plantronics Developer Connection : Blog List - Lewis Collins' Place
Viewing all articles
Browse latest Browse all 7

High-level call management ICallCommand: benefits of newer Spokes SDK!

0
0

In the past integrations to Plantronics devices were often done via a lower-level SDK that exposed just the raw device events and device commands.

 

Now integrators can benefit from much simpler, higher-level interfaces with a lot of the hard work done for you , especially in the area of call state management between the headset and your application.

 

This makes it much quicker and easier to integrate to and support the latest Plantronics devices and handle multiple incoming call scenarios!

 

The Spokes SDK has 3 integration routes, COM Service, REST Service and iPlugin SDK. Note: All require the Spokes runtime to be installed and running. (Read more about this in: So what is Spokes anyway?).

 

I was recently exploring the ICallCommand call management interface and wanted to share some thoughts / results here.

 

Incoming call flow

 

If you are doing softphone integration based on C++ SpokesSDKCOMSample, or C# SpokesSDKCOMNETSample, here is a flow you could implement for incoming call:

 

  • There is an incoming call in your softphone
  • Call the “callcommand->IncomingCall” function of the Plantronics SDK
    • Pass an ICall object containing the unique numeric id of the call
    • Pass an IContact object optionally with the contact name (caller id) who is calling to be displayed on screen of supported Calisto speakerphone/handset devices, otherwise empty string
  • This causes Plantronics device to go into PC/VoIP line ringing state, and to anticipate the next Talk button press will answer the call
  • User presses “Talk” button, Spokes notifies your softphone that the call is now in progress via the CallStateEventHandler callback function
    • On receiving this call back, depending on call id and call state within callback arguments, your softphone can connect the call! (or take other action based on call state, e.g. place a call on hold, etc.)
  • Then 2nd incoming call while 1st is still in progress!
  • Call IncomingCall function as before, with different call id
  • User can choose to terminate 1st call (talk button) and answer 2nd call (talk button)
    OR

    User can choose to put 1st call on hold and answer 2nd call (flash button, see below)
  • Again the call state changes are notified via CallStateEventHandler


Caller id can be displayed on display of supported Calisto devices.


Demonstration...

 

This flow can be demonstrated by this sample code: C++ SpokesSDKCOMSample, or C# SpokesSDKCOMNETSample

 

Testing handling of multiple incoming calls with SpokesSDKCOMSample:

 

  • The below screenshot shows sample application typing "incoming" twice to simulate 2 incoming calls:

call state management.jpg

  • Result: When 2nd call comes in (ringing) pressing flash button will answer 2nd call, placing 1st call on hold. Pressing flash again will switch back to 1st call putting 2nd call on hold. You can do that as much as you want.
  • Spokes SDK tells your application which call state to set a call to via the "Call State" CallStateEventHandler callbacks
  • Press talk will terminate active call. The call on hold remains on hold until you press flash again to switch to it (activate it).
  • The other benefit to newer SDK is that it supports dialpad features, e.g. of Calisto P240 and 800-series as well as multi-line features of Savi 7xx.

 

Note: this test was done with Plantronics Savi 745 device. Not all products support the "flash button" call switching feature. If in doubt check user manual on www.plantronics.com


Viewing all articles
Browse latest Browse all 7

Latest Images

Trending Articles





Latest Images