SlideShare a Scribd company logo
How to embed
Messaging andVideo
in your apps
API Evangelist @CiscoDevNet
@SteveSfartz
Stève Sfartz
DEMOS
AND CODE
INTENSE
Embedding Messages and Video Calls in your apps
/Cisco/DevNet/SteveSfartz
 API Evangelist @CiscoDevNet
 Cisco Spark &Tropo APIs
 NodeJS mainly, a bit of #golang
 France and all around Europe
 hosted @PIRL – Paris Innovation
Center & Research Lab
 twitter://@SteveSfartz
 github://ObjectIsAdvantag
“vision without
execution is
hallucination”
-- Thomas Edison
stsfartz@cisco.com
@SteveSfartz
so what’s on the menu
• Tour the potential ofVideo Calls
• Messaging from code
• Calling from code
• Demos & tech details
ENGAGEMENT
TIME
Ad Hoc
Meetings
Furious
Chat
Occasional
Messaging
REALTIME
Scheduled
Meetings
Current Workstyles Use Multiple Modes
ENGAGEMENT
TIME
Optimizing the Space between the Spaces
REALTIME
Occasional
Messaging
Scheduled
Meetings
Ad Hoc
Meetings
Furious
Chat
How do I escalate from chat
to a live meeting without killing our
momentum?
We’re on a roll in this meeting, if only I
had a little more time to finish my thoughts.
I need a few more
answers before I can
assign the action items
Where did that list of
important reference
articles end up?
ENGAGEMENT
TIME
Continuous Collaboration
REALTIME
Occasional
Messaging
Ad Hoc
Meetings
Furious
Chat
Scheduled
Meetings
Embedding Messages and Video Calls in your apps
Secure, scalable, continuous collaboration
Cisco Spark Platform
Apps and
Endpoints
On Premise Services Cloud Based Services
Single Experience Across Devices & Applications
Apps and
Endpoints
Every Pocket , Desk, Room
Demo
 Cisco Spark Clients
 DX80
?! Now what if your app could get
these Messages,Audio/Video
super powers ?!
Cisco Spark ‘Free’ plan
 Web, Desktop, Mobile clients
 Illimited messaging & spaces
 Up to 3 participants in a Call
 Developer access to Cisco Spark APIs
https://developer.ciscospark.com
Cisco Spark REST API
14
GET
POST
DELETE
PUT
/Rooms
/Memberships
/Messages
/Webhooks
/People
/Teams
developer.ciscospark.com/
Cisco Spark for Developers
API
token
Cisco Spark for Developers
API
developer
bot
oauth
jwt
token
Demo
 REST API
 Automation, ChatOps
Cisco Spark
Cloud Service
1. interacts in spaces
via a CiscoSpark client
Cisco Spark User
Your Bot code running
On-premise or on a PublicCoud
2. posts notifications to
registeredWebHooks
Publicly accessibleAPIs
3. posts messages
as notifications fly in
Bot Architecture: Webhooks
 Register events your
bot is interested to
listened to
 Messages / created
 Memberships / created
 As events happen in
spaces, receive
notifications
Demo
 REST API
 Bot (on Glitch)
‘What is takes to code a bot’
Cisco Spark for Developers
API
developer
bot
oauth
jwt
token
Cisco Spark for Developers
developer
bot
oauth
guest
token REST API
SDKs
Browsers,
iOS, Android
all Spark
features
Demo
 OAuth grant flow
Step 3 – App Requests AccessToken
duittenb
With the received Auth Code, app.html does a HTTPS POST to spark
with the client ID & secret to request the AccessToken.
HTTPS POST send :
https://api.ciscospark.com/v1/access_token
grant_type = authorization_code
redirect_uri = http://myserver.com/app.html
code = auth code…
client_id = oif8we28382u398u2938u
client_secret = hf33we28382uf8we2838Zx
http://myserver.com
Step 4 – Spark Response
HTTP POST response
{
"access_token" :"ZDI3MGEyYzQtNmFlN0NDNhLWFlN",
"expires_in” :1209600, //seconds
"refresh_token":"MDEyMzQ1Njc4OTAxMjM0NTY3ODkw",
"refresh_token_expires_in":7776000 //seconds
}
duittenb
Spark returns the AccessToken to the Application
Some applications may store this access token in a secure way so
it can be re-used when a user logs into the Application
http://myserver.com
Cisco Spark for Developers
developer
bot
oauth
jwt
token REST API
SDKs
Browsers,
iOS, Android
all Spark
features
Spark SDKs
Calling
• Calling
• Call Events
Specs
iOS SDK - swift
• iOS 9 and 10
Browsers SDK - WebRTC
• Chrome - current
• Firefox - current
CODECS
• H264
• Opus
Call &
Media Controls
• Call Control
• AudioControl
• VideoControl
Other
Functions
• Persistent
registration
• Feedback
• Push
notifications
Use Case: Retail
https://developer.ciscospark.com/sdk-for-browsers.html
https://ciscospark.github.io/spark-js-sdk/api
Demo
 OAuth with Spark SDK
