Asterisk 1.4 – Solucionando problemas con usuarios (users.conf)

Llevo algo de tiempo probando esta versión, y viendo como actua frente a los cámbios hechos con el GUI, que dicho sea de paso, aunque es muy bonito, no me gusta mucho como maneja los ficheros, pero supongo que nunca llueve a gusto de todos y sería imposible hacer una interfaz gráfica que gustara a todos. La consola mola más!! 🙂

El tema es que trasteando con el fichero users.conf, me di cuenta de que cuando le activo a un usuario el IAX (parámetro hasiax) no se consigue establecer la llamada, porque llama mal!! La llamada se realiza a IAX/nombreusuario en lugar de a IAX2/nombreusuario. Además no me gustaba mucho eso de que las llamadas vayan sistemáticamente a la macro llamada stdexten, así que me puse a mirar un poco los sources y llegué a estas conclusiones:

1. Cuando Asterisk arranca se crean entradas al vuelo en el contexto especificado (por defecto default) para los musuarios del users.conf. esto lo hace el módulo pbx_config.

2. Por tanto, deduje que la solución a mis problemillas estaría en el fichero pbx_config.c y efectivamente!! Me encontré lo siguiente:

if (ast_true(ast_config_option(cfg, cat, "hassip"))) {
snprintf(tmp, sizeof(tmp), "SIP/%s", cat);
append_interface(iface, sizeof(iface), tmp);
}
if (ast_true(ast_config_option(cfg, cat, "hasiax"))) {
snprintf(tmp, sizeof(tmp), "IAX/%s", cat);
append_interface(iface, sizeof(iface), tmp);
}

Como se puede apreciar, falta un 2 dentro del segundo if, así que cambiando IAX/ por IAX2/ problema resuelto! 3. También me ficje en este trozo de código, que puede utilizarse para cambiar el nombre de la macro por defecto (stdexten) a otra que queramos. Ojo con los parámetros!

if (hasvoicemail) {
snprintf(tmp, sizeof(tmp), "stdexten|%s|${HINT}", cat);
ast_add_extension2(con, 0, cat, 1, NULL, NULL, "Macro", strdup(tmp), ast_free, registrar);
} 

Como se puede observar, la llamda a la macro esta «hardcoded», por lo que cambiandola y recompilando podríamos utilizar otro nombre.

6 thoughts on “Asterisk 1.4 – Solucionando problemas con usuarios (users.conf)

  1. Hola, tengo un problema al realizar una llamada. En el log de Asterisk al hacer una llamada me aparece el siguiente error:
    » No such context ‘macro-stdexten’ for macro ‘stdexten’
    == Auto fallthrough, channel ‘IAX2/106-1’ status is ‘UNKNOWN’
    — Hungup ‘IAX2/106-1′»
    Al leer este post pense que tendria alguna relacion con mi problema y abri el fichero pbx_config.c y en ya estaba puesto correctamente IAX2. Entonces, a que se puede deber el problema?

  2. Has creado el usuario con el Asterisk-GUI? Has comprobado que tengas creada la macro ‘stdexten’??

  3. Los usuarios los cree con el GUI y la macro existe. Modificando algunas opciones de los usuarios he solucionado el problema.

    Ahora, una vez los usuarios se instalan un softphone y se identifican, como puedo saber cuales estan conectados? hay alguna orden para ello??

  4. Puedes comprobarlo haciendo ‘sip show peers’ o ‘iax2 show peers’ en el CLI de Asterisk, según convenga.

  5. Hola saghul, como puedo hacer que las llamadas a un determinado grupo de la empresa (en concreto son 3 personas) se repartan aleatoriamente cada vez que se le pase la llamada a dicho grupo? Lo que se quiere es que no sea siempre la misma persona la que coja las llamadas, sino que se repartan de alguna manera. ¿Se te ocurre alguna manera de hacerlo?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *