Pregunta

¿Alguien conoce alguna forma "estándar" de interactuar con un sistema de telefonía (piense en Cisco CCM) desde una aplicación C/C++ en *nix?He usado MS TAPI en el pasado, pero esto es solo para Windows y no quiero seguir la ruta jTAPI (Java), que parece ser la única opción a primera vista.

Quiero monitorear el sistema telefónico para fines de registro (para saber cuándo los usuarios hicieron o recibieron llamadas, etc.).TAPI es bueno en este tipo de cosas, pero no puedo ser la primera persona que quiere hacer algo similar sin tener un servidor Windows.

Tenga en cuenta que necesito integrarme con los sistemas PABX existentes, en particular Cisco CCM y Nortel BCM.

¿Fue útil?

Solución

Tengo experiencia con dos estándares de telefonía TAPI y CSTA; hasta donde yo sé, no existe tal acuerdo entre proveedores (p. ej.Cisco, Nortel, NEC) con respecto a LA API estándar.

Recomiendo mirar la disponibilidad de REDCE (Grabación detallada de mensajes de estación) en las plataformas PBX a las que se dirige, asumiendo que no se requiere control de llamadas/dispositivos.Esto le permitirá acceder a la actividad del PBX como un flujo de texto y podrá analizar los datos para realizar manipulaciones adicionales que se ajusten a su propósito.

Lo más probable es que el formato entre los proveedores de PBX sea diferente, pero es de esperar que esto pueda abstraerse para que la funcionalidad principal de la aplicación sea reutilizable.

Es probable que esta sea una opción más portátil, suponiendo nuevamente que no se requiere control de llamadas/dispositivos, ya que no depende del proveedor que proporcione conectividad CTI en la plataforma de su elección.

Otros consejos

Aquí hay otro voto a favor del REDCE.Todos los sistemas de telefonía que he visto ofrecen la opción de registro SMDR a través de un puerto serie en la cabina telefónica.Simplemente capture el texto del puerto serie y analícelo según sea necesario.

Escribí un proceso de servidor que captura la salida SMDR, la analiza y guarda el resultado en una base de datos que nuestras otras aplicaciones pueden usar para ver la extensión, el número de teléfono, la hora y la duración de cada llamada telefónica.

Esta es una pregunta antigua pero todavía aparece en los resultados de búsqueda, así que pensé en publicar mi solución aquí:

Creé un pequeño script bash que se conecta a Panasonic KX PBX a través de telnet, lo programé para que se ejecute con crontab, y escribí el código de mi aplicación para capturar los archivos de registro y analizarlos.

Aquí está mi 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top