Welcome to the documentation home of wxcadm, a Python 3 library to simplify the API calls to Webex in order to manage and report on users of Webex Calling.
Although the primary focus is Webex Calling, many of the other Webex admin functions are included. This library is not meant to be an interface to the Meetings and Messaging capabilities of Webex....there are plenty of other modules that provide that.
This project is not affiliated with or supported by Cisco, although the APIs that are used by the project are, for the most part, the public Webex APIs available at https://developer.webex.com.
The main branch version is stable and available for use and the current PyPI PIP Package is built from that branch.
There are still enhancements being made and I am addressing any issues as they are reported. New features can also be discussed in the discussions page.
Most Webex admins only have access to a single Org, but Webex does allow a single admin to manage multiple Orgs. When
the Webex instance is created, it creates the :attr:`Webex.org` attribute when only one Org is present. If there are
multiple, the :attr:`orgs` attribute contains a list of all the Orgs. orgs
is created whether there is one Org or
multiple, so :attr:`Webex.org` is equivalent to :attr:`Webex.orgs[0]`. For example:
import wxcadm
access_token = "Your API Access Token"
webex = wxcadm.Webex(access_token)
for org in webex.orgs:
print(org.name)
It is recommended to take action on only one Org at a time, although the design allows for more flexibility. For example, to enable VM-to-Email across all users of every Org, the following is supported:
for org in webex.orgs:
for person in org.people:
person.enable_vm_to_email()
The :meth:`get_org_by_name()` method is provided to allow the selection of the desired org by name.
my_org = webex.get_org_by_name("My Company")
for people in my_org.people:
person.enable_vm_to_email()
At the moment, the module works in two ways. In one way, it populates attributes based on the data from Webex. In another, it stores the JSON representation directly from Webex. The latter is very handy for pushing data back to Webex, but it requires some knowledge of the API structure, and doesn't abstract it well. Not to mention that the Webex API doesn't do anything in a standard way.
The purpose of this module is to simplify that so the user doesn't have to have detailed knowledge of the Webex API, so we are faced with a decision: keep the flexibility provided by the raw data or simplify it, at the cost of compatibility when the Webex API is changed.
Nearly every instance of all classes has a :py:attr`config` attribute that contains the JSON configuration from Webex. Properties are exposed for most commonly-used attributes.
.. toctree:: :maxdepth: 2 :caption: Usage: usage/installation usage/quickstart whatsnew usage/tests usage/api_scope usage/service_app usage/documentation usage/xsi
.. toctree:: :maxdepth: 2 :caption: Reference reference/Webex reference/Org reference/Reports reference/Calls reference/CallRouting reference/Location reference/LocationSchedule reference/AutoAttendant reference/CallQueue reference/HuntGroup reference/Person reference/Me reference/VoiceMessage reference/Workspace reference/Device reference/DECT reference/Webhooks reference/UserGroups reference/Announcements reference/Jobs
.. toctree:: :maxdepth: 2 :caption: XSI Reference reference/XSI reference/Call reference/XSIEvents reference/XSIEventsChannelSet
.. toctree:: :maxdepth: 2 :caption: RedSky usage/redsky reference/RedSky reference/RedSkyBuilding reference/RedSkyLocation
.. toctree:: :maxdepth: 2 :caption: Meraki usage/meraki reference/Meraki
.. toctree:: :maxdepth: 3 :caption: Full Reference reference/wxcadm
.. toctree:: :maxdepth: 1 :caption: Example Scripts :glob: examples/*