Dokumentation
CDR-Request API
Call Detail Records (CDRs) abrufen:
Diese Methode wird verwendet um CDRs (Call Detail Records) für einen bestimmten Zeitraum abzurufen. Bitte beachten Sie, das es sich hier um die Rohdaten-CDRs handelt, die für jeden Anrufzweig geschrieben werden. Die Daten, die Sie im Kundenportal im Bereich STATISTIKEN finden, basieren auf bereits aggregierten Daten, d.h. dass alle CDRs, die zu einem Anruf gehören, bereits zu einem einzelnen CDR zusammengefasst wurden.
| POST | https://api.tenios.com/cdrs/retrieve |
Anfrageparameter:
| access_key String | Der Zugriffsschlüssel (Access Key) für die API. Dieser kann im Kundenportal unter dem Menüpunkt MY ACCOUNT/Allgemeine Einstellungen im Abschnitt API gefunden werden. |
| start_date_from | Das Anfangsdatum des Zeitraums von dem Sie CDRs abfragen möchten. |
| start_date_to | Das Enddatum des Zeitraums von dem Sie CDRs abfragen möchten. |
| page | Die Seite, die Sie innerhalb des Zeitraums abfragen möchten. |
| page_size | Die Seitengröße, d.h. maximale Anzahl an CDRs, die pro Seite geliefert werden. |
Antwortparameter:
| answer_stamp | Der Zeitstempel wann der Anruf beantwortet wurde. |
| billusec | Zeit in Mikrosekunden des Anrufs, die berechnet werden. |
| bleg_uuid | Die uuid des weitergeleiteten Anrufs, der verbunden wurde. |
| main_leg_uuid | Die uuid des zugehörigen INBOUND Anrufs. Wenn der call_type den Wert INBOUND hat, ist dieses Feld immer null. |
call_type | Der Typ des Anrufszweigs. Dieser kann die folgenden Werte haben:
|
| callerid_name | Der caller id name. Dieses Feld wird nur verwendet, wenn der Anruf über SIP und nicht ins öffentliche Telefonnetz weitergeleitet wird. |
| callerid_number | Die Anruferkennung (auch ANI oder CLI). |
| destination_number | Die Zielnummer des Anrufs. Wenn der Anruf den Wert INBOUND hat, ist diese in der Regel die Servicenummer. |
| start_stamp | Der Zeitstempel wann der Anruf begonnen hat. |
| end_stamp | Der Zeitstempel wann der Anruf beendet wurde. |
| duration | Die Gesamtdauer des Anrufs, inclusive Anrufaufbauzeiten. |
| hangup_cause String | Der Auflegegrund des Anrufs. Mehr Informationen in der Tabelle Auflegegrund. |
| uuid | Eine uuid, die diesem Anruf identifiziert. |
| prepaid boolean | Dieses Flag kann den Wert true oder false haben, um festzustellen, ob der Anruf zu einem Prepaid Benutzeraccount gehört. |
| cost | Die Kosten des Anrufs in EUR. |
| source_type | Der Typ des Quell-Netzwerks, über das der Anruf initiiert wurde. Kann die Werte FIXED_LINE für Festnetz und MOBILE für Mobilfunk haben. |
| routing_status | Der Routing Status des Anrufs. Dieses Feld ist null bei erfolgreichem Routing, andernfalls steht hier ein Text mit einer Beschreibung des Routingfehlers. |
| billing_status | Der Abrechnugsstatus des Anrufs. Dieses Feld ist null bei erfolgreichem Routing, andernfalls steht hier ein Text mit einer Beschreibung des Routingfehlers. |
| total_items | Die Gesamtzahl von CDRs im abgefragten Zeitraum. |
| page | Die aktuelle Seite |
| page_size | Die Seitengröße. |
| UNSPECIFIED | Dieser Grund wird verwendet, wenn keiner der anderen Gründe zutrifft. |
| UNALLOCATED_NUMBER | Dieser Grund besagt, dass die Zielnummer, obwohl sie ein gültiges Format hat, derzeit nicht vergeben ist. |
| NO_ROUTE_TRANSIT_NET | Dieser Grund besagt, dass das Gerät, das diesen Grund sendet, eine Anfrage erhalten hat den Anruf durch ein bestimmtes Transitnetz zu routen, dieses aber nicht erkannt wird. |
| NO_ROUTE_DESTINATION | Dieser Grund besagt, dass die Zielnummer über das Netz, über das der Anruf geroutet wurde, nicht erreichbar ist. |
| CHANNEL_UNACCEPTABLE | Dieser Grund besagt, dass der Kanal der zuletzt ausgewählt wurde, nicht akzeptierbar ist, um den Anruf zu routen. |
| CALL_AWARDED_DELIVERED | Dieser Grund besagt, dass der Benutzer an den der eingehende Anruf vergeben wurde, bereits mit einen Benutzer verbunden wurde, der gleichartige Anrufe verarbeitet (z.B. packet-mode x.25 virtual calls). |
| NORMAL_CLEARING | Dieser Grund besagt, dass der Anruf von einer der beteiligten Parteien aufgelegt wurde. Unter normalen Umständen wird die Trennung des Anrufs nicht vom Netz verursacht. |
| USER_BUSY | Dieser Grund besagt, dass die Ziel-Partei den Anruf nicht entgegennehmen kann, da alle Leitungen belegt sind. Dieser Grund kann vom Zielanschluss oder vom Netz generiert werden. |
| NO_USER_RESPONSE | Dieser Grund besagt, dass eine angerufene Partei nicht auf eine Nachricht für einen Anrufaufbau in der vorgegebenen Zeit antwortet. |
| NO_ANSWER | Dieser Grund besagt, dass die Zielpartei erreicht wurde, es aber in der vorgegeben Anwahlzeit keine Verbindung gegeben hat. |
| SUBSCRIBER_ABSENT | Dieser Grund wird verwendet, wenn eine Mobilfunkstation abgemeldet ist, der Funkkontakt abgebrochen oder ein Telekommunikationsteilnehmer vorübergehend nicht adressierbar ist. |
| CALL_REJECTED | Dieser Grund besagt, dass der Anruf von der Zielpartei abgelehnt wurde. |
| NUMBER_CHANGED | Dieser Grund wird an die anrufende Partei zurückgegeben, wenn die Zielnummer der angerufenden Partei nicht mehr zugeordnet ist. |
| REDIRECTION_TO_NEW_DESTINATION | Dieser Grund wird von einem generellen ISUP Protokollmechanismus verwendet, der ausgerufen wird, wenn ein Austausch ergibt, dass ein Anruf umgeleitet werden soll. |
| EXCHANGE_ROUTING_ERROR | Dieser Grund besagt, dass das Ziel, das durch den Teilnehmer gekennzeichnet wurde, nicht erreicht werden kann, da ein Zwischenaustausch den Anruf aufgrund des Erreichen eines Limits in der Hop-Zähler-Prozedur getrennt hat. |
| DESTINATION_OUT_OF_ORDER | Dieser Grund besagt, dass die Zielpartei nicht erreicht werden kann, da das Endgerät nicht richtig funktioniert oder abgeschaltet ist. |
| INVALID_NUMBER_FORMAT | Dieser Grund besagt, dass die Zielpartei nicht erreicht werden kann, da die Zielnummer in einem ungültigen Format oder unvollständig ist. |
| FACILITY_REJECTED | Dieser Grund besagt, dass ein Zusatzdienst, der von einem Teilnehmer angefordert wurde, von diesem Netzwerk nicht unterstützt wird. |
| RESPONSE_TO_STATUS_ENQUIRY | Dieser Grund ist in einer STATUS Nachricht enthalten, wenn die Ursache zur Generierung der STATUS Nachricht zuvor der Empfang einer STATUS INQUIRY war. |
| NORMAL_UNSPECIFIED | Dieser Grund wird verwendet, um ein normales Ereignis zu melden, sofern kein anderer Grund dieser Klasse zutrifft. |
| NORMAL_CIRCUIT_CONGESTION | Dieser Grund besagt, dass kein Kanal zur Verfügung steht um den Anruf aufzubauen. |
| NETWORK_OUT_OF_ORDER | Dieser Grund besagt, dass das Telefonnetz nicht richtig funktioniert und dies für eine längere Zeitdauer. Eine sofortige Wiederanwahl wird wahrscheinlich nicht erfolgreich sein. |
| NORMAL_TEMPORARY_FAILURE | Dieser Grund besagt, dass das Telefonnetz nicht richtig funktioniert, allerdings nur für einen kurzen Zeitraum. Der Teilnehmer kann die Wiederanwahl sofort durchführen. |
| SWITCH_CONGESTION | Dieser Grund besagt, dass die Vermittlungstechnik derzeit ausgelastet ist. |
| ACCESS_INFO_DISCARDED | Dieser Grund besagt, dass das Netzwerk wie angefordert keine Zugriffsinformationen an den entfernten Teilnehmer, d.h Teilnehmer-zu-Teilnehmer Informationen, Low Layer Kompatibilität, High Layer Kompatibilität oder Sub-Adresse wie in der Diagnose angegeben. Es wird darauf hingewiesen, dass eine bestimmte Art von Zugangsinformationen verworfen wird, wenn diese in der Diagnose optional enthalten ist. |
| REQUESTED_CHAN_UNAVAIL | Dieser Grund besagt, dass der angeforderte Kanal nicht zur Verfügung steht. |
| FACILITY_NOT_SUBSCRIBED | Dieser Grund besagt, dass der Teilnehmer einen Zusatzdienst angefragt hat, dieser auch verfügbar ist, aber der Teilnehmer nicht für die Nutzung authorisiert ist. |
| OUTGOING_CALL_BARRED | Dieser Grund besagt, dass obwohl die anrufende Partei ein Mitglied der CUG für den ausgehenden CUG Anruf ist und, dass ausgehende Anrufe für dieses Mitglied der CUG nicht erlaubt sind. |
| INCOMING_CALL_BARRED | Dieser Grund besagt, dass obwohl die anrufende Partei ein Mitglied der CUG für den eingehenden CUG Anruf ist, eingehende Anrufe für dieses Mitglied der CUG nicht erlaubt sind. |
| BEARERCAPABILITY_NOTAUTH | Dieser Grund besagt, dass der Teilnehmer ein Dienstmerkmal angefordert hat, das in dem Gerät zwar implementiert ist, welches den Grund generiert hat, der Teilnehmer aber für die Nutzung nicht autorisiert ist. |
| BEARERCAPABILITY_NOTAVAIL | Dieser Grund besagt, dass der Teilnehmer ein Dienstmerkmal angefordert hat, das in dem Gerät zwar implementiert ist, welches den Grund generiert hat, derzeit aber nicht zur Verfügung steht. |
| SERVICE_UNAVAILABLE | Dieser Grund besagt, dass der angeforderte Dienst oder die Option nicht zur Verfügung steht, sofern kein anderer Grund dieser Klasse zutrifft. |
| BEARERCAPABILITY_NOTIMPL | Dieser Grund besagt, dass das Gerät, welches diesen Grund sendet das angefragte Dienstmerkmal nicht unterstützt. |
| CHAN_NOT_IMPLEMENTED | Dieser Grund besagt, dass das Gerät, welches diesen Grund sendet den angefragten Kanaltyp nicht unterstützt. |
| FACILITY_NOT_IMPLEMENTED | Dieser Grund besagt, dass das Gerät, welches diesen Grund sendet, die angeforderten Zusatzdienste nicht unterstützt. |
| SERVICE_NOT_IMPLEMENTED | Dieser Grund besagt, dass ein Dienst oder eine Option nicht implementiert ist, sofern kein anderer Grund dieser Klasse zutrifft. |
| INVALID_CALL_REFERENCE | Dieser Grund besagt, dass das Gerät, welches diesen Grund sendet, eine Nachricht mit einer Anruf-Referenz erhalten hat, welche momentan nicht aktiv ist oder verwendet wird. |
| INCOMPATIBLE_DESTINATION | Dieser Grund besagt, dass das Gerät, welches diesen Grund sendet, eine Anfrage zur Herstellung eines Anrufs, welcher Low Layer Kompatibilität, High Layer Kompatibilität oder andere Kompatibilitätsattribute hat (z.B. Datenrate), denen nicht stattgegeben werden kann. |
| INVALID_MSG_UNSPECIFIED | Dieser Grund wird verwendet, um ein ungültiges Nachrichtenereignis zu berichten, aber nur wenn kein anderer Grund in der Klasse für ungültige Nachrichten zutrifft. |
| MANDATORY_IE_MISSING | Dieser Grund besagt, dass das Gerät, welches diesen Grund sendet eine Nachricht mit einem fehlenden Informationselement erhalten hat, welches aber erforderlich ist, um die Nachricht zu bearbeiten. |
| MESSAGE_TYPE_NONEXIST | This cause indicates that the equipment sending this cause has received a message with a message type it does not recognize either because this is a message not defined of defined but not implemented by the equipment sending this cause. |
| WRONG_MESSAGE | This cause indicates that the equipment sending this cause has received a message such that the procedures do not indicate that this is a permissible message to receive while in the call state, or a STATUS message was received indicating an incompatible call state. |
| IE_NONEXIST | This cause indicates that the equipment sending this cause has received a message which includes information element(s)/parameter(s) not recognized because the information element(s)/parameter name(s) are not defined or are defined but not implemented by the equipment sending the cause. This cause indicates that the information element(s)/parameter(s) were discarded. However, the information element is not required to be present in the message in order for the equipment sending the cause to process the message. |
| INVALID_IE_CONTENTS | Dieser Grund besagt, dass das Gerät, das diesen Grund sendet, ein Informationselement empfangen hat, welches nicht implementiert ist. |
| WRONG_CALL_STATE | Dieser Grund besagt, dass eine Nachricht empfangen wurde, die nicht kompatibel mit dem aktuellen Anrufstatus ist. |
| RECOVERY_ON_TIMER_EXPIRE | Dieser Grund besagt, dass eine Prozedur durch den Ablauf eines Timers abgebrochen wurde. |
| MANDATORY_IE_LENGTH_ERROR | Dieser Grund besagt, dass das Gerät, das diesen Grund sendet eine Nachricht empfangen hat, dessen Parameter nicht definiert sind oder definiert aber auf diesem Gerät nicht implementiert sind. |
| PROTOCOL_ERROR | Dieser Grund besagt, dass ein Protokollfehler Ereignis eingetreten ist, sofern kein anderer Grund dieser Klasse zutrifft. |
| INTERWORKING | Dieser Grund besagt, dass ein interworking call (üblicherweise ein Anruf zu einem SW56 service) beendet wurde. |
| ORIGINATOR_CANCEL | Dieser Grund besagt, dass der Anrufer den Anruf beendet hat. |
| LOSE_RACE | Dieser Grund besagt, dass bei einem parallelen Anruf auf mehrere Rufnummern dieser Anrufabschnitt nicht verbunden wurde. |
| MANAGER_REQUEST | Dieser Grund besagt, dass der Anruf über ein API Kommando aufgelegt wurde. |
Beispiel für eine erfolgreiche Anfrage:
Request:
{
"access_key": "9993f89f-b5c0-4f57-abe0-7ec3d929fe19",
"start_date_from": "2000-01-01T00:00:00.000Z",
"start_date_to": "2018-01-01T00:00:00.000Z",
"page": 1,
"page_size": 1
}API Response Beispiel:
API Response Beispiel 1:
HTTP Status Code: 200 (OK)
{
"items": [
{
"answer_stamp": "2014-01-09T23:00:00:000Z",
"billusec": 36000000,
"bleg_uuid": null,
"main_leg_uuid": null,
"call_type": "INBOUND",
"callerid_name": "+49123456789",
"callerid_number": "+49123456789",
"destination_number": "+49123456789",
"start_stamp": "2014-01-09T23:00:00:000Z",
"end_stamp": "2014-01-10T23:00:00:000Z",
"duration": 57,
"hangup_cause": "NORMAL_CLEARING",
"uuid": "3b7957a8-ca33-40d6-acd5-787b61d3db09",
"prepaid": true,
"cost": 2.65,
"source_type": "FIXED_LINE",
"routing_status": null,
"billing_status": null
}
],
"total_items": 615,
"page_size": 1,
"page": 1
}API Response Beispiel 2:
HTTP Status Code: 200 (OK)
{
"items": [
{
"answer_stamp": "2020-02-01T17:22:31.000Z",
"billusec": 18400001,
"bleg_uuid": null,
"main_leg_uuid": null,
"call_type": "FAXOUT",
"callerid_name": "+496922237223509",
"callerid_number": "+496222437223509",
"destination_number": "+4969211137223509",
"start_stamp": "2020-02-01T17:22:31.000Z",
"end_stamp": "2020-02-01T17:22:50.000Z",
"duration": 19,
"hangup_cause": "NORMAL_CLEARING",
"uuid": "70960bf8-d93d-4faf-84a6-1XXXXXXXX",
"prepaid": true,
"cost": 0.0031666673,
"source_type": null,
"routing_status": null,
"billing_status": null
},
{
"answer_stamp": "2020-02-01T17:22:31.000Z",
"billusec": 18380002,
"bleg_uuid": null,
"main_leg_uuid": null,
"call_type": "INBOUND",
"callerid_name": null,
"callerid_number": "+496922227223509",
"destination_number": "+4969222237223509",
"start_stamp": "2020-02-01T17:22:31.000Z",
"end_stamp": "2020-02-01T17:22:50.000Z",
"duration": 19,
"hangup_cause": "NORMAL_CLEARING",
"uuid": "6db8afdc-4517-11ea-a61b-c3XXXXXXXXXX",
"prepaid": true,
"cost": 0.0031666673,
"source_type": "FIXED_LINE",
"routing_status": null,
"billing_status": null
},
{
"answer_stamp": "2020-02-01T17:34:23.000Z",
"billusec": 18319994,
"bleg_uuid": null,
"main_leg_uuid": null,
"call_type": "FAXOUT",
"callerid_name": "+496922227223509",
"callerid_number": "+4962222223509",
"destination_number": "+496222237223509",
"start_stamp": "2020-02-01T17:34:23.000Z",
"end_stamp": "2020-02-01T17:34:42.000Z",
"duration": 19,
"hangup_cause": "NORMAL_CLEARING",
"uuid": "6e30c9d7-573f-46d8-92a7-XXXXXXXX",
"prepaid": true,
"cost": 0.0031666673,
"source_type": null,
"routing_status": null,
"billing_status": null
}
],
"total_items": 5,
"page_size": 1,
"page": 1
}Beispiele für fehlerhafte Anfragen:
Request:
{
"access_key": "9993f89f-b5c0-4f57-abe0-7ec3d929fe19",
"start_date_from": "2020-01-01T00:00:00:000Z",
"start_date_to": "2018-01-01T00:00:00:000Z",
"page": 1,
"page_size": 1
}API Response:
{
"error_code": "CDR_FIELD_START_AFTER_END_DATE",
"error_message": "Parameter 'start_date_from' value can not be higher then 'start_date_to' value",
"fields": [
"start_date_from",
"start_date_to"
]
}{
"access_key": "9993f89f-b5c0-4f57-abe0-7ec3d929fe19",
"start_date_from": "20200101",
"start_date_to": "2018-01-01",
"page": 1,
"page_size": 1
}API Response:
{
"error_code": "CDR_DATE_PARSE_ERROR",
"error_message": "Parameter 'start_date_from' value parsing error: format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ. E.g. 2013-12-31T00:00:00:000Z",
"fields": [
"start_date_from"
]
}Request:
{
"access_key": "9993f89f-b5c0-4f57-abe0-7ec3d929fe19",
"start_date_from": "2015-01-01T00:00:00:000Z",
"start_date_to": "2016-01-01T00:00:00:000Z",
"page": -1,
"page_size": 1
}API Response:
{
"error_code": "FIELD_NEGATIVE_OR_ZERO",
"error_message": "Parameter 'page' value can not be negative or equal to zero",
"fields": [
"page"
]
}Request:
{
"access_key": "9993f89f-b5c0-4f57-abe0-7ec3d929fe19",
"start_date_from": "2020-01-01T00:00:00:000Z",
"start_date_to": "2018-01-01T00:00:00:000Z",
"page": 1,
"page_size": 1
}API Response:
{
"success": false,
"error_code": "TOO_MANY_REQUESTS",
"error_message": "Too many requests",
"fields": []
}CDRs zählen:
Methode zum Zählen von CDRs in einem definierten Intervall. Aus Leistungsgründen kann das Intervall max. 1 Tag.
| POST | https://api.tenios.com/cdrs/count |
Anfrageparameter:
| access_key | Der Zugriffsschlüssel (Access Key) für die API. Dieser kann im Kundenportal unter dem Menüpunkt MY ACCOUNT/Allgemeine Einstellungen im Abschnitt API gefunden werden. |
| start_date_from | Das Anfangsdatum des Zeitraums von dem Sie CDRs abfragen möchten. |
| start_date_to | Das Enddatum des Zeitraums von dem Sie CDRs abfragen möchten. |
Antwortparameter:
| total_items | Die Anzahl der Cdrs, die im angegebenen Intervall gezählt wurden. |
Beispiel für eine erfolgreiche Anfrage:
Request:
{
"access_key ": "00000000-0000-0000-0000-000000000000 ",
"start_date_from ": "2018-03-20T00:00:00.000Z ",
"start_date_to ": "2018-03-20T23:00:00.000Z "
}API Response:
HTTP Status Code: 200 (OK)
{
"total_items ": 51
}CDRs nach UUID-Endpunkt abrufen:
Methode zum Abrufen von Informationen zu bestimmten CDRs. Die Client-Anfrage sollte eine gültige CDR-UUID enthalten.
| POST | https://api.tenios.com/cdrs/retrieve-by-uuid |
Anfrageparameter:
| access_key String | Der Zugriffsschlüssel (Access Key) für das API. Dieser kann im Kundenportal unter dem Menüpunkt MY ACCOUNT/ Allgemeine Einstellungen im Abschnitt API gefunden werden. |
| uuid String | Die Identifikationsnummer, mit der ein Anruf eindeutig identifiziert wird. |
Antwortparameter:
Beispiel für eine erfolgreiche Anfrage:
Request:
{
"access_key": "c0b93a5e-4ce0-4adb-940e-5079f2abbcb4",
"uuid": "a0b93a5e-4ce0-4adb-940e-5079f2abbcb1"
}API Response:
HTTP Status Code: 200 (OK)
{
"callerid_name": "+32481002XXX",
"callerid_number": "+32481002XXX",
"source_type": "FIXED_LINE",
"duration": 57,
"destination_number": "+32800100200",
"start_stamp": "2018-09-17T16:20:02.630Z",
"uuid": "4fac169e-408a-4f1a-abe7-daade0a8ef76",
"routing_status": "ROUTED",
"end_stamp": "2018-09-17T16:21:48.630Z",
"answer_stamp": "2018-09-17T16:20:55.630Z",
"billusec": 52000000,
"cost": 2.65,
"call_type": "OUTBOUND",
"main_leg_uuid": null,
"bleg_uuid": "1b7954a8-cc33-40d6-acd5-787b61d3db09",
"hangup_cause": "NORMAL_CLEARING",
"prepaid": true,
"billing_status": null
}
Beispiele für fehlerhafte Anfragen:
Request:
{
"access_key": "a0b93a5e-4ce0-4adb-940e-5079f2ab23b4"
}API Response:
HTTP Status Code: 400 (Bad Request)
{
"error_code": "FIELD_IS_REQUIRED",
"error_message": "Parameter 'uuid' is required",
"fields": [
"uuid"
]
}Request:
{
"access_key": "a0b93a5e-4ce0-4adb-940e-5079f2abbcb1",
"uuid": "invaliduuid"
}API Response:
{
"error_code": "INVALID_FIELD",
"error_message": "Invalid 'uuid' input parameter. Invalid value - 'invaliduuid' .",
"fields": [
"uuid"
]
}Request:
{
"access_key": "a0b93a5e-4ce0-4adb-940e-5079f2abbcb1",
"uuid": "c0b93a5e-4ce0-4adb-940e-5079f2abbcb1"
}API Response:
HTTP Status Code: 404 (Not found)
{
"error_code": "CDR_NOT_FOUND",
"error_message": "Requested cdr 'c0b93a5e-4ce0-4adb-940e-5079f2abbcb1' not found",
"fields": [
"uuid"
]
}