Last updated on April 29, 2015

Widget: SIP Call

Introduction

The SIP Call Widget utilizes the SIP (Session Initiation Protocol) signalling protocol for Internet Telephony. This allows Appspace to establish sessions for audio/video conferencing and call forwarding over IP networks effectively creating a virtual concierge.

Prerequisites

Software Requirements:

  • Appspace 5.1.x.
  • Appspace player version – 5.1.x.
  • Cisco Unified Call Manager (CUCM) endpoint account credentials.

Hardware Requirements:

  • Edge 340 Firmware 1.1 onwards.
  • Web Cam (applicable for video calling).
  • Speakers and microphone (applicable for voice and video calling).
  • Input hardware such as touch screen monitor or mouse.

SIP Call Widget

The SIP Widget can be implemented in 2 main ways:

  1. To act as an invisible widget that handles only voice calls.
  2. To act as a video call window where the SIP Widget itself will function as the video feed display window.

Alone by itself, the SIP Widget does not provide a visible interface for user operation (no keypad to dial a number). The widget requires and depends on interoperability with other widgets such as the text and media zone widgets. The SIP Widget itself mainly receives messages and then proceeds to generate events to execute and trigger corresponding actions. The widget can be leveraged to automatically call, accept, and end phone/video communications. The high-level workflow for this functionality is defined as the following:

  • Insert the SIP Widget as a layout object into an application.
  • Configure the widget to be registered with the Cisco Unified Call Manager.
  • Start, accept and end calls through actions.
  • Respond to a collection of SIP events through application scripting.

Visualization of the SIP Call Widget Object

Audio-Only Call Functionality

  1. Main Layout
  2. SIP Call Interface
  3. SIP Call Widget (Hidden Off Screen)

Audio and Video Call Functionality

  1. Main Layout
  2. SIP Call Interface
  3. SIP Call Widget (On Screen)

SIP Call Actions

The following table lists various possible actions that can be mapped as action scripts within the application:

Do When Action
Call On Click/Touch Initiate a call based on a preset number
Terminate On Click/Touch Terminate an existing call
Accept On Click/Touch Accept incoming call
Decline On Click/Touch Decline incoming call (it is also possible to set a reason value on this i.e Declined, Busy)
Set Speaker Volume On Click/Touch This is to either turn on or turn off volume. Possible values are from 0 or 100
Enable Microphone On Click/Touch Boolean value to either mute or unmute the microphone
Send DTMF On Click/Touch

1: Sends DTMF tone for key #1

2 or A, B, C: Sends DTMF tone for key #2

3 or D, E, F: Sends DTMF tone for key #3

4 or G, H, I: Sends DTMF tone for key #4

5 or J, K, L: Sends DTMF tone for key #5

6 or M, N, O: Sends DTMF tone for key #6

7 or P, Q, R, S: Sends DTMF tone for key #7

8 or T, U, V: Sends DTMF tone for key #8

9 or W, X, Y, Z: Sends DTMF tone for key #9

0: Sends DTMF tone for key #0

“star” or +: Sends DTMF tone for key *

#: Sends DTMF tone for #

Note

These are just examples of different actions that can be issued/assigned in order to map a keypad or call function buttons for the SIP Call Widget.

SIP Call Events

The SIP widget is able to generate events based on certain conditions. The following table lists various events that can be read/accepted by the Appspace framework and be used as part of the event list that is available for application scripting:

Event Details  
On Idle This event is raised when the SIP client is on idle
Incoming Received This event is raised when an incoming call signal is detected at the SIP client
Outgoing (Progress) This event is raised when a call from the SIP client to another endpoint is in progress
Outgoing (Ringing) This event is raised when an outgoing call is ringing at the targeted SIP endpoint
Connected This event is raised when a call is connected/answered between the SIP client and another endpoint
Connected Stream Running This event is raised when the media streams are established and running
Call Transferred This event is raised when a call gets transferred to another SIP client
Call Error This event is raised when an error status occur
Call Ended This event is raised when a call ends at the SIP client
Call Paused This event is raised when a call is paused at the SIP client
Call Resumed This event is raised when a call in Paused state gets resumed
Call Released This event is raised when the SIP client no longer retains the call object

Note

These are just examples of different events that can be read/accepted in order to map actions based on said events.

SIP Widget Front End

The image below is an example of how a complete SIP Call Widget application may look. The layout of can be rearranged in order to comply with any requirements needed.


Note

The layout and suggested functionality are just examples. All actions/events can be customized according to usage.

SIP Call Properties

This article lists the available SIP widget player properties. By using these player properties, you are able to configure your Edge 340 with specific behavior for the SIP widget.

Requirements

  • Only supported on Edge 340 devices running firmware 1.2 and above
  • Only supported on Appspace Core 5.3.x and above

Set Output Video Resolution (to be viewed on the Edge 340 endpoint)

  • Property: custom.video.endpoint.size
  • Format: <width>x<height>
  • Unit: pixels
  • Sample: 800×600

Set Local Preview Resolution

  • Property: custom.video.local.size
  • Format: <width>x<height>
  • Unit: pixels
  • Sample: 800×600

Set Download Bandwidth

  • Property: custom.network.bandwidth.download
  • Format: integer
  • Unit: KBytes
  • Sample: 800×600

Set Upload Bandwidth

  • Property: custom.network.bandwidth.upload
  • Format: integer
  • Unit: KBytes
  • Sample: 800×600

Set Audio UDP/RTP Port Range

  • Property: custom.network.portrange.audio
  • Format: <minPort>,<maxPort>
  • Unit: N/A
  • Sample: 2000,2010

Set Video UDP/RTP Port Range

  • Property: custom.network.portrange.video
  • Unit: N/A
  • Format: <minPort>,<maxPort>
  • Sample: 2000,2010

Set SIP Call Signalling Transport Protocol

  • Property: custom.network.protocol
  • Format: <protocol>,<port>
  • Unit: N/A
  • Sample: udp,2010

Set DSCP value for SIP Signalling Packet

  • Property: custom.network.dscp
  • Format: <dscp>
  • Unit: N/A

Enable Software Echo Cancellation

  • Property: custom.echocancellation.enable
  • Format: Boolean
  • Sample: True or False