Hi, i am new to openser.i am using openser1.1.0.tls . i am getting problem with PA module while try to get presence information.i am using windows messenger as sip client . while am calling handle_subscription("registrar") 8(32566) ERROR: parse_uri: bad uri, state 0 parsed: <> (4) / <> (135224384) error is appears on openser screen . please help me on this .i am attaching openser.cfg also
8(32566) SIP Request: 8(32566) method: <SUBSCRIBE> 8(32566) uri: sip:ramesh.b@192.168.0.56 8(32566) version: <SIP/2.0> 8(32566) parse_headers: flags=2 8(32566) end of header reached, state=5 8(32566) parse_headers: Via found, flags=2 8(32566) parse_headers: this is the first via 8(32566) After parse_msg... 8(32566) preparing to run routing scripts... 8(32566) parse_headers: flags=100 8(32566) DEBUG:maxfwd:is_maxfwd_present: value = 70 8(32566) parse_headers: flags=10 8(32566) DEBUG: add_param: tag=4728ca770b8542babb6c8be2e07558d1 8(32566) DEBUG: add_param: epid=7abbed3e7b 8(32566) DEBUG:parse_to:end of header reached, state=29 8(32566) DBUG:parse_to: display={"ramesh.b@192.168.0.56"}, ruri={sip:ramesh.b@192.168.0.56} 8(32566) parse_headers: flags=200 8(32566) DEBUG:parse_to:end of header reached, state=10 8(32566) DBUG:parse_to: display={}, ruri={sip:ramesh.b@192.168.0.56} 8(32566) DEBUG: get_hdr_field: <To> [29]; uri=[sip:ramesh.b@192.168.0.56] 8(32566) DEBUG: to body [sip:ramesh.b@192.168.0.56 ] 8(32566) get_hdr_field: cseq <CSeq>: <1> <SUBSCRIBE> 8(32566) DEBUG: get_hdr_body : content_length=0 8(32566) found end of header 8(32566) find_first_route: No Route headers found 8(32566) loose_route: There is no Route HF 8(32566) grep_sock_info - checking if host==us: 12==9 && [192.168.0.56] == [127.0.0.1] 8(32566) grep_sock_info - checking if port 5060 matches port 5060 8(32566) grep_sock_info - checking if host==us: 12==12 && [192.168.0.56] == [192.168.0.56] 8(32566) grep_sock_info - checking if port 5060 matches port 5060 8(32566) grep_sock_info - checking if host==us: 12==9 && [192.168.0.56] == [127.0.0.1] 8(32566) grep_sock_info - checking if port 5060 matches port 5060 8(32566) grep_sock_info - checking if host==us: 12==12 && [192.168.0.56] == [192.168.0.56] 8(32566) grep_sock_info - checking if port 5060 matches port 5060 8(32566) DEBUG: t_newtran: msg id=5 , global msg id=2 , T on entrance=0xffffffff 8(32566) parse_headers: flags=ffffffffffffffff 8(32566) parse_headers: flags=78 8(32566) t_lookup_request: start searching: hash=20651, isACK=0 8(32566) DEBUG: proceeding to pre-RFC3261 transaction matching 8(32566) DEBUG: t_lookup_request: no transaction found 8(32566) handle_subscription() entered 8(32566) parse_headers: flags=608010 8(32566) check_message -0- _m=0x812fec8 8(32566) check_message -1- 8(32566) check_message -2- accepts_mimes=(nil) 8(32566) check_message -3- *8(32566) check_message -4- parsed_event=(nil) 8(32566) check_message -5- 8(32566) get_pres_uri: _puri= 8(32566) ERROR: parse_uri: bad uri, state 0 parsed: <> (4) / <> (135224384) 8(32566) extract_plain_uri(): Error while parsing URI 6(32559) SIP Request:* 6(32559) method: <SUBSCRIBE> 6(32559) uri: sip:mahesh@192.168.0.56 6(32559) version: <SIP/2.0> 6(32559) parse_headers: flags=2 6(32559) end of header reached, state=5 6(32559) 7(32560) SIP Request: 7(32560) method: <SUBSCRIBE> 7(32560) uri: sip:ramesh.b@192.168.0.56 7(32560) version: <SIP/2.0> 7(32560) parse_headers: flags=2 7(32560) end of header reached, state=5 7(32560) parse_headers: Via found, flags=2 7(32560) parse_headers: this is the first via 7(32560) After parse_msg... 7(32560) preparing to run routing scripts... 7(32560) parse_headers: flags=100 7(32560) DEBUG:maxfwd:is_maxfwd_present: value = 70 7(32560) parse_headers: flags=10
Thanks and Regards venkatesh.d
#This configaration file for routing the failure calls another destination (like VMS)
# # $Id: openser.cfg,v 1.6 2006/02/15 18:23:46 bogdan_iancu Exp $ # # simple quick-start config script #
# ----------- global configuration parameters ------------------------
debug=4 # debug level (cmd line: -dddddddddd) fork=yes #log_stderror=yes # (cmd line: -E)
# Uncomment these lines to enter debugging mode #fork=no log_stderror=yes check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) port=5060 children=4 fifo="/tmp/openser_fifo"
# # uncomment the following lines for TLS support #disable_tls = 0 #listen = tls:your_IP:5061 #tls_verify = 1 #tls_require_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 ----------------------------------
# Uncomment this if you want to use SQL database 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/textops.so"
# Uncomment this if you want digest authentication # mysql.so must be loaded ! loadmodule "/usr/local/lib/openser/modules/auth.so" loadmodule "/usr/local/lib/openser/modules/auth_db.so" loadmodule "/usr/local/lib/openser/modules/uac.so" loadmodule "/usr/local/lib/openser/modules/pa.so" # ----------------- setting module-specific parameters ---------------
# -- 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") modparam("registrar", "default_expires", 1800)
# -- rr params -- # add value to ;lr param to make some broken UAs happy modparam("rr", "enable_full_lr", 2)
modparam("auth_db","db_url","mysql://openser:openser@venkid/openser") modparam("usrloc","db_url","mysql://openser:openser@venkid/openser") modparam("pa", "db_url", "mysql://openser:openser@venkid/openser")
# ------------------------- 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=="REGISTER") { record_route(); } # subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { #mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); }; if (!uri==myself) { # 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=="REGISTER") { # Uncomment this if you want to use digest authentication if (!www_authorize("venkid", "subscriber")) { www_challenge("venkid", "0"); exit; }; save("location"); exit; };
if( method=="SUBSCRIBE" ) { route(2); }; if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); }; if (!lookup("location")) {
log("not found while look up *********************************"); exit; }else{ log("found while look up*************************************"); exit; }; };
route(1); }
route[1] { if (!t_relay()) { sl_reply_error(); } exit; }
route[2] { # absorb retransmissions if (! t_newtran()) { sl_reply_error(); exit; };
# append to reply the contact of your server append_to_reply("Contact: sip:192.168.0.56:5060\r\n"); handle_subscription("registrar"); sl_send_reply("200","ok "); t_release();
exit; }