-- ==================================================================== -- 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.';