Step 1: Download the Mobile App
Get all the information you need at
your fingertips!
Step 2: Access the session
Log into the app using your Cisco
Live login & find your session
http://bit.ly/clus2015
Participate in Session Polling and Q&A
Extend the Reach of Your Cisco Video Solution with
Jabber GuestDarin Dunlap
Senior Product Manager, CTG
BRKUCC-2086
Jimmy Kimmel Live!Wall of America … Powered by Cisco
Fans, celebrities appear
on the show
using Jabber Guest
integrated into the
Jimmy Kimmel Live!
portal
Wall of America on The Broadcast
Many Segments to Date … & More to Come!Showing in The Cisco Booth & Online
Avengers Cast & Fans
Tax Edition
Will Smith & DJ Jazzy Jeff
Brave Shop
Cashier
Viola Davis
Interview
Show & Tell,
Ricky
Schroeder
National Pancake
Day
Kobe Bryant & Fans
Jimmy Kimmel Debuts Wall of America with Kevin Hart & Eddie Murphy
• Introduction
• Solutions
• Product Highlights
• Solution Components
• Deployment – Configuration & Clustering
• SDKs & Demonstration
• Conclusion
Agenda
DisclaimerThe Cisco products, service or features identified in this document may not yet be available or may not be available in all areas and may be subject to
change without notice. Consult your local Cisco business contact for information on the products or services available in your area. You can find
additional information via Cisco’s World Wide Web server at http://www.cisco.com. Actual performance and environmental costs of
Cisco products will vary depending on individual customer configurations and conditions. This is a confidential Cisco Internal launch document and
not for external distribution.
Jabber Guest in Action
Introduction to Jabber Guest
Jabber Family Overview … Enterprise & Guest Users
Guest Users
Web Browser
Mobile Apps
Call Control: SIP
• Cisco Unified
Communications
Manager (UCM)
• Cisco TelePresence®
Video Communication
Server (VCS … via UCM)
Meetings, Conferencing
• WebEx (SaaS)
• TelePresence MCU
Voice Messaging
• Unity Connection
Presence & IM: XMPP
• Unified Presence
• WebEx Messenger
service (SaaS)
Enterprise Workers
Cisco
Expressway
DMZ
• Web
• Upgrades available via Cisco.comdownload
• New orders after 10.5, 10.6 FCS receive respective full install (physical media or eDelivery)
• iOS & Android
• Client upgrades released via App Store & Play Store
• SDK upgrades released via DevNet
Jabber Guest Status
Mar 2015Dec 2014Jun 2014
10.0(Web, iOS)
10.5(Web, iOS)
10.5(Android, iOS)
Jun 2015
10.6(Web, Android, iOS)
POLL #1
What is your interest level
in Jabber Guest?
Jabber Guest Value Proposition
MASSIVE
ADOPTION
Ease of Deployment
Ease of Development
Ease of Access
Solutions
Jabber Guest – Addresses 3 Universal Use Cases
Enhance Customer Interactions
• Add voice, video, and data sharing to your website, email communications, and mobile applications
• For example, involving contact centers in Retail and Financial Services
Extend Experts’ Reach & Productivity
• Extend unified communications benefits to the entire ecosystem of an enterprise
• For example, involving experts in Healthcare, Financial Services, Education
Offer Temporary Guest Access across Businesses, Governments
• Help associates, customers, partners, suppliers, consultants, etc reach your employees
• Use Case: HR Interviews
Revolutionize Consumer-to-Business CollaborationMobile and Browser-Based Instant Voice, Video, Data Interaction
Consumer Business
* Images for illustration purpose only. Final UI subject to change.
Retail ApplicationConsumer and Contact Center Interaction
• Enhance customer interactions
• Make experts easy to find
• Simple User Experiences - simply
click a URL, website link or mobile
application
* Images for illustration purpose only. Final UI subject to change.
Benefit Promoters
Financial Services Application Wealth Management
Benefit Promoters
• Enable up-sell, cross-sell and increase share of wallet
• Increase high-touch personal interaction
• Improve ROI of Telepresence investments
• Create a competitive advantage
Portfolio Advisor
Expert FSI app, website
or invitation
* Images for illustration purpose only. Final UI subject to change.
Healthcare Application Case Management and Chronic Care
• Improve physician and nurse resource efficiencies
• Extend care reach
• Improve ROI of Telepresence investments
• Create a competitive advantage
Healthcare provider
app or website
GuestCare Coordinator
Benefit Promoters
* Images for illustration purpose only. Final UI subject to change.
Jabber Guest Imagine the Possibilities . . .
Business Benefits
• Promote intimate customer interactions
• Enable cross-sell, up-sell and share of
wallet
• Increase expert touches and transactions
to increase revenue
• Improve competitive advantage
Example of Partner Integration with Jabber Guest
Video of Vyopta Integration
Product Highlights
High-level Architecture
Consumer Business
Jabber Guest
virtual machine
E n t e r p r i s e
Public Internet
Cisco UCM or
Business Edition
Expressway
Browser & Mobile Experiences (“off the shelf”)
• VideoPoint-to-point video
Point to video conference
• Midcall controlKeypad, mute audio or video, full-screen video
Camera, audio device selection
Self-view
• Call control – WebRTC compatible
• MediaBrowser add-on (desktop web), Native apps (mobile)
Future – WebRTC for media
User Experience
* Images for illustration purpose only. Final UI subject to change.
Sales Department
WebRTC Vision
Browsers
Codecs
Standards
Vendor A
Browser
With Web
App X
Vendor B
Browser
With Web App
X
Native,
Zero PluginApps
• Native video in the browser
• ZERO install
• Standards still evolving at IETF, W3C
• Jabber Guest call control designed to be
WebRTC compatible
• Video codec support agreed Nov ‘14
• Media interop requires client &
infrastructure enhancements
HTML5 Standard – In Progress
* Images for illustration purpose only. Final UI subject to change.
Google Chrome
• Initial desktop implementation in Chrome 23 Stable & later
• Initial mobile implementation in Chrome 26 for Android Beta
• Actively contributing to standards efforts
• Contributing to open source, e.g. WebRTC.org
Microsoft Internet Explorer, Edge
• Actively contributing to standards efforts, though pushing ORTC vs WebRTC
• Implementation status not public
Mozilla Firefox
• Initial desktop implementation in Firefox 20 & later
• Actively working on open source implementation & contributing to standards efforts
• Cisco contributed OpenH264 and open source development, e.g. RFC4566-compliant SDP engine, call control application logic
Apple Safari
• Maintaining strict secrecy
Browser Implementations of WebRTC
Call Resolution
Resolution Challenges
• Volatile consumer networks
• Device hardware capabilities (e.g. camera, CPU)
Adaptation
• Bandwidth probe pre-call to determine network conditions
• Rapid upward adaptation
• Mid-call downward adaptation
Rapid Upward Adaptation
720p
VGA
CIF
* Images for illustration purpose only. Low res image not actual
screenshot..
Video Adaptation
Jabber Guest SDKs
Customization
• Desktop browser SDK
Sample HTML and Javascript provided to create
video widget and set up event handler
• Mobile native application SDK
iOS framework … Android library
Includes sample projects, tutorials, API reference, etc
To be covered by Cisco’s H.264 license & royalty
payments to MPEG-LA, third parties must use SDK
for iOS/Android “activation” mechanism in their apps
* Images for illustration purpose only. Final UI subject to change.
• Developer enablement via Cisco DevNet …
http://jabberdeveloper.com
Capabilities in 10.X
• Mobile: iPhone and iPad (in App
Store)
• Web: Windows (IE, Firefox,
Chrome), add-on
• Web: Mac (Safari, Firefox,
Chrome), add-on
• Call initiation through web links
• Video call to Cisco® UCM endpoints
• Firewall/NAT traversal through
Expressway X8.2+, TURN, and
reverse proxy
• In-call: Mute, DTMF, video
start/stop, full screen, end
• Far-end transfers and forwards
• Audio-only mode
• iOS: With sample app code
• Web: With widget
• REST API on server for link
management
• Contact center …
UCCE/PCCE/UCCX
• Pre-call confirmation page with
video preview
• Audio or video device selection
• Video bridge support
• Bandwidth and CPU adaptation
• Web app “white-list” security
• SRTP, HTTPS call control
• H.264 AVC, G.722.1, G.711, G.729
• Localizations
• Accessibility (basic)
• Virtual machine (OVA) with web
server
• HTTP-to-SIP gateway
• Administration interface, including
link management
• Clustering and redundancy
• Expressway X8.2+ integration
• CTX interoperability, including
meeting domain name support
Client SDK Solution Server
Jabber Guest 10.5 - What’s New …
Android
Client, SDK
available
Chrome Integration
(Non-NPAPI)
64-bit support
New iOS8 Client
HD Send Enabled
64-bit client, SDK
UCCX/UCCE/PCCE
Certified
Other Updates: Calls to VCS-registered endpoints via CUCM
Mac OS Yosemite (10.10) support
Quality, security enhancements
NEW
Q4CY14/
Q1CY15
• Cisco-provided client in Google Play store
• Native Android SDK on DevNet(http://jabberdeveloper.com)
• Same capabilities as Jabber Guest for iOS• exception: HD video transmit
• Same 3rd-party device support as Jabber for Android 10.6 (details in slide notes)
Jabber Guest for Android (10.5.3)
Smartphones Tablets
New Architecture, Experience for Google Chrome
• Addresses Chrome dropping NPAPI plugins
• Required for 64-bit Chrome on Windows & Mac
• Chrome changes require using both an extension & a native “add-on”
• Video is in a native window automatically overlaid on top of the browser window
• SDK is also supported
Sales Department
Closer Look at 10.5 Chrome Experience – Windows & Mac
1Extension Install from
Chrome Web Store
Sales Department
2Add-on Install from
Jabber Guest
3Call
iOS and Mac Enhancements
HD Video Transmit from iOS
• Requires capable device
• iPhone 5s, 6, 6 Plus
• iPad Air, Air 2, Mini 2, Mini 3
iOS UI updated to better align with other Jabber clients
Jabber Guest 10.0 10.5
iOS 8 ✔
Mac OS X 10.10 ✔ ✔
64-bit Jabber Guest SDK & App for iOS
• As of Feb 1, 2015, new App Store apps must be 64-bit, built with iOS 8 SDK
• Existing apps have until June 1, 2015
• Jabber Guest SDK for iOS (10.5.4) supports these requirements
• Jabber Guest for iOS (10.5.4) in the App Store is also 64-bit
• SWIFT-based sample apps also provided with the SDK (10.5.4)
Jabber Guest 10.6 - What’s Next….
Other Features: BE6000 server support, e.g. BE6000M (M3), for 10.x
Enhancements to Web client accessibility
Quality, security enhancements
BFCP Screen
Share (Receive)
G.722 Wideband
Codec Support
Web UE Enhancements
Self View Control
NEW
Q2CY15
Screen Share to Jabber Guest 10.6From Jabber Windows/Mac & Video Endpoints with BFCP Sharing
• Web browsers on Windows, Mac
• Shared content replaces far-end video ... show/hide self, far-end view
• iOS & Android smartphones, tablets
• Swipe between shared content & far-end view … toggle self view in either … zoom/pan
Solution Components
Required Components - Foundation
Required Components
Guest User Experience
• Desktop browser
• Mobile application
• SDK (mobile app or Web-based)
Enterprise DMZ
• Cisco Expressway–E
(OR VCS–E)
• X8.2 or later
Enterprise Network
• Jabber® Guest virtual machine
• Cisco Expressway–C (or VCS–C) x8.2 or later
• Cisco Unified Communications Manager 8.6 or
later and registered endpoints
• Optional: MCU/Telepresence/Contact Center
Video Chat
Real-Time Expert HelpConsumer Experience
POLL #2What is your preferred deployment
model for Jabber Guest capabilities?
Example Call Flow
Expressway/VCS
Core X8.2+Expressway/VCS
Edge X8.2+
Home Internet DMZ Enterprise
Cisco® UCMJabber® Guest
HTTPS-based
call control (ROAP)
SIP
RTP/SRTP
STUN/TURN
• Serves up Javascript call control based on URL
• For mobile, uses Cisco® app from app store or integrates SDK into third-party app
• For laptop browsers, initiates H.264 add-on install as needed (Cisco or 3rd-party Web app)
• Converts HTTPS call request to SIP INVITE
Jabber Guest …
Guest Endpoint EXP-E EXP-C Guest Server CUCM CUCM Endpoint
STUN/TURN
BIND
TLS
HandshakeTLS
Handshake (Non-)TLS
Handshake
SIP (TLS)
SIP (TLS)SIP (TLS)
Call control HTTP(S)
(S)RTP
SRTP (S)RTP
(S)RTP
(S)RTP
Active
Call Button
Call Control HTTP(S)
TURN Relay Credentials via EXP API
Client has TURN relay credentials
Example Call Flow – BFCP Screen Share
Expressway/VCS
Core X8.2+Expressway/VCS
Edge X8.2+
Home Internet DMZ Enterprise
Cisco® UCMJabber® Guest
HTTPS-based
call control (ROAP)
SIP
RTP/SRTP – A/V
STUN/TURN
• Jabber Guest and the sharing endpoint negotiate BFCP via the existing signaling path during
call setup … includes BFCP-enabled MCUs
• Screen share is started and stopped via the BFCP path
• An additional RTP/SRTP stream is sent one way from the sharing endpoint to Jabber Guest
• Maximum bandwidth of all RTP/SRTP streams supported by Jabber Guest is 2000 Kbps
When a screen is shared to Jabber Guest, e.g. from Jabber for Windows …
RTP/SRTP - share
BFCP
Guest Endpoint EXP-E EXP-C Guest Server CUCM CUCM Endpoint
Jabber Guest Endpoint BFCP Negotiation
SIP (TLS)
SIP (TLS)
SIP (TLS)
Call Control HTTP(S)
advertise BFCP support
advertise BFCP support
(S)RTP(S)RTPSRTP
BFCP(start share)
BFCP(start share)BFCP
(start share)
NOT SUPPORTEDJabber Guest + VCS E/C X8.2+ without CUCM
VCS CVCS E
Home Internet DMZ Enterprise
Jabber Guest
HTTPS-based
call control (ROAP)
SIP
RTP/SRTP
STUN/TURN
Calls to VCS-registered Endpoints via CUCM
Expressway-C or
VCS-CExpressway-E or
VCS-E
Home Internet DMZ Enterprise
CUCM/SME
HTTP-based
call control (ROAP)
SIP
RTP/SRTP
STUN/TURN
Jabber Guest VCS-C
• Supports calls to VCS-registered endpoints where CUCM is in the call signaling path
• DOES NOT SUPPORT calls to VCS-registered endpoints when CUCM is not in the call path
Jabber Guest 10.5 …
Contact Center and Jabber Guest
Expressway CoreExpressway Edge
Home Internet DMZ Enterprise
Jabber®
Guest
• UCCE 10.0 in Remote Expert 1.9 CVD … PCCE 10.5
• UCCX 10.5 validated up to 100 sessions
• Video in Queue through MediaSense
• Rich video experience, including HD
Contact Center and Jabber® Guest …
UCCE/PCCE/UCCX
Cisco
UCM
MCU
Cisco UBE,
VXML-GW
MediaSense
HTTPS-basedcall control (ROAP)
SIP
RTP/SRTP
STUN/TURN
Using Jabber Guest with Cisco Context Service
CustomerContext Service
Customer-facing App Back End*
AgentE n t e r p r i s e
Jabber Guest virtual machine
UC Manager,
Business Edition
Expressway
CVP/UCCE,
PCCE, UCCX
1. Customer-facing app puts interaction data into CS
3. Call setup to contact centerusing Guest call link … interaction created in CS, data (POD ID) passed to CC
2
2
* could alternatively be on-prem
1
3
3
3Finesse
4
4
4
2. Customer-facing app, via its back end, gets unique Guest call link for the customer, e.g. using customer’s phone #, account ID or email as the identifier
4. Call routed to agent … POD ID passed to Finesse, loads customer/context data from CS
Expressway/VCS E Single NIC Deployment Model
Expressway/VCS CExpressway/VCS E
Home Internet DMZ Enterprise
Cisco® UCMJabber® Guest
HTTPS-based
call control (ROAP)
SIP
RTP/SRTP
STUN/TURN
• SIP call control is between Jabber Guest server and Expressway/VCS C
• When using NAT on the Internet-DMZ interface, Jabber Guest server remaps SDP from the
NAT IP to the Expressway/VCS E private IP
• Does not use Expressway/VCS traversal zone for media … see docs for firewall requirements
SINGLE NIC
Public IP
or
Private IPNAT IP
Expressway/VCS E Dual NIC Deployment Model
Expressway/VCS CExpressway/VCS E
Home Internet DMZ Enterprise
Cisco® UCMJabber® Guest
HTTPS-based
call control (ROAP)
SIP
RTP/SRTP
STUN/TURN
• SIP call control is between Jabber Guest server and Expressway/VCS E
• When using NAT on the Internet-DMZ interface, Jabber Guest server remaps SDP from the
NAT IP to the Expressway/VCS E external private IP
• Uses Expressway/VCS traversal zone for media … see docs for firewall requirements
DUAL NIC
Public IPe Private IPi
or
Private IPe Private IPiNAT IP
Requirements
• RAM: 4 GB
• CPU: 2 logical CPUs with
1 core per CPU
• Storage: 100 GB
• OS: Centos 6.5 64-bit
• VMware vSphere 5.x and
later
• See docs for more details,
e.g. server, CPU models
Jabber Guest Virtual
Machine (OVA)
Cisco TelePresence®
Expressway
Cisco Unified
Communications
Manager
Mobile Native
Support
Desktop Browser
Support
X8.2 or later 8.6 or later, incl BE6K
Use “Non-BE6000 UC”
requirements for co-
residency with BE6K, max
100 sessions supported
• iOS
iPhone 4S and later
iPad 2 and later
iOS 7.0 and later
• Android
Many devices, e.g.
Samsung Galaxy S series
See Release Notes for
devices & OS versions
• Windows
Vista SP2 and later *
Firefox 10+
IE 8+ (32-bit only)
Chrome 18+
• Mac
OS X 10.7 and later
Firefox 10+
Safari 5+
Chrome 18+
* Windows 10 support planned once it’s generally available
Configuration
Call Control and Media
• Typical production deployment
• Typically used in lab environment for basic testing before Expressway is introduced
Call Control and Media –SIP
• 5061 – SIP over TLS
• Send SIP signal to Expressway-C in Expressway single NIC deployment
• Send SIP signal to Expressway-E in dual NIC deployment
Call Control and Media –TURN Credentials
• Guest server requires admin credentials for Expressway-C to access TURN API to reserve TURN resource
Call Control and Media –TURN Server
Enter details of TURN server in the Cisco Jabber Guest environment
Call Control and Media –Static NAT
If Static NAT is in use on Expressway, you will need to enter IP NAT information on Cisco Jabber Guest admin interface
Troubleshooting Tips
• If Jabber Guest does not listen on port 5061 (if configured), restart tomcat …
Run this command … # service tomcat-as-standalone.sh restart
• Jabber Guest installs, and eth0 fails to start, delete the network interface file …
• Run this command … # rm /etc/udev/rules.d/70-persistent-net.rules
• Then reboot … # reboot
Clustering
Cluster
Standalone VM
Scalability, High Availability (HA) & Redundancy
• Scalability = 2000 concurrent sessions via standalone Guest VM
• Use a Standalone Guest VM or Cluster (for HA, redundancy)
• Cluster is 3 Guest VMs• Same scale as Standalone VM• Clusters are independent• Split cluster is not supported … use
separate clusters * • Guest cluster priority is set in
Expressway-C
• One standalone VM or cluster per Expressway/VCS cluster
• Setup and manage Guest cluster via VM CLI
Jabber Guest
Expressway/VCS C
Cluster
OR
Jabber GuestPrimary
Jabber GuestSecondary
Jabber GuestSecondary
Expressway/VCS E
* may require custom syncing of call URLs via Jabber Guest API
Jabber Guest Cluster
• On Guest: Set priority 1 to point at Jabber Guest PRIMARY node
• On Guest: Set priority 2 & 3 to each SECONDARY node
• On Expressway: Add Jabber Guest servers with associated priority
• On Expressway: Create zones for each Jabber Guest node
Administration Steps
Jabber Guest Cluster
• Jabber Guest can be administered from any node in the cluster
• It is recommended you use one server for administration to simplify troubleshooting
Data Replication
Data that replicates Data that does not replicate
Users Settings > Local SSL Certificate
Links Settings > Call Control and Media (Local)
Services > Passwords Logs
Settings > Links
Settings > Mobile
Settings > Secure SIP Trust Certificate
Settings > Call Control and Media
Jabber Guest Cluster
• Access Jabber Guest server via Root Access
• On Primary Node:
• Type “cluster initiate”
• You will be prompted for a cluster admin account. Be sure to remember these details, you will need them for the subsequent nodes to join the cluster
• Once completed, type “cluster status”
• Notice, this node is now “PRIMARY”
Nominating PRIMARY node
Jabber Guest Cluster
• Changes will not take affect until tomcat service has been restarted
• Type “service tomcat-as-standalone.sh restart”
Nominating PRIMARY node
Jabber Guest Cluster
• Move onto Root access on your second node
• Type “cluster join <IP or HOSTNAME of PRIMARY>”. This will erase all current configuration and copy the configuration from the PRIMARY node
• You will need to enter the cluster administrator credentials that you entered on the PRIMARY node
• Restart tomcat for changes to take affect
Nominating the first SECONDARY node
Jabber Guest Cluster
• Finally, move onto the third node. Again, type “cluster join <IP or HOSTNAME of PRIMARY>”
• Enter the cluster administration credentials
• This will complete the three node cluster …
Nominating the second SECONDARY node
Jabber Guest Cluster
• Finally, check the status of the cluster …
Nominating the second SECONDARY node
Jabber Guest Cluster
• Once all 3 node’s are members of the cluster, the admin must enable communication between Node B & C
• Before commands:
• On Node B, use command “cluster allow <NODE-C IP or hostname>”
• On Node C, use command “cluster allow <NODE-B IP or hostname>”
• After commands:
Communication between SECONDARY Node’s B & C
Jabber Guest Cluster
Once a cluster has been configured, be sure to check “Call Control and Media (Local)” on each server, and ensure the correct FQDN is on each node, respectively
Node FQDN’s
Call URL Management
Call URL Configuration
• Administrator configures URL
• URL string, call destination, caller name, active time, etc.
• Some examples …
• URL dialing: https://example-
jabberg.com/call/[email protected]
• 8-digit domain name: https://example-
jabberg.com/call/[email protected]
• Custom: https://example-
jabberg.com/call/ServiceDepartment
• “Jabber Guest API” is the server-side RESTful API for
programmatic URL management
• “Ad-hoc” calling can be used for a more open approach
Jabber Guest API
• Restful API provided to create, update, delete call URL’s, as well as retrieve information about links
• Script for bulk management of links using this API is available on DevNet
• The API can return or retrieve data in either application/json or application/xml
• API use is supported at a rate of once per second … support for database size of 20,000 call URLs
Resource Description
GET https://[IP address]/cjg-api/rest/links/ Returns a list of links and the properties for each
link. Parameters:
• limit—The number of items to limit the list to.
• offset—The offset into the full result list to start
this list at.
Examples of limit and offset for paging links:
• Gets the first 10 links (page 1): /cjg-
api/rest/links?limit=0&offset=10
• Gets the next 10 links (page 2): /cjg-
api/rest/links?limit=10&offset=10
GET https://[IPaddress]/cjg-
api/rest/links/[linkObjectId]
Takes a linkObjectID and returns the object
properties for the specified link.
Jabber Guest API (cont.)
POST https://[IPaddress]/cjg-api/rest/links/ Create a new link
Content-Type: application/json
Body: {“isEnabled”: true,
“requestPath”: “AnyValueYouWant”,”destination”:
The requestPath value must be unique. You also need
to pass in the isEnabled flag or the link will be disabled
Resulting Link:
https://[server]/call/AnyValueYouWant
PUT https://[IP address]/cjg-api/rest/links/[linkObjectId] Update Link
Content-Type: application/json
Body: { “is Enabled”: true,
“requestPath”: “AnyValueYouWant”,
“destination” [email protected] }
The requestPath value must be unique. You also need
to pass in the isEnabled flag or the link will be disabled.
Resulting link:
https://[server]/call/AnyValueYouWant
DELETE https://[IP address]/cjg-
api/rest/links/[linkObjectId]
Delete the specified link.
Jabber Guest API (cont.)
Property Description
linkObjectID Unique identifier for a link
isEnabled The status of the link. This flag must be passed in
when creating or updating a link or the link will be
disabled.
requestPath The part of the link after /call. For example,
https://[linkPrefix][requestPath]. Must be unique.
destination DN or URI that is called when a user clicks on the
link. Destination is required.
displayName The name displayed on the client when placing a
call using this link. Optional.
callerName The name displayed on the destination endpoint
in the enterprise when a call is placed using this
link. Optional.
Property Description
callerAlias The Caller ID displayed on the destination endpoint
in the enterprise when a call is placed using this
link. Optional.
validAfter The date and time when a link becomes active.
Default value: If left blank, the link can be used
immediately to route calls. Optional.
validBefore The date and time when a link expires, and can no
longer be used to route calls. If left blank, the link
never expires. Optional.
linkPrefix The part of the link before the request path.
linkPrefix is the same for all links in a cluster.
userObjectId The user responsible for creating the link.
Default: If left blank, defaults to the logged-in user.
API in Action
Get Links Create Link Lookup Link Delete Link
Jabber Guest SDK for Web
Simple to Embed Video in Web Apps
• Jabber Guest functionality is exposed on a web page by embedding the application widget
• The widget can be embedded using an iFrame, e.g. …<div>
<iframe id="jabberg" src="https://jabberguest.mycompany.com/call/1000?widget=true">
</iframe>
</div>
• Widget displays error messages and responds to events, e.g. use an “onmessage” listener in the parent window
• Navigating away from the active call page will end the call – to prevent a user accidently closing an active call, Jabber Guest will first prompt the user to confirm the close
• There is a widget sizing tool located at … https://<server>/call/widget-size.html
Simple to Embed Video (cont.)
• Hyperlink under “join” button may be seen below.
• Notice “?widget-true”. Video only widget, i.e. no additional web page
POLL #3
What integration(s) do you have or are
you planning with Jabber Guest?
Jabber Guest SDK for iOS
Overview of Jabber SDK for iOS
Jabber Guest SDK for iOS includes …
• An iOS framework that packages libraries and available APIs
• Sample projects that help you walk through the supported integration scenarios
• Documentation that includes tutorials and API references
iOS Integration Scenario – Simplest ApproachHigh Level: Use Pre-packaged View Controller (1/2)
The SDK provides a view controller class which handles all Jabber Guest functionality for you. You just need to instantiate the view controller and segue to it from your own UI.
Call
Live Video
Support
Your app’s UI
Live Video
Support
Your app’s UI
CJGuestCallViewController
Preview
In Call
View
iOS Integration Scenario – Simplest ApproachHigh Level: Use Pre-packaged View Controller (2/2)
• Required Classes
Class Name Description
CJGuestCallViewController The high level Jabber Guest view controller that controls the entire call
CJGuestViewControllerDelegate Protocol that handles events when end call / More button was pressed, or
Invalid certificate was received from Jabber Guest server
Name Description
NSString * serverName Jabber Guest server address
NSString * toURI SIP URI of the remote end point
Name Description
callFinishedForCallController called when the end call button was pressed or disconnect occurs
moreButtonPressedForCallController called when the More button was pressed
• Properties that have to be set before segueing
• Protocol methods need to be implemented before initiating the segue
• Set its delegate
iOS Integration Scenario – Greater CustomizationLow Level: Custom Views (1/2)
Instead of letting the view controller take care of everything for you, you can use the main Jabber Guest class together with the pre-packaged view subcomponents to build your own custom solution.
Your app’s UI Live
Video
Support
Remote
Video:
remoteView
Self Video:
selfView
Call Bar View:
CJGuestCallBar
View
iOS Integration Scenario – Greater CustomizationLow Level: Custom Views (2/2)
• Required Classes
Class Name Description
CJGuestCall A singleton, represents the lifecycle of a single entire call.
CJGuestCallBarView call bar customized view
CJGuestCallBarViewDelegate protocol that handles event when a button on the view was pressed
Name Description
Class method sharedInstance this method returns the active call instance
Instance methods startCall call this method to establish a call
endCall call this method to end the call
Properties NSString * serverName Jabber Guest server address
NSString * toURI SIP URI of the remote end point
IBOutlet UIImageView * remoteView represents the called party’s video during an active call
IBOutlet UIImageView * selfView represents the local user’s transmitted video during an active call
• Key methods and properties in CJGuestCall
• Key notification event to registerCJGuestStatChangeNotification: Register for this event to be notified when the call state changes
User Activation of Cisco H.264 AVC in 3rd-party iOS Apps
• To be covered by Cisco’s H.264 license &
royalty payments to MPEG-LA, third parties
must use the SDK for iOS/Android “activation”
mechanism in their apps
• Users must “Activate” one time before calls
will work
• Third parties that use the SDK for iOS in their
apps without the Cisco activation mechanism
will need to license H.264 from MPEG-LA
and pay them royalties
Third-party App
Calls Activated in Third-party App
Jabber Guest SDK for Android
Jabber Guest SDK for Android includes …
• An Android library that wraps all available Jabber Guest APIs
• A couple of sample projects that help you walk through the supported integration scenarios
• Documentation that includes tutorials and API references
What does the SDK for Android offer?
The SDK provides an activity (JabberGuestCallActivity) using two pre-packaged fragments (PreviewFragment, CallFragment) that combine typically needed views for you based on call state.
JabberGuestCallActivity
Android Integration Scenarios – Simplest ApproachHigh Level: Use Activity (1/3)
Your app’s UI
Live Video support
Call
Your app’s UI
Live Video support
Preview
In Call
View
Android Integration Scenarios – Simplest ApproachHigh Level: Use Activity (2/3)
• Required Classes
Class Name Description
JabberGuestCall the main singleton class that consolidates the lifecycle and interaction with a Jabber Guest call
JabberGuestCallActivity 1 a packaged Android activity that automatically controls SDK fragments (PreviewFragment or
CallFragment) shown based on current conditions of the call … see docs for attributes, etc
Name Description
createInstance create and return an instance
getInstance get an existing instance
createUri create and return a Uri in the format that createInstance expects
RegisterReceiver register a given BroadcastReceiver to be notified when supported events occur
registerInvalidCertificateHandler 2 registers an implementation of JabberGuestInvalidCertificateCallback interface
• Key static public member methods in JabberGuestCall class
1 Always associated with an instance of JabberGuestCall2 Note that if you do not register an implementation of this interface, if the JabberGuestCall instance encounters a certificate error the instance will
reject the invalid certificate and terminate any pending call immediately.
Android Integration Scenarios – Simplest ApproachHigh Level: Use Activity (3/3)
• Key intents sent to registered BroadcastReceivers
Name Description
start initiate the call to the toUri specified in the createInstance method
end end this call and release all resources associated with this instance
registerContext provides a context to display dialog windows when necessary
acceptInvalidCertificate accept the invalid certificate
rejectInvalidCertificate reject the invalid certificate
• Key public member methods in JabberGuestCall class
• Key states of a JabberGuestCall instance
Name Description
State enum type: { GuestCallStateDisconnected, GuestCallStateConnecting,
GuestCallStateConnected, GuestCallStateDisconnecting }
Name Description
ACTION_INSTANCE_AVAILABLE sent when a new instance of JabberGuestCall has been created.
ACTION_CALL_STATE_CHANGED sent when a state change occurs in a JabberGuestCall instance.
ACTION_CALL_CONTROL_EVENT sent when a new call control event is generated in a JabberGuestCall instance.
ACTION_CALL_ERROR_EVENT sent when an error event occurs in JabberGuestCall instance.
Your app’s UI Live Video
Support
Android Integration Scenarios – Greater CustomizationLow Level: Use Custom Views (1/3)
Instead of using fragments, you can take the subcomponent themselves, like the RemoteView, SelfView, and CallBarView, to create your own custom solution.
Self Video:
SelfView
Remote Video:
RemoteView
Call Bar:
CallBarView
Android Integration Scenarios – Greater CustomizationLow Level: Use Custom Views (2/3)• Required Classes
Class Name Description
JabberGuestCall the main singleton class that consolidates the lifecycle and interaction with a Jabber Guest call.
PreviewView a view that represents the local user's video before a call is placed
RemoteView a view that represents the called party's video during an active call
CallBarView a view that represents controls that can alter the functionality of an active call
SelfView a view that represents the local user's transmitted video during an active call.
KeypadView a view that represents a telephone keypad during an active call
Name Description
createInstance create and return an instance
getInstance get an existing instance
createUri create and return an Uri in the format that createInstance expects.
RegisterReceiver register a given BroadcastReceiver to be notified when supported events occur
registerInvalidCertificateHandler 1 registers an implementation of JabberGuestInvalidCertificateCallback interface
• Key static public member methods in JabberGuestCall class
1 Note that if you do not register an implementation of this interface, if the JabberGuestCall instance encounters a certificate error the instance will reject
the invalid certificate and terminate any pending call immediately.
Android Integration Scenarios – Greater CustomizationLow Level: Use Custom Views (3/3)
• Key intents sent to registered BroadcastReceivers
Name Description
ACTION_INSTANCE_AVAILABLE sent when a new instance of JabberGuestCall has been created.
ACTION_CALL_STATE_CHANGED sent when a state change occurs in a JabberGuestCall instance.
ACTION_CALL_CONTROL_EVENT sent when a new call control event is generated in a JabberGuestCall instance.
ACTION_CALL_ERROR_EVENT sent when an error event occurs in JabberGuestCall instance.
Name Description
start initiate the call to the toUri specified in the createInstance method
end end this call and release all resources associated with this instance
registerContext provides a context to display dialog windows when necessary
acceptInvalidCertificate accept the invalid certificate
rejectInvalidCertificate reject the invalid certificate
getState Retrieve the current state of this JabberGuestCall instance
• Key public member methods in JabberGuestCall class
• Key states of a JabberGuestCall instance
Nam
e
Description
State enum { GuestCallStateDisconnected,GuestCallStateConnecting,GuestCallStateConnected,GuestCallStateDisconnecting }
• Key intents sent to registered BroadcastReceivers
SDK in Action …
DEVNET-2011 (Thu, 11:30)Jabber Guest SDK for Android Live Coding Tutorial
Conclusion
Licensing and Availability
Licensing
• Guests – no cost
• Enterprise
• concurrent session licensing @ $0 … rights to use all Jabber Guest software & SDKs
• Expressway rich-media sessions (RMS) required for firewall/NAT traversal
• One RMS required on the E, one RMS required on the C 2 x $750 = $1500 list
• For VCS, traversal licenses are analogous to Expressway RMS’s
Availability
• Global
• Available since June, 2014
Summary
Key Take Away – Imagine the possibilities
• Expand your business reach and cut costs
• Enhance customer interactions
• Make experts easy to find
• Improve interactions with partners, suppliers
Additional Resources
• Customers: Visit Cisco.com/Go/JabberGuest
• Developers: Visit Jabberdeveloper.com
• EAP/Beta: Via Customer Connection Program
Complete Your Online Session Evaluation
Don’t forget: Cisco Live sessions will be available for viewing on-demand after the event at CiscoLive.com/Online
• Give us your feedback to be entered into a Daily Survey Drawing. A daily winner will receive a $750 Amazon gift card.
• Complete your session surveys though the Cisco Live mobile app or your computer on Cisco Live Connect.
Continue Your Education
• Visit the World of Solutions for demos• Jabber area• Customer Experience area
• Visit the DevNet Zone for … • Learning Labs• Hackathon• DEVNET-1121 … Customizing Cisco Video Access for Guests• DEVNET-2011 … Jabber Guest - Android SDK Live Coding Tutorial• Sandbox demo pod
• Visit DevNet online for on-going developer resources … http://jabberdeveloper.com
• Attend related sessions …• LABCOL-2400 … Jabber Guest Implementation with Expressway• TECCOL-2888 … Designing and Deploying A Secure Enterprise Edge Solution for Collaboration • BRKUCC-2801 … Cisco Expressway at the Collaboration Edge Design Session
Cisco DevNet – Cisco’s Developer Program
• All of the developer resources you need … in one central location
• Comprehensive API Index
• Forums
• Developer Sandbox
• FAQs
• Access to support, and more
• The interactive portal makesfinding the information and support fast and easy
• Register at https://developer.cisco.com
Cisco Customer Connection ProgramConnect with Cisco & Peers
17,000+
Members
• Influence Collaboration product direction
• Access to early adopter & beta trials
• Contribute to advisory groups
• Monthly technical & roadmap briefings
• Exclusive perks at Cisco Live
– Collaboration Cloud Fusion: Vision & Architecture (speaker: Jonathan Rosenberg, VP/CTO CTG)
– 5 NDA Roadmap Sessions + Microsoft Interop
– Q&A Open Forum with Product Management
– Reserved seats at Work Human Innovation Talk (Wed. 3:30 – 4:30)
Visit the Customer Connection Program -
Collaboration zone in the Cisco Campus
Join the Customer Connection program
Explore the Collaboration community
New CCP members get a thank-you gift
Thank you
The SDK provides two pre-packaged fragments that combine relevant views for you, which can be used directly if greater customization is needed versus using the “high-level” approach.
PreviewFragment CallFragment
Android Integration ScenariosMedium Level: Use Pre-packaged Fragments (1/3)
Your app’s UI
Live Video support
Call
Your app’s UI
Live Video support
Preview
In Call
View
Android Integration ScenariosMedium Level: Use Pre-packaged Fragments (2/3)
• Required Classes
Class Name Description
JabberGuestCall the main singleton class that consolidates the lifecycle and interaction with a Jabber Guest call
PreviewFragment 1 a packaged collection of visual components allowing developers to show a SelfView with a call button
CallFragment 1 a packaged collection of visual components working together to give developers a quick and easy way
to show a two-way video call. It includes a RemoteView, SelfView, and CallBarView
Name Description
createInstance create and return an instance
getInstance get an existing instance
createUri create and return a Uri in the format that createInstance expects
RegisterReceiver register a given BroadcastReceiver to be notified when supported events occur
registerInvalidCertificateHandler 2 registers an implementation of JabberGuestInvalidCertificateCallback interface
• Key static public member methods in JabberGuestCall class
1 Always associated with an instance of JabberGuestCall2 Note that if you do not register an implementation of this interface, if the JabberGuestCall instance encounters a certificate error the instance will
reject the invalid certificate and terminate any pending call immediately.
Android Integration ScenariosMedium Level: Use Pre-packaged Fragments (3/3)
• Key intents sent to registered BroadcastReceivers
Name Description
start initiate the call to the toUri specified in the createInstance method
end end this call and release all resources associated with this instance
registerContext provides a context to display dialog windows when necessary
acceptInvalidCertificate accept the invalid certificate
rejectInvalidCertificate reject the invalid certificate
• Key public member methods in JabberGuestCall class
• Key states of a JabberGuestCall instance
Name Description
State enum type: { GuestCallStateDisconnected, GuestCallStateConnecting,
GuestCallStateConnected, GuestCallStateDisconnecting }
Name Description
ACTION_INSTANCE_AVAILABLE sent when a new instance of JabberGuestCall has been created.
ACTION_CALL_STATE_CHANGED sent when a state change occurs in a JabberGuestCall instance.
ACTION_CALL_CONTROL_EVENT sent when a new call control event is generated in a JabberGuestCall instance.
ACTION_CALL_ERROR_EVENT sent when an error event occurs in JabberGuestCall instance.
Collaboration Cisco Education OfferingsCourse Description Cisco Certification
CCIE Collaboration Advanced Workshop (CIEC) Gain expert-level skills to integrate, configure, and troubleshoot complex
collaboration networks
CCIE® Collaboration
Implementing Cisco Collaboration Applications
(CAPPS)
Understand how to implement the full suite of Cisco collaboration
applications including Jabber, Cisco Unified IM and Presence, and Cisco
Unity Connection.
CCNP® Collaboration
Implementing Cisco IP Telephony and Video
Part 1 (CIPTV1)
Implementing Cisco IP Telephony and Video
Part 2 (CIPTV2)
Troubleshooting Cisco IP Telephony and Video
(CTCOLLAB)
Learn how to implement Cisco Unified Communications Manager, CUBE,
and audio and videoconferences in a single-site voice and video network.
Obtain the skills to implement Cisco Unified Communications Manager in a
modern, multisite collaboration environment.
Troubleshoot complex integrated voice and video infrastructures
CCNP® Collaboration
Implementing Cisco Collaboration Devices
(CICD)
Implementing Cisco Video Network Devices
(CIVND)
Acquire a basic understanding of collaboration technologies like Cisco Call
Manager and Cisco Unified Communications Manager.
Learn how to evaluate requirements for video deployments, and implement
Cisco Collaboration endpoints in converged Cisco infrastructures.
CCNA® Collaboration
For more details, please visit: http://learningnetwork.cisco.com
Questions? Visit the Learning@Cisco Booth or contact [email protected]