[Kamailio-Users-ES] [OpenSER-Users-ES] Puertos asterisk y openser

Iñaki Baz Castillo ibc at aliax.net
Thu Aug 21 20:01:17 CEST 2008


El Jueves, 21 de Agosto de 2008, Iñaki Baz Castillo escribió:
> El Jueves, 21 de Agosto de 2008, troxlinux escribió:
> > ok aquí va aunque es un buen trozo , lo que me tiene con duda es ese
> > 500 error, viendo la tablita de Response codes de los rfc , lo
> > califica como un  Internal server error ..
>
> Lo que está ocurriendo 8otra cosa es "porqué") es que OpenSer acepta el
> INVITE y se lo manda a Asterisk. Pero **a la vez** está respondiendo un
> "500" al tfno. Este 500 acaba la transacción (el tfno envía ACK).
>
> Luego Asterisk responde con un 200 que llega a OpenSer quien lo envía al
> teléfono [*].
>
> Pero ese 200 no tiene ningún sentido en el tfno puesto que ya había
> recibido una respuesta final (el 500) por lo que el tfno lo ignora y
> Asterisk lo sigue reenviando un montón de veces en espera del ACK, hasta
> que expira el timer correspondiente.
>
> [*] Ese 200 es reenviado por OpenSer al tfno de forma "stateless" puesto
> que la transacción ya había sido destruida.
>
>
> En cuanto al porqué... buff, ni idea.
>
> - ¿Cómo haces el envío a Asterisk en el config de OpenSer?
> - ¿Usas append_branch() para algo?
> - ¿Usas on_branch_route[] para algo?

Ya sé cuál es tu fallo:

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

[...]

if (uri=~"^sip:[2-9][0-9]{7}@.*") {
        rewritehostport("192.168.10.1:5070");
        xlog(" ---> forwarded to Asterisk ---> ");
        t_relay();
        route(1);
};
------------------------

Estás llamando dos veces a "t_relay". La segunda vez falla **porque ya ha sido 
enviado** y genera un error que se envía en forma stateless (sl_reply_error), 
de ahí que el error sea interno (500) y con frase: "Server error occurred 
(19/SL)"

Quita el "t_relay" justo antes de "route(1)".


;)


-------------------------

-- 
Iñaki Baz Castillo




More information about the Users-es mailing list