[Kamailio-Users-ES] lograr el siguiente comportamiento voicemail y kamailio

troxlinux xserverlinux at gmail.com
Mon Sep 1 04:38:06 CEST 2008


hola lista , tengo algunos inconvenientes para lograr esta futura que
a mi parecer esta genial , la idea es que al llamar a una extensión
interna si no contesta o esta ocupada si valla al voicemail de
asterisk esto dentro de la función failure_route [1]  , o hacer un
callforward de una extensión a otra estilo asterisk , para esto
agregue el siguiente código a mi kamailio :

if(avp_db_load("$ru/username","$avp(s:callfwd)")) {
avp_pushto("$ru", "$avp(s:callfwd)");
xlog("forwarded to: $avp(s:callfwd)");
route(1);
exit;
}

que hace uso de la función avp_db_load la cual carga un string AVP al
que llamo callfwd , registro el callfwd en la tabla preferencias de
openser junto con sus respectivos usuarios , hago una llamada para ver
si hace el call forward pero nada , aun así me debería salir el buzón
de voz del usuario pero nada ..

el esquema es algo asi

UA SIP 113 llama al  ===> UA SIP 110 ====> UA SIP 119 (Destino Final)
                                            =
                                            =

                                        Forward

os cuento cuanto termino de hacer la llamada sin contestar de
cualquiera de los SIP , este se la pasa al asterisk ahí va bien , pero
este me genera un WARNING

 No application 'Voicemail' for extension (netsoluciones, u110, 1)
  == Spawn extension (netsoluciones, u110, 1) exited non-zero on
'SIP/192.168.10.1-b7d011d8'

detallo mi configuración en kamailio, para ver que de raro miran que yo no veo:

loadmodule "avpops.so"

modparam("avpops", "avp_url", "mysql://openser:openserrw@localhost/openser")
modparam("avpops", "avp_table", "usr_preferences")
modparam("tm", "fr_timer", 5)
modparam("tm", "fr_inv_timer", 20)



 route[1] {
                t_on_failure("1");
                if (!t_relay()) {
                sl_reply_error();
        };
        exit;



dentro donde manejo los invite , anexo el codigo

 if(avp_db_load("$ru/username","$avp(s:callfwd)")) {
        avp_pushto("$ru", "$avp(s:callfwd)");
        route(1);
        exit;
}


 if (!lookup("location")) {
        if (does_uri_exist()) {
        revert_uri();
        prefix("u");
        rewritehostport("192.168.10.1:5070");
        route(1);
        } else {

                sl_send_reply("404", "User Not Found");

        exit;
}
                sl_send_reply("404", "User Not Found");
                exit;

};

route(1);
}

failure_route[1] {
        if (t_check_status("487")) {
        exit;
};

        if (t_check_status("486")) {
        revert_uri();
        prefix("b");
        xlog("L_ERR","Stepped into the 486 ruri=<$ru>");
        rewritehostport("192.168.10.1:5070");
        append_branch();
        route(1);
        exit;
};

        if (t_check_status("408") || t_check_status("480")) {
        revert_uri();
        prefix("u");
        xlog("L_ERR","Stepped into the 480 ruri=<$ru>");
        rewritehostport("192.168.10.1:5070");
        append_branch();
        route(1);
        exit;
        };
}

lo raro es que viendo las trazas del sip , no veo que pasan ni el 487
, 486 408 ,  ...


saludoss

rickygm




More information about the Users-es mailing list