Download CDRs from your org as local .csv files, or send SMS for "missed" calls.
- missed calls are defined by small call duration, local hangup, because remote voicemail shows as call answered in CDR.
- Developed on MacOS Sequoia (15.3)
- Developed on Python 3.8.1 & 3.8.3
- Other OS and Python versions may work but have not been tested
If you want to send SMS for missed calls, you will need to import the webex-connect-simple-sms.workflow into a Webex Connect tenant flow. If you do not have a Webex Connect environment, you can spin up a sandbox here.
Please note, you will need to have an SMS enabled number in your Webex Connect tenant to send outbound SMS.
- You will need to edit the flow to ensure your JSON is being parsed by the Webhook (first) node.
- You will need to edit the SMS (second) node to select the number from which you want to send the SMS.
-
Create a Service App: https://developer.webex.com/my-apps/new With the scope:
spark-admin:calling_cdr_readThe App will need to be approved in Control Hub, then a token can be generated using theclient_secret -
Python 3 required
-
Clone this repository
Alternatively, you can download the files cdr_puller.pyand example.env -
pip install -r requirements.txt
or manually install each requirement:
pip install python-dotenv
pip install requests -
Populate the
CLIENT_ID,CLIENT_SECRETandREFRESH_TOKENwith Service App values between the double quotes of each respective line in the fileexample.env -
Change
BUSINESS_NAMEto reflect the name of your business. This will appear in the SMS sent to remote end users who miss calls. -
Populate the
WEBEX_CONNECT_URLwith the inbound webhook url setup in your WebexConnect workflow. -
Rename the file
example.envto.env
You can use either of the files to launch the application:
python cdr_puller_run_forever.py
or
python cdr_puller_run_once.py
Before you launch the script, please open the desired file and make sure the keyword parameters passed to the get_cdrs() function match your objective.
For example, if you want to send SMS, but not write CSV:
data.get_cdrs(write_csv=False, send_missed_sms=True)
All contents are licensed under the MIT license. Please see license for details.
Everything included is for demo and Proof of Concept purposes only. Use of the site is solely at your own risk. This site may contain links to third party content, which we do not warrant, endorse, or assume liability for. These demos are for Cisco Webex usecases, but are not Official Cisco Webex Branded demos.
Please contact the Webex SD team at wxsd@external.cisco.com for questions. Or for Cisco internal, reach out to us on Webex App via our bot globalexpert@webex.bot & choose "Engagement Type: API/SDK Proof of Concept Integration Development".
