Hola, Primero de todo, ya he entendido que para que los mensajes se muestren en la pagina tengo que escribir un mail a esta direccion! jeje, que lío me había hecho....
Pues bien, estoy empezando a trabajar con openser y la verdad es que ando un poco perdidilla. Me lo he instalado con soporte para mysql en una maquina debian. Y ahora lo que yo quiero hacer es comunicarlo con un servidor de aplicaciones propio de mi empresa que tengo instalado en mi propio pc. Podrian ayudarme a hacer esto? Mi intencion es mandar mensajes a openser desde EyeBeam (cosa que tampoco se muy bien como hacer todavía) y desde openser redireccionarlos a mi servidor de aplicaciones y que sea este el que me los muestre.
muchas gracias por la ayuda! _________________________________________________________________ Tu mejor plan para el fin de semana y toda la actualidad del mundo del corazón. Entra en MSN Entretenimiento http://entretenimiento.es.msn.com/
El Wednesday 16 July 2008 09:57:12 patricia avila sendino escribió:
Pues bien, estoy empezando a trabajar con openser y la verdad es que ando un poco perdidilla.
Bien, aquí la pregunta sería: ¿qué tal andas de SIP? Lectura recomendadísima aunque durilla: RFC 3261 (OpenSer trabaja a muy bajo nivel, es requisito conocer el protocolo SIP, sino tarde o temprano tendrás algún problema que costará mucho resolver).
Me lo he instalado con soporte para mysql en una maquina debian. Y ahora lo que yo quiero hacer es comunicarlo con un servidor de aplicaciones propio de mi empresa que tengo instalado en mi propio pc. Podrian ayudarme a hacer esto? Mi intencion es mandar mensajes a openser desde EyeBeam (cosa que tampoco se muy bien como hacer todavía) y desde openser redireccionarlos a mi servidor de aplicaciones y que sea este el que me los muestre.
Una vez cogido el truquillo de OpenSer es muy sencillo lo que quieres, cualquier script de ejemplo te sirve para comenzar. Parte del openser.cfg que viene de ejemplo, y mira éste:
http://www.openser.org/dokuwiki/doku.php/asterisk:realtime-integration?s=ast...
y fíjate en el uso de "rewritehost()" para especificar dónde rutar el request.
Y sobre todo una lectura intensa de: http://www.openser.org/dokuwiki/doku.php/core-cookbook:1.3.x http://www.openser.org/dokuwiki/doku.php/pseudovariables:1.3.x http://www.openser.org/dokuwiki/doku.php/transformations:1.3.x http://www.openser.org/docs/modules/1.3.x/ http://www.openser.org/dokuwiki/doku.php/utils:flags
Animo :)
Entiendo que el rewritehost me reescribe el host destino, no? por tanto bastaría con poner: rewritehost(ipdelamaquinaenlaqtengomiservidordeaplicaciones); ??
De ser así donde lo pongo?
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?
Gracias otra vez! > Date: Wed, 16 Jul 2008 10:18:14 +0200> From: ibc@in.ilimit.es> To: users-es@lists.openser.org> Subject: Re: [OpenSER-Users-ES] {Spam?} dudas con open ser> > El Wednesday 16 July 2008 09:57:12 patricia avila sendino escribió:> > > Pues bien, estoy empezando a trabajar con openser y la verdad es que ando> > un poco perdidilla.> > Bien, aquí la pregunta sería: ¿qué tal andas de SIP?> Lectura recomendadísima aunque durilla: RFC 3261 (OpenSer trabaja a muy bajo > nivel, es requisito conocer el protocolo SIP, sino tarde o temprano tendrás > algún problema que costará mucho resolver).> > > > > Me lo he instalado con soporte para mysql en una > > maquina debian. Y ahora lo que yo quiero hacer es comunicarlo con un> > servidor de aplicaciones propio de mi empresa que tengo instalado en mi> > propio pc. Podrian ayudarme a hacer esto? Mi intencion es mandar mensajes a> > openser desde EyeBeam (cosa que tampoco se muy bien como hacer todavía) y> > desde openser redireccionarlos a mi servidor de aplicaciones y que sea este> > el que me los muestre.> > Una vez cogido el truquillo de OpenSer es muy sencillo lo que quieres, > cualquier script de ejemplo te sirve para comenzar. Parte del openser.cfg que > viene de ejemplo, y mira éste:> > http://www.openser.org/dokuwiki/doku.php/asterisk:realtime-integration?s=ast... > y fíjate en el uso de "rewritehost()" para especificar dónde rutar el request.> > Y sobre todo una lectura intensa de:> http://www.openser.org/dokuwiki/doku.php/core-cookbook:1.3.x%3E http://www.openser.org/dokuwiki/doku.php/pseudovariables:1.3.x%3E http://www.openser.org/dokuwiki/doku.php/transformations:1.3.x%3E http://www.openser.org/docs/modules/1.3.x/%3E http://www.openser.org/dokuwiki/doku.php/utils:flags%3E > Animo :)> > > > > -- > Iñaki Baz Castillo> ibc@in.ilimit.es> > _______________________________________________> Users-es mailing list> Users-es@lists.openser.org> http://lists.openser.org/cgi-bin/mailman/listinfo/users-es _________________________________________________________________ Sigue en directo todas las competiciones deportivas en MSN Deportes http://deportes.es.msn.com/
El Thursday 17 July 2008 10:38:15 patricia avila sendino escribió:
Entiendo que el rewritehost me reescribe el host destino, no? por tanto bastaría con poner: rewritehost(ipdelamaquinaenlaqtengomiservidordeaplicaciones); ??
Sí.
De ser así donde lo pongo?
Una vez que hayas autenticado el INVITE (si así lo quieres).
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?
Pues busca info sobre SIP en castellano, dos buenas páginas: http://voip.megawan.com.ar/doku.php/sip http://www.voipforo.com/SIP/SIParquitectura.php
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.
Al final el openser.cfg me ha quedado así, vosotros pensais que está bien??
####### Global Parameters ######### debug=3log_stderror=yes#log_facility=LOG_LOCAL0 fork=nochildren=4dns=norev_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 pathmpath="/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 UAsmodparam("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 llamadamodparam("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/%3E > _______________________________________________> Users-es mailing list> Users-es@lists.openser.org> http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
_________________________________________________________________ Hazte tu propia televisión a la carta. Música, noticias, estrenos, cine, humor y viajes en MSN Vídeo http://video.msn.com/?mkt=es-es
sr-users-es@lists.kamailio.org