---
title: "yuuphone Enterprise API"
canonical: "https://dokucenter.yuutel.at/space/Dokucenter/2238490921/yuuphone%20Enterprise%20API"
format: markdown
---
# Einleitung

<span style="color: #000009">Dieses Dokument beschreibt die Schnittstelle, nachfolgend Enterprise API (kurz EAPI) genannt, für die automatisierte Abfrage von anrufbezogenen Daten der yuuphone Lösung.</span> 

Damit ist es möglich einzelne Calldaten (Call Data Records, “cdr”) abzufragen um diese bspw. auszuwerten oder in Drittsystemen weiter zu verarbeiten.

yuuphone Kunden erhalten bei Bedarf kostenlosen Zugriff auf die API. Den notwendigen Token zur Abfrage der Daten bekommen Sie von [service@yuutel.at](mailto:service@yuutel.at)

> ✅ Zur Einrichtung der EAPI **benötigen **wir von Ihnen die **externe IP Adresse(n)**, von der aus Sie, auf die EAPI zugreifen.
> ✅ 
> ✅ Alternativ kann statt der IP-Adresse ein **Zertifikat** verwendet werden, dass Sie von yuutel erhalten. Für die Erstellung des Zertifikats ist eine **Emailadresse **notwendig!

# <span style="color: #000009">Eigenschaften</span> <span style="color: #000009">der</span> <span style="color: #000009">Schnittstelle</span>

<span style="color: #000009">Die Schnittstelle ist eine auf HTTP basierende API, deren Endpunkte generell dem REST Modell folgen. Für den Datenaustausch wird JSON als Datenformat genutzt.</span>

## <span style="color: #000009">URL</span> <span style="color: #000009">Endpunkt</span>

<span style="color: #000009">Die EAPI wird unter einer Basis URL bereitgestellt. Dieser Basis URL müssen bestimmte Parameter angefügt werden, um die gewünschten Informationen per REST geliefert zu bekommen. Nachfolgend werden die Endpunkte innerhalb dieser Base-URL beschrieben.</span>

```
Basis Enterprise-API URL: https://api.ipbx.at/eapi/v1
```

  
<span style="color: #000009">Um beispielsweise die Liste der Gesprächsdaten (cdr) abzufragen, erfolgt der Zugriff mit der GET Methode auf die </span><span style="color: #000009">**Basis URL**</span><span style="color: #000009"> mit dem </span><span style="color: #000009">**Parameter “cdr”**</span><span style="color: #000009">:</span>

```
https://api.ipbx.at/eapi/v1/cdr
Authorization: Bearer <TOKEN DEN SIE VON YUUTEL BEKOMMEN HABEN>
```


<span style="color: #000009">Das</span> <span style="color: #000009">OpenAPI</span> <span style="color: #000009">Schema</span> <span style="color: #000009">(v3)</span> <span style="color: #000009">ist</span> <span style="color: #000009">verfügbar unter:</span>

- <span style="color: #000009">Schema:</span> <span style="color: #000009">[https://api.ipbx.at/doc/enterprise/v1/enterprise-api-openapi.yaml](https://api.ipbx.at/doc/enterprise/v1/enterprise-api-openapi.yaml)</span>
- <span style="color: #000009">Swagger-UI:</span> [https://api.ipbx.at/swagger-ui/?urls.primaryName=Enterprise API v1](https://api.ipbx.at/swagger-ui/?urls.primaryName=Enterprise%20API%20v1)

## <span style="color: #000009">Datenaufbewahrung</span>

<span style="color: #000009">Die Aufbewahrungsdauer für Gesprächsdaten entspricht den EU weiten, gesetzlichen Regelungen und liegt derzeit bei 6 Monaten.</span>

## <span style="color: #000009">Datenformat</span>

<span style="color: #000009">Für die Schnittstelle wird generell JSON (Content-Type: application/json) als Datenaustauschformat verwendet. Alle Zeichen sind UTF-8 kodiert.</span>  
<span style="color: #000009">Jegliche Anfragen an die Schnittstelle müssen JSON verarbeiten können und dies entsprechend im Accept-Header setzen.</span>

```
Accept: application/json
```

<span style="color: #000009">Ist</span> <span style="color: #000009">ein</span> <span style="color: #000009">Feld</span> <span style="color: #000009">für</span> <span style="color: #000009">eine</span> <span style="color: #000009">Datenstruktur</span> <span style="color: #000009">als</span> <span style="color: #000009">*optional*</span> <span style="color: #000009">angegeben,</span> <span style="color: #000009">so</span> <span style="color: #000009">kann</span> <span style="color: #000009">der</span> <span style="color: #000009">Eintrag</span> <span style="color: #000009">in</span> <span style="color: #000009">der JSON-Repräsentation auch komplett entfallen.</span>

# <span style="color: #000009">Sicherheit</span>

## <span style="color: #000009">Authentifizierung</span>

<span style="color: #000009">Für die Authentifizierung des</span> <span style="color: #000009">Zugriffs wird initial ein EAPI-Token</span> <span style="color: #000009">vergeben. Den Token erhalten sie von von der yuutel GmbH (</span><span style="color: #000009">[service@yuutel.at](mailto:service@yuutel.at)</span><span style="color: #000009">).</span>  

<span style="color: #000009">Beispiel</span> <span style="color: #000009">für</span> <span style="color: #000009">einen</span> <span style="color: #000009">Aufruf</span> <span style="color: #000009">via</span> <span style="color: #000009">CURL</span> <span style="color: #000009">mit</span> <span style="color: #000009">API-Token:</span>

```shell
curl --compressed -X GET -H 'Authorization: Bearer TOKEN "https://api.ipbx.at/eapi/v1/cdr?since=2020-06-01T00:00:00Z&limit=500" 
[{"id":"124644414","type":"ORIG","direction":"O","originatorNumber":"+4311111111",...
```

## <span style="color: #000009">Netzwerkzugriff</span>

<span style="color: #000009">Der Zugriff zur EAPI wird grundsätzlich auf Basis von IPv4-Adressen eingeschränkt. Für jedes EAPI-Token wird ein definiertes Set an IPv4-Adressen (bzw. auch Subnetze) freigeschaltet. Für eine Änderung der Zugriffe ist ein neuer Token notwendig.</span>

Sollte die Angabe einer IP Adresse bzw. der IP-Adress-Range nicht möglich sein, dann kann eine Authentifizierung per Zertifikat eingesetzt werden. Dazu bekommen Sie von yuutel ein Zertifikat, dass bei jeder Anfrage mit gesendet werden muss. Da das Zertifikat eine Laufzeit von 3 Jahren aufweist, muss nach Ablauf der  Laufzeit, eine neues Zertifikat bei [service@yuutel.at](mailto:service@yuutel.at) angefragt werden.

> ❌ <span style="color: #000009">IPv6</span> <span style="color: #000009">Adressen</span> <span style="color: #000009">werden</span> <span style="color: #000009">derzeit nicht unterstützt!</span>

## <span style="color: #000009">Abfragebeschränkung</span>

<span style="color: #000009">Die Anzahl der Zugriffe ist generell auf 1 Request/s pro EAPI-Token eingeschränkt. Ein Burst auf 5 Requests/s wird kurzzeitig erlaubt. Weitere Requests, die diese Zugriffsrate übersteigen, werden sofort abgelehnt.</span>

## <span style="color: #000009">Transport</span>

<span style="color: #000009">Der Zugriff erfolgt ausschließlich mittels TLS gesicherter HTTP Verbindung. Um mögliche Attacken auf das Transportprotokoll zu minimieren werden nur moderne Verschlüsselungsalgorithmen (Ciphers) erlaubt.</span>  

<span style="color: #000009">Dazu</span> <span style="color: #000009">zählen</span> <span style="color: #000009">aktuell</span> <span style="color: #000009">(basierend</span> <span style="color: #000009">auf</span> <span style="color: #000009">SSLLabs</span> <span style="color: #000009">-</span> <span style="color: #000009">Best</span> <span style="color: #000009">Practices</span> <span style="color: #000009">-</span> <span style="color: #000009">Jan</span> <span style="color: #000009">2020):</span>

- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

# <span style="color: #000009">API</span> <span style="color: #000009">Methoden</span> <span style="color: #000009">für</span> <span style="color: #000009">Gesprächsdaten</span> <span style="color: #000009">(/cdr)</span>

<span style="color: #000009">Für jedes Gespräch wird ein </span><span style="color: #000009">**Call Detail Record**</span><span style="color: #000009"> (kurz cdr) erzeugt, der zugehörigen Parameter des Anrufs enthält.</span>  
<span style="color: #000009">Unter dem EAPI-Pfad /cdr werden Gesprächsdaten in ihrer ursprünglichen Form bereitgestellt.</span>

## <span style="color: #000009">Interne</span> <span style="color: #000009">Gespräche</span>

<span style="color: #000009">Für interne Gespräche wird für jeden Teilnehmer ein eigener CDR erfasst und jeweils mit der korrekten Richtung (direction) hinterlegt.</span>  
<span style="color: #000009">Bei einem Gespräch von A → B werden somit für A ein originierender CDR und für B ein terminierender CDR erstellt. Die CDRs unterscheiden sich prinzipiell nur in der Richtung (direction), da es sich um den gleichen Anruf handelt.</span>  
<span style="color: #000009">Der</span> <span style="color: #000009">zugehörige</span> <span style="color: #000009">Teilnehmer</span> <span style="color: #000009">bzw.</span> <span style="color: #000009">dessen</span> <span style="color: #000009">Nummer</span> <span style="color: #000009">für</span> <span style="color: #000009">einen</span> <span style="color: #000009">CDR</span> <span style="color: #000009">ist</span> <span style="color: #000009">entsprechend...</span>

- <span style="color: #000009">für</span> <span style="color: #000009">originierende</span> <span style="color: #000009">Gespräche</span> <span style="color: #000009">(direction:</span> <span style="color: #000009">„O"):</span> <span style="color: #000009">originatorNumber</span>
- <span style="color: #000009">für</span> <span style="color: #000009">terminierende</span> <span style="color: #000009">Gespräche</span> <span style="color: #000009">(direction:</span> <span style="color: #000009">„T"):</span> <span style="color: #000009">terminatorNumber</span>

## <span style="color: #000009">Zusammengehörige</span> <span style="color: #000009">Gespräche</span>

<span style="color: #000009">Sind bei einem Gespräch mehrere Teilnehmer beteiligt, wird für jede einzelne Verbindung ein eigener</span> <span style="color: #000009">CDR</span> <span style="color: #000009">erzeugt. Für</span> <span style="color: #000009">eine</span> <span style="color: #000009">Weiterleitung</span> <span style="color: #000009">eines</span> <span style="color: #000009">Anrufs</span> <span style="color: #000009">zu</span> <span style="color: #000009">einem</span> <span style="color: #000009">Teilnehmer</span> <span style="color: #000009">(auch</span> <span style="color: #000009">Transfer mit/ohne Rückfrage genannt) entstehen somit für die einzelnen Gesprächsteile mehrere CDRs:</span>

- <span style="color: #000009">**Eingehender Anruf**</span> <span style="color: #000009">(A→B):</span> <span style="color: #000009">1</span> <span style="color: #000009">„TERM"</span> <span style="color: #000009">CDR</span>
- <span style="color: #000009">**Rückfrage**</span> <span style="color: #000009">**zum**</span> <span style="color: #000009">**Teilnehmer**</span> <span style="color: #000009">(B→C):</span> <span style="color: #000009">2 CDRs,</span> <span style="color: #000009">da</span> <span style="color: #000009">intern</span> <span style="color: #000009">(jeweils</span> <span style="color: #000009">für</span> <span style="color: #000009">B</span> <span style="color: #000009">„ORIG"</span> <span style="color: #000009">und</span> <span style="color: #000009">C„TERM")</span>
- <span style="color: #000009">**Gespräch**</span> <span style="color: #000009">**des**</span> <span style="color: #000009">**Anrufers**</span> <span style="color: #000009">**mit**</span> <span style="color: #000009">**dem**</span> <span style="color: #000009">**Teilnehmer**</span><span style="color: #000009"> (A→C)</span> <span style="color: #000009">mit</span> <span style="color: #000009">3</span> <span style="color: #000009">CDRs</span> <span style="color: #000009">mit</span> <span style="color: #000009">Typ</span> <span style="color: #000009">„CONTINUED", 1 für den Transfer und 2x für den ersetzten Anruf (jeweils für B und C, da intern)</span>

<span style="color: #000009">Für diese komplexeren Anrufszenarien werden zusätzliche Informationen (replacedCallId und transferredCallId) in den CDRs abgelegt, um eine Zuordnung der einzelnen CDRs zu einem Gespräch zu erleichtern.</span>  
<span style="color: #000009">Die Gesprächsdauer (duration) der jeweiligen Abschnitte, schließen aus Vergebührungsgründen, auch die Gesprächszeit der weitergeleiteten Gespräche mit ein.</span>

### <span style="color: #000009">Beispiel</span> <span style="color: #000009">für</span> <span style="color: #000009">einen</span> <span style="color: #000009">Call</span> <span style="color: #000009">Transfer</span>

<span style="color: #000009">Teilnehmer</span> <span style="color: #000009">für</span> <span style="color: #000009">einen</span> <span style="color: #000009">Transfer:</span>

```
A = +436769999999 (external)
B = +4311111111 (intern1) 
C = +4312222222 (intern2)
```


<span style="color: #000009">Ablauf:</span>


```
21:50:46 A->B
21:51:16 B->C (start AXFER)
21:51:37 A->C (execute XFER)
21:52:07 Bye

A->Brr======hhhhhhhh............. 80.0s (ring=2.0)
B->C rrr=====............. 50.7s (ring=7.3)
A->C============= 31.1s (billed to B)

Legende: "r": ringing, "=": talking, "h": held, ".": billed
```

<span style="color: #000009">Zugehörige</span> <span style="color: #000009">CDRs:</span>

```shell
curl -X GET -H 'Authorization: Bearer TOKEN "https://api.ipbx.at/eapi/v1/cdr? since=2020-05-18T19:50:00Z&limit=6" | aeson-pretty
[
{
"disconnectReason": "BYE-REPL", "direction": "O", "originatorNumber": "+4311111111",
"terminatorNumber": "+4312222222", "startTime": "2020-05-18T21:51:16+02:00",
"duration": 19.457,
"durationRinging": 7.354,
"callId": "0_3348179075@10.17.7.21-UASession-CpqsJJfkzg", "type": "CONTINUED"
},
{
"disconnectReason": "BYE-REPL", "direction": "T", "originatorNumber": "+4311111111",
"terminatorNumber": "+4312222222",
"startTime": "2020-05-18T21:51:16+02:00",
"duration": 19.457,
"durationRinging": 7.314,
"callId": "0_3348179075@10.17.7.21-UASession-CpqsJJfkzg",
"type": "CONTINUED"
},
{
"disconnectReason": "BYE-XFER", "direction": "T", "originatorNumber": "+436769999999",
"terminatorNumber": "+4311111111",
"startTime": "2020-05-18T21:50:46+02:00",
"duration": 48.837,
"durationRinging": 2.021,
"callId": "2a15e00013f5-5ec2e714-a51deb-01-UASession-aN6D7X_XKP", "type": "CONTINUED"
},
{
"disconnectReason": "BYE",
"replacedCallId": "0_3348179075@10.17.7.21-UASession-CpqsJJfkzg",
"originatorNumber": "+436769999999",
"terminatorNumber": "+4311111111",
"startTime": "2020-05-18T21:50:46+02:00",
"direction": "T",
"duration": 80.018,
"durationRinging": 2.021,
"callId": "HEisG7sIYY-UASession-hWuA2OJS~q",
"transferredCallId": "2a15e00013f5-5ec2e714-a51deb-01-UASession-aN6D7X_XKP", "referredByNumber": "+4311111111",
"type": "TERM"
},
{
"disconnectReason": "BYE", "direction": "O",
"replacedCallId": "0_3348179075@10.17.7.21-UASession-CpqsJJfkzg", "originatorNumber": "+4311111111",
"terminatorNumber": "+4312222222", "startTime": "2020-05-18T21:51:16+02:00",
"duration": 50.714,
"durationRinging": 7.314,
"callId": "HEisG7sIYY-UASession-hWuA2OJS~q",
"transferredCallId": "2a15e00013f5-5ec2e714-a51deb-01-UASession-aN6D7X_XKP", "referredByNumber": "+4311111111",
"type": "ORIG"
},
{
"disconnectReason": "BYE","replacedCallId": "0_3348179075@10.17.7.21-UASession-CpqsJJfkzg", "originatorNumber": "+4311111111",
"terminatorNumber": "+4312222222", "startTime": "2020-05-18T21:51:16+02:00",
"direction": "T", "duration": 50.714,
"durationRinging": 7.314,
"callId": "HEisG7sIYY-UASession-hWuA2OJS~q",
"transferredCallId": "2a15e00013f5-5ec2e714-6a51deb-01-UASession-aN6D7X_XKP", "referredByNumber": "+4311111111",
"type": "TERM"
}
]
```

<span style="color: #000009">Die Dauer der Verbindung für den transferierten Anruf kann über</span> **transferredCallId **<span style="color: #000009">ermittelt werden (im Beispiel: 80,018 - 48,837 = 31,181s). Die Nummer des C- Teilnehmers, der schlussendlich mit dem ursprünglichen Anrufer A gesprochen hat, kann über die</span> **replacedCallId **<span style="color: #000009">gefunden werden (im Beispiel: +4312222222).</span>

## <span style="color: #000009">Datenstruktur</span> <span style="color: #000009">CDR</span>

<span style="color: #000009">Die</span> <span style="color: #000009">Daten</span> <span style="color: #000009">für</span> <span style="color: #000009">einen</span> <span style="color: #000009">Call-Detail-Record</span> <span style="color: #000009">sind</span> <span style="color: #000009">nachfolgend</span> <span style="color: #000009">aufgeschlüsselt.</span>

|  |  |  |  |
| --- | --- | --- | --- |
| <span style="color: #000009">**Name**</span> | <span style="color: #000009">**Typ**</span> | <span style="color: #000009">**Optional**</span> | <span style="color: #000009">**Beschreibung**</span> |
| <span style="color: #000009">id</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Nein</span> | <span style="color: #000009">Eindeutige</span> <span style="color: #000009">Kennung</span> <span style="color: #000009">des</span> <span style="color: #000009">CDRs Beispiel:</span> <span style="color: #000009">2342123123</span> |
| <span style="color: #000009">type</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Nein</span> | <span style="color: #000009">Typ des Anrufes: ORIG</span> <span style="color: #000009">(originating), TERM (terminating),</span> <span style="color: #000009">CONTINUED</span> <span style="color: #000009">(fortgesetzt)</span> <span style="color: #000009">oder ATTEMPT</span> <span style="color: #000009">(unbeantwortet).</span> |
| <span style="color: #000009">direction</span> | <span style="color: #000009">enum</span> | <span style="color: #000009">Nein</span> | <span style="color: #000009">Richtung</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs</span> <span style="color: #000009">(originierend,</span> <span style="color: #000009">terminiierend) Bespiel: O | T</span> |
| <span style="color: #000009">originatorNumber</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Nummer</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufers</span> <span style="color: #000009">im</span> <span style="color: #000009">+E164</span> <span style="color: #000009">Format Beispiel:</span> <span style="color: #000009">+43987371222</span> |
| <span style="color: #000009">terminatorNumber</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Nummer</span> <span style="color: #000009">des</span> <span style="color: #000009">Angerufenen</span> <span style="color: #000009">im</span> <span style="color: #000009">+E164</span> <span style="color: #000009">Format Beispiel: +43720620311</span> |
| <span style="color: #000009">startTime</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Startzeit</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs</span> <span style="color: #000009">im</span> <span style="color: #000009">ISO8601</span> <span style="color: #000009">Format Beispiel: 2017-07-11T12:12:44Z</span> |
| <span style="color: #000009">duration</span> | <span style="color: #000009">float</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Dauer</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs</span> <span style="color: #000009">(Gesprächszeit) Beispiel: 15.2</span> |
| <span style="color: #000009">durationRinging</span> | <span style="color: #000009">float</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Dauer</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs</span> <span style="color: #000009">(Gesprächszeit) Beispiel: 4.67</span> |
| <span style="color: #000009">startTimeMillis</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Nein</span> | <span style="color: #000009">Startzeit</span> <span style="color: #000009">in</span> <span style="color: #000009">Millisekunden</span> <span style="color: #000009">seit</span> <span style="color: #000009">der</span> <span style="color: #000009">Epoche</span> <span style="color: #000009">(UTC) Beispiel: 1589835733321</span> |
| <span style="color: #000009">stopTimeMillis</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Nein</span> | <span style="color: #000009">Stopzeit</span> <span style="color: #000009">in</span> <span style="color: #000009">Millisekunden</span> <span style="color: #000009">seit</span> <span style="color: #000009">der</span> <span style="color: #000009">Epoche</span> <span style="color: #000009">(UTC) Beispiel: 1589835770895</span> |
| <span style="color: #000009">callId</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Nein</span> | <span style="color: #000009">Eindeutige</span> <span style="color: #000009">ID</span> <span style="color: #000009">für</span> <span style="color: #000009">einen</span> <span style="color: #000009">Anruf</span>   

<span style="color: #000009">Beispiel:</span>  <span style="color: #000009">abe435g2jdu12@UA-4324123132</span> |
| <span style="color: #000009">replacedCallId</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Eindeutige</span> <span style="color: #000009">ID</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs,</span> <span style="color: #000009">der</span> <span style="color: #000009">durch</span> <span style="color: #000009">diesen</span> <span style="color: #000009">ersetzt wurde. Format siehe callId</span> |
| <span style="color: #000009">transferredCallId</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Eindeutige</span> <span style="color: #000009">ID</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs</span> <span style="color: #000009">auf</span> <span style="color: #000009">den</span> <span style="color: #000009">transferiert wurde. Format siehe callId</span> |
| <span style="color: #000009">referredByNumber</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Rufnummer,</span> <span style="color: #000009">die</span> <span style="color: #000009">einen</span> <span style="color: #000009">Transfer</span> <span style="color: #000009">oder</span> <span style="color: #000009">Pickup durchgeführt hat</span> |
| <span style="color: #000009">disconnectReason</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Ursache</span> <span style="color: #000009">für</span> <span style="color: #000009">Beendigung</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs.</span> <span style="color: #000009">Im Normalfall</span>   

<span style="color: #000009">BYE</span> |
| <span style="color: #000009">callProgressState</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Status</span> <span style="color: #000009">der</span> <span style="color: #000009">Signalisierung</span> <span style="color: #000009">des</span> <span style="color: #000009">Anrufs.</span> <span style="color: #000009">Vorwiegend im Fehlerfall gesetzt.</span> |
| <span style="color: #000009">callIndicator</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Kennung</span> <span style="color: #000009">für</span> <span style="color: #000009">spezielle</span> <span style="color: #000009">Dienste</span> <span style="color: #000009">in</span> <span style="color: #000009">der</span> <span style="color: #000009">Signalisierung des Anrufs</span> |
| <span style="color: #000009">publicIP</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Öffentliche</span> <span style="color: #000009">IP-Adresse</span> <span style="color: #000009">des</span> <span style="color: #000009">Benutzers</span> <span style="color: #000009">(VoIP- Signalisierung).</span>   

<span style="color: #000009">Beispiel:</span> <span style="color: #000009">193.84.65.22</span> |
| <span style="color: #000009">privateIP</span> | <span style="color: #000009">string</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Private</span> <span style="color: #000009">IP-Adresse</span> <span style="color: #000009">des</span> <span style="color: #000009">Benutzers</span> <span style="color: #000009">(VoIP- Signalisierung).</span>   

<span style="color: #000009">Beispiel:</span> <span style="color: #000009">193.84.65.22</span> |

## <span style="color: #000009">GET /cdr</span>

<span style="color: #000009">Auflistung</span> <span style="color: #000009">der</span> <span style="color: #000009">CDRs</span> <span style="color: #000009">im</span> <span style="color: #000009">angegebenen</span> <span style="color: #000009">Zeitraum. Erlaubte Query-Parameter:</span>

|  |  |  |  |
| --- | --- | --- | --- |
| <span style="color: #000009">**Parameter**</span> | <span style="color: #000009">**Typ**</span> | <span style="color: #000009">**Optional**</span> | <span style="color: #000009">**Beschreibung**</span> |
| <span style="color: #000009">since</span> | <span style="color: #000009">string (ISO8601)</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Abfrage der CDRs seit dem angegebenen Datum im ISO8601</span> <span style="color: #000009">Format</span> <span style="color: #000009">(inklusive</span> <span style="color: #000009">Zeitzone).</span> <span style="color: #000009">Wird</span> <span style="color: #000009">kein</span> <span style="color: #000009">Datum angegeben, wird die Abfrage für den heutigen Tag durchgeführt.</span>   

<span style="color: #000009">Beispiel:</span> <span style="color: #000009">2020-05-18T23:01:55Z</span> |
| <span style="color: #000009">sinceUtcMillis</span> | <span style="color: #000009">long</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Ähnlich</span> <span style="color: #000009">zu</span> <span style="color: #000009">since,</span> <span style="color: #000009">aber</span> <span style="color: #000009">als</span> <span style="color: #000009">Timestamp</span> <span style="color: #000009">in</span> <span style="color: #000009">Millisekunden seit der Epoche (UTC).</span>   

<span style="color: #000009">Beispiel:</span> <span style="color: #000009">1589835715108</span> |
| <span style="color: #000009">limit</span> | <span style="color: #000009">int</span> | <span style="color: #000009">Ja</span> | <span style="color: #000009">Maximale</span> <span style="color: #000009">Anzahl</span> <span style="color: #000009">von</span> <span style="color: #000009">CDRs,</span> <span style="color: #000009">die</span> <span style="color: #000009">zurückgegeben</span> <span style="color: #000009">werden soll (default: 1000, maximum: 1000)</span>   

<span style="color: #000009">Beispiel:</span> <span style="color: #000009">500</span> |

<span style="color: #000009">Beispiel:</span>
  

<span style="color: #000009">**GET**</span> <span style="color: #000009">**/eapi/v1/cdr?sinceUtcMillis=1589835715108**</span>

```
200 OK [
{
"id": "896469336",
"disconnectReason": "BYE", "originatorNumber": "+436769999999",
"terminatorNumber": "+4311111111", "startTime": "2020-05-18T23:01:55+02:00",
"direction": "T", "startTimeMillis": 1589835715108,
"stopTimeMillis": 1589835721438,
"duration": 6.33,
"durationRinging": 3.46,
"callId": "2a15e00013f5-5ec2f7bf-7a959ebc-UASession-de6RjvU~RO", "type": "TERM",
"publicIP": "80.108.55.43",
"privateIP": "10.17.7.21"
},{
"id": "896464770",
"disconnectReason": "BYE",
"replacedCallId": "0_3348179075@10.17.7.21-UASession-CpqsJJfkzg", "originatorNumber": "+4311111111",
"terminatorNumber": "+4312222222", "startTime": "2020-05-18T21:51:16+02:00",
"direction": "T", "startTimeMillis": 1589831476002,
"stopTimeMillis": 1589831526716,
"duration": 50.714,
"durationRinging": 7.354,
"callId": "HEisG7sIYY-UASession-hWuA2OJS~q",
"transferredCallId": "2a15e00013f5-5ec2e714-01-UASession-aN6D7X_XKP", "referredByNumber": "+4311111111",
"type": "TERM",
"publicIP": "80.108.55.43",
"privateIP": "10.17.7.10"
}
]
```

<span style="color: #000009">Return codes:</span>

```
204 No content
200 OK
```