Elastix hack: Usar los Cisco SPA5XX con el endpoint configurator de Elastix

19 Jul

En numerosas ocasiones he usado el Endpoint Configurator de Elastix para facilitar la configuración de múltiples teléfonos de manera rápida y sencilla. Sin embargo, recientemente que empecé a ocupar los teléfonos Cisco SPA502G y SPA504G me topé con que Elastix no los reconoce (o al menos, no directamente), así que no podía usar el configurador automático con ellos.

Los teléfonos de la serie SPA provienen de Linksys, el fabricante de equipo de red para SoHo que Cisco adquirió, pero estos a su vez provienen de Sipura, que es un fabricante que pocos conocen y que hace mucho tiempo, Linksys compró. La configuración entre los diferentes modelos no ha cambiado mucho a pesar de los años, así que un Cisco SPA504G se configura prácticamente igual que un Linksys SPA942, y esos SI son detectados por el configurador de Elastix.

Entonces… ¿Cómo hacemos para que Elastix detecte estos nuevos modelos?

Una forma muy sencilla es engañando al configurador, haciéndolo creer que se tratan de SPA942. Para hacerlo, solo tenemos que agregar las MACs de Cisco dentro del archivo /var/www/db/endpoint.db (el cual viene en formato de sqlite). El código sería el siguiente:

sqlite3 /var/www/db/endpoint.db
sqlite> INSERT INTO "mac" VALUES(45, 4, 'C8:9C:1D', 'Cisco - SPA504G');
sqlite> INSERT INTO "mac" VALUES(46, 4, 'E0:5F:B9', 'Cisco - SPA504G');
sqlite> .quit

Estas 2 series de MACs, la E0:5F:B9 y la C8:9C:1D son las que por experiencia he encontrado que estos nuevos teléfonos tienen. ¿Qué quieren decir los otros campos?

  • El ’45’ es el número de la fila. Por default vienen otros 44 registros en la tabla mac, pero podemos reemplazarlos por cualquier otro número (como 100 o 101)
  • El ‘4’ es el que le dice a Elastix que el teléfono encontrado es un Linksys
  • El ‘E0:5F:B9’ o ‘C8:9C:1D’ corresponde al inicio de la MAC del teléfono. Mismos modelos suelen tener el mismo comienzo de MAC
  • El último campo es solo una descripción de lo que se está agregando. Esto no se usa, es solo para que los humanos entendamos de que se trata la fila.

Tras hacer el cambio, podemos re-ejecutar el endpoint y obtendremos algo como esto:

Esto nos indica que nuestros teléfonos ya fueron reconocidos, así que podemos aplicar la configuración de la extensión para configurar nuestros nuevos teléfonos.

¡Suerte!

Christian Cabrera

Soy un ingenieron en comunicaciones con especial interés en el área de voz sobre IP y tecnologías sobre información. He usado Asterisk de manera diaria desde hace más de 12 años.En el 2011 co-fundé Enlaza Comunicaciones, una empresa que se especializa en brindar servicios profesionales de consultoría sobre voz sobre IP basadas en Asterisk.

  • Dariohimo

    hola

  • Dariohimo

    hola, para tener los telefonos configurados con el endpoint configurator o uno de freepbx es necesarios que los telefonos esten con dhcp hacia el servidor asterisk o pueden estar con ip fija y realizar este proceso.

    • Pueden estar con IP fija. Lo que importa es que estén accesibles en el mismo segmento de red que el servidor

  • Rolando Sanchez Espada

    Hola. buscando solución a un problema con unos cisco 303 me encontré con este página. intenté aplicar esto. pero cuando inserto la nueva mac, me dice que la tabla no existe.

    sqlite> INSERT INTO “mac” VALUES(45, 4, ‘EC:E1:A9’, ‘Cisco – SPA303’);
    Error: no such table: mac

    es elastix 4, y la versión SQLite version 3.7.17

    alguien sabe si en esa versión cambió la base de datos pare el endpoing manager.
    gracias.
    Milton.

    • Rolando,

      Seguramente si cambió. Hoy en día en la versión 4, inclusive al tratar de cargar addons me falla, por lo que me hace pensar que la tabla ya no es la misma y que quizá se migró a MySQL (no he investigado eso).

      Saludos.

      • Rolando Sanchez Espada

        Gracias Christian por responder. voy a investigar. te aviso si descubro algo.

        • Rolando Sanchez Espada

          tenías razón, ahora se usa MySQL, la base de datos es: endpointconfig.

          me imagino que sabes como agregarlo, pero lo pongo para algún otro que tenga la misma necesidad que yo:

          1. ingresar a MySQL:
          # mysql -u root -p (ingresar la contraseña)

          2.seleccionar la base de datos:
          MariaDB [(none)]> use endpointconfig;

          3. Ingresar la mac del equipo que necesites configurar desde el enpoint manager: en mi caso unos cisco 303 con mac EC:E1:A9

          MariaDB [endpointconfig]> INSERT INTO mac_prefix (id_manufacturer, mac_prefix, description)
          VALUES(’26’, ‘EC:E1:A9’, ‘Cisco – SPA303’);

          con estos pasos, el enpoint manager ahora si puede ver los cisco que antes no veía.

          gracias por la ayuda Christian.

          • Tu hiciste todo el trabajo, pero que bueno que le atiné. Ahora queda para la posteridad para futuros interesados. ¡Gracias por compartir!