Click2Dial automático en Firefox

Actualizado 24-09-2007: Nueva versión. Mejoras en la deteccion de numeros. Añadidos todos los prefijos de paises. Mi idea es poder adaptar la detección a números locales de cada país. En la actualidad funciona con números en formato internacional, y números españoles.

Actualizado 24-09-2007: Sí, otra actualización :). Mejorada la presentación, al no permitir el salto de línea. A veces se quedaba la bandera en una línea y el número en otra. También se ha añadido el nombre completo del país. Se puede ver dejando el ratón unos segundos encima del icono de llamada .

A raíz de un mensaje en la lista de correo de asterisk-es, intenté encontrar un sistema similar, pero que no dependiese de Skype o similares. La idea era que se detectasen los números de teléfono que hubiese en una página web, y automáticamente convertirlos en un enlace a un servicio click2dial.

Greasemonkey es una extensión para Firefox, que permite ejecutar codigo javascript en la página que está cargando. Estos scripts permiten analizar y modificar la página web, y como son persistentes, se ejecutan cada vez que se carga.

Existe ya un script, Skype Linkify, que sustituye los números que encuentra por un enlace a “skype:elnumero?call“. Lo he tomado como base, para hacerle unas mejoras:

  • Soporte de números en formato internacional +34 928000000, 00 34 928000000, 011 34 928000000.
  • Soporte para números españoles: [6-9]xxxxxxxx.ww
  • Se añade una banderita con el país al que pertenece el número de teléfono, que queda muy mono ;)

Instalación

  1. Instalar la extensión Greasemonkey
  2. Descargar e instalar el script PhoneLink (original, eh?)
  3. En Greasemonkey, editar el script, y modificar las variables “myExt” y “url”. La primera corresponde a tu extensión. Si pones 201, el canal utilizado será SIP/201. La segunda corresponde al script (en php por ejemplo) que se llamará cuando pulséis en un teléfono. %DEST% se sustituye por el número de teléfono solicitado.
  4. Abrir una página que tenga números de teléfono.

Por supuesto, tendréis que tener alojado un php o similar que inicie la llamada en asterisk. El que he usado para pruebas (cuidado con dejarlo accesible, que no es seguro) es este: webcall.php

Ejemplos de patrones que se detectan bien:

  • +34 928 00 00 00
  • 0034 928000000
  • +1 212-000-1234
  • 928000000
  • 91-800-00-00
  • 928.00.00.00

Seguro que falla con otros, y que da falsos positivos en determinados casos. La expresión regular tiene bastante margen de mejora.

Screenshots ;)

Antes:

Página original

Después:

Página después de ser procesada por PhoneLink

PopUp:

Popup de información

Escrito por julianjm el 20/09/2007. | Comments (18)
Tags: , , ,