[OpenSER-Users-ES] Problemas reINVITE y check_from llamando con alias

Iñaki Baz Castillo ibc at aliax.net
Wed Oct 24 16:29:00 CEST 2007


El Miércoles, 24 de Octubre de 2007, MAS escribió:
> Hola,
>
>     Mi ñapa, con mis conocimientos, es la siguiente (se aceptan mejoras,
> sugerencias, problemas, errores, etc):

Primeramente, a modo de opinión personal, creo que es más sencillo usar 
alias con el módulo alias_db ya que usa una tabla "dbaliases" mucho más 
sencilla que la de "aliases" y tiene sus propias funciones para buscar y tal:
  http://www.openser.org/docs/modules/devel/alias_db.html


>       if ($fu=~"^sip:[1-9][0-9][0-9][0-9][0-9]@.*") {
>          avp_db_query("select contact from aliases where username='$fU'","$avp(s:can_uri)");

¡¡ Ojito ahí, que te pueden meter un SQL injection si ponen una comilla 
simple en el nombre del "From" !!
Yo tb lo tengo pendiente de corregir (en un caso similar), supongo que 
haré una substitución de caracteres prohibidos o incluso una detección 
y si existen a la porra el mensaje.


>          avp_printf("$avp(s:can_urid)","sip:$au@$fd");

Desde OpenSer 1.2.X todo eso es más "humano" en plan variables 
de toda la vida:

  $avp(s:can_urid) = "sip:" + $au + "@" + $fd;    :)
y creo que tb valdría:
   $avp(s:can_urid) = "sip:$au@$fd";  (pero igual no por la falta de espacios).

Lo único ojo con ese "sip:" a machete, ¿y si alguien usa SIPS?


>          if (!avp_check("$avp(s:can_uri)","eq/$avp(s:can_urid)/g")) {

Idem:

  if ( $avp(s:can_uri) !~ $avp(s:can_urid) )


>             sl_send_reply("403","Use From!=Authenticate ID");
>             return(-1);
>          }
>       } else if (!(check_from())) {
>          sl_send_reply("403","Use From!=Authenticate ID");
>          return(-1);
>       }


Por lo demás me parece bien, ¿has comprobado que funciona?

Saludos.



-- 
Iñaki Baz Castillo




More information about the Users-es mailing list