UCx currently provides two application programming interfaces (APIs): Asterisk Gateway Interface (AGI) and Asterisk Manager Interface (AMI).
These interfaces serve different purposes:
Both of these interfaces are powerful and opened up a wide range of integration possibilities. Using AGI, remote dialplan execution could be enabled, which allows developers to integrate UCx with PHP, Python, Java, and other applications. Using AMI, the state of UCx could be displayed, calls initiated, and the location of channels controlled. Using both APIs together, complex applications integrated with UCx could be developed.
From release 6.0 onwards, UCx will provide another interface: Asterisk RESTful Interface (ARI).
ARI is an asynchronous API that allows developers to build communications applications by exposing the raw primitive objects in UCx - channels, bridges, endpoints, media, etc. - through an intuitive REST interface. The state of the objects being controlled by the user are conveyed via JSON events over a WebSocket.
ARI consists of three different pieces that are - for all intents and purposes - interrelated and used together. They are:
All three pieces work together, allowing a developer to manipulate and control the fundamental resources in UCx and build their own communications application.