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.
