Giter Club home page Giter Club logo

bulkcall's Introduction

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

bulkcall's People

Contributors

petrybr avatar

Stargazers

 avatar

bulkcall's Issues

add new column on csv to disable endpoints

if the user doesn't wants to connect all endpoints that exists in the endpoints.csv file, and avoiding to remove this endpoint from this file (so it can be used in the future), create a column "connect" and treat "yes" or "no" as answers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.