Web Dialer from FireFox
https://webdialer.chhab.rocks
Embedding Messages and Video Calls in your apps
Each space also has a SIP address
https://developer.ciscospark.com/endpoint-rooms-roomId-get.html
Cisco Spark Client toWidget
Recents
Space
Space Widget
• Audio & video 1:1 calling
• Space & 1:1 messaging
• Markdown support
• File sharing
• Message flags and ability to
delete messages
• Read receipts
• Persistent chat
Demo
 SpaceWidget
Embedding the Space React component
Cisco Spark for Developers
developer
bot
oauth
jwt
token REST API
SDKs
Browsers,
iOS, Android
all Spark
features
What if my users are not on Spark ?
Cisco
Spark
Anyone Everywhere
- spark user
- guest
- spark user,
spaces, devices
- SIP addresses
Guest mode
• Create a Developer Guest organisation
• Get issued a OrgId & Secret
• Dynamically register users
• Get JWT tokens for these users
• Access Cisco Spark APIs & SDKs
Gest mode deep dive
https://jwt.io/
Create a user JWT token from code
API access token from the user JWT token
POST https://api.ciscospark.com/v1/jwt/login
Authorization: <jwt-user-token>
{
"token": "eyJhbGci.eyNlX3R5cGU.I4zgVxATOH9Y"
"expiresIn": 21599
}
Demo
 Guest mode
Secure, scalable, extensible Conversations
• Desktop, Mobile, Web clients
• APIs & SDKs to extend the platform
• API tokens, Oauth, JWT
• Key Management Server for end to end security
• WebRTC,Voice over IP
• SIP addresses
Cisco Spark Resources
 developer.ciscospark.com
 awesome-ciscospark
 DevNet learning labs
https://learninglabs.cisco.com/tracks/collab-cloud
Get empowered at
 Learnings labs
 Fog computing
 Sandboxes
ready to use
Kubernetes cluster
for DevNet members
Other talks at CodeMotion
today 14:10: Embedding Cisco Spark and Location
applications (ESRI) into business processes
saturday 12:30: Microservices and containers
networking: Contiv, deep dive and demo
Thank you
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your apps

More Related Content

PDF
Xamarin v.Now
PDF
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
PPTX
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
PDF
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
PDF
Samsung Indonesia: Tizen Web Apps
PDF
Java Cloud and Container Ready
PPTX
Evolution of VS code Java ecosystem
PDF
5 Ways to Get Top Mobile App Developer Talent for Your Open APIs
Xamarin v.Now
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...
Samsung Indonesia: Tizen Web Apps
Java Cloud and Container Ready
Evolution of VS code Java ecosystem
5 Ways to Get Top Mobile App Developer Talent for Your Open APIs

What's hot (20)

