Domanda

Qualcuno conosce un modo "standard" per interfacciarsi con un sistema di telefonia (si pensi a Cisco CCM) da un'app C/C++ in *nix?Ho utilizzato MS TAPI in passato, ma questo è solo Windows e non voglio seguire il percorso jTAPI (Java), che sembra essere l'unica opzione a prima vista.

Desidero monitorare il sistema telefonico a scopo di registrazione (in modo da sapere quando gli utenti hanno effettuato chiamate, ricevuto chiamate, ecc.).TAPI è bravo in questo genere di cose, ma non posso essere la prima persona che vuole fare qualcosa di simile senza avere un server Windows.

Tieni presente che devo integrarmi con i sistemi PABX esistenti, in particolare Cisco CCM e Nortel BCM.

È stato utile?

Soluzione

Ho esperienza con due standard di telefonia TAPI e CSTA, per quanto ne so non esiste un accordo di questo tipo tra i fornitori (ad es.Cisco, Nortel, NEC) per quanto riguarda l'API standard.

Consiglierei di verificare la disponibilità di SMDR (Station Messaging Detail Recording) sulle piattaforme PBX di destinazione, presupponendo che non sia richiesto alcun controllo di chiamata/dispositivo.Ciò ti consentirà di accedere all'attività del PBX come flusso di testo e potrai analizzare i dati per ulteriori manipolazioni in base al tuo scopo.

Molto probabilmente il formato tra i fornitori di PBX sarà diverso, ma si spera che questo possa essere eliminato in modo che la funzionalità principale dell'applicazione sia riutilizzabile.

È probabile che si tratti di un'opzione più portabile, sempre presupponendo che non sia richiesto alcun controllo della chiamata/del dispositivo, poiché non ti affidi al fornitore che fornisce la connettività CTI sulla tua piattaforma preferita.

Altri suggerimenti

Ecco un altro voto per SMDR.I sistemi di telefonia che ho visto offrono tutti l'opzione di registrazione SMDR tramite una porta seriale sulla cabina telefonica.Basta acquisire il testo dalla porta seriale e analizzarlo secondo necessità.

Ho scritto un processo server che cattura l'output SMDR, lo analizza e salva il risultato in un database che le nostre altre applicazioni possono utilizzare per vedere l'interno, il numero di telefono, l'ora e la durata di ogni telefonata.

Questa è una vecchia domanda ma viene ancora visualizzata nei risultati di ricerca, quindi ho pensato di pubblicare la mia soluzione qui:

Ho creato un piccolo script bash che si connette al PBX Panasonic KX tramite telnet, programmandone l'esecuzione crontab, e ho scritto il codice della mia applicazione per acquisire i file di registro e analizzarli.

Ecco il mio script bash:

#!/bin/sh

HOST="192.168.0.200"
PORT="2300"
USER="SMDR"
PASS="PCCSMDR"

FILE=/var/smdr/smdr-`date +%F`.log
TS=`date +"%F %T"`

echo "### ${TS}" >> $FILE

(
  echo open $HOST $PORT
  sleep 2
  echo $USER
  sleep 2
  echo $PASS
  sleep 150
  echo "quit"
) | telnet | tee -a $FILE
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top