Anruf HTTP GET Schnittstelle V2: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
= 📞 Anruf-API – Version 2 = | = 📞 Anruf-API – Version 2 = | ||
Die '''Anruf-API''' dient dazu, Anrufe per Webhook in die CRM-Infrastruktur ''infra-struktur'' einzutragen und zu aktualisieren. | Die '''Anruf-API''' dient dazu, Anrufe per Webhook in die CRM-Infrastruktur ''infra-struktur'' einzutragen und zu aktualisieren. | ||
Die Schnittstelle kann per '''HTTP GET''' oder '''POST''' aufgerufen werden – '''GET hat Vorrang'''. | Die Schnittstelle kann per '''HTTP GET''' oder '''POST''' aufgerufen werden – '''GET hat Vorrang'''. | ||
| Zeile 7: | Zeile 7: | ||
'''Endpoint:''' | '''Endpoint:''' | ||
<code> | <code>http://[instance]-classic.infra-struktur.[eu|com]/api/calllist/index.php</code> | ||
http://[instance]-classic.infra-struktur.[eu|com]/api/calllist/index.php | |||
</code> | |||
=== Pflichtparameter === | === Pflichtparameter === | ||
| Zeile 56: | Zeile 54: | ||
'''Endpoint:''' | '''Endpoint:''' | ||
<code> | <code>http://[instance]-classic.infra-struktur.[eu|com]/api/calllist/update.php</code> | ||
http://[instance]-classic.infra-struktur.[eu|com]/api/calllist/update.php | |||
</code> | |||
=== Pflichtparameter === | === Pflichtparameter === | ||
| Zeile 98: | Zeile 94: | ||
== 3. Sonderfall: OpenAI Whisper Integration 🎙️ == | == 3. Sonderfall: OpenAI Whisper Integration 🎙️ == | ||
Jede ''infra-struktur''-Instanz verfügt über einen lokalen Whisper-Server, der Audiodateien automatisch transkribiert. | Jede ''infra-struktur''-Instanz verfügt über einen lokalen Whisper-Server, der Audiodateien automatisch transkribiert. | ||
Die '''Transkription wird im Anruf gespeichert''', die Originaldatei bleibt zusätzlich im Anruf per Mediaplayer abspielbar. | Die '''Transkription wird im Anruf gespeichert''', die Originaldatei bleibt zusätzlich im Anruf per Mediaplayer abspielbar. | ||
| Zeile 187: | Zeile 183: | ||
=== 5.1 POST-Beispiel: Audiodatei hochladen & transkribieren (Whisper) === | === 5.1 POST-Beispiel: Audiodatei hochladen & transkribieren (Whisper) === | ||
< | <pre> | ||
curl -X POST "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php" \ | curl -X POST "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php" \ | ||
-F "isdnKey=DEIN_ISDN_KEY" \ | -F "isdnKey=DEIN_ISDN_KEY" \ | ||
-F "number=%2B492941247790" \ | -F "number=%2B492941247790" \ | ||
-F "fileSourceRaw=@anruf.mp3;type=audio/mpeg" | -F "fileSourceRaw=@anruf.mp3;type=audio/mpeg" | ||
</ | </pre> | ||
Ergebnis: | Ergebnis: | ||
| Zeile 200: | Zeile 196: | ||
=== 5.2 POST-Beispiel: Audiodatei mit zusätzlichen Parametern === | === 5.2 POST-Beispiel: Audiodatei mit zusätzlichen Parametern === | ||
< | <pre> | ||
curl -X POST "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php" \ | curl -X POST "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php" \ | ||
-F "isdnKey=DEIN_ISDN_KEY" \ | -F "isdnKey=DEIN_ISDN_KEY" \ | ||
| Zeile 207: | Zeile 203: | ||
-F "acceptedBy=AB" \ | -F "acceptedBy=AB" \ | ||
-F "fileSourceRaw=@anruf.mp3;type=audio/mpeg" | -F "fileSourceRaw=@anruf.mp3;type=audio/mpeg" | ||
</ | </pre> | ||
Hier wird neben der Audiodatei zusätzlich ein '''Anrufgrund''' gesetzt (reason) und ein Bearbeiter eingetragen (acceptedBy). | Hier wird neben der Audiodatei zusätzlich ein '''Anrufgrund''' gesetzt (reason) und ein Bearbeiter eingetragen (acceptedBy). | ||
=== 5.3 GET-Beispiel: Text-Update ohne Datei === | === 5.3 GET-Beispiel: Text-Update ohne Datei === | ||
< | <pre> | ||
curl "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php?isdnKey=DEIN_ISDN_KEY&number=%2B492941247790&reason=Rückruf+gewünscht&acceptedBy=AB" | curl "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php?isdnKey=DEIN_ISDN_KEY&number=%2B492941247790&reason=Rückruf+gewünscht&acceptedBy=AB" | ||
</ | </pre> | ||
Ergebnis: | Ergebnis: | ||
Version vom 22. August 2025, 10:28 Uhr
📞 Anruf-API – Version 2
Die Anruf-API dient dazu, Anrufe per Webhook in die CRM-Infrastruktur infra-struktur einzutragen und zu aktualisieren. Die Schnittstelle kann per HTTP GET oder POST aufgerufen werden – GET hat Vorrang.
1. Anruf eintragen
Endpoint:
http://[instance]-classic.infra-struktur.[eu|com]/api/calllist/index.php
Pflichtparameter
| Parameter | Beschreibung |
|---|---|
| isdnKey | Der ISDN-Key |
| location | Name eines in der Anrufliste konfigurierten Standortes |
| msn | Name einer in der Anrufliste konfigurierten eingehenden Rufnummer/Nebenstelle |
| number | Rufnummer des Anrufers (muss URL-encodiert werden, z. B. +492941247790 → %2B492941247790)
|
Optionale Parameter
| Parameter | Beschreibung |
|---|---|
| reason | Base64-codierter Grund des Anrufs |
| fileSource | Base64-codierter Inhalt einer Datei |
| fileType | Dateityp (Standard: fax)
|
| mimeType | MIME-Type (Standard: application/download)
|
| timestamp | Unix-Timestamp (Standard: Zeitpunkt des Aufrufs) |
| direction | "in" oder "out" (Standard: in)
|
2. Anruf aktualisieren
Endpoint:
http://[instance]-classic.infra-struktur.[eu|com]/api/calllist/update.php
Pflichtparameter
| Parameter | Beschreibung |
|---|---|
| isdnKey | Der ISDN-Key |
| number | Rufnummer des zu aktualisierenden Anrufs (muss URL-encodiert werden) |
Optionale Parameter
| Parameter | Beschreibung |
|---|---|
| id | ID des Anrufs (hat Vorrang vor number)
|
| reason | Grund (Base64 oder Klartext, bei GET zusätzlich URL-encodiert) |
| reasonAppend | Ergänzung zum Grund (Base64 oder Klartext, bei GET zusätzlich URL-encodiert) |
| acceptedBy | Benutzerkürzel für „angenommen durch“ |
| callFor | Benutzerkürzel für „Anruf für“ |
| recall | Angabe, ob ein Rückruf gewünscht ist |
3. Sonderfall: OpenAI Whisper Integration 🎙️
Jede infra-struktur-Instanz verfügt über einen lokalen Whisper-Server, der Audiodateien automatisch transkribiert. Die Transkription wird im Anruf gespeichert, die Originaldatei bleibt zusätzlich im Anruf per Mediaplayer abspielbar.
Parameter
| Parameter | Beschreibung |
|---|---|
| fileSourceRaw | Audiodatei im Binary-Format (nur via POST möglich, wegen Größe und Format) |
4. Fehlercodes
4.1 Fehlende Parameter
| Code | Beschreibung |
|---|---|
| 1001 | isdnKey fehlt |
| 1002 | location fehlt |
| 1003 | msn fehlt |
| 1004 | number fehlt |
4.2 Datenbankverbindung
| Code | Beschreibung |
|---|---|
| 2001 | host fehlt |
| 2002 | username fehlt |
| 2003 | password fehlt |
| 2004 | database fehlt |
| 3001 | Verbindungsfehler (MySQLi) |
4.3 Datenbankabfragen
Fehler bei einzelnen Abfragen, z. B.:
- 3102 – kein Standort mit dem Namen gefunden
- 3105 – MSN ist keine Fax-MSN
- 3113 – Fehler beim Einfügen eines Anrufs in die Calllist
- 3115 – Fehler beim Setzen eines Grundes
(Alle Fehler mit MySQLi-Fehlernummer und Fehlermeldung.)
4.4 API-Fehler
| Code | Beschreibung |
|---|---|
| 4001 | Ungültiger ISDN-Key |
| 4002 | ISDN-Key wurde noch nicht validiert |
| 4101 | Rufnummer zu kurz |
| 4102 | Rufnummer ist ein „Hidden Signal“ |
| 4103 | Anruf liegt innerhalb der Signaltoleranz |
| 4104 | Keine passende Anrufliste für MSN & Standort gefunden |
5. Beispiele
5.1 POST-Beispiel: Audiodatei hochladen & transkribieren (Whisper)
curl -X POST "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php" \ -F "isdnKey=DEIN_ISDN_KEY" \ -F "number=%2B492941247790" \ -F "fileSourceRaw=@anruf.mp3;type=audio/mpeg"
Ergebnis:
- Die Datei anruf.mp3 wird an den Anruf angehängt.
- Der Whisper-Server erzeugt eine Transkription und speichert sie im Anruf.
- Die Originaldatei ist zusätzlich im CRM über einen Mediaplayer abspielbar.
5.2 POST-Beispiel: Audiodatei mit zusätzlichen Parametern
curl -X POST "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php" \ -F "isdnKey=DEIN_ISDN_KEY" \ -F "number=%2B492941247790" \ -F "reason=Kundenrückruf" \ -F "acceptedBy=AB" \ -F "fileSourceRaw=@anruf.mp3;type=audio/mpeg"
Hier wird neben der Audiodatei zusätzlich ein Anrufgrund gesetzt (reason) und ein Bearbeiter eingetragen (acceptedBy).
5.3 GET-Beispiel: Text-Update ohne Datei
curl "http://[instance]-classic.infra-struktur.eu/api/calllist/update.php?isdnKey=DEIN_ISDN_KEY&number=%2B492941247790&reason=Rückruf+gewünscht&acceptedBy=AB"
Ergebnis:
- Der Anruf mit der Nummer
+492941247790wird aktualisiert. - Als Grund wird Rückruf gewünscht gespeichert.
- Der Anruf wird als angenommen durch Benutzer AB markiert.