Identificador de llamadas para servidores
Sumario
Descripción del identificador de números de teléfonos
El identificador de llamadas para servidores es un programa que se conecta al servidor de llamadas de Telefácil y que le permite saber quién le está llamando en cada momento. La diferencia con el "Identificador de Llamadas" es que carece de interfaz de usuario (GUI), y que está pensado para servidores.
Este programa simplemente recibe las llamadas de sus Números Virtuales, Centralitas Virtuales y Faxes y ejecuta un programa de su elección, pasándose la información pertinente. El programa a ejecutar es totalmente configurable.
Instalación del registro de llamadas
El demonio del Identificador de Llamadas está disponible para Windows y Linux. Lo único que tiene que hacer es conseguir el fichero correspondiente a su plataforma y descomprimirlo en un subdirectorio de su elección.
Lo primero que debe hacer es editar el fichero identificadord.conf, y cambiar los valores de usuario y PIN. También puede especificar si lo desea un número de extensión.
Un ejemplo de identificadord.conf:
usuario = 910911912 pass = 1234 extensión = NINGUNA programa = C:\identificadord\mete_en_bbdd.exe
El campo "programa" se explica más detalladamente en el punto 3 de este documento, pero básicamente es el ejecutable o binario que se llamará cuando se reciba una llamada. En este campo se especifica la ruta de dicho programa, que puede ser absoluta (por ejemplo, /usr/bin/mi_programa o C:\WINDOWS\mi_programa.exe, esta es la forma aconsejada) o relativa al subdirectorio donde se encuentra el demonio de identificador (por ejemplo, ./mi_programa o ./mi_programa.exe).
NOTA: En Windows las rutas no deben contener espacios. Es decir, coloque el identificador y sus programas en sitios distintos a "C:\Mis Documentos" o "C:\Mi carpeta con espacios". "C:\identificadord" puede ser un buen sitio.
NOTA 2: En Linux, el programa se llama entrecomillado: "/ruta/al/programa" fecha hora llamante llamado "Nombre del llamante" tipo, Si lo necesita, puede quitar las comillas poniendo el parámetro "comillas = NO" en el fichero de configuración. Esto es aconsejable si quiere llamar a intérpretes como el de Python o Perl.
Para lanzar el demonio, en Linux debe teclear "./identificadord" en una consola, mientras que en Windows debe hacer doble click sobre el archivo "identificadord.exe". Por supuesto, también puede configurar su sistema para que lance este demonio en el arranque del equipo.
Programas receptores de llamadas
Cuando el demonio identificador recibe una llamada, llama al programa que esté especificado en el fichero de configuración, en el campo "programa", pasándose la información de esta manera:
{$PROGRAMA} fecha hora llamante llamado "Nombre del llamante" tipo [extension]
en donde:
- 'fecha' está en formato DD-MM-YYYY
- 'hora' en formato HH:MM:SS
- 'tipo' puede ser: desvio, buzon, fax_in, fax_ok, etc
- 'extension' es opcional (sólo viene en llamadas entrantes a extensiones) y a partir de la versión 1.1.4 del identificador para servidores
Usted puede realizar un programa que reciba esos parámetros y haga una o varias acciones (por ejemplo, escribir en un fichero de log o guardar en una base de datos). Puede utilizar cualquier lenguaje de programación y entorno de desarrollo.
Nosotros incluimos 3 programas de ejemplo: uno en C (ejemplo.c), otro en Perl (ejemplo.pl) y otro en Visual Basic (ejemplo.vbp). Estos ejemplos simplemente muestran la información por pantalla, pero, si lo desea, puede usarlos como base para sus propios programas.
NOTA IMPORTANTE: Los programas que reciban la información de la llamada deben finalizar en un tiempo razonable, puesto que el demonio espera por su finalización.
La estructura típica de un programa de este tipo será:
- Leer los parámetros pasados por el demonio
- Realizar las acciones pertinentes
- Finalizar
Ejemplos de programas receptores
Un programa en C:
/* Este programa recibe los parámetros fecha, hora, llamante, llamado, nombre y tipo_llamada y los muestra por la salida de consola. Compilar con: gcc -o ejemplo ejemplo.c */ #include <stdio.h> int main(int argc, char** argv) { char* fecha = argv[1]; char* hora = argv[2]; char* llamante = argv[3]; char* llamado = argv[4]; char* nombre = argv[5]; char* tipo_llamada = argv[6]; printf("%s %s\n", fecha, hora); printf("Llamante: %s\n", llamante); printf("Llamado: %s\n", llamado); printf("Nombre: %s\n", nombre); printf("Tipo de llamada: %s\n", tipo_llamada); printf("\n"); return 0; }
Un programa en Perl:
#!/usr/bin/perl # Este programa recibe los parámetros fecha, hora, llamante, llamado, nombre y tipo_llamada # y los muestra por la salida de consola. $fecha = $ARGV[0]; $hora = $ARGV[1]; $llamante = $ARGV[2]; $llamado = $ARGV[3]; $nombre = $ARGV[4]; $tipo_llamada = $ARGV[5]; print $fecha . " " . $hora . "\n"; print "Llamante: " . $llamante . "\n"; print "Llamado: " . $llamado . "\n"; print "Nombre: " . $nombre . "\n"; print "Tipo de llamada: " . $tipo_llamada . "\n"; print "\n";
Un programa en Visual Basic:
VERSION 5.00 Begin VB.Form Form1 Caption = "Form1" ClientHeight = 3150 ClientLeft = 60 ClientTop = 450 ClientWidth = 4695 LinkTopic = "Form1" ScaleHeight = 3150 ScaleWidth = 4695 StartUpPosition = 3 'Windows Default Begin VB.Timer Timer1 Interval = 5000 Left = 1800 Top = 600 End Begin VB.TextBox Text1 Height = 2895 Left = 120 MultiLine = -1 'True TabIndex = 0 Top = 120 Width = 4455 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub Form_Load() Dim Data() As String Dim i As Integer If (Command <> "") Then Data = Split(Command, " ") Text1.Text = Data(0) Text1.Text = Text1.Text + " " + Data(1) + vbCrLf Text1.Text = Text1.Text + "Llamante: " + Data(2) + vbCrLf Text1.Text = Text1.Text + "Llamado: " + Data(3) + vbCrLf i = 4 Text1.Text = Text1.Text + "Nombre: " Do While Right(Data(i), 1) <> """" Text1.Text = Text1.Text + Data(i) + " " i = i + 1 Loop Text1.Text = Text1.Text + Data(i) + vbCrLf Text1.Text = Text1.Text + "Tipo de llamada: " + Data(i + 1) + vbCrLf Else Text1.Text = "No hay parametros" End If End Sub Private Sub Timer1_Timer() Unload Form1 End Sub
CHANGELOG
- 1.2.1 (16/ago/2016): soporte para usuarios
- 1.2.0 (05/ago/2016): soporte previo para usuarios
- 1.1.6 (06/mar/2013): se puede llamar con el parámetro '-d' para que dé información de depuración
- 1.1.5 (05/mar/2013): mejoras en la conexión al servidor
- 1.1.4 (04/mar/2013): se corrige error para que efectivamente pase la extensión al programa llamado (si la hay)
- 1.1.3 (12/jul/2011): se incluye el paso de la extensión (opcional) al programa llamado
- 1.1.2 (19/ene/2009): corrección de errores, posibilidad de poner comillas a los ejecutables
- 1.1.1 (30/ago/2006): primera versión
Indice
Página principal >> Desarrolladores >> Identificador de llamadas para servidores.
Página principal >> Oficina Virtual >> Número Virtual >> Descargas para el Número Virtual >> Identificador de llamadas para servidores.
Página principal >> Oficina Virtual >> Descargas >> Descargas para el Número Virtual >> Identificador de llamadas para servidores.