Umm, estoy intentando probar un escenario donde los usuarios se pueden registrar en distintos OpenSer, el backend de DB es postgres y todo va ok, hasta que un usuario del servidor A quiere llamar a uno que se registro en el servidor B, como ambos servidores manejan la misma base de datos, setean el campo socket de la tabla location con la IP:puerto del OpenSer donde se registraron, pero si una llamada entra por el openser A y llama a un usuario que está registrado por el B, se le responde Not Found, cuando lo que yo quiero es llame al usuario del servidor B.
Ambos servidores manejan el mismo dominio.
¿Alguna pista/documentación?, he estado buscando por google información sobre si es posible que ambos servidores compartan esa tabla de la base de datos o si hay algún método alternativo para solventar la papeleta y no he encontrado nada, probablemente me estoy saltando algo obvio.
¿Pistas, URL, documentación ó .cfg's de ejemplo serán bienvenidos?.
Hola,
si hay telefonos detras de NAT no va funcionar este escenario.
Si no es caso anterior, verifica si parametro db_mode del modulo usrloc, es igual a 3. http://www.openser.org/docs/modules/1.2.x/usrloc.html#AEN285
Saludos, Ramona
Raúl Alexis Betancor Santana wrote:
Umm, estoy intentando probar un escenario donde los usuarios se pueden registrar en distintos OpenSer, el backend de DB es postgres y todo va ok, hasta que un usuario del servidor A quiere llamar a uno que se registro en el servidor B, como ambos servidores manejan la misma base de datos, setean el campo socket de la tabla location con la IP:puerto del OpenSer donde se registraron, pero si una llamada entra por el openser A y llama a un usuario que está registrado por el B, se le responde Not Found, cuando lo que yo quiero es llame al usuario del servidor B.
Ambos servidores manejan el mismo dominio.
¿Alguna pista/documentación?, he estado buscando por google información sobre si es posible que ambos servidores compartan esa tabla de la base de datos o si hay algún método alternativo para solventar la papeleta y no he encontrado nada, probablemente me estoy saltando algo obvio.
¿Pistas, URL, documentación ó .cfg's de ejemplo serán bienvenidos?.
Users-es mailing list Users-es@openser.org http://openser.org/cgi-bin/mailman/listinfo/users-es
El Sunday 16 September 2007 08:26:58 Ramona Modroiu escribió:
Hola,
si hay telefonos detras de NAT no va funcionar este escenario.
Si no es caso anterior, verifica si parametro db_mode del modulo usrloc, es igual a 3. http://www.openser.org/docs/modules/1.2.x/usrloc.html#AEN285
Saludos, Ramona
Gracias por la respuesta Ramona, pero tengo entendido que eso solo hace que los registros se lleven la con base de datos directamente y no tiene que ver con lo que comento, me explico:
Tengo el servidor OpenSer A, con los usuarios x@dom1, y@dom1 y z@dom1 registrados, se pueden llamar entre ellos sin problemas. Luego tengo el servidor OpenSer B, con los usuarios a@dom1, b@dom1 y c@dom1 registrados.
La cosa es que si a llama a z, OpenSerB contesta que "404 Not Found", cuando el la base de datos veo el registro claramente en la tabla locations.
Mi idea era que ambos OpenSer manejasen el mismo dominio, para repartir la carga entre ambos servidores con un simple dns-round-robin y que en caso de caída de uno de los dos, el otro pudiera asumir la carga de los usuarios ya registrados (evidentemente con hearbeat de por medio para "mudar" la IP del "muerto")
¿No hay en OpenSer ningún módulo orientado a clustering ó ha?, supongo que a base de combinaciones de configuración y herramientas externas es posible conseguirlo. En eso estoy trabajando.
No se si es lo que buscas, pero el módulo dispatcher igual se le acerca...
El 17/09/07, Raúl Alexis Betancor Santana rabs@dimension-virtual.com escribió:
El Sunday 16 September 2007 08:26:58 Ramona Modroiu escribió:
Hola,
si hay telefonos detras de NAT no va funcionar este escenario.
Si no es caso anterior, verifica si parametro db_mode del modulo usrloc, es igual a 3. http://www.openser.org/docs/modules/1.2.x/usrloc.html#AEN285
Saludos, Ramona
Gracias por la respuesta Ramona, pero tengo entendido que eso solo hace que los registros se lleven la con base de datos directamente y no tiene que ver con lo que comento, me explico:
Tengo el servidor OpenSer A, con los usuarios x@dom1, y@dom1 y z@dom1 registrados, se pueden llamar entre ellos sin problemas. Luego tengo el servidor OpenSer B, con los usuarios a@dom1, b@dom1 y c@dom1 registrados.
La cosa es que si a llama a z, OpenSerB contesta que "404 Not Found", cuando el la base de datos veo el registro claramente en la tabla locations.
Mi idea era que ambos OpenSer manejasen el mismo dominio, para repartir la carga entre ambos servidores con un simple dns-round-robin y que en caso de caída de uno de los dos, el otro pudiera asumir la carga de los usuarios ya registrados (evidentemente con hearbeat de por medio para "mudar" la IP del "muerto")
¿No hay en OpenSer ningún módulo orientado a clustering ó ha?, supongo que a base de combinaciones de configuración y herramientas externas es posible conseguirlo. En eso estoy trabajando.
-- Saludos.
Raúl Alexis Betancor Santana Dimensión Virtual S.L.
Users-es mailing list Users-es@openser.org http://openser.org/cgi-bin/mailman/listinfo/users-es
El Monday 17 September 2007 07:12:13 Saúl Ibarra escribió:
No se si es lo que buscas, pero el módulo dispatcher igual se le acerca...
No, dispatcher hace load-balancing del outbound entre varios "gateways", lo he usado para otras configuraciones. Lo que busco es que una llamada del usuario a en el openser 1 llegue al usuario b del openser 2, manejando ambos openser el mismo dominio.
El Monday 17 September 2007 08:24:36 Raúl Alexis Betancor Santana escribió:
Gracias por la respuesta Ramona, pero tengo entendido que eso solo hace que los registros se lleven la con base de datos directamente y no tiene que ver con lo que comento, me explico:
Tengo el servidor OpenSer A, con los usuarios x@dom1, y@dom1 y z@dom1 registrados, se pueden llamar entre ellos sin problemas. Luego tengo el servidor OpenSer B, con los usuarios a@dom1, b@dom1 y c@dom1 registrados.
La cosa es que si a llama a z, OpenSerB contesta que "404 Not Found", cuando el la base de datos veo el registro claramente en la tabla locations.
Pues yo creo que lo que te ocurre tiene mucho que ver con lo que te sugería Ramona: http://www.counterpath.com/xlitedownload.html
# Database mode (0 = no database, 1 = immediately write-through, 2 = periodically write-back, 3 = DB-only). modparam("usrloc", "db_mode", 3)
Si comparten la tabla entonces asegúrate de que OpenSer consulte la tabla cada vez y que no juegue con cache ni con retardos en acceso de escritura a la BD -> modparam("usrloc", "db_mode", 3)
Mi idea era que ambos OpenSer manejasen el mismo dominio, para repartir la carga entre ambos servidores con un simple dns-round-robin y que en caso de caída de uno de los dos, el otro pudiera asumir la carga de los usuarios ya registrados (evidentemente con hearbeat de por medio para "mudar" la IP del "muerto")
¿Y no sería mejor hacer que HeartBeat controle también la base de datos y así también la tienes replicada? yo lo hice en su día usando DRBD (qué maravilla de invento).
Saludos.
El Monday 17 September 2007 07:54:20 Iñaki Baz Castillo escribió:
Pues yo creo que lo que te ocurre tiene mucho que ver con lo que te sugería Ramona: http://www.counterpath.com/xlitedownload.html
# Database mode (0 = no database, 1 = immediately write-through, 2 = periodically write-back, 3 = DB-only). modparam("usrloc", "db_mode", 3)
Si comparten la tabla entonces asegúrate de que OpenSer consulte la tabla cada vez y que no juegue con cache ni con retardos en acceso de escritura a la BD -> modparam("usrloc", "db_mode", 3)
Lo probaré luego, pero no creo que resuelva el problema, aunque espero tragarme mis palabras .. XDD
¿Y no sería mejor hacer que HeartBeat controle también la base de datos y así también la tienes replicada? yo lo hice en su día usando DRBD (qué maravilla de invento).
La base de datos no me preocupa, para eso ya tengo un cluster de PostgreSQL trabajando en configuración Multi-Maestro.
El Monday 17 September 2007 12:31:44 Raúl Alexis Betancor Santana escribió:
El Monday 17 September 2007 07:54:20 Iñaki Baz Castillo escribió:
Pues yo creo que lo que te ocurre tiene mucho que ver con lo que te sugería Ramona: http://www.counterpath.com/xlitedownload.html
# Database mode (0 = no database, 1 = immediately write-through, 2 = periodically write-back, 3 = DB-only). modparam("usrloc", "db_mode", 3)
Si comparten la tabla entonces asegúrate de que OpenSer consulte la tabla cada vez y que no juegue con cache ni con retardos en acceso de escritura a la BD -> modparam("usrloc", "db_mode", 3)
Lo probaré luego, pero no creo que resuelva el problema, aunque espero tragarme mis palabras .. XDD
Pues espero sinceramente que tengas que tragarte tus palabras, porque el problema que tienes de verdad que parece tener todo que ver con ese parámetro. O sea, si no usas modparam("usrloc", "db_mode", 3) entonces OpenSer no escribe al instante en la BD cuando alguien se registra (save("location")) y además no siempre lee sino que usa caché.
El Lunes, 17 de Septiembre de 2007, Iñaki Baz Castillo escribió:
El Monday 17 September 2007 12:31:44 Raúl Alexis Betancor Santana escribió:
El Monday 17 September 2007 07:54:20 Iñaki Baz Castillo escribió:
Pues yo creo que lo que te ocurre tiene mucho que ver con lo que te sugería Ramona: http://www.counterpath.com/xlitedownload.html
# Database mode (0 = no database, 1 = immediately write-through, 2 = periodically write-back, 3 = DB-only). modparam("usrloc", "db_mode", 3)
Si comparten la tabla entonces asegúrate de que OpenSer consulte la tabla cada vez y que no juegue con cache ni con retardos en acceso de escritura a la BD -> modparam("usrloc", "db_mode", 3)
Lo probaré luego, pero no creo que resuelva el problema, aunque espero tragarme mis palabras .. XDD
Pues espero sinceramente que tengas que tragarte tus palabras, porque el problema que tienes de verdad que parece tener todo que ver con ese parámetro. O sea, si no usas modparam("usrloc", "db_mode", 3) entonces OpenSer no escribe al instante en la BD cuando alguien se registra (save("location")) y además no siempre lee sino que usa caché.
Bueno bueno, ahora está más que claro. Mira este correo que tiene bastante que ver con tu situación: http://openser.org/pipermail/users/2007-September/013251.html
;)
sr-users-es@lists.kamailio.org