Skip to main content

CSTA overview

Computer-supported telecommunications applications (CSTA) is an abstraction layer for telecommunications applications. It is independent of underlying protocols. It has a telephone device model that enables CTI applications to work with a wide range of telephone devices. Originally developed in 1992, it has continued to be developed and refined over the years. It is often the model that most CTI applications are built on and claim compliance with. It became an OSI standard in July 2000. It is currently being maintained by ECMA International.

The core of CSTA is a normalized Call Control model. Additional to the core there are Call Associated features and Physical Device features amongst others. An implementation of the standard need not provide all features, and so Profiles are provided. For example, the Basic Telephony profile provides such features as Make Call, Answer and Clear Connection.

CSTA Specification​

Link to the CSTA Standard.

Use cases​

  1. From a CRM system, a button click makes a call to a contact. Written in JavaScript/frontend using SignalR.
  2. From a CRM system, a button click makes a call to a contact. Written in .NET C#/backend using SignalR.
  3. A Web app that implements a PBX.

The Basics​

If you are completely new to CSTA, here is a very short introduction:

Request examples​

The CSTA Standard supports many different requests. It can be a request for an action against a device or for the CSTA API itself.

RequestUsed byDescription
StartApplicationSessionCSTA APIUsed to log in and authenticate incoming client connection.
MonitorStartCSTA APIUsed to inform the API that the client wishes to receive CSTA events for the given device.
MakeCallHosted PBXRequesting a call to be made between to devices.
ClearConnectionHosted PBXTerminate the call on a given device.

Event examples​

The CSTA Standard supports many different events. Events inform the client on state changes on devices or queues.

EventDescription
DeliveredEventInforms the client that a call has been delivered to a given device and the device is now ringing.
EstablishedEventInforms the client that a call has been established on the given device.
ConnectionClearedEventInforms the client that the call has been terminated for the given device.