Al final el openser.cfg me ha quedado así, vosotros pensais que está bien??
####### Global Parameters #########
debug=3
log_stderror=yes
#log_facility=LOG_LOCAL0
fork=no
children=4
dns=no
rev_dns=no
/* uncomment the following lines to enable debugging */
#debug=6
#fork=no
#log_stderror=yes
/* uncomment the next line to disable TCP (default on) */
#disable_tcp=yes
/* uncomment the next line to enable the auto temporary blacklisting of
not available destinations (default disabled) */
#disable_dns_blacklist=no
/* uncomment the next line to enable IPv6 lookup after IPv4 dns
lookup failures (default disabled) */
#dns_try_ipv6=yes
/* uncomment the next line to disable the auto discovery of local aliases
based on revers DNS on IPs (default on) */
#auto_aliases=no
/* uncomment the following lines to enable TLS support (default off) */
#disable_tls = no
#listen = tls:your_IP:5061
#tls_verify_server = 1
#tls_verify_client = 1
#tls_require_client_certificate = 0
#tls_method = TLSv1
#tls_certificate = "/usr/local/etc/openser/tls/user/user-cert.pem"
#tls_private_key = "/usr/local/etc/openser/tls/user/user-privkey.pem"
#tls_ca_list = "/usr/local/etc/openser/tls/user/user-calist.pem"
port=5060
/* uncomment and configure the following line if you want openser to
bind on a specific interface/port/proto (default bind on all available) */
listen=udp:192.168.1.2:5060
####### Modules Section ########
#set module path
mpath="/usr/local/lib/openser/modules/"
/* uncomment next line for MySQL DB support */
loadmodule "mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
loadmodule "uri_db.so"
loadmodule "uri.so"
loadmodule "xlog.so"
#loadmodule "acc.so"
/* uncomment next lines for MySQL based authentication support
NOTE: a DB (like mysql) module must be also loaded */
loadmodule "auth.so"
loadmodule "auth_db.so"
/* uncomment next line for aliases support
NOTE: a DB (like mysql) module must be also loaded */
#loadmodule "alias_db.so"
/* uncomment next line for multi-domain support
NOTE: a DB (like mysql) module must be also loaded
NOTE: be sure and enable multi-domain support in all used modules
(see "multi-module params" section ) */
loadmodule "domain.so"
/* uncomment the next two lines for presence server support
NOTE: a DB (like mysql) module must be also loaded */
#loadmodule "presence.so"
#loadmodule "presence_xml.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
#modparam("rr", "append_fromtag", 0)
# ----- rr params -----
#modparam("registrar", "method_filtering", 1)
/* uncomment the next line to disable parallel forking via location */
# modparam("registrar", "append_branches", 0)
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)
# ----- uri_db params -----
/* by default we disable the DB support in the module as we do not need it
in this configuration */
modparam("uri_db", "use_uri_table", 0)
modparam("uri_db", "db_url", "mysql://openser:openserrw@localhost/openser")
# ----- acc params -----
/* what sepcial events should be accounted ? */
#modparam("acc", "early_media", 1)
#modparam("acc", "report_ack", 1)
#modparam("acc", "report_cancels", 1)
/* by default ww do not adjust the direct of the sequential requests.
if you enable this parameter, be sure the enable "append_fromtag"
in "rr" module */
#modparam("acc", "detect_direction", 0)
/* account triggers (flags) */
#modparam("acc", "failed_transaction_flag", 3)
#modparam("acc", "log_flag", 1)
#modparam("acc", "log_missed_flag", 2)
/* uncomment the following lines to enable DB accounting also */
#modparam("acc", "db_flag", 1)
#modparam("acc", "db_missed_flag", 2)
# ----- usrloc params -----
#modparam("usrloc", "db_mode", 0)
/* uncomment the following lines if you want to enable DB persistency
for location entries */
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://openser:openserrw@localhost/openser")
# ----- auth_db params -----
/* uncomment the following lines if you want to enable the DB based
authentication */
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "ha1")
modparam("auth_db", "db_url",
"mysql://openser:openserrw@localhost/openser")
#modparam("auth_db", "load_credentials", "")
modparam("auth_db", "password_column", "ha1b")
# ----- alias_db params -----
/* uncomment the following lines if you want to enable the DB based
aliases */
#modparam("alias_db", "db_url",
# "mysql://openser:openserrw@localhost/openser")
# ----- domain params -----
/* uncomment the following lines to enable multi-domain detection
support */
modparam("domain", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("domain", "db_mode", 1) # Use caching
## Tiempo para la llamada
modparam("tm","fr_inv_timer", 45)
# ----- multi-module params -----
/* uncomment the following line if you want to enable multi-domain support
in the modules (dafault off) */
#modparam("alias_db|auth_db|usrloc|uri_db", "use_domain", 1)
# ----- presence params -----
/* uncomment the following lines if you want to enable presence */
#modparam("presence|presence_xml", "db_url",
# "mysql://openser:openserrw@localhost/openser")
#modparam("presence_xml", "force_active", 1)
#modparam("presence", "server_address", "sip:192.168.1.2:5060")
####### Routing Logic ########
# main request routing logic
route{
## LOG del mensaje recibido
xlog("L_INFO", "\n\n$Cbg[ $mi -- $rm -- $ua ($si:$sp) -- FROM: $fu -- TO: $tU -- ]$Cxx\n);
## Comprobamos que el mensaje no sea demasiado largo ni halla superado max_forwards
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
xlog("L_ERROR", "\n\n$CwrToo Many Hops$Cxx\n");
exit;
};
if(msg:len>max_len){
sl_send_reply("513", "Message Overflow");
xlog("L_ERROR", "\n\n$CwrMessage Overflow$Cxx\n");
exit;
}
## RECORD ROUTE SECTION
## Nos ponemos en medio, poniendo una cabecera Record-Route, para que los mensajes pasen por
## nosotros. Pero si es REGISTER no se debe hacer.
if(method!="REGISTER"){
record_route();
};
## LOOSE ROUTE SECTION
## Los mensajes pertenecientes a un mismo dialogo deben tomar el camino indicado por Record-Route
If (loose_route()){
xlog("L_INFO", "\n\n *** Estamos en loose-route ***\n\n");
route(1);
exit;
};
## CALL TYPE PROCESSING SECTION
## Mensajes con destino distinto de nuestro servidor, hacemos relay, pero .
## Ruta de salientes
if (!is_uri_host_local()){
if (is_from_local()) {
route(4);
} else {
sl_send_reply("403", "Forbidden");
};
exit;
};
## Mensajes con destino nuestro servidor (por ejemplo llamadas a usuarios registrado aqui.
## Tenemos que tratar explicitamente el ACK
if (method=="ACK") {
xlog("L_INFO", "$Cbx--- Procesando un ACK *not whitin a dialog*$Cxx\n");
route(1);
exit;
}
## CANCEL messages can be safely processed with a simple call to t_relay()
## because SER will automatically match the CANCEL message to the original
## INVITE message (stateful)
## Para el CANCEL, con la ruta por defecto vale.
else if (method=="CANCEL") {
route(1);
exit;
}
## Los REGISTER los tratamos a parte (en la ruta 2)
else if (method=="REGISTER"){
route(2);
exit;
}
## Los INVITEs a la ruta 3 (autenticacion, ...)
else if (method=="INVITE"){
route(3);
exit;
}
## Resto de casos (OPTIONS, REFER, BYE...)
else {
# Puede que venga a nosotros pero tengamos definido un alias a fuera. lookup("aliases") nos
##da la nueva URI que puede sea != myself.
lookup("aliases");
if (!is_uri_host_local()) {
xlog("L_INFO", "$CrxNot my URI after the alias lookup$Cxx\n");
## A las salientes
route(4);
exit;
};
## Miramos si existe el destino en nuestra tabla "location".
if (!lookup("location")){
xlog("L_INFO","$Crx404 User Not Found$Cxx\n");
sl_send_reply("404", "Not Found");
exit;
};
## Si hemos llegado hasta aqui enrutamos el mensaje al destino por
## la ruta por defecto.
route(1);
exit;
};
};
#-------------------------------------------------------------------------
# DEFAULT MESSAGE HANDLER
#-------------------------------------------------------------------------
route[1]
{
## Indicamos que las respuestas que se originen aqui vayan a la ruta
## onreply_route[1], asi sabemos lo que pasa
t_on_reply("1");
if (!t_relay()) {
sl_reply_error();
};
xlog("L_INFO","$CbxMessage is reloayed; now exiting$Cxx\n");
exit;
}
#------------------------------------------------------------------------
# REGISTER MESSAGE HANDLER
#------------------------------------------------------------------------
route[2]
{
sl_send_reply("100", "Trying");
if (!www_autorize("", "subscriber")) {
xlog("L_INFO", "$CbxSe necesita autenticacion para el REGISTER$Cxx\n");
www_challange("","0");
exit;
}
else if (!check_to()){
## Validate the supplied to: header against the previously
## validated digest credentials. If they do not match then we must
## reject the REGISTER
xlog("L_INFO","$Crx*** check_to()=NO!! ***$Cxx\n");
sl_send_reply("401","Unauthorized");
exit;
};
xlog("L_INFO","$Cbx*** REGISTER correcto ***$Cxx\n");
## Eliminamos las cabeceras relativas a la autenticacion, porque ya no son
## necesarias y no vamos a ir mandandolas por ahi...
consume_credentials();
## Informo si es un UNREGISTER (rfc3261 -- 10.2.2)
if ($hdr(contact)=~";expires=0") || ($hdr(expires)=="0"){
xlog("L_INFO","$Cbx*** UNREGISTER ***$Cxx\n");
}
## Guardamos la localizacion en la tabla "location".
if (!save("location")) {
sl_reply_error();
};
}
#--------------------------------------------------------------------------
# INVITE MESSAGE HANDLER
#--------------------------------------------------------------------------
route[3]
{
## Es necesario autenticarse para poder llamar
if (!proxy_authorize("","subscriber")){
xlog("L_INFO","$cBXSe necesita autenticacion para el INVITE$Cxx\n");
exit;
}
## Tienen que coincidir el nombre de usuario con el de la cabecera FROM
else if (!check_from()){
xlog("L_INFO", "$Crx*** check_form()=NO!! ***\n");
sl_send_reply("403", "Use From=Id");
exit;
};
xlog("L_INFO","$Cbx*** INVITE correcto ***$Cxx\n");
consume_credentials();
## Puede que venga a nosotros pero tengamos definido un alias a fuera.
## lookup("aliases") nos da la nueva uri que puede sea !=myself
lookup("aliases");
if(!is_uri_host_local()){
## A las salientes
route(4);
exit;
};
if(!lookup("location")){
xlog("L_INFO","$Crx404 User Not Found$Cxx\n");
sl_send_reply("404","User Not Found");
exit;
};
rewritehost(10.95.44.29);
## El usuario se ha autenticado y a quien llama existe en "location" asÃue lo rutamos.
route(1);
}
#--------------------------------------------------------------------------------------
# OUTGOING
#--------------------------------------------------------------------------------------
route[4]
{
xlog("L_INFO","Cbx*** Llamada saliente ***$Cxx\n");
route(1);
exit;
}
#---------------------------------------------------------------------------------------
# ONREPLY_ROUTE[1] -- Para ver las respuestas a los INVITE.
#---------------------------------------------------------------------------------------
## Si un usuario hace un INVITE las respuestas del llamado (Trying, Ringing, OK ...) pasan por aqui
onreply_route[1]
{
xlog("L_INFO","\n\n$Cbc[Respuesta][ $rs ($rr) desde $si:$sp -- Peticion:($rm) ] $Cxx\n");
}
Por otro lado, suponiendo que esté bien. Como hago para comunicar openser con el EyeBeam, alguien sabe como hacerlo??
Muchisimas gracias por todo.
Y siento ser tan preguntona! pero es que todo esto me parece complicadisimo!
> Date: Thu, 17 Jul 2008 14:56:32 +0200
> From: saghul@gmail.com
> To: users-es@lists.openser.org
> Subject: Re: [OpenSER-Users-ES] {Spam?} dudas con open ser
>
> > Lo siento pero es que ando perdidísima!! no entiendo nada!
> > He estado mirando los enlaces que me pones pero la verdad es que tampoco me
> > aclaran mucho las cosas, admás no estoy muy bien de inglés, no hay
> > informacion útil en castellano?
> >
>
> No esta en castellano, pero el libro "Building Telephony Systems with
> OpenSER" esta muy bien, tiene muchos ejemplos, y es un buen comienzo.
>
>
> --
> Saúl -- "Nunca subestimes el ancho de banda de un camión lleno de disketes."
> ----------------------------------------------------------------
> http://www.saghul.net/
>
> _______________________________________________
> Users-es mailing list
> Users-es@lists.openser.org
> http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
¡Atrévete con Abecedario, el juego del momento! Invita a tus contactos de Messenger y demuéstrales lo que sabes demuéstrales lo que sabes