Re: [OpenSER-Users-ES] Re: [Users-es] Mensajes que requieren autenticación

Saúl Ibarra saghul at gmail.com
Thu Aug 23 10:42:53 CEST 2007


He estado "limpiando" un poco el código, metiendo el auth, el alias y
el location en distintos routes, y ahora me queda más "legible" xD

Lo que no me ha quedado muy claro es la utenticación del REFER. Yo
actualmente hago esto:

## Con el has_totag sabemos si son "in-dialog"
		if ((method=="INVITE" || method=="REFER") && !has_totag()) {
			sl_send_reply("403", "Forbidden");
			xlog("L_INFO","$Crx ** INVITE o REFER sin TO tag ** $Cxx\n");
			exit;
		}

Así vale? O debería añadir a continuación algo como:

if (method=="REFER") {
route(22);
route(1);
}

Donde route 22 es:

# -----------------------------------------------------------------
# Auth check
# -----------------------------------------------------------------

route[22]
{
	## Es necesario autenticarse
	if (!proxy_authorize("","subscriber")) {
		xlog("L_INFO","$CbxSe necesita autenticacion para $rm $Cxx\n");
		proxy_challenge("","0");
		exit;
	}
		
	## Tienen que coincidir el nombre de usuario con el de la cabecera FROM
	else if (!check_from()) {
		xlog("L_INFO","$Crx*** check_from() = NO!! ***$Cxx\n");
		sl_send_reply("403", "Use From=ID");
		exit;
	}
	xlog("L_INFO","$Cbx*** Autenticacion Correcta para $rm ***$Cxx\n");
	consume_credentials();
}

??

El 23/08/07, Saúl Ibarra <saghul at gmail.com> escribió:
> Muchas gracias por las matizaciones xD voy a ver si "limpio" un poco
> el cfg y quito lo del REFER, pruebo el OPTIONS... Thnx!
>
> El 23/08/07, Iñaki Baz Castillo <ibc at aliax.net> escribió:
> > El 21/08/07, Saúl Ibarra <saghul at gmail.com> escribió:
> > > Luego al final, si no ha entrado por ninguno de los if se comprueba el
> > > alias, el location, y se hace relay. Esa parte no me gusta, y quiero
> > > tratar cada mensaje explicitamente, por lo tanto, que pasaria si no
> > > dejo los UPDATE y PRACK? Parecen "opcionales"...
> >
> > Desconozco de momento para qué sirven el UPDATE y PRACK (tengo cierta
> > idea pero no la suficiente), pero algo me dice que son mensajes
> > "in-dialog" en cuyo caso recuerda que no hay ni que comprobar "alias",
> > ni "location", sólo hacer relay (o pedir auth en caso del REFER).
> >
> > Es decir, te digo algo que seguro ya sabes, pero por si acaso:
> >
> > Los mensajes fuera de diálogo van a la dirección "bonita" del usuario en plan:
> >
> >   INVITE sip:500 at dominio.org
> >   MESSAGE sip:500 at dominio.org
> >   SUBSCRIBE sip:dominio.org
> >   PUBLISH sip:500 at dominio.org
> >   OPTIONS sip:500 at dominio.org
> >
> > Pero los mensajes dentro de diálogo van directamente a la URI indicada
> > previamente en la cabecera "Contact":
> >
> >   ACK sip:500 at 82.84.173.243:5080
> >   REFER sip:800 at 82.84.173.243:5080
> >   BYE sip:800 at 82.84.173.243:5080
> >   INVITE sip:800 at 82.84.173.243:5080 <-- re-INVITE (poner en espera)
> >   INFO sip:800 at 82.84.173.243:5080  (envío de un DTMF)
> >   NOTIFY sip:800 at 82.84.173.243:5080  (para notificar el resultado de
> > una transferencia solicitada previamente con un REFER)
> >
> > Es decir, estos mensajes dentro de diálogo ya van directamente a la
> > dirección exacta del destino y no hace falta investigar si son alias o
> > si están en location.
> >
> >
> > Saludos.
> >
> > --
> > Iñaki Baz Castillo
> > <ibc at aliax.net>
> >
> > _______________________________________________
> > Users-es mailing list
> > Users-es at openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users-es
> >
> >
>
>
> --
> Saúl -- "Some people say why, other just say, why not."
> ----------------------------------------------------------------
> http://www.saghul.net/
>


-- 
Saúl -- "Some people say why, other just say, why not."
----------------------------------------------------------------
http://www.saghul.net/




More information about the Users-es mailing list