77 lines
2.7 KiB
Bash
Executable File
77 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Simple test helper for Panasonic NS1000 CSTA connectivity and webhook simulation.
|
|
|
|
PBX_IP="192.168.0.101"
|
|
PBX_PORT="33333"
|
|
APP_BASE_URL="http://127.0.0.1:8000"
|
|
CTI_TOKEN="${NETGESCON_CTI_SHARED_TOKEN:-}"
|
|
TEST_PHONE="+393331112233"
|
|
TEST_EXT="101"
|
|
TEST_DURATION="75"
|
|
TEST_OUTCOME="risposta"
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Usage:
|
|
bash scripts/ops/netgescon-panasonic-csta-test.sh [options]
|
|
|
|
Options:
|
|
--pbx-ip <ip> PBX IP (default: 192.168.0.101)
|
|
--pbx-port <port> PBX CSTA port (default: 33333)
|
|
--app-url <url> NetGescon base URL (default: http://127.0.0.1:8000)
|
|
--token <token> Shared token (or env NETGESCON_CTI_SHARED_TOKEN)
|
|
--phone <phone> Test caller number
|
|
--ext <ext> Test called extension
|
|
--duration <sec> Test call duration in seconds (default: 75)
|
|
--outcome <text> Test call outcome (default: risposta)
|
|
|
|
Example:
|
|
bash scripts/ops/netgescon-panasonic-csta-test.sh --token 'my-secret-token'
|
|
EOF
|
|
}
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--pbx-ip) PBX_IP="$2"; shift 2 ;;
|
|
--pbx-port) PBX_PORT="$2"; shift 2 ;;
|
|
--app-url) APP_BASE_URL="$2"; shift 2 ;;
|
|
--token) CTI_TOKEN="$2"; shift 2 ;;
|
|
--phone) TEST_PHONE="$2"; shift 2 ;;
|
|
--ext) TEST_EXT="$2"; shift 2 ;;
|
|
--duration) TEST_DURATION="$2"; shift 2 ;;
|
|
--outcome) TEST_OUTCOME="$2"; shift 2 ;;
|
|
-h|--help) usage; exit 0 ;;
|
|
*) echo "Unknown option: $1" >&2; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
if [[ -z "$CTI_TOKEN" ]]; then
|
|
echo "Missing token: set NETGESCON_CTI_SHARED_TOKEN or pass --token" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "[1/3] Verifica raggiungibilita CSTA $PBX_IP:$PBX_PORT"
|
|
nc -vz "$PBX_IP" "$PBX_PORT"
|
|
|
|
echo "[2/3] Lookup numero in rubrica"
|
|
curl -sS "${APP_BASE_URL%/}/api/v1/cti/panasonic/lookup?phone=${TEST_PHONE}" \
|
|
-H "X-CTI-Token: ${CTI_TOKEN}" | sed -n '1,120p'
|
|
|
|
EVENT_ID="test-$(date +%s)"
|
|
|
|
echo "[3/4] Simulazione evento chiamata in arrivo -> Post-it"
|
|
curl -sS -X POST "${APP_BASE_URL%/}/api/v1/cti/panasonic/incoming" \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-CTI-Token: ${CTI_TOKEN}" \
|
|
-d "{\"phone\":\"${TEST_PHONE}\",\"direction\":\"in_arrivo\",\"called_extension\":\"${TEST_EXT}\",\"event_id\":\"${EVENT_ID}\",\"note\":\"test webhook panasonic incoming\"}" | sed -n '1,160p'
|
|
|
|
echo "[4/4] Simulazione evento call-ended -> chiusura automatica Post-it"
|
|
curl -sS -X POST "${APP_BASE_URL%/}/api/v1/cti/panasonic/call-ended" \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-CTI-Token: ${CTI_TOKEN}" \
|
|
-d "{\"phone\":\"${TEST_PHONE}\",\"event_id\":\"${EVENT_ID}\",\"outcome\":\"${TEST_OUTCOME}\",\"duration_seconds\":${TEST_DURATION},\"ended_at\":\"$(date -Iseconds)\",\"note\":\"test webhook panasonic call-ended\"}" | sed -n '1,200p'
|
|
|
|
echo "Done"
|