Course Overview
This 5-day class is meant for Administrators and Engineers that are starting their Journey Towards Programmability for Webex and Devices. It covers the Basics of REST, JSON, Python, Postman, JavaScript, Bots, Integrations, UI Extensions, Macros, and Digital Signage. Student will use Postman, Ansible and other programs to be able to gather statistics, monitor, and configure the Webex Portal and Webex Devices. Students will setup Macros to be able to Control Lighting systems and Room Controls. Students will create Python Scripts to Create and Modify Webex Meetings.
This class will help you:
- This class will help Students bridge the gap between CLI/GUI and API
- Students will get introduced to API Technologies and will start them on their Journey to API Engineering
Who should attend
- Network Administrator
- Meeting Administrators
- Webex Administrators
- Collaboration Administrators
- Network Engineer
- Voice / UC / Collaboration / Communications Engineers
- Collaboration Sales / Systems Engineers
Course Objectives
- Student will learn the Technologies used in Webex APIs
- Student will learn the where to find and use Webex API Documentation
- Student will learn to use Programming Technologies with Webex
- Student will learn the fundamentals of Bots, Integrations, Widgets, and WebApps
- Student will learn how API Tokens are authenticated in Webex
- Student will learn the fundamentals of Python and JavaScript
- Student will learn the fundamentals of API Integrations with other Apps
- Student will learn the fundamentals of Device Macros
- Student will learn the Schedule, Manage, Integrate Webex Meetings
Outline: Webex Macros, APIs and Programmability for Webex Devices, Control Hub and Meetings (WBXMAP)
Module 0: Introduction
- Introduction
- Topic List
- Learner Skills and Knowledge
- Couse Goals
- WebEx Basics
- General Administration
- Introductions
- Lesson 2: SIP Trunking
- SIP Trunking Overcomes TDM Barriers
- Why does an enterprise need an SBC?
- Primary CUBE Differentiators (1)
- Module Summary
Module 1: Webex API Overview
- Module Topics
- Lesson 1: Webex API Overview
- Webex Environment
- Every User Can Be a Developer
- Why Network Programmability
- What is an API?
- Programmability Use Cases
- Programmability Benefits
- Secure REST APIs & SDKs for Multiple Workloads
- What can we Integrate with Webex APIs?
- Incident Management Communications Example
- Webex API for Administrators
- Lesson 2: Webex API Documentation
- Webex Developer Site
- Webex Developer Site – Build Documentation
- Webex Developer Site – Embedded Apps Documentation
- Webex Developer Site – API Documentation
- Webex Developer Site – SDK Documentation
- Cisco DEVNET (1)
- Room OS Customization Documentation
- Git Hub Sites
- Webex App Hub
- DevNet Code Exchange
- Room OS API Reference Guides
- Lesson 3: API Technologies Overview
- REST API
- What is Python?
- cURL
- Webhooks
- WebSockets
- XML- eXtensible Markup Language
- JavaScript Object Notation (JSON)
- YAML - “YAML Ain’t Markup Language”
- Docker Containers
- Docker Containers Versus Virtual Machines
- Postman: Powerful but Simple REST API Client
- Postman Collections for Webex
- Ansible
- Node JS
- Node JS - NPM (Node Package Manage)
- Lesson 4: Webex API Types
- Bots
- Integrations
- Integrations with Webex Classrooms
- Buttons and Cards
- CE Programmability (xAPI)
- Web Engine - Power of Web Applications
- Widgets
- Widgets Code Generation
- Lesson 5: Webex Software Developer Kits (SDK)
- SDKs
- Cisco Webex SDKs and Widgets
- Cisco Webex JavaScript SDK
- Cisco Webex SDKs for iOS and Android
- Browser SDK
- Node.js SDK
- Lesson 6: API Use Cases
- Call Control APIs
- Room API Calls
- People API Calls
- Device API Calls
- Postman Collections for Webex
- Lesson 7: Setting up a Programming Environment
- Operating Systems Development Choices
- Operating System Choices
- Setting up your Desktop for Programmability
- Windows 10 /11 Subsystem for Linux (WSL)
- Shells
- Text Editors
- Visual Studio Code Editor
- Sublimetext Python Editor
- Node.js
- NGROK
- Docker Containers
- Postman
- SDKs
- Source Control Systems
- Git Source Control
- Ansible
- Module Summary
Module 2: Webex Room Systems, Device, and Clients (Review)
- Module Topics
- Lesson 1: Webex Portfolio and Features
- Project Workplace
- Webex Portfolio
- Webex Devices are Easy to Deploy
- Webex Room / Board Environmental Sensors (1)
- Authentic Interaction That Rivals Face-to-Face
- Lesson 2: Webex Room Navigator
- Room Navigator Overview
- Room Navigator features
- Webex Room Navigator versions
- Comparison with Touch10
- Lesson 3: Webex Devices
- Webex Desk Portfolio
- Webex Desk Pro
- Webex Room Kit Mini
- Room Video – Small/Medium
- Room Features – Camera’s & Codecs
- Cisco Room Kit Plus
- Room Kit Plus – Quad Camera
- Cisco Webex Room Kit Pro
- Webex Room Kit
- Cisco Room Kit
- Cisco Room Kit - Technical Specifications
- Cisco Room 55:
- Room 55 Dual
- Room 70 G2
- Room 70 G2 Dual
- Webex Room Panorama
- Lesson 4: Webex Board Pro
- All-in-one Device for Visual and Video-first Collaboration
- Companion Mode - A Webex Room System and a Webex Board in the same physical space
- Touch Redirect:
- Feature comparison
- Lesson 5: SX / DX Devices
- SX10
- SX10 Features
- SX80 Overview
- SX80 Flexibility
- Lesson 6: Webex Room OS 11
- Room OS 11: Easy Call Control Access
- Room OS 11: Simplify Task Switching
- Optimize for my Voice Supported in Room OS 11
- Lesson 7: Webex Device States
- Smarter Meeting rooms
- Standby
- Half-wake greeting
- Half-wake guidance
- Awake
- Contextual Guidance
- Lesson 8: Webex Calling Devices
- Typical Phone Range
- Webex Wireless Phones
- Key Conference Phones
- Cisco Accessories
- Lesson 9: Webex App
- Webex - Single App Experience
- Webex App
- Lesson 10: Webex Mobile Clients
- Mobile Meeting Experience
- Module Summary
Module 3: Webex Control Hub
- Module Topics
- Lesson 1: Control Hub Overview
- Control Hub, Administration & Management
- Webex Control Hub
- Enterprise Policy Management
- Webex Management
- Cisco WebEx Teams Control Hub Administration
- Cisco WebEx Teams Control Hub - Settings
- WebEx Control Hub - Overview
- Lesson 2: Organization Settings
- WebEx Control Hub - Organization Settings
- Organization Settings - Security
- Organization Settings - Idle Timeouts
- Organization Settings - External Communication
- Organization Settings - Face Recognition
- Organization Settings - Privacy
- Organization Settings - Domains (1)
- Organization Settings - Self-Registration
- Organization Settings - SIP Address for Cisco Webex Calling
- Organization Settings - Calling Behavior
- Organization Settings - UC Manager Profiles
- Organization Settings - Directory Synchronization
- Organization Settings - People Insights
- Organization Settings - Authentication (1)
- Organization Settings - Email
- Organization Settings - Branding
- Organization Settings - Customize Support Information
- Organization Settings - Retention
- Organization Settings - Scheduling in the Webex App
- Organization Settings - Apps
- Organization Settings - Simultaneous Interpretation
- Organization Settings - Virtual Background
- Organization Settings - Virtual Camera
- Organization Settings - VDI for Webex app
- Organization Settings - Default Landing Screen for Webex App
- Organization Settings - Migrate Content
- Organization Settings - Network Location
- Lesson 3: Adding Users
- Directory Options
- Manually Add User (1)
- Adding Users Not Synced from AD
- Manage Services for New User
- Finish Adding Users
- Confirmation E-Mail
- Click on Verify link from Email
- Lesson 4: Adding Devices
- Simple Provisioning (1)
- Simple Device Onboarding
- Activation and Registration of Devices
- Add a Phone Device to a User Generate a QR Code
- Add a Device using a User Generate a QR Code
- Device Settings - Add a Tag to a Device
- Device Settings
- Delete a Device
- Reboot a Device
- Register a Device Remotely (1)
- Use a API Call to Register a Device to Webex
- Use a API Call to Register a Device to CUCM Edge
- Lesson 5: Adding Workspaces
- Device Window
- Add Workspace
- Type of Device
- WebEx Teams Call Options
- New Device QR Code
- Lesson 6: Administration Panels
- Overview Pane (1)
- Webex Experience
- Analytics
- Troubleshooting
- Reports
- Apps
- Account
- Updates & Migrations
- Cloud-Connected UC
- Hybrid Services
- Lesson 7: User Portal
- Webex Profile Page
- WebEx Teams User Profile
- WebEx Teams Name Label
- WebEx Teams User Portal - My Devices
- Call Settings
- WebEx Teams User Portal - Message & Meetings
- Module Summary
Module 4: Program Fundamentals
- Module Topics
- Lesson 1: Language and Format Overview
- Programming Languages
- Languages
- Interpreted
- Python – Why?
- JavaScript – Why?
- Lesson 2: Data Formats
- Common Data Formats in Programming
- XML- eXtensible Markup Language
- XML
- XML Object
- XML List
- JavaScript Object Notation (JSON)
- JSON - JavaScript Object Notation
- JSON
- JSON Object
- JSON List
- YAML - “YAML Ain’t Markup Language”
- YAML
- YAML Object
- YAML List
- Lesson 3: Python Fundamentals
- What is Python?
- Python 3 vs Python 2
- Python Documentation Site
- Replit: Test Bed for Testing Coding
- Python Test Bed - Replit
- Visual Studio Code Python Editor
- Sublime Text Python Editor
- Way to Run Python
- Comments in Python Scripts
- Getting User Input and Storing into Variables
- Python Variables
- Python Variable Naming Conventions
- Python Variable Data Types
- Python Variable - Number Types and Math Operators
- Casting Variables
- Variable String Quotes
- String Escape Characters
- String Concatenation
- String Format
- String Indexes / Slices
- Converting Data Types and Converting Type Casting (1)
- Booleans
- Conditional Logic - If, Elif, Else
- Conditional Statements and Operators
- Conditional Statements
- Python Logical Operators
- While Loop
- For Loop
- Loop Break / Continue
- Python Lists (1)
- Python List Methods
- Python List Methods - Sort
- Python List Methods - Remove
- Python Nested Lists
- Python Dictionary
- Retrieve Data from Python Dictionary
- Loops for Python Dictionaries
- Dictionary Methods
- Python Tuples
- Python Sets
- Python Functions
- Python Function Return
- Python Function Input (Parameters)
- Parameters vs Arguments
- Default Parameters for Functions
- Calling Functions
- Variable Scope
- Function Documentation
- Python Debugging
- Python Errors - Syntax Error
- Python Errors - Runtime Errors
- Python Errors - Name Error
- Semantic Errors
- Debugging Python Code with PDB
- Python Modules
- Importing Modules
- PyPI · The Python Package Index
- Python External Modules
- Import Module in Python
- Python Requests Package Example
- Install Requests
- Lesson 4: Java Script Fundamentals
- About JavaScript
- JavaScript - Dynamic Typed / Weakly Typed
- JavaScript - Client-Side vs Server-Side
- What’s a Scripting Language?
- JavaScript File Locations
- JavaScript Comment Blocks
- Variables
- Variables - Let
- Variables – Const
- Operators (1)
- String Data Type
- Number Data Type
- Boolean Data Type
- JavaScript Statements (1)
- Java Script Exception Handling (1)
- Object Literals
- Object Creation
- Array Literals
- Create Arrays
- Array Length
- The for…in statement
- Functions
- Regular Expressions
- Module Summary
Module 5: Webex Authentication
- Module Topics
- Lesson 1: Authentication Overview
- Webex API Authentication Types
- Types of Authentication Controls
- API Authentication
- Webex API Access Tokens
- Authenticating User API Access using Personal Token
- Basic Authentication
- Authentication Types - Creating Access Tokens
- Authentication Types - Guest Access Tokens (1)
- Authentication Types - Bot Access Tokens (1)
- Authentication Types - Integration Authentication
- API Authentication Comparison
- Lesson 2: OAuth Authentication
- The OAuth 2.0 Authorization Framework
- OAuth 2.0 - General Flow
- OAuth
- What is OAuth?
- OAuth Resolves Security Issues
- OAuth Tokens
- OAuth Roles (1)
- OAuth Roles - Access Token
- OAuth Scopes and States
- OAuth Grant Types
- Module Summary
Module 6: Webex Rest APIs and JSON
- Module Topics
- Lesson 1: REST API
- Web Services
- REST - Representational State Transfer
- REST API Usability
- REpresentational State Transfer (REST) API is Stateless
- REST API
- Representational State Transfer (REST)
- REpresentational State Transfer (REST)
- Webex REST APIs
- Normal Web Page Retrieval (1)
- Restful Requests to Webex
- Terminology of a REST API query
- API Method Terminology
- REST API - A Request
- REST Call Flow
- REST API Format
- API Request - Headers (1)
- Headers: Details and meta-data
- API Message - Parameters
- Lesson 2: JavaScript Object Notation (JSON)
- JSON Structure
- JavaScript Object Notation
- JSON Objects
- JSON - Array
- JSON - Value
- JSON - String
- JSON - Whitespace
- JavaScript Object Notation (JSON)
- Lesson 3: HTTP (REST) Status Codes
- HTTP Response : Status Codes (1)
- Common Error Messages
- Webhooks
- Module Summary
Module 7: Webex Bots, Cards, and Integrations
- Module Topics
- Lesson 1: Webex Bots
- Lesson 2: Webex Buttons and Cards
- Lesson 3: Integrations
- Lesson 4: Webex Widgets
- Module Summary
Module 8: Postman
- Module Topics
- Lesson 1: Postman Overview
- Lesson 2: Webex Collections
- Lesson 3: Testing Webex APIs with Postman
- Module Summary
Module 9: Webex Customization, UI Extensions and, Macros for Devices
- Module Topics
- Lesson 1: RoomOS Programmability Overview
- Webex Devices Programmability at a Glance
- Cisco Collaboration Devices Programmability
- API Reference Guide for Webex / Telepresence Devices (1)
- In-Room Control Architecture
- Awesome xAPI Sample Code Site
- Devnet Room Device Sample Code Site
- CE Programmability (xAPI)
- External Program Versus CE Macro Framework
- UI Extensions
- Macros
- Deployment Strategies
- Lesson 2: RoomOS Website for Device Customization
- RoomOS Programmability Website
- RoomOS Programmability – Connect to your Device
- RoomOS Programmability – Guides
- RoomOS Programmability – xAPI Sandbox / Documentation
- RoomOS Programmability – xAPI Java Sript
- RoomOS Programmability – Webex Registered Device REST Code
- RoomOS Programmability – OnPrem Registered Device CLI Code (1)
- RoomOS Programmability – Examples
- RoomOS Programmability – Set Wallpaper on Devices
- Lesson 3: RoomOS Connectivity / User Overview
- Integrations Types for RoomOS Devices
- Connecting to RoomOS Devices using SSH CLI
- Connecting to RoomOS Devices using WebSockets
- Connecting to RoomOS Devices using Webex API
- Connecting to RoomOS Devices using Macros
- Connecting to RoomOS Devices with RS-232 Serial
- Connecting to RoomOS Devices using HTTPS
- RoomOS Device User Roles
- Webex Room Integrations
- Lesson 4: Device Configuration
- On-Prem Registered Devices
- Webex Cloud Registered Device Access
- Configuration via Devices Web Interface
- Configuration Settings via Webex Control Hub
- Admin Control Hub – Configuration Templates
- Admin Control Hub – Configuration Templates – Information
- Admin Control Hub – Configuration Templates – Configuration
- Admin Control Hub – Configuration Templates – Review
- Admin Control Hub – Configuration Templates - Summary
- Admin Control Hub – Apply Templates to Devices (1)
- Configuring Device using CLI xAPI
- Lesson 5: Personalization – Branding
- Set Wallpaper using the RoomOS site
- Device Personalization
- Device Personalization – Branding (1)
- Device Personalization – Custom Brand Background
- Device Personalization – Brand Logo (halfwake)
- Device Personalization – Brand Logo (awake)
- Device Personalization – Custom Text
- Device Personalization – Custom Wallpaper
- Device Personalization – Ringtones
- Device Personalization – Contacts
- Lesson 6: UI Extensions
- Offline UI Extension Editor
- UI Extensions
- UI Extension Main Page
- Add a UI Extension
- UI Extension Widgets and Panels
- UI Extension Event model
- UI Extension Widgets
- UI Extension Widget IDs
- UI Extension Events and Commands
- UI Extension Push Buttons
- UI Extension Button events
- UI Extension Button Commands
- UI Extension Switches
- UI Extension Switch Events
- UI Extension Switch Commands
- UI Extension Sliders
- UI Extension - Slider Events
- UI Extension Slider Commands
- UI Extension Group Buttons (1)
- UI Extension - Group Button Events
- UI Extension Group Button Commands
- UI Extension Icon Buttons
- UI Extension Spinners
- UI Extension - Spinner Events
- UI Extension - Spinner Commands
- UI Extension Directional Pad
- UI Extension Directional Pad Events
- UI Extension Directional Pad Commands
- UI Extension Text
- UI Extension Text Commands
- UI Extension Spacers
- Automated Deployment of UI Extensions
- Deploying UI Extensions - xAPI over HTTP
- Deploying UI Extensions – CLI using xAPI Rest Call
- Lesson 7: Device Macros
- Room Device Macros
- CE Macro Framework
- Macro Editor
- Enable Macros using Web Interface
- Apply Macros from Control Hub
- Webex Control Hub Manage Macros (1)
- Getting Started with the Macro Editor (1)
- Device Macros (1)
- The xAPI Library Object
- Invoke a Command
- Error Handling
- Multiple Arguments
- Events
- Stopping the Feedback Listener
- Status Feedback
- Status Request
- Chaining your Promises
- Configurations
- Working with Objects
- Working with lists
- Timers
- Scheduling (1)
- Macro Runtime Process is Regularly Measured
- User Interface Elements – Alerts
- User Interface Elements – Notification
- User Interface Elements – Prompt
- User Interface Elements - Text input
- User Interface Elements - In-Room Control
- Macro Example – Remote Monitoring Alert
- Macro Example – Remote Monitoring Manifest.json File
- Macro Example – Remote Monitoring Java Script (1)
- Macro Example – Dual-Screen Presentation (1)
- Audio Console Versus Web Interface / API
- Deploying to Webex Devices
- Automated Deployment of Macros
- CE Macro Room Control Deployment Tool (CEDeploy)
- CE-Deploy Uses
- CE Deploy
- Lesson 8: Device API Commands
- RoomOS – xAPI Guides – xCommand
- RoomOS – xAPI Guides – xConfiguration
- RoomOS – xAPI Guides – xStatus
- RoomOS – xAPI Guides – xEvent
- xConfiguration
- xCommand
- xStatus
- xFeedback
- xPreferences
- Echo <on/off>
- xEvent
- xGetxml
- Systemtools
- Log
- Module Summary
Module 10: Webex Digital Signage
- Module Topics
- Lesson 1: Webex Digital Signage
- Digital Signage Example
- Digital Signage
- Digital Signage Use Cases
- Using the Web Engine
- Digital Signage and Web App
- Lesson 2: Digital Signage Configuration using Cisco Webex Control Hub
- Control Hub Digital Signage Initial Configuration Settings
- Control Hub Digital Signage Web Engine Configuration
- Control Hub Digital Signage from the Device Web Portal
- Control Hub Digital Signage Standby Configurations
- Configure Digital Signage from Webex Control Hub (1)
- Digital Signage Using a URL
- Control Hub Digital Signage Using a APPSPACE (1)
- Lesson 3: Digital Signage Configuration using Local Web Administration Portal
- Digital Signage Web Engine Configuration
- Digital Signage from the Device Web Portal
- Digital Signage Standby Configurations
- Lesson 4: APPSPACE
- APPSPACE – Step-by-Step in Webex Control Hub
- APPSPACE – Digital Signage
- APPSPACE – Create Channel
- APPSPACE – Add Content (1)
- APPSPACE – Add Content – Stream
- APPSPACE – Publish Channel and Register Device
- APPSPACE – Device Registration
- APPSPACE – Digital Signage Examples
- APPSPACE – Back to the Office Example
- APPSPACE – Book a Room Example
- APPSPACE – Guest Check In Example
- APPSPACE – Guest WiFi Example
- Module Summary
Module 11: Driving Webex Meetings with APIs.
- Module Topics
- Lesson 1: Webex Meeting APIs
- Lesson 2: Controlling Meeting using APIs
- Lesson 3: Scheduling Meetings with APIs
- Module Summary