PPTX
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
PPTX
Intel XDK in Brief
PPTX
Tizen Native Application Development with C/C++
PPTX
Mobile Web Apps and the Intel® XDK
PPTX
An overview of mobile html + java script frameworks
PPTX
Crosswalk and the Intel XDK
PPTX
INTEL XDK
PDF
Spark: jsFiddle Meets Salesforce Lightning
PDF
Samsung Indonesia: Tizen Native App
PDF
Spark: jsFiddle Meets Salesforce Lightning
PDF
Ionic Native: Native-powered apps, without the hassle
PPTX
Wikipedia Mobile App with PhoneGap
PPTX
Firefox operating system
PPTX
App forum2015 London - Building RhoMobile Applications with Ionic
PPTX
DevNetCreate Workshop - build a react app - React crash course
PDF
Android chat in the cloud
PDF
Why Streethawk re-wrote ibeacon handling on Android
PDF
Revue des annonces WWDC2015
PDF
From Android NDK To AOSP
PDF
A Journey to Improve Infrastructure Compliance With InSpec
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Intel XDK in Brief
Tizen Native Application Development with C/C++
Mobile Web Apps and the Intel® XDK
An overview of mobile html + java script frameworks
Crosswalk and the Intel XDK
INTEL XDK
Spark: jsFiddle Meets Salesforce Lightning
Samsung Indonesia: Tizen Native App
Spark: jsFiddle Meets Salesforce Lightning
Ionic Native: Native-powered apps, without the hassle
Wikipedia Mobile App with PhoneGap
Firefox operating system
App forum2015 London - Building RhoMobile Applications with Ionic
DevNetCreate Workshop - build a react app - React crash course
Android chat in the cloud
Why Streethawk re-wrote ibeacon handling on Android
Revue des annonces WWDC2015
From Android NDK To AOSP
A Journey to Improve Infrastructure Compliance With InSpec
Ad

Similar to Embedding Messages and Video Calls in your apps (20)

PPTX
Coding 102 REST API Basics Using Spark
PPTX
Cisco Spark the Industry Challenge
PPTX
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
PPTX
Rome 2017: Building advanced voice assistants and chat bots
PPTX
DevNet Express - Spark & Tropo API - Lisbon May 2016
PPTX
DevNet 1056 WIT Spark API and Chat Bot Workshop
PDF
IoT to Human interactions - Stève Sfartz - Codemotion Milan 2016
PDF
Embed Spark calling SDK in Your App - Olivier PROFFIT - Cisco Live Berlin 2017
PDF
Build advanced Voice Assistants and Chat Bots - Stève Sfartz - Codemotion Mil...
PPTX
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
PPTX
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
PPTX
How to Build Advanced Voice Assistants and Chatbots
PPTX
DeveloperWeek2018 - Let's Build a Chatbot
PPTX
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
PPTX
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
PPTX
Cisco Spark and Tropo and the Programmable Web
PPTX
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
PPTX
Let's Build a Chatbot
PPTX
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
PDF
Collaboration d’équipe de nouvelle génération (Partie 1 de 2)
Coding 102 REST API Basics Using Spark
Cisco Spark the Industry Challenge
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Rome 2017: Building advanced voice assistants and chat bots
DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet 1056 WIT Spark API and Chat Bot Workshop
IoT to Human interactions - Stève Sfartz - Codemotion Milan 2016
Embed Spark calling SDK in Your App - Olivier PROFFIT - Cisco Live Berlin 2017
Build advanced Voice Assistants and Chat Bots - Stève Sfartz - Codemotion Mil...
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
How to Build Advanced Voice Assistants and Chatbots
DeveloperWeek2018 - Let's Build a Chatbot
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Cisco Spark and Tropo and the Programmable Web
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Let's Build a Chatbot
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
Collaboration d’équipe de nouvelle génération (Partie 1 de 2)
Ad

More from Cisco DevNet (20)

PDF
DEVNET-2138 - Managing OpenAPI Documents at Scale - clus24.pdf
PPTX
18 facets of the OpenAPI specification - Cisco Live US 2023
PDF
The 12 facets of the OpenAPI standard.pdf
PPTX
the 12 facets of OpenAPI
PPTX
Webex APIs for Administrators - CL20B - DEVNET-2610
PPTX
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
PPTX
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
PDF
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
PDF
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
PPTX
Javascript Essentials - Cisco Live Barcelona 2019
PDF
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
PPTX
Meeting rooms are talking. Are you listening
PPTX
Meeting rooms are talking! are you listening?
PDF
Emulators as an Emerging Best Practice for API Providers
PPTX
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
PPTX
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
PPTX
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
PPTX
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
PPTX
BotCommons: Metadata for Bots - Devoxx 2017
PPTX
Phone Communications in Javascript with Tropo Serverless
DEVNET-2138 - Managing OpenAPI Documents at Scale - clus24.pdf
18 facets of the OpenAPI specification - Cisco Live US 2023
The 12 facets of the OpenAPI standard.pdf
the 12 facets of OpenAPI
Webex APIs for Administrators - CL20B - DEVNET-2610
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Javascript Essentials - Cisco Live Barcelona 2019
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
Meeting rooms are talking. Are you listening
Meeting rooms are talking! are you listening?
Emulators as an Emerging Best Practice for API Providers
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
BotCommons: Metadata for Bots - Devoxx 2017
Phone Communications in Javascript with Tropo Serverless

Recently uploaded (20)

PPTX
Tartificialntelligence_presentation.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Encapsulation theory and applications.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Getting Started with Data Integration: FME Form 101
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
Machine Learning_overview_presentation.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Network Security Unit 5.pdf for BCA BBA.
Tartificialntelligence_presentation.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
cloud_computing_Infrastucture_as_cloud_p
Encapsulation theory and applications.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
SOPHOS-XG Firewall Administrator PPT.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
A comparative analysis of optical character recognition models for extracting...
Getting Started with Data Integration: FME Form 101
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Group 1 Presentation -Planning and Decision Making .pptx
Spectroscopy.pptx food analysis technology
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Machine Learning_overview_presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
OMC Textile Division Presentation 2021.pptx
A Presentation on Artificial Intelligence
Network Security Unit 5.pdf for BCA BBA.

Embedding Messages and Video Calls in your apps

  • 1. How to embed Messaging andVideo in your apps API Evangelist @CiscoDevNet @SteveSfartz Stève Sfartz DEMOS AND CODE INTENSE
  • 3. /Cisco/DevNet/SteveSfartz  API Evangelist @CiscoDevNet  Cisco Spark &Tropo APIs  NodeJS mainly, a bit of #golang  France and all around Europe  hosted @PIRL – Paris Innovation Center & Research Lab  twitter://@SteveSfartz  github://ObjectIsAdvantag “vision without execution is hallucination” -- Thomas Edison [email protected] @SteveSfartz
  • 4. so what’s on the menu • Tour the potential ofVideo Calls • Messaging from code • Calling from code • Demos & tech details
  • 6. ENGAGEMENT TIME Optimizing the Space between the Spaces REALTIME Occasional Messaging Scheduled Meetings Ad Hoc Meetings Furious Chat How do I escalate from chat to a live meeting without killing our momentum? We’re on a roll in this meeting, if only I had a little more time to finish my thoughts. I need a few more answers before I can assign the action items Where did that list of important reference articles end up?
  • 9. Secure, scalable, continuous collaboration Cisco Spark Platform Apps and Endpoints On Premise Services Cloud Based Services Single Experience Across Devices & Applications Apps and Endpoints
  • 10. Every Pocket , Desk, Room
  • 11. Demo  Cisco Spark Clients  DX80
  • 12. ?! Now what if your app could get these Messages,Audio/Video super powers ?!
  • 13. Cisco Spark ‘Free’ plan  Web, Desktop, Mobile clients  Illimited messaging & spaces  Up to 3 participants in a Call  Developer access to Cisco Spark APIs https://developer.ciscospark.com
  • 14. Cisco Spark REST API 14 GET POST DELETE PUT /Rooms /Memberships /Messages /Webhooks /People /Teams developer.ciscospark.com/
  • 15. Cisco Spark for Developers API token
  • 16. Cisco Spark for Developers API developer bot oauth jwt token
  • 17. Demo  REST API  Automation, ChatOps
  • 18. Cisco Spark Cloud Service 1. interacts in spaces via a CiscoSpark client Cisco Spark User Your Bot code running On-premise or on a PublicCoud 2. posts notifications to registeredWebHooks Publicly accessibleAPIs 3. posts messages as notifications fly in Bot Architecture: Webhooks  Register events your bot is interested to listened to  Messages / created  Memberships / created  As events happen in spaces, receive notifications
  • 19. Demo  REST API  Bot (on Glitch) ‘What is takes to code a bot’
  • 20. Cisco Spark for Developers API developer bot oauth jwt token
  • 21. Cisco Spark for Developers developer bot oauth guest token REST API SDKs Browsers, iOS, Android all Spark features
  • 23. Step 3 – App Requests AccessToken duittenb With the received Auth Code, app.html does a HTTPS POST to spark with the client ID & secret to request the AccessToken. HTTPS POST send : https://api.ciscospark.com/v1/access_token grant_type = authorization_code redirect_uri = http://myserver.com/app.html code = auth code… client_id = oif8we28382u398u2938u client_secret = hf33we28382uf8we2838Zx http://myserver.com
  • 24. Step 4 – Spark Response HTTP POST response { "access_token" :"ZDI3MGEyYzQtNmFlN0NDNhLWFlN", "expires_in” :1209600, //seconds "refresh_token":"MDEyMzQ1Njc4OTAxMjM0NTY3ODkw", "refresh_token_expires_in":7776000 //seconds } duittenb Spark returns the AccessToken to the Application Some applications may store this access token in a secure way so it can be re-used when a user logs into the Application http://myserver.com
  • 25. Cisco Spark for Developers developer bot oauth jwt token REST API SDKs Browsers, iOS, Android all Spark features
  • 26. Spark SDKs Calling • Calling • Call Events Specs iOS SDK - swift • iOS 9 and 10 Browsers SDK - WebRTC • Chrome - current • Firefox - current CODECS • H264 • Opus Call & Media Controls • Call Control • AudioControl • VideoControl Other Functions • Persistent registration • Feedback • Push notifications
  • 30. Demo  OAuth with Spark SDK Web Dialer from FireFox https://webdialer.chhab.rocks
  • 32. Each space also has a SIP address https://developer.ciscospark.com/endpoint-rooms-roomId-get.html
  • 33. Cisco Spark Client toWidget Recents Space
  • 34. Space Widget • Audio & video 1:1 calling • Space & 1:1 messaging • Markdown support • File sharing • Message flags and ability to delete messages • Read receipts • Persistent chat
  • 36. Embedding the Space React component
  • 37. Cisco Spark for Developers developer bot oauth jwt token REST API SDKs Browsers, iOS, Android all Spark features
  • 38. What if my users are not on Spark ? Cisco Spark Anyone Everywhere - spark user - guest - spark user, spaces, devices - SIP addresses
  • 39. Guest mode • Create a Developer Guest organisation • Get issued a OrgId & Secret • Dynamically register users • Get JWT tokens for these users • Access Cisco Spark APIs & SDKs
  • 42. Create a user JWT token from code
  • 43. API access token from the user JWT token POST https://api.ciscospark.com/v1/jwt/login Authorization: <jwt-user-token> { "token": "eyJhbGci.eyNlX3R5cGU.I4zgVxATOH9Y" "expiresIn": 21599 }
  • 45. Secure, scalable, extensible Conversations • Desktop, Mobile, Web clients • APIs & SDKs to extend the platform • API tokens, Oauth, JWT • Key Management Server for end to end security • WebRTC,Voice over IP • SIP addresses
  • 46. Cisco Spark Resources  developer.ciscospark.com  awesome-ciscospark  DevNet learning labs https://learninglabs.cisco.com/tracks/collab-cloud
  • 47. Get empowered at  Learnings labs  Fog computing  Sandboxes ready to use Kubernetes cluster for DevNet members
  • 48. Other talks at CodeMotion today 14:10: Embedding Cisco Spark and Location applications (ESRI) into business processes saturday 12:30: Microservices and containers networking: Contiv, deep dive and demo

Editor's Notes

  • #2: BEFORE YOU START : run the CiscoDevNet and roomId bots
  • #3: Who has already heard of Spark ? Who has already heard of Cisco ? Cisco is 90% market share in networking WW and major actor in collaboration software (> 50% WW) Today, it will be about collaboration and building the next gen app. We have opened our secrete sauce to application developers, and continue to open it. I have 30 minutes to show you the use cases it opens to you, and the dirty details Demoes flow: - experiences -- Desktop -- Mobile -- Web -- Device => our goal: bring it to your app - message - audio & video calls - meetings - Widget: -- space-grid: he just went crazy with ChatOps -- customizable => what if I only wanted to chat -- and what if I wanted anybody to chat with my bot, invite non Spark users to the discussion => gest mode Then we have a pretty powerful platform that can do messaging, audio/video call, extensible and scalable, Web, Desktop and Mobile, and you can start for free: - Spark Free account - Spark Developer Portal - Create your 'guest' developer organisation (coming) What's next ? what's the vision for the future Now what is I could invite an Professional assistant to the game - RoomFinder - Spark assistant => Spark is an extensible, scalable and secure Cloud platform to build your new gen app or business
  • #4: I am a technical evangelist at DevNet – Cisco Developer Program It means Cisco pays me to create developer resources (labs & samples), explain and teach technology at conferences and enterprise workshops, and sometimes support hackathons. I am based in France, and report to the best manager in the world named Mandy, sitting a the back of the room, And I love Italy, my wife’s family living in Sardegna, I spend most of my vacations in Sardaigna / en Bosa Marina, perto de Alghero.
  • #6: This intensity various from occasional messaging, where I just send a few messages here and there, to something I call furious chat, where everyone is sending messages at once. In fact, if they had just spoken those messages it would have been a meeting. And in fact the next level of intensity is an ad-hoc meeting, and perhaps the most intense is a scheduled, more formal meeting. The line for real-time is around here – at furious chat – when things are happening at that very moment together.
  • #7: All of the pain points are on the transitions. First pain point – escalating from furious chat into the meeting itself. Requires all of this coordination to figure out how to do that – whose bridge to use? Are you in a video room and how do we get you in? Second pain point – sharing information during a meeting- the chat in the meeting isn’t the same chat. You can email it after the meeting… Third paint point- how do I know when to switch meetings when I have all of these back to back meetings? Forth pain point- work doesn’t stop when the meeting ends, if anything that’s when it starts and tracking actions requires connecting with people
  • #8: Cisco Spark addresses all of these pain points and all of these points of “work”. We want Spark to be the platform that all people use to meet, collaborate, chat and call so that all interactions can be continuous and agile.
  • #9: Conversations (messages, audio, video, all of them) At work, on the way, home office, family & friends It’s not one app, it’s all apps It’s not one personal device, it’s all devices It also comes from everywhere = connected world Spark platform => Bring this power to the developer via a set of APIs and SDK we’ll demo
  • #10: Conversations (messages, audio, video, all of them) At work, on the way, home office, family & friends It’s not one app, it’s all apps It’s not one personal device, it’s all devices It also comes from everywhere = connected world Spark platform => Bring this power to the developer via a set of APIs and SDK we’ll demo
  • #11: Cisco supports third-party endpoints across a wide range of operating systems. We offer three client applications integrated to help mobile professionals work at optimal productivity, wherever they are and whatever device they use. Cisco Jabber is our all-in-one UC application. Cisco WebEx is the industry-leading web conferencing application. Cisco Spark instantly creates a place for teams to work together, where their work can live, and provides a way to stay connected to it all. These applications are tightly integrated with each other and can be accessed across a range of devices including laptops, tablets, mobile phones, and Cisco collaboration endpoints. This range of endpoints from room systems to software running on mobile devices is tailored to support the various ways in which people work – all the way from your pocket to the boardroom. And they all work *together* to deliver a consistent, delightful, no-compromise collaboration experience. <presenter note>: Depending on the opportunity, you may want to drill down on one client or another and field questions, perhaps pull additional slides from other EBC “Chapters.” It is strongly recommended that you encourage the account team to create a Spark room for the participants in this EBC as a way to follow up/stay in touch/share the slides from the day. If AM creates this now, you can circle back and do a live demo later during the session.
  • #12: Create a space « CodeMotion Cisco Spark API »: hey Anna, where is this happening already ? Calling you: answer on Phone Calling you: answer via Desk
  • #15: We’ll leverage Spark APIs to implement this use case Spark APIs are accessible at https://developer.ciscospark.com/ This is where you get your API token and run thru the interactive documentation
  • #18: developer.ciscospark.com Create a new space: « API demo » Post a message => people use it to do ChatOps (later) Drop a document Interact with a bot: CiscoDevNet
  • #20: Create a Bot Account Run an existing bot on Glitch: pick https://github.com/CiscoDevNet/botkit-template
  • #23: Create an Integration redirecting to Requestbin
  • #24: Getting an Access Token If the user granted permission to your app, Spark will redirect the user's web browser to the redirect_uri you specified when entering the grant flow. The request to the Redirect URL will contain a code parameter in the query string like so: http://your-server.com/auth?code=YjAzYzgyNDYtZxx3YS00OWZkLTg2YTgtNDc3Zjg4YzFiZDlkNxxlN2FhMjMtYzUz Your app will then need to exchange this Authorization Code for an Access Token that can be used to invoke the APIs. To do this your app will need to perform an HTTP POST to the following URL with a standard set of OAuth parameters. This endpoint will only accept an x-www-form-urlencoded body. https://api.ciscospark.com/v1/access_token The required parameters are: grant_type This should be set to "authorization_code" client_id Issued when creating your app client_secret Remember this guy? You kept it safe somewhere when creating your app code The Authorization Code from the previous step redirect_uri Must match the one used in the previous step NOTE: in THIS occasion the redirect_uri does NOT have to be encoded and can be send ‘as is’ [email protected]
  • #25: (DJ) Q: Is this access token stored on myserver.com/app or in a user cookie? Do you have to go through this procedure every day? How do you check if a user has a valid access token? Stored where? Spark will then respond with JSON containing an Access Token that's good for 14 days and a Refresh Token that expires in 90 days. The Refresh Token can be used to generate a new Access Token when the current one expires: [email protected]
  • #27: CALLING •Dial by PersonEmail •Dial by SIP Address CALL EVENTS •Call progress events (ringing, connected, rejected) •Incoming call event •Remote push notification (closed app) (developer responsibility) •Local push notification (backgrounded app)  (developer responsibility) CALL CONTROL •Accept / Reject •Hangup AUDIO CONTROL Audio output select (handset / headset / speakerphone) (iOS + JS) Mute/unmute local audio Mute/unmute remote audio VIDEO CONTROL •Mute/unmute local video •Mute/unmute remote video •Camera select •Keep the aspect ratio (iOS only) •Rate call quality (iOS+JS) Incoming call notification for iOS
  • #28: Envision a mobile application for a clothing store, that lists items for sale and has an automated ordering system. Perhaps you go to a shirt and some jeans and when you go to the checkout, there was a problem processing your payment. When that happens, from right inside the app, you are prompted with an option to join a video call with a customer service rep. When that option is selected, the video call natively starts right in the same clothing store application– no need to open or install any other applications. This feature can make the user experience much more efficient and friendly, and made possible by using Spark Video SDK for iOS (Android will be coming very soon!)
  • #29: Go to the SDK doc https://developer.ciscospark.com/sdk-for-browsers.html Show the documentation: https://ciscospark.github.io/spark-js-sdk/api/
  • #31: Web Dialer: https://webdialer.chhab.rocks/login with [email protected] - spark: [email protected] - sip: [email protected]
  • #34: Think of the Cisco Spark client as two separate pieces. RECENTS for all of your latest interactions, and SPACE for chat and calling capabilities. We take those 2 pieces of the Spark client and turn them into the RECENTS widget and SPACE widget
  • #35: Super Easy Integration Responsive UI built with HTML5 and React.js New features automatically gets pushed via public CDN Open source libraries WebRTC A/V Calling & Messaging
  • #36: Widget demo with [email protected] and space Hackathon demo with hackvivatech-paris/widgets/widget-space-global-events.html
  • #42: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJVU0VSSUQiLCJuYW1lIjoiVVNFUk5BTUUiLCJpc3MiOiJERVZFTE9QRVJfT1JHIn0.swoT9rodEYx-K4f-PpFhOc7du1-KKLScrO9qUerpB_U
  • #43: Generate a token for ‘Ilaria’
  • #45: Space widget in hackathon-resources, put the access-token of the guest Contact someone
  • #46: JWT HS256 Both choices refer to what algorithm the identity provider uses to sign the JWT. Signing is a cryptographic operation that generates a "signature" (part of the JWT) that the recipient of the token can validate to ensure that the token has not been tampered with. RS256 (RSA Signature with SHA-256) is an asymmetric algorithm, and it uses a public/private key pair: the identity provider has a private (secret) key used to generate the signature, and the consumer of the JWT gets a public key to validate the signature. Since the public key, as opposed to the private key, doesn't need to be kept secured, most identity providers make it easily available for consumers to obtain and use (usually through a metadata URL). HS256 (HMAC with SHA-256), on the other hand, is a symmetric algorithm, with only one (secret) key that is shared between the two parties. Since the same key is used both to generate the signature and to validate it, care must be taken to ensure that the key is not compromised.