# Handoff Nuovo Ambiente Day-0 Data: 2026-03-11 Baseline commit Day-0: `5d3f5c6` Repository: `michele/netgescon-day0` ## 1) Stato confermato - CTI Panasonic NS1000 implementato con endpoint: - `POST /api/v1/cti/panasonic/incoming` - `POST /api/v1/cti/panasonic/call-ended` - `GET /api/v1/cti/panasonic/lookup` - Post-it: auto-creazione su incoming, auto-chiusura su call-ended con `esito`, `durata_secondi`, `chiusa_il`. - Script disponibili: - `scripts/ops/netgescon-panasonic-csta-test.sh` - `scripts/ops/netgescon-cti-listener.sh` ## 2) Ambienti reali - Sviluppo interno: - path: `/home/michele/netgescon/netgescon-day0` - web: `php artisan serve --host=0.0.0.0 --port=8000` - URL: `http://127.0.0.1:8000` - Staging online: - path: `/var/www/netgescon` - web server: `nginx` - porta: `80` - URL: `http:///` ### Dotfiles sensibili copiati in Day-0 (11/03/2026) - `.env` (copia sviluppo da `/home/michele/netgescon/netgescon-laravel/.env`) - `.env.staging.reference` (copia staging da `/var/www/netgescon/.env`) - `.env.online.dev.reference` - `.env.online.staging.reference` Snapshot completo env/dotfiles per entrambi gli ambienti: - `storage/backups/env-sync/20260311-203948/dev` - `storage/backups/env-sync/20260311-203948/staging` Nota: questi file sono esclusi da Git tramite `.gitignore`. ## 3) Comandi pronti (operativi) ### 3.1 Avvio sviluppo locale ```bash cd /home/michele/netgescon/netgescon-day0 php artisan serve --host=0.0.0.0 --port=8000 ``` ### 3.2 Deploy rapido staging ```bash cd /var/www/netgescon php artisan migrate --force php artisan optimize:clear sudo systemctl reload nginx ``` ### 3.3 Ascolto payload HTTP grezzo (super minimale) ```bash ncat -kl 8099 ``` Fallback se `ncat` non presente: ```bash while true; do nc -l -p 8099; echo; echo "-----"; done ``` ### 3.4 Sniffing CSTA grezzo ```bash sudo tcpdump -i any -nn -s0 -A host 192.168.0.101 and port 33333 ``` Se non vedi traffico: ```bash sudo tcpdump -i any -nn -s0 -A port 33333 sudo tcpdump -i any -nn "tcp port 33333" sudo tcpdump -i any -nn -s0 -A host 192.168.0.101 and \(port 33333 or port 33334 or port 33335\) sudo ss -lntp | grep -E ':33333|:8099|:80' ``` ### 3.5 Simulazione chiamate da terminale Incoming: ```bash curl -sS -X POST "http://127.0.0.1:8000/api/v1/cti/panasonic/incoming" -H "Content-Type: application/json" -H "X-CTI-Token: " -d '{"phone":"+393331112233","direction":"in_arrivo","called_extension":"101","event_id":"evt-001","note":"test incoming"}' ``` Call-ended: ```bash curl -sS -X POST "http://127.0.0.1:8000/api/v1/cti/panasonic/call-ended" -H "Content-Type: application/json" -H "X-CTI-Token: " -d '{"phone":"+393331112233","event_id":"evt-001","outcome":"risposta","duration_seconds":83,"ended_at":"2026-03-11T10:20:00+01:00","note":"test call-ended"}' ``` Lookup: ```bash curl -sS "http://127.0.0.1:8000/api/v1/cti/panasonic/lookup?phone=+393331112233" -H "X-CTI-Token: " ``` ## 4) Prompt pronto da dare al nuovo agent Copia/incolla questo messaggio al nuovo agent: ```text Sei il nuovo agent operativo su NetGescon Day-0. Esegui attività complete (modifica codice + verifica + commit/push), non fermarti alla sola analisi. Contesto: - Repo: michele/netgescon-day0 - Branch: main - Baseline: 5d3f5c6 - Staging online: /var/www/netgescon via nginx su porta 80 - Sviluppo: /home/michele/netgescon/netgescon-day0 su porta 8000 CTI Panasonic già presente: - POST /api/v1/cti/panasonic/incoming - POST /api/v1/cti/panasonic/call-ended - GET /api/v1/cti/panasonic/lookup Obiettivo immediato: 1) Validare end-to-end dev+staging (incoming crea post-it, call-ended chiude con esito/durata) 2) Adattare mapping payload PBX reale se necessario 3) Aggiornare documentazione operativa 4) Riportare report finale con comandi, output chiave e id record verificati File guida da leggere subito: - docs/ai/restart/START-HERE-NETGESCON-DAY0.md - docs/ai/restart/HANDOFF_AGENT_OPERATIVO_20260311.md - docs/ai/restart/AGENT-OPERATIVO-COMANDI-DAY0.md - docs/ai/restart/CTI-PANASONIC-NS1000-SETUP.md - docs/NETGESCON-MODIFICHE.md - docs/NETGESCON-GIT-AUTOCHANGELOG.md Vincoli: - Non rompere flusso PostIt/Filament esistente - Non revertare modifiche utente non richieste - Validare sempre con test/route/query prima del commit Richiesta DB fondamentale: - Voglio stessi dati tra sviluppo e staging (DB condiviso), con cartelle/app distinte. - Prima backup, poi allineamento configurazioni `.env`, migrate una sola volta, verifica dati CTI su entrambi gli ambienti. ``` ## 4.1 Primo messaggio esatto (versione operativa consigliata) ```text Sei il nuovo agent operativo di NetGescon Day-0. Lavora in modalità esecutiva completa (codice + test + commit/push), senza fermarti alla sola analisi. BASELINE E CONTESTO - Repo: michele/netgescon-day0 - Branch: main - Baseline commit: 5d3f5c6 - Documento guida principale: docs/ai/restart/HANDOFF-NUOVO-AMBIENTE-DAY0.md - Pagina controllo modifiche: /admin-filament/supporto/modifiche - Changelog manuale: docs/NETGESCON-MODIFICHE.md - Changelog Git auto: docs/NETGESCON-GIT-AUTOCHANGELOG.md Sviluppa solo nel tree principale Day-0 (non in _legacy-vault), poi commit/push. Poi ciclo staging update. AMBIENTI - Sviluppo interno: /home/michele/netgescon/netgescon-day0 (porta 8000) - Staging online: /var/www/netgescon con nginx su porta 80 CTI PANASONIC GIA IMPLEMENTATO - POST /api/v1/cti/panasonic/incoming - POST /api/v1/cti/panasonic/call-ended - GET /api/v1/cti/panasonic/lookup - Obiettivo operativo: verificare che i Post-it si creino/chiudano correttamente con esito e durata. RICHIESTA FONDAMENTALE DB Voglio vedere gli stessi dati sia in sviluppo che in staging (stessa base dati condivisa, cartelle/app diverse ok). Quindi: 1) analizza configurazioni DB attuali dei due ambienti 2) proponi e applica configurazione "DB unico condiviso" in sicurezza 3) esegui backup prima di cambiare 4) applica migrazioni necessarie una sola volta sul DB condiviso 5) verifica con test CTI che i dati Post-it appaiano uguali su dev e staging DELIVERABLE RICHIESTI - report finale con comandi eseguiti - file modificati - output chiave verifiche - eventuali rischi della strategia DB condiviso + mitigazioni - aggiornamento docs/NETGESCON-MODIFICHE.md con le modifiche funzionali - commit/push su main OBIETTIVO IMMEDIATO 1) Verificare end-to-end Post-it su dev e staging: - incoming crea post-it - call-ended chiude post-it, salva esito/durata/chiusa_il 2) Aggiornare staging online con migrate e cache clear 3) Validare con test reali o curl simulati 4) Fornire report finale con: - comandi eseguiti - endpoint testati - id record creati/chiusi in chiamate_post_it - eventuali mismatch payload PBX e fix fatti STAGING: - cd /var/www/netgescon - php artisan migrate --force - php artisan optimize:clear - sudo systemctl reload nginx VERIFICHE MINIME - curl incoming/call-ended/lookup su dev e staging - query SQL su chiamate_post_it per stato/esito/durata/chiusa_il - nessuna regressione lato pagina Filament PostIt VINCOLI - Non rompere flusso PostIt esistente - Compatibilità fallback se event_id assente - Se trovi modifiche locali non tue, non revertare senza richiesta esplicita ``` ## 5) Documenti e manuali presenti (conferma) Nel Day-0 risultano presenti i documenti restart chiave: - `docs/ai/restart/START-HERE-NETGESCON-DAY0.md` - `docs/ai/restart/HANDOFF_AGENT_OPERATIVO_20260311.md` - `docs/ai/restart/AGENT-OPERATIVO-COMANDI-DAY0.md` - `docs/ai/restart/CTI-PANASONIC-NS1000-SETUP.md` - `docs/ai/restart/CONTINUITA-STORICO-DAY0.md` - `docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md` Nel workspace sono presenti centinaia di documenti `.md` (manuali storici inclusi) tra Day-0 e legacy. ## 6) Checklist passaggio ambiente 1. Aprire repo Day-0 e verificare branch `main`. 2. Verificare variabile `NETGESCON_CTI_SHARED_TOKEN` in `.env`. 3. Eseguire migrate nell'ambiente target. 4. Eseguire test `incoming` + `call-ended`. 5. Verificare record in `chiamate_post_it` (stato/esito/durata). 6. Aggiornare `docs/NETGESCON-MODIFICHE.md` con ogni variazione funzionale.