3. Architecture
Jump to:
1.1 Overview of the CTI API
The CTI API extends the DTS service / NFON service ‘Telephone System’ with a powerful interface to support CTI (Computer Telephony Integration) activities. This interface enables PUT, POST and GET commands directly via the NFON data centre. To use the CTI API, it is necessary to set up the CTI API and book the Business Premium tariff.
The CTI API enables the optimal individual integration of cloud telephony with CTI convenience features. This leads to a significant improvement in communication and collaboration within the company and beyond.
This manual also supplements the documentation of the OpenAPI specification.
1.2 Access data
The CTI API is designed as a server-to-server API and enables access to information in the context of a telephone system (see also Access and security). The CTI API is currently only available to selected partners.
1.2.1 Become a selected partner
To gain access to the CTI API before the official release, please contact your account manager.
1.2.2 Requesting API credentials
The API credentials can be requested at vertrieb@nfon.com or auftragsbearbeitung@dt-standard.de. The e-mail must contain the following information:
- Public key (see creation of the keypair)
- K system
- Approximate number of extensions
- Completed declaration of consent (find the document [here](https://cdn.cloudya.com/API/Antrag Zugangsdaten CTI API.pdf))
- E-mail address of the partner to whom access data is to be sent
- E-mail address of the customer representative who can be contacted as the person responsible
1.2.3 Creation of the keypair
NFON only transmits the API credentials in encrypted form. A keypair must be created for encryption as described at https://www.gnupg.org :
2. Product description
The CTI API is an API designed for server/server communication. It is compatible with any device, e.g. hardphone, softphone or the mobile app. The supported features include call control, call event streams and device management.
The CTI API was developed in order to develop customised integration solutions based on the API. This includes the integration of third-party applications with the following features, for example:
- Contact Pop Up
When an incoming call is received, a CRM system is opened based on the incoming call number. Depending on the customer's requirements, the contact window can be opened when the phone rings, after the call has been answered or by an action (e.g. hotkey). - Contact Preview
When a call comes in, a pop-up appears with the name of the phone number that was read from a CRM system. This information can be enriched with further information from the CRM system, such as the number of open tickets. - Synchronising line status
To display the availability of employees transparently, the line status can be read out and displayed in a customised overview. The NFON Line Status can also be enriched with information from other communication applications (MS Teams, Slack) or calendars (MS Office, Google Calendar). - Start/end call
With CTI API, calls can be started or ended directly. This enables calls to be started and ended from CRM systems.
The following use cases are also possible in principle:
- Action URL
Based on the CTI API, ‘Action URL’ can be developed for incoming calls, answered calls and ended calls. - Customised ringtones
The API can be used to use dedicated ringtones for internal, external or VIP calls. In this case, it makes sense to mute Cloudya or the corresponding device. - Call Analytics
If the streamed events (see ‘Stream call details’) are saved, important information can be read from them. However, it must be noted that the status of the individual extensions is not transmitted when the API is initially connected.
Restriction:
The CTI API was designed for incoming and outgoing calls. For incoming calls, there is the special feature that the CTI API has only been tested and released for incoming calls that arrive directly at an extension. Functions such as group calls, skill-based calls or upstream queues are currently not supported. Call scenarios in which a call is forwarded and conferences with several participants are also not supported. Only one device may be assigned to each extension.
It is planned to change the authentication procedure. This breaking change will be announced in advance and must be implemented within the specified time.
2.1 Overview of functions
The most important functions are listed below:
- Read out extension configuration ‘Get /extension/phone/data’
With this endpoint it is possible to obtain an overview of all configured extensions of a K system. This includes both the number and the name assigned to the extension. - Read out line status ‘Get /extensions/phone/states’
This endpoint allows you to read out the line status for each extension. This allows the respective availability status for each extension to be displayed in third-party applications. When connecting for the first time, the status of all configured extensions is displayed. - Start call ‘Post /extensions/phone/calls’
This endpoint initiates a call for an extension. The call is first made to the A number and after acceptance the call is established to the B number. The user can individually specify which end device rings for the user of the A number. A UUID is returned as the return code for this endpoint, which can be used to end calls. - End call ‘Delete /extensions/phone/calls/{uuid}’
Ends a call initiated via the API using the returned UUID. - Stream call details ‘Get /extensions/phone/calls’
This endpoint enables the streaming of all incoming and outgoing telephone events of a K system in real time. The restrictions must be taken into account in complex environments. When connecting for the first time, unlike the endpoint for reading the line status (see above Read out line status), the current status of all extensions is not displayed.
3. Architecture
The CTI API is designed as a server-to-server API and enables access to all the data described above in the context of a K-Account. Ideally, a third-party web or desktop app running on the client communicates with the third-party server to enable the necessary functions.

3.1 Clients
The CTI API can be used to add customised CTI features to the client.
3.2 CTI-Server
The CTI server has direct access to the above-mentioned endpoints in the NFON data centre and can execute Get and Post commands there. If a third-party client is still in use, the CTI server acts as a middle instance between this client and the NFON data centre. Since the CTI server accesses the data in the context of a telephone system, access to the data for the respective client must be ensured in the CTI server.
4. Access and security
Security and data protection play a decisive role when using the CTI API. The data provided is sensitive telecommunications data that must be managed with the appropriate professionalism.
4.1. User administration
The CTI API enables access to all data in the context of the K-Account. The user of the API is responsible for ensuring that each user only receives the data for which they are authorised.
4.2. Security
Regular security updates ensure that all technical components fulfil the current security requirements. The user of the CTI API is also responsible for taking appropriate security precautions when using the data.