Files
teamvis-selfhost/supabase/migrations/0041_phone_integration.sql
T
2026-06-25 16:38:31 +02:00

41 lines
2.3 KiB
SQL

-- ====================================================================
-- 0041_phone_integration — Anbindung Telefonanlagen (3CX & generisch)
-- ====================================================================
-- Generisches Provider-Pattern: pro Mandant ein Telefon-Provider
-- (aktuell 3CX im Fokus, weitere Adapter via lib/phone/providers/*.ts
-- nachruestbar). Tokens und Geheimnisse liegen in site_settings;
-- Endpunkte sind uniform unter /api/phone/*.
--
-- Phase 1 nutzt phone_lookup_token (Bearer fuer Inbound-Lookup).
-- Phase 2 nutzt phone_webhook_secret (HMAC fuer Call-Event-POSTs).
-- Phase 3+4 (Click-to-Call / Presence) brauchen phone_api_url +
-- phone_api_token, die wir gleich mitanlegen.
--
-- employees.phone_extension mapping zur Anlage (z.B. "333" als
-- 3CX-Extension fuer felix.zoesch). Erforderlich fuer Click-to-Call
-- und Presence-Lookup.
-- --------------------------------------------------------------------
alter table public.site_settings
add column if not exists phone_provider text,
add column if not exists phone_api_url text,
add column if not exists phone_api_token text,
add column if not exists phone_lookup_token text,
add column if not exists phone_webhook_secret text;
alter table public.employees
add column if not exists phone_extension text;
comment on column public.site_settings.phone_provider is
'Telefonanlagen-Adapter: ''3cx'' | ''sipgate'' | ''asterisk'' | ''placetel'' | null. Bestimmt Format der Lookup-Antwort + Webhook-Erwartung.';
comment on column public.site_settings.phone_api_url is
'Base-URL der Anlagen-API (z.B. https://stwhas.3cx.eu/xapi/v1). Fuer Click-to-Call + Presence-Polling.';
comment on column public.site_settings.phone_api_token is
'Token fuer ausgehende Calls an die Anlagen-API. Nur Service-Role-lesbar.';
comment on column public.site_settings.phone_lookup_token is
'Bearer-Token, das die Anlage beim GET /api/phone/lookup mitschicken muss. Frei generierbar im Admin.';
comment on column public.site_settings.phone_webhook_secret is
'HMAC-Secret zur Validierung eingehender Call-Event-Webhooks (POST /api/phone/call-event). Frei generierbar im Admin.';
comment on column public.employees.phone_extension is
'Telefon-Extension dieser Mitarbeiterin/dieses Mitarbeiters in der Anlage (z.B. "333"). Optional — nur fuer Click-to-Call + Presence relevant.';