Skip to content

wxsd-sales/early-one-button-to-push

Repository files navigation

Early One Button to Push

Customize the timing of OBTP on your shared Webex devices.

Conventionally, you can configure the OBTP to show up 5 minutes before the meeting time at an organizational level (via. Webex Control Hub settings). However, this proof-of-concept application lets you set any custom value (in seconds) for the OBTP to appear, that too at a device level. The target audience for this PoC are individuals who want to have greater control over the timing of the OBTP. For example, those who would like to join a meeting on a Webex device more than 15 minutes ahead of the start time.

early-one-button-to-push-demo

Table of Contents (click to expand)

Overview

At it's core, the application is a collection of background processes that run on a predefined schedule.

These processes, collectively, retrieve a user's calendar events and create corresponding bookings for those on devices that are mapped to the user.

The front end serves as a way to "map" or "unmap" calendar accounts to shared devices. All bookings are done via a bot account that has admin privileges to the shared devices (on Webex Control Hub).

Setup

These instructions assume that you have:

  • Administrator access to an Azure AD Tenant and Webex Control Hub.
  • Set the target devices as shared devices.
  • Docker installed and running on a Windows (via WSL2), macOS, or Linux machine.

Open a new terminal window and follow the instructions below to setup the project locally for development/demo.

  1. Clone this repository and change directory:

    git clone https://github.com/WXSD-Sales/early-one-button-to-push && cd early-one-button-to-push
    
  2. Copy .env.example file as .env (you may also change the database credentials within this new file):

    cp .env.example .env
    
  3. Review and follow the Quickstart: Register an application with the Microsoft identity platform guide.

    • Select the following Microsoft Graph API permissions:
      API / Permissions name Type Description
      Calendars.Read Delegated Read user calendars
      email Delegated View users' email address
      offline_access Delegated Maintain access to data you have given it access to
      openid Delegated Sign users in
      profile Delegated View users' basic profile
      User.Read Delegated Sign in and read user profile
    • Use these Redirect URIs:
      • https://localhost/auth/azure/callback
      • http://localhost/auth/azure/callback
    • Take note of your Azure Tenant ID, Application ID and, Client Secret. Assign these values to the AZURE_TENANT_ID, AZURE_CLIENT_ID, and AZURE_CLIENT_SECRET environment variables within the .env file respectively.
  4. Review and follow the Creating a Webex Bot guide to create a Webex Bot.

    • Take note of your Bot ID and Bot access token. Assign these values to the WEBEX_BOT_ID and WEBEX_BOT_TOKEN environment variables within the .env file respectively.
    • You will also need to add this bot to all shared device that you wish to use. To do this, sign in to Webex Control Hub (admin.webex.com) > Workspaces > Your Workspace Name > Edit API Access > Search for your bot and grant 'Full Access'.
  5. Install Composer dependencies for the application:

    docker run --rm \
     -u "$(id -u):$(id -g)" \
     -v $(pwd):/var/www/html \
     -w /var/www/html \
     laravelsail/php81-composer:latest \
     composer install --ignore-platform-reqs
    
  6. Start the Docker development environment via Laravel Sail:

    ./vendor/bin/sail up -d
    
  7. Generate the application key:

    ./vendor/bin/sail php artisan key:generate
    
  8. Initialize the database for the application:

    ./vendor/bin/sail php artisan migrate:fresh
    
  9. Install NPM dependencies for the application:

    ./vendor/bin/sail npm install
    
  10. Run Laravel Mix:

    ./vendor/bin/sail npm run dev
    

Lastly, navigate to http://localhost in your browser to complete the setup by mapping devices to calendar accounts. To stop, execute ./vendor/bin/sail down on the terminal.

Demo

A video where I demo this PoC is available on YouTube — https://www.youtube.com/watch?v=saAgLuW8qG4&t=60s.

Support

Please reach out to the WXSD team at wxsd@external.cisco.com or contact me on Webex (ashessin@cisco.com).

About

Customize the timing of OBTP on your shared Webex devices.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published