This repository is deprecated; please follow the main search page or use the ‘Related code repos’ widget on the right side of the current page.

bulkcall - Make 1 or more Cisco Endpoints dial to one specific destination Address

published

Use Case

Imagine you have 37 Cisco Webex Room Kits over different cities and you need them to call to a Webex Personal Room for a meeting, and you need to start these calls remotely without an user doing this manually on site.

So you would need to enter the web interface of each one of these 37 endpoints, navigate to the call menu, and start a call to your destination. It can take a few minutes, or more, depending on how many endpoints you have.

Solution

I created this script to automatically connect to each of a list of endpoints and send a command for them to call to the meeting. For my situation, I reduced from 10 minutes to manually make the calls to ~2 minutes running the script.

How it Works?

When you run the script it will ask the destination SIP URI you want to call and the username and password of the endpoints.

Then, for each of the endpoints in the list (endpoints.csv), the script will send a REST API GET to check if the endpoint is in a call or not.

  • If it is in a call, it will log this information in the console and dismiss this endpoint, going to the next in the list.
  • If it is not in a call, it will send a REST API POST Call command so the endpoint will dial to the destination SIP URI Address.
    Then it will send a REST API POST command to mute the microphone (so the endpoints join the call muted, avoiding disturbing if the meeting is already running). Then it will log the information that the endpoint is dialing to the meeting and will go to the next endpoint in the list.

Requirements

  • Python 2.7
  • Libraries: requests, xmltodict, getpass, csv, time
  • An user created in each of the endpoints, with the USER ROLE. The username and password MUST be the same in all endpoints. (Check endpoint admin guide to see how to do that)
  • Network connection from the computer where is the script running to the endpoints
  • A file (in the same folder of the script) called "endpoints.csv" with the following information: endpoint name, ip address, connect flag

How to use it

  1. Clone this repo
  git clone https://github.com/petrybr/bulkcall.git
  1. Install the requirements
  pip install -r requirements.txt
  1. Edit the endpoints.csv file with your information:
  • Name: A name to identify the endpoint the script is connecting

  • ip: The IP address of the endpoints. It's the IP address the script will connect.

  • connect: the options here are "yes" or "no". It's just to say to the script if it is to start a call in this endpoint (yes) or no (no). Just to avoid needing to remove the entry if for some reason today you don't need that endpoint to connect to the call (but you may need it tomorrow).

endpoints.jpg

  1. Run it!
  python script.py

CUst8s5-OW0.gif

View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Products

    Webex
  • Programming Languages

    Python
  • License

    GNU General Public License v3.0

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.