[cisco-voip] building an API box - what do I need?

Bill Talley btalley at gmail.com
Fri Mar 23 12:41:09 EDT 2018


Here is a link to my full script for anyone who is interested.  The script
prompts for a company name and creates a new local directory by that name
if it doesn't already exist, then prompts for CUCM version, CUCM Pub IP
address, AXL username, and AXL password.  The script also uses the AXL and
RisPort APIs if anyone is looking for an example of either.

https://www.iptinfo.com/2018/03/23/querying-cucm-via-axl-risport-api-config-discovery-tool/

The script queries the pub address you entered for CUCM/IMP cluster node
names and license utilization, then uses that info to query each node for
application version.   Once initial discovery of nodes, versions and
license utilization is completed, the script presents a menu with options:
 9 - Discover All and q - Quit.  If you select option 9, the script will
query and captures a list of basic info for configured phones (filtered to
SEP devices), gateways, CTI devices (route points and ports), hunt devices,
and media devices and writes output of each query to a separate worksheet
in an excel workbook created with a concatenated name of the company you
entered and the current date and time.

Note, I am not a programmer by trade and just started using Python so if
anyone has suggestions or corrections, please feel free to share them.
There's some validation and exception handling built in, but I've not fully
implemented both yet.  I started working on this about a month ago (the
script and python in general) and is a work in progress so any feedback is
welcome and appreciated.  The script requires zeep, suds-jurko, xlsxwriter
and the AXL plugin installed; this is all called out in comments in the
script.

The script does not validate the SSL certs so if you need to do that,
you'll want to update the script to validate the CUCM/IMP certs.

Bill



On Wed, Mar 21, 2018 at 4:03 PM, Bill Talley <btalley at gmail.com> wrote:

> Hi Lelio,
>
> I just went through the same ordeal a few weeks ago which you're embarking
> on now.   I'm no expert in this by any means, but know information is also
> hard to come by and will share whatever I can.
>
> Checkout my notes here, https://www.iptinfo.com/
> 2018/02/22/querying-cucm-via-axl-using-python-scripts-installing-python/,
> but more importantly check out the links at the bottom of the page.  Those
> are blogs I used to get started on installing and using Python to utilize
> AXL to query and modify CUCM.
>
> Here's a link to my sample Python script which will prompt you for a
> client/directory name, CUCM IP address, CUCM version, CUCM AXL username and
> CUCM AXL password, then will query for and output a list of phone (basic
> info) and create a csv file containing that list of phones.  I have a more
> complex script that queries for cluster nodes, software versions, phone
> devices, hunt devices, gateways, media devices, etc if you're interested in
> seeing something like that.
>
> https://www.iptinfo.com/2018/02/28/querying-cucm-via-axl-
> sample-python-script/
>
> As far as username and passwords embedded in the script, if you control
> the machine the script will be executed on, you could create system
> variables containing that info on the machine, then call the system
> variables from the script.
>
> Lastly, here's a link to the CUCM AXL developer guides and database
> dictionaries.  The AXL programming guides tell you the supported search
> criteria and response data that will be returned.
>
> https://developer.cisco.com/docs/axl/#previous-versions
>
>
> Bill
>
> On Wed, Mar 21, 2018 at 3:17 PM, Lelio Fulgenzi <lelio at uoguelph.ca> wrote:
>
>>
>> I'm going to make a (sad) attempt to try my hand at API usage. You know,
>> running those sweet commands against CUCM or WebEx, etc to make my life
>> easier. I'm hoping that by starting with some simple examples, I can build
>> what I need as time goes on.
>>
>> My hope is to build scripts that I can run via CLI, but also create
>> simple web pages with buttons that execute those scripts, with or without
>> arguments. The webpages themselves will be protected appropriately.
>>
>> But I'm starting from scratch. I do have a resource that I'm hoping will
>> help out, but I'm wondering, if you were building an api box from scratch,
>> what sort of things would you want (or need) on it to make things run
>> smoothly?
>>
>> I'm guessing if I want to automate any of these scripts, I'll have no
>> choice but to store the userID/password either in the script or read from a
>> file. I've asked this before of a few people, but there is no real way to
>> store a password securely and decrypt it at time of running the script.
>>
>> For interactive scripts, either CLI or web form, do you use the same
>> userID/password, or are you asking for credentials and use those
>> credentials?
>>
>> I know... a big ask.
>>
>>
>> ---
>> Lelio Fulgenzi, B.A. | Senior Analyst
>> Computing and Communications Services | University of Guelph
>> Room 037 Animal Science & Nutrition Bldg | 50 Stone Rd E | Guelph, ON |
>> N1G 2W1
>> 519-824-4120 Ext. 56354 | lelio at uoguelph.ca<mailto:lelio at uoguelph.ca>
>>
>> www.uoguelph.ca/ccs<http://www.uoguelph.ca/ccs> | @UofGCCS on Instagram,
>> Twitter and Facebook
>>
>> [University of Guelph Cornerstone with Improve Life tagline]
>>
>>
>> _______________________________________________
>> cisco-voip mailing list
>> cisco-voip at puck.nether.net
>> https://puck.nether.net/mailman/listinfo/cisco-voip
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://puck.nether.net/pipermail/cisco-voip/attachments/20180323/4f69dd55/attachment.html>


More information about the cisco-voip mailing list