Interface téléphone réaliste
Pavé numérique 12 touches, annuaire avec recherche, historique d’appels. Conçue pour être intuitive et immersive.
SimPhone est une PWA qui simule un téléphone réaliste pour la formation en simulation médicale. Elle permet aux participants de recevoir et passer des appels dans le cadre d’un scénario (régulation SAMU, coordination inter-services, appel famille…).
Pendant une séance de simulation, les participants utilisent SimPhone sur leur smartphone pour communiquer comme dans un environnement hospitalier réel :
Interface téléphone réaliste
Pavé numérique 12 touches, annuaire avec recherche, historique d’appels. Conçue pour être intuitive et immersive.
Audio bidirectionnel WebRTC
Audio temps réel via go2rtc (WHIP/WHEP). Suppression d’écho et réduction de bruit intégrées.
Appels et conférence
Appel 1-à-1 entre participants, mise en attente, reprise, et conférence à 3+ participants.
PWA installable
Installable sur le smartphone comme une app native. Fonctionne en mode portrait avec navigation par onglets.
┌────────────────────────────────────────────────────┐│ SimServer (Docker) ││ ┌─────────────┐ ┌───────────┐ ││ │ FastAPI │ │ go2rtc │ ││ │ PhoneManager │ │ (WebRTC) │ ││ └──────┬──────┘ └─────┬─────┘ ││ WebSocket WebRTC audio │└─────────┬────────────────┬─────────────────────────┘ │ │┌─────────▼──┐ ┌───────▼──────┐│ SimPhone A │ │ SimPhone B ││ (PWA) │ │ (PWA) │└────────────┘ └──────────────┘Flux audio 2 participants :
Flux conférence (3+ participants) :
phone-conf-{callId} agrégeant tous les flux| Couche | Technologie |
|---|---|
| Frontend | Vue.js 3 + TypeScript (PWA) |
| Audio | WebRTC via go2rtc (WHIP/WHEP) |
| Signaling | WebSocket (/ws/phone/{id}) |
| State | Pinia (persisté localStorage) |
| Backend | FastAPI (PhoneManager + handlers) |
| i18n | vue-i18n v10 (français/anglais) |
SimPhone se connecte à SimServer via WebSocket. À la connexion :
01 50 00 10 01 à 01 50 00 10 10)cd apps/phone && npm install # Installer les dépendancescd apps/phone && npm run dev # Serveur de développement (localhost:5177)cd apps/phone && npm run build # Build productioncd apps/phone && npm test # Tests unitairesOu via le Makefile racine :
make dev-phone # SimPhone Vite dev (:5177)make phone-test # Tests SimPhonemake phone-build # Build SimPhoneSimPhone est distribué sous licence GPLv3, comme les autres composants open source de l’écosystème KerSim.