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

2.3 KiB

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:

NETGESCON_CTI_SHARED_TOKEN=<TOKEN_LUNGO_RANDOM>

Poi:

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

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:

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):

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.