chahinebrini
822053e11e
feat(calls): CallKit/ConnectionService + VoIP-PushKit + EU-Ringback
Caller/Callee UX:
- lib/ringback.ts + assets/sounds/ringback_eu.mp3 (EU 425Hz Festnetz-Tone)
- stores/call.ts: stopRingback bei connected, hangup-reasons, logCallToChat fix
- locales: 'Wird angerufen…' statt 'Ruft an…'
CallKit (iOS) + ConnectionService (Android):
- lib/callkit.ts: setupCallKeep, displayIncomingCall, startOutgoingCall, reportConnected/Ended (appName 'ReBreak-Audio', includesCallsInRecents=false für DSGVO/DiGA)
- hooks/useCallKeepEvents.ts: native answer/end/mute → useCallStore-Actions
- stores/call.ts: CallKit-Aufrufe an allen lifecycle-Punkten
- app.config.ts: @config-plugins/react-native-callkeep + UIBackgroundModes voip/audio + Android-Telecom-Perms
VoIP-PushKit Backend:
- services/voip-push.ts: @parse/node-apn Provider mit .p12 (Topic org.rebreak.app.voip)
- services/push.ts sendCallRingPush: feuert beide Pfade (VoIP iOS + Expo Android/Fallback)
- prisma: push_tokens.voip_token Column + Migration 20260604
- api/users/me/push-token: optional voipToken im Body
- Env (Infisical): APNS_VOIP_P12_PATH/PASSWORD/TOPIC/PRODUCTION
Push-tap routing + cold-start handling:
- app/_layout.tsx: type:'call' Push → useCallStore.receiveIncoming + /call
Docs: ops/CALLKIT_SETUP.md (Apple-Portal-Steps für VoIP-Cert)
2026-06-04 09:27:13 +02:00
..
2026-05-21 21:54:11 +02:00
2026-06-04 09:27:13 +02:00
2026-05-30 11:18:51 +02:00
2026-05-15 21:48:54 +02:00
2026-05-22 21:13:11 +02:00
2026-06-03 09:57:27 +02:00
2026-06-01 02:36:28 +02:00
2026-06-03 09:57:27 +02:00
2026-05-15 21:48:54 +02:00
2026-05-21 18:09:42 +02:00
2026-06-04 09:27:13 +02:00
2026-05-10 23:59:25 +02:00
2026-05-18 08:06:47 +02:00
2026-05-21 18:09:42 +02:00
2026-05-11 05:15:29 +02:00
2026-05-06 07:13:43 +02:00
2026-05-06 07:13:43 +02:00
2026-05-16 05:26:52 +02:00
2026-05-14 00:53:08 +02:00
2026-05-13 23:23:45 +02:00
2026-05-13 19:06:01 +02:00
2026-06-03 21:14:31 +02:00
2026-05-21 18:09:42 +02:00
2026-05-13 16:35:18 +02:00
2026-05-15 22:41:25 +02:00
2026-06-01 04:30:20 +02:00
2026-06-04 09:27:13 +02:00
2026-05-10 23:59:25 +02:00
2026-05-11 15:18:59 +02:00
2026-05-22 20:52:20 +02:00