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.













