[Users-es] OpenSer: ACL's en multidominio

Iñaki Baz Castillo ibc at in.ilimit.es
Fri Aug 17 10:50:01 CEST 2007


El Thursday 16 August 2007 22:43:52 Jesus Rodriguez escribió:
> > Se trata de un mecanismo para implementar permisos personalizados
> > (ACL's) en
> > llamadas entrantes a cada dominio, y funciona en modo multidominio.
> >
> > Ya puestos he empezado un blog XD
> >
> > Pues nada, a ver qué os parece, toda opinión es bienvenida:
> >
> >   http://blog.aliax.net/2007/08/openser-acls-multidominio.html



> - En la query, la línea:
>
>    (to_username IS NULL OR to_username = '$rU') AND
>
>    te puede dar problemas si usas alias. Deberías resolver primero el
> alias para que $rU sea el destinatario final que deberia ser el
> username de la base de datos.

Cierto. La verdad es que en mi fichero lo tengo puesto así, y ahora lo he 
añadido en el blog para que quede claro.


> - Esta asignación en el bloque del avp_check() creo que sobra: $avp
> (s:action) = "REJECT";

Sí, es verdad. No sé porqué lo puse.


> - Y este else:
>
>    else if ($avp(s:action) == "ACCEPT") {
>
>    si no es para el xlog() te lo puedes ahorrar ya que al mirar
> primero que sea (ACCEPT||REJECT) y después que sea REJECT, al final
> sólo queda que pueda ser ACCEPT y como no necesitas hacer nada en ese
> caso, el if no es necesario.

Corregido :)


> - El texto que tienes encima del route(6) que empieza con
> "Importante", dices que "Sólo tiene sentido mirar el grupo del
> llamante en el caso en que pertenezca al grupo del llamado" y creo
> que debería decir "sólo tiene sentido mirar el grupo del llamante en
> el caso en que pertenezca al dominio del llamado"... al menos es lo
> que haces en el código :)

¡Un bug! corregido.



> - En el último trozo de código dónde miras se es un INVITE o un
> MESSAGE, primero miras los grupos, después los permisos y después
> haces la autenticación. Yo cambiaría el orden a primerio autenticar y
> después todo lo demas... puedes ahorrarte unas cuantas queries a la
> base de datos.

Muy cierto, corregido ;)


>
> Como comentario a parte de este tema... ¿porqué no quieres aceptar
> libremente llamadas desde dominios externos?. De la misma forma que
> te pueden llamar desde cualquier número PSTN a lo mejor deberían
> poder llamarte desde cualquier dirección SIP, ¿no?... 

Bueno, digamos que lo que he hecho es simplemente ofrecer esa opción para 
aquellos **dominios** (entiéndase: grupos, empresas, etc) que así lo 
quisieran.

Lo que tú comentas está muy bien en redes de VoIP para usuarios finales, 
aquellos que tienen su cuenta de GoogleTalk, Gizmo, Skype... es decir, que no 
tienen una centralita delante y posiblemente estén en sus casas o usan VoIP 
en el trabajo a título personal o bien para llamadas internacionales o a 
otras delegaciones. Obviamente eso no es lo que yo considero "VoIP en la 
empresa" y no es el objetivo de lo que yo pretendía con mi cachito de código.


> esta es una 
> discusión entretenida cuando hablas con proveedores de VoIP y te das
> cuenta de las diferentes "políticas" y sobre todo, motivaciones que
> tiene cada uno para aceptar o no llamadas desde dominios externos.

Yo no lo enfoco así, yo no hablaría de proveedores de VoIP.
He conocido más de una empresa (por lo que me cuentan amigos y demás) en la 
que tienen capado internet, o en las que no les permiten tener encendido el 
móvil. Dudo que en esas empresas haría gracia la posibilidad adoptar 
corporativamente VoIP y que eso conllevase el poder recibir llamadas de 
cualquier parte del mundo.

Es más, incluso conozco casos de gente que prácticamente ha apagado su 
teléfono IP para que no le puedan llamar directamente al escuchar en 
Asterisk "si conoce la extensión de la persona a la que desea llamar 
márquela". XD


> Quizás podrías añadir en tu código que sea una opción del usuario el
> aceptar o no llamadas desde cualquier dominio externo.

Los programas de usuario "doméstico" (GoogleTalk, Messenger, Gizmo, Skype) 
están muy preparados para eso, en plan:

"Está recibiendo una llamada de XXXX at XXX.com el cuál no figura en su lista de 
contactos, ¿qué desea hacer?"
  - [ Aceptar llamada ]
  - [ Denegar llamada ]
  - [ ] Hacer esto siempre.

Pero esa funcionalidad es mucha más difusa, en los pocos casos que he visto, 
en softphones SIP genéricos y mucho más en teléfonos IP de sobremesa. Además,  
si hubiese necesidad una política un tanto rígida en cuanto a llamadas 
entrantes sería mucho más fácil y controlable del lado de servidor.

Por otra parte, no creo que sea algo muy rebuscado, el propio OpenSer dispone 
de un módulo de presencia XCAP que al fin y al cabo sólo sirve para 
**restringir** nuestro estado de presencia a según qué usuarios (si los 
clientes lo soportan, claro, que de momento sólo conozco el Eyebeam y familia 
que lo soporten).


Pero vamos, que en cualquier caso son reglas restrictivas opcionales ;)


Saludos y mil gracias por las correcciones.


-- 
Iñaki Baz Castillo
ibc at in.ilimit.es




More information about the Users-es mailing list