netgescon-day0/docs/ai/restart/CTI-PANASONIC-NS1000-SETUP.md

89 lines
2.3 KiB
Markdown

# CTI Panasonic NS1000 - Setup operativo
Obiettivo: intercettare chiamate in arrivo dal centralino Panasonic NS1000 (CSTA porta 33333) e creare automaticamente Post-it in NetGescon con filtro rubrica.
## Prerequisiti verificati
- Connessione TCP PBX CSTA: `192.168.0.101:33333` raggiungibile.
- Modello centralino: Panasonic NS1000.
## 1) Configurazione applicazione NetGescon
Aggiungi in `.env` del nodo applicativo:
```env
NETGESCON_CTI_SHARED_TOKEN=<TOKEN_LUNGO_RANDOM>
```
Poi:
```bash
cd /home/michele/netgescon/netgescon-day0
php artisan optimize:clear
php artisan config:clear
php artisan route:clear
```
## 2) Endpoint disponibili
- `POST /api/v1/cti/panasonic/incoming`
- crea Post-it chiamata in `chiamate_post_it`
- fa match automatico numero -> `rubrica_universale`
- `GET /api/v1/cti/panasonic/lookup?phone=...`
- solo lookup rubrica (match yes/no)
Autenticazione: header `X-CTI-Token: <TOKEN>`.
## 3) Test rapido terminale
```bash
cd /home/michele/netgescon/netgescon-day0
bash scripts/ops/netgescon-panasonic-csta-test.sh \
--pbx-ip 192.168.0.101 \
--pbx-port 33333 \
--app-url http://127.0.0.1:8000 \
--token "<TOKEN_LUNGO_RANDOM>" \
--phone "+393331112233" \
--ext "101"
```
## 4) Esempio comando da usare lato interfaccia centralino
Se il centralino puo inviare HTTP su evento incoming call, usa:
```bash
curl -sS -X POST "http://<IP_NETGESCON>:8000/api/v1/cti/panasonic/incoming" \
-H "Content-Type: application/json" \
-H "X-CTI-Token: <TOKEN_LUNGO_RANDOM>" \
-d '{
"phone": "<CALLING_NUMBER>",
"name": "<CALLER_NAME_OPTIONAL>",
"direction": "in_arrivo",
"called_extension": "<EXT>",
"event_id": "<PBX_EVENT_ID>",
"note": "evento CSTA NS1000"
}'
```
Per filtro rubrica (prima del popup interno):
```bash
curl -sS "http://<IP_NETGESCON>:8000/api/v1/cti/panasonic/lookup?phone=<CALLING_NUMBER>" \
-H "X-CTI-Token: <TOKEN_LUNGO_RANDOM>"
```
## 5) Cosa fa il match numeri
- normalizza il numero (es. `+39`, `0039`, spazi, trattini)
- confronta le ultime 7 cifre con:
- `telefono_cellulare`
- `telefono_ufficio`
- `telefono_casa`
- `telefono_cellulare_nazionale`
## 6) Step successivo consigliato
1. Agganciare evento reale CSTA incoming.
2. Agganciare evento call-ended per aggiornare `esito` e durata.
3. Mostrare popup operatore in Filament con scheda rubrica trovata.