Widget: SIP Call
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:
- To act as an invisible widget that handles only voice calls.
- 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.
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