Automate enabling of Enhanced Calling mode for Cisco WebEx Cloud registered, personal mode devices
Enhanced Calling allows users to utilize PSTN dialing on video devices when registered on Webex Cloud in Personal Mode. Previously, Cisco completed End-of-Support (EOS) on some hybrid services for Webex Cloud registered devices, then Personal mode devices lost their inbound and outbound PSTN calling capabilities.
Cisco has a phase solution to address the gap in functionality, called Enhanced Calling, which brings back PSTN capability for those users with Personal mode devices. This code is a demonstration of how Enhanced Calling can be enabled, using On Premise UCM deployment, and is meant for educational/information purposes only.
Some changes might be required to fit the deployment and configurations of your particular environment.
Some of the APIs used in these examples are also not "public" APIs, meaning they are not published at https://developer.webex.com and are subject to change without notice from Cisco. However, these are the same APIs that Control Hub UI makes use of.
-
Install Python 3
On Windows, choose the option to add to PATH environment variable
-
Download the source code
Use one of the options provided by Github that is most appropriate for you options.
For example clone this repository using git command line
git clone https://github.com/advaitk/enhancedcalling.git
-
(Optional) Create/activate a Python virtual environment named
venv
:python3 -m venv venv source venv/bin/activate
-
Install needed dependency packages:
pip install -r requirements.txt
-
Rename
.env.example
to.env
, and edit it to specify your values CUCM address, AXL user credentials, ORG Id, Bearer token from Control Hub. -
(Optional) The AXL v12.5 WSDL files are included in this project. If you'd like to use a different version, replace with the AXL WSDL files for your CUCM version:
-
From the CUCM Administration UI, download the 'Cisco AXL Tookit' from Applications / Plugins
-
Unzip the kit, and navigate to the
schema/current
folder -
Copy the three WSDL files to the
schema/
directory of this project:AXLAPI.wsdl
,AXLEnums.xsd
,AXLSoap.xsd
-
-
Help
python3 runner.py --help Usage: runner.py [OPTIONS] Options: --userid TEXT Userid not email --devicemac TEXT format 'AA:BB:CC:DD:EE:FF' --help Show this message and exit.
-
Single run
python3 runner.py --userid advaitk --devicemac AA:BB:CC:DD:EE:FF
-
Multi run
#Create a csv file with userid and devicemac as rows, for e.g. cat list.csv userid1,AA:BB:CC:DD:EE:F1 userid2,AA:BB:CC:DD:EE:F2 userid3,AA:BB:CC:DD:EE:F3 #And then invoke the runner.py command using this bash snippet while IFS=, read -r userid devicemac do echo "Invoking using userid : $userid : device mac $devicemac" python3 runner.py --userid $userid --devicemac $devicemac done < list.csv