# Integration – ProviderFlow, Schnittstellen und Datenmodell | NGsipStack

> Wie NGsipStack sich anbindet: ProviderFlow für Vertrieb und Aufträge, zentrale Datenbank, Webhooks, KI-Schnittstelle, Homer und OpenSIPS-Werkzeuge.

Quelle: https://ngstack.de/integration

Zusammenspiel

# Schnittstellen und Datenmodell

Eine zentrale Datenbank für alles. Der SBC liest Konten und Richtlinien direkt, Ereignisse gehen als signierte Webhooks hinaus.

## Schnittstellen

| Schnittstelle | Stand | Details |
|---|---|---|
| Datenquelle | ja | zentrale Datenbank mit Mandanten- und Rollentrennung (Plattform, Partner, Kunde), GraphQL; SBC liest direkt und schreibt Anrufliste und Live-Daten zurück |
| Webhooks | ja | `call.ended`, `voicemail.received`, `ai.call.ended`, `fraud.alert`; Umschlag `{id, event, createdAt, customer, data, version}`, Signatur-Kopf `t=…,v1=HMAC-SHA256`, Geheimnis je Webhook |
| KI-Anbieter ([NGbridge](ngbridge.md)) | ja | WebSocket, NGbridge ist Client, RFC 9421 HMAC-SHA256, eigenes Unterprotokoll (Pflicht im Handshake) |
| ng-Protokoll | ja | SBC ↔ Relais wie rtpengine – NGMedia und rtpengine austauschbar |
| OpenSIPS | ja | drouting-Tabellen und MI-Schnittstelle für das OpenSIPS Control Panel |
| HEP | ja | HEP3 Typ 1 (SIP), 5 (RTCP-JSON), 35 (Qualitäts-Zwischenstände) an Homer |
| fail2ban | ja | Sicherheitsprotokoll im fail2ban-kompatiblen Format |
| ProviderFlow | geplant | Aufgabenteilung festgelegt, Anbindung im Bau |

## Beispiel: Webhook

```
POST https://ihr-system.example/webhook
Content-Type: application/json
Kopfzeilen: Ereignis · Zustell-ID · Signatur t=1759480000,v1=<HMAC-SHA256(Geheimnis, "t.Rumpf") hex>

{"id": "6f1c…", "event": "voicemail.received", "createdAt": "2026-10-03T08:15:00Z",
 "customer": {"id": "…", "number": "…", "name": "…"}, "data": { … }, "version": 1}
```

Prüfung beim Empfänger: HMAC über `<t>.<Rumpf>` nachrechnen und `t` auf Frische prüfen.
