Saltar a: navegación, buscar

Identificador de llamadas para servidores

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 Mi Oficina Web 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 = 910910910
 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.