/awesome-automationfx

A curated list of AutomationFX resources for Developers

MIT LicenseMIT

Awesome AutomationFX

A curated list of AutomationFX resources for Developers, inspired by awesome-ciscospark and awesome-python.

Contents

DISCLAIMER: UnifiedFX does not make any commitments about the resources listed in this document, nor the accuracy of the third party resources and any content accessible via those links.

AutomationFX

AutomationFX is a integration platform from UnifiedFX that exposes Cisco Unified Communication Managers (CUCM) complex and varied interfaces via a simple unified REST API. Note: Currently AutomationFX software is only availble under NDA, however once AutomaitonFX is officially released it will be available for general download. Please contact UnifiedFX Sales for further information and request access to the software.

REST API

The REST API exposed by AutomationFX provides access to multiple CUCM resources. Sometimes this is effectively a one-two-one mapping to an existing API (i.e. AXL). Sometimes this is a combination of multiple datasets to provide a more cohesive view.

Currently the following CUCM API's are exposed via AutomationFX:

  • AXL - Cisco Administrive XML
  • CTI - Computer Telephony Integration (JTAPI)
  • RISPort - Real-Time Information Port

SDK

Software Development Kits (SDK) make it simple to get up and running in a familiar environment. The first SDK for AutomationFX is available in Python

  • Python - Python SDK for AutomationFX

Authentication

AutomationFX currently supports three authentication mechanisms:

  • Basic (Validates credentials against an Application or End User on CUCM)
    • The User must have one of the following permissions:
      • Standard CCM Phone Administration
      • Standard CCM Admin
  • Cookie
    • This is ideal for leveraging AutomationFX to create a custom web application letting AutomationFX take care of the authentication as well as the facilities of the REST API
    • Use the built-in login page (http://127.0.0.1:8181/login)
    • POST a JSON object i.e. {'userId':'guest','password':'ufx12345'} to the above URL and obtain the cookie
  • APIKey (Can be added as a Header or query string parameter)

CUCM Support

AutomationFX support all versions of CUCM starting from 8.0 (including CUCM 12.0)

Cloud Integration

By design AutomationFX is not just about simplifying integration with CUCM, but providing integration with cloud services in the exact same way as Cisco Spark. This enables existing CUCM systems to leverage the trend towards modern cloud and devops based application enablement of Unified Communications.

AutomationFX can be deployed to a DMZ location as long as the appropriate services are open. However in order to simplify testing and development AutomationFX has a build in 'Cloud Relay' (CloudFX) that maintains an out-bound connection to a secure relay end-point.

CloudFX

CloudFX is similar to facilities like ngrok, but secured to only allow specific well-formatted requests and DDOS control. The CloudFX gateway endpoint (https://api.unifiedfx.com) uses an APIKey to authenticate and route the request to the corresponding on-premise AutomationFX instance. This enabled a multitude of integration options using services like Zapier, built.io, hook.io, IFTTT

The following video is a demo of integrating Cisco Spark and CUCM. In this example Zapier is used to integrate with AutomationFX, however any of the above cloud services could be used:

IMAGE ALT TEXT

CloudFX Gateway

The CloudFX gateway provides the choice to forward requests sent to the gateway (https://api.unifiedfx.com) via a local Firewall/DMZ or the CloudFX Relay in order to reach the local AutomationFX instance. Each 'App' created within AutomationFX has it's own Apikey, the option to use CloudFX and the choice to set a Relay URL. If a Relay URL is provided the CloudFX gateway will forward requests to that URL, the Relay URL would normally be the scheme/host/port of the firewall inbound connection that forwards requests to the local instance of AutomationFX. If no Relay URL is provided then the gateway defaults to sending the request to your instance of the CloudFX Relay (if enabled). The CloudFX relay is a secured entry point to your local instance of AutomationFX that works using an outbound connection from AutomationFX to the relay. Because this uses an outbound connection there is typically no need to configure any firewall rules, therefore it is perfect for rapid development and testing scenarios.

CloudFX Architecture

CloudFX Diagram

AXL

AutomationFX effectively translates the native CUCM AXL SOAP Actions to RESTful Resources. The REST API accepts and can return XML or JSON resource models. JSON support is partucularly useful as it provides the ability to embedd the AutomationFX REST API directly inside a browser applicaiton. For example this would allow the creation of a custom provisioning interface as an alterantive to CCMAdmin. The followng is an example of the mapping between AXL SOAP Actions for CRUD operations on a phone in CUCM and the corresponding REST Operation:

  • ListPhone => GET /AutomationFX/api/axl/phone
  • AddPhone => POST /AutomationFX/api/axl/phone
  • GetPhone => GET /AutomationFX/api/axl/phone/SEP123456789012
  • UpdatePhone => PUT /AutomationFX/api/axl/phone/SEP123456789012
  • RemovePhone => DELETE /AutomationFX/api/axl/phone/SEP123456789012