[OpenSER-Users-ES] ayuda con openser

Gustavo ggb at tid.es
Thu Jan 17 00:42:16 CET 2008


Hola,

Estás usando un fichero con configuración que no soporta tu versión de openser.  Por ejemplo el parametro nat_flag del modulo registrar ya no existe.

¿Porqué no empiezas con un fichero de configuración más sencillo?

G:

On Wed, 2008-01-16 at 17:27 -0600, Ronmel Jiron wrote:
> gracias por responder...al hacer
> # pidof openser      ó
> # nmap -sU 127.0.0.1 -p 5060
>  no sale nada, o sea que no esta funcionando. Pero ahora he modificado
> mi openser.cfg y manda 23 errores..( no soy muy bueno en esto).
> Mi archivo openser.cfg es el siguiente:
> 
> #
> # $Id: openser.cfg 1676 2007-02-21 13:16:34Z bogdan_iancu $
> #
> # simple quick-start config script
> # Please refer to the Core CookBook at http://www.openser.org/dokuwiki/doku.php
> # for a explanation of possible statements, functions and parameters.
> #
> 
> # ----------- global configuration parameters ------------------------
> 
> debug=3            # debug level (cmd line: -dddddddddd)
> fork=yes
> log_stderror=yes    # (cmd line: -E)
> children=4
> 
> # Uncomment these lines to enter debugging mode
> #fork=no
> #log_stderror=yes
> #
> 
> port=5060
> alias=200.30.177.115
> 
> dns=no
> rev_dns=no
> 
> # uncomment the following lines for TLS support
> #disable_tls = 0
> #listen = tls:your_IP:5061
> listen = 200.30.177.115
> #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"
> 
> # ------------------ module loading ----------------------------------
> 
> #set module path
> mpath="/usr/local/lib/openser/modules/"
> 
> # Uncomment this if you want to use SQL database
> #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"
> 
> modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
> modparam("mi_fifo", "fifo_mode", 0660)
> modparam("mi_fifo", "fifo_group", "openser")
> modparam("mi_fifo", "fifo_user", "openser")
> modparam("mi_fifo", "reply_dir", "/tmp/")
> modparam("mi_fifo", "reply_indent", "\t")
> 
> 
> #fifo="/tmp/openser_fifo"
> #fifo_db_url="mysql://openser:openserrw@localhost/openser"
> 
> loadmodule "/usr/local/lib/openser/modules/mysql.so"
> loadmodule "/usr/local/lib/openser/modules/sl.so"
> loadmodule "/usr/local/lib/openser/modules/tm.so"
> loadmodule "/usr/local/lib/openser/modules/rr.so"
> loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
> loadmodule "/usr/local/lib/openser/modules/usrloc.so"
> loadmodule "/usr/local/lib/openser/modules/registrar.so"
> loadmodule "/usr/local/lib/openser/modules/auth.so"
> loadmodule "/usr/local/lib/openser/modules/auth_db.so"
> loadmodule "/usr/local/lib/openser/modules/uri.so"
> loadmodule "/usr/local/lib/openser/modules/uri_db.so"
> loadmodule "/usr/local/lib/openser/modules/mediaproxy.so"
> loadmodule "/usr/local/lib/openser/modules/nathelper.so"
> loadmodule "/usr/local/lib/openser/modules/textops.so"
> loadmodule "/usr/local/lib/openser/modules/domain.so"
> loadmodule "/usr/local/lib/openser/modules/xlog.so"
> loadmodule "/usr/local/lib/openser/modules/uac.so"
> loadmodule "/usr/local/lib/openser/modules/speeddial.so"
> loadmodule "/usr/local/lib/openser/modules/avpops.so"
> 
> # Uncomment this if you want digest authentication
> # mysql.so must be loaded !
> #loadmodule "auth.so"
> #loadmodule "auth_db.so"
> 
> # ----------------- setting module-specific parameters ---------------
> 
> modparam("usrloc|auth_db|domain|speeddial|acc", "db_url",
> "mysql://openser:openserrw@localhost/openser")
> modparam("auth_db", "calculate_ha1", 1)
> modparam("auth_db", "use_domain", 0)
> modparam("domain", "db_mode", 1)
> modparam("nathelper", "rtpproxy_disable", 1)
> modparam("nathelper", "natping_interval", 60)
> modparam("mediaproxy","natping_interval", 30)
> modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
> modparam("usrloc", "db_mode", 2)
> modparam("usrloc", "use_domain", 0)
> modparam("registrar", "default_expires", 60)
> modparam("registrar", "min_expires", 30)
> modparam("registrar", "nat_flag", 6)
> modparam("registrar", "use_domain", 0)
> modparam("rr", "enable_full_lr", 1)
> modparam("auth", "rpid_suffix", ";party=calling;id-type=subscriber;screen=yes")
> modparam("auth", "rpid_avp", "s:rpid")
> 
> # -- mi_fifo params --
> 
> modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
> 
> # -- usrloc params --
> 
> #modparam("usrloc", "db_mode",   0)
> 
> # Uncomment this if you want to use SQL database
> # for persistent storage and comment the previous line
> #modparam("usrloc", "db_mode", 2)
> 
> # -- auth params --
> # Uncomment if you are using auth module
> #
> #modparam("auth_db", "calculate_ha1", yes)
> #
> # If you set "calculate_ha1" parameter to yes (which true in this config),
> # uncomment also the following parameter)
> #
> #modparam("auth_db", "password_column", "password")
> 
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> #modparam("rr", "enable_full_lr", 1)
> 
> # -------------------------  request routing logic -------------------
> 
> # main routing logic
> 
> route{
> 
> 	# initial sanity checks -- messages with
> 	# max_forwards==0, or excessively long requests
> 	if (!mf_process_maxfwd_header("10")) {
> 		sl_send_reply("483","Too Many Hops");
> 		exit;
> 	};
> 
> 	if (msg:len >=  2048 ) {
> 		sl_send_reply("513", "Message too big");
> 		exit;
> 	};
> 
> 	# we record-route all messages -- to make sure that
> 	# subsequent messages will go through our proxy; that's
> 	# particularly good if upstream and downstream entities
> 	# use different transport protocol
> 
> 	if (method == "INVITE" && client_nat_test("3")) {
>                 # Must add valid IP address below
>                  record_route_preset("200.30.177.115:5060;nat=yes");
>         } else if (method != "REGISTER") {
>                 record_route();
>         };
> 	
> 	# subsequent messages withing a dialog should take the
> 	# path determined by record-routing
> 	if (loose_route()) {
> if (loose_route()) {
>                 if (has_totag() && (method == "INVITE" || method == "ACK")) {
>                         if (client_nat_test("3") ||
> search("^Route:.*;nat=yes")) {
>                                 setflag(6);
>                                 use_media_proxy();
> 			};
>                 };
>                 route(1);
>                 return;
>         };
> 		# mark routing logic in request
> 		##append_hf("P-hint: rr-enforced\r\n");
> 		##route(1);
> 
> 	if (!uri==myself) {
> 		route(1);
>                 return;
> 	};
> 		# mark routing logic in request
> 		##append_hf("P-hint: outbound\r\n");
> 		# if you have some interdomain connections via TLS
> 		#if(uri=~"@tls_domain1.net") {
> 		#	t_relay("tls:domain1.net");
> 		#	exit;
> 		#} else if(uri=~"@tls_domain2.net") {
> 		#	t_relay("tls:domain2.net");
> 		#	exit;
> 		#}
> 		##route(1);
> 
> 	# if the request is for other domain use UsrLoc
> 	# (in case, it does not work, use the following command
> 	# with proper names and addresses in it)
> 	if (uri==myself) {
> 		if (method == "BYE") {
>                         route(4);
>                         return;
>                 } else if (method == "CANCEL") {
>                         route(4);
>                         return;
>                 } else if (method == "INVITE") {
>                         route(3);
>                         return;
>                 } else  if (method == "REGISTER") {
>                         route(2);
>                         return;
>                 } else if (method == "NOTIFY") {
>                         sl_send_reply("200", "Understood");
>                         return;
>                 } else if (method == "OPTIONS") {
>                         sl_send_reply("200", "Got it");
>                         return;
>                 }
>         };
>         route(1);
> }
> 
> 		##if (method=="REGISTER") {
> 
> 			# Uncomment this if you want to use digest authentication
> 			#if (!www_authorize("openser.org", "subscriber")) {
> 			#	www_challenge("openser.org", "0");
> 			#	exit;
> 			#};
> 
> 		##	save("location");
> 		##	exit;
> 		##};
> 
> 		##lookup("aliases");
> 		##if (!uri==myself) {
> 		##	append_hf("P-hint: outbound alias\r\n");
> 			route(1);
> 		##};
> 
> 		# native SIP destinations are handled using our USRLOC DB
> 		##if (!lookup("location")) {
> 		##	sl_send_reply("404", "Not Found");
> 		##	exit;
> 		##};
> 		##append_hf("P-hint: usrloc applied\r\n");
> 	##};
> 
> 	##route(1);
> ##}
> 
> 
> route[1] {
> 	t_on_reply("1");
>         if (!t_relay()) {
>                 if (method=="INVITE" || method=="ACK") {
>                         end_media_session();
>                 };
>                 sl_reply_error();
>         };
> }
> 	# send it out now; use stateful forwarding as it works reliably
> 	# even for UDP2TCP
> 	##if (!t_relay()) {
> 	##	sl_reply_error();
> 	##};
> 	##exit;
> ##}
> 
> # REGISTER Message Handling
> # -------------------------
> route[2] {
>         if (!search("^Contact:\ +\*") && client_nat_test("7")) {
>                 setflag(6);
>                 fix_nated_register();
>                 force_rport();
>         };
>         sl_send_reply("100", "Trying");
>         if (!www_authorize("","subscriber")) {
>                 www_challenge("","0");
>                 return;
>         };
>         if (!check_to()) {
>                 sl_send_reply("401", "Unauthorized");
>                 return;
>         };
>         consume_credentials();
>         if (!save("location")) {
>                 sl_reply_error();
>         };
> }
> 
> # INVITE Message Handling
> # ----------------------------------
> route[3] {
>         # Test for nat, perhaps fix headers
>         if (client_nat_test("3")) {
>                 setflag(7);
>                 force_rport();
>                 fix_nated_contact();
>         };
> 
>         # 3 and 4 digits URIs are sent to our Asterisk PBX
>         if ((uri =~ "^sip:[0-9]{3}@.*") || (uri =~ "^sip:[0-9]{4}@.*")) {
>                 rewritehost("pbx.valid.host.com:5060");
>                 use_media_proxy();
>                 route(1);
>                 return;
>         };
> 
>         # Any URI that begins with 1 plus 10 digits authenticate and pass on
>         # to our SIP Provider
>         if (uri =~ .^sip:1[0-9]{10}@.*.) {
>                 # Authenticate these calls
>                 if (!proxy_authorize(.",.subscriber.)) {
>                         proxy_challenge(.",.0.);
>                         return;
>                 } else if (!check_from()) {
>                         sl_send_reply(.403., .Use From ID.);
>                         return;
>                 };
>                 consume_credentials();
>                 rewritehostport(.proxy-1.nufone.net:5060.);
>                 route(1);
>                 return;
>         };
> 
>         if (!lookup(.location.)) {
>                 sl_send_reply(.404., .User Not Found, Sorry.);
>                 return;
>         };
> 
>         # If NAT is previously detected, proxy
>         if (isflagset(6) || isflagset(7)) {
>                 use_media_proxy();
>         };
> 
>         route(1);
> }
> 
> # CANCEL and BYE Message Handling
> # ----------------------------------
> route[4] {
>         if (client_nat_test("3")) {
>                 setflag(7);
>                 force_rport();
>                 fix_nated_contact();
>         };
>         end_media_session();
>         route(1);
> 
> }
> 
> 
> onreply_route[1] {
>         if ((isflagset(6) || isflagset(7)) &&
> (status=~"(180)|(183)|2[0-9][0-9]")) {
>                 if (!search("^Content-Length:\ +0")) {
>                         use_media_proxy();
>                 };
>         };
>         if (client_nat_test("1")) {
>                 fix_nated_contact();
>         };
> }
> 
> 
> y los mensajes de error son:
> 
>  0(16987) set_mod_param_regex: parameter <nat_flag> not found in
> module <registrar>
>  0(16987) parse error (107,19-20): Can't set module parameter
>  0(16987) set_mod_param_regex: parameter <use_domain> not found in
> module <registrar>
>  0(16987) parse error (108,19-20): Can't set module parameter
>  0(16987) parse error (259,6-7): syntax error
>  0(16987) parse error (259,6-7): missing '(' or ')' ?
>  0(16987) parse error (259,6-7): bad command: missing ';'?
>  0(16987) parse error (259,7-8): bad command!)
>  0(16987) parse error (259,8-9): bad command!)
>  0(16987) parse error (259,10-11): bad command!)
>  0(16987) parse error (319,20-21): syntax error
>  0(16987) parse error (319,20-21): string or MYSELF expected
>  0(16987) parse error (319,20-21): bad command!)
>  0(16987) parse error (319,21-22): bad command!)
>  0(16987) parse error (319,25-26): bad command!)
>  0(16987) parse error (319,25-26): bad command!)
>  0(16987) parse error (319,26-27): bad command!)
>  0(16987) parse error (319,27-28): bad command!)
>  0(16987) parse error (319,28-29): bad command!)
>  0(16987) parse error (319,29-30): bad command!)
>  0(16987) parse error (319,30-31): bad command!)
>  0(16987) parse error (319,31-32): bad command!)
>  0(16987) parse error (319,32-33): bad command!)
>  0(16987) parse error (319,33-35): bad command!)
>  0(16987) parse error (319,36-37):
> ERROR: bad config file (23 errors)
>  0(16987) INFO:mi_fifo:mi_destroy:memory for the child's mi_fifo_pid
> was not allocated -> nothing to destroy
> 
> ayuda por favor
> 
> 2008/1/16, Iñaki Baz Castillo <ibc at aliax.net>:
> > El Miércoles, 16 de Enero de 2008, Ronmel Jiron escribió:
> > > Hola, soy nuenvo en Openser. he instalado OpenSER siguiendo los pasos
> > > encontrados en la web. He modificado el archivo openser.cfg de
> > > diferentes maneras, lo hice con el generador de sipwise. De ninguna
> > > manera me ha funcionado, o sea que cuando hago:
> > > # openser start
> > >
> > > El resultado es:
> > >
> > > INFO:mi_fifo:mi_destroy:memory for the child's mi_fifo_pid was not
> > > allocated -> nothing to destroy.
> > >
> > > No se que esta pasando, ayuda por favor
> >
> > Es un "INFO", ni siquiera un "WARGING" y mucho menos un "ERROR". Ignóralo.
> > ¿Está funcionando OpenSer?
> >
> > ~# pidof openser
> >
> > ~# nmap -sU 127.0.0.1 -p 5060
> >
> > --
> > Iñaki Baz Castillo
> >
> > _______________________________________________
> > Users-es mailing list
> > Users-es at lists.openser.org
> > http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
> >
> 
> 






More information about the Users-es mailing list