Thank you very much. And my log file at /var/log/message lists below:
Charles
Log Start: ------------------------------------------------------------------------------------------------------------------- Maxfwd module- initializing AVPops - initializing permissions - initializing Default allow file (/usr/local/etc/ser/permissions.allow) not found => empty rule set Default deny file (/usr/local/etc/ser/permissions.deny) not found => empty rule set info: mediaproxy: loaded SIP asymmetric clients file containing 1 entry. info: mediaproxy: loaded RTP asymmetric clients file containing 0 entries. INFO: udp_init: SO_RCVBUF is initially 65535 INFO: udp_init: SO_RCVBUF is finally 262142 INFO: fifo process starting: 3947 SER: open_uac_fifo: fifo server up at /tmp/ser_fifo... PDT:prefix2domain: no prefix found in [1011] Time:[Mon Feb 21 11:12:49 2005] Method:<INVITE> r-uri:1011@ser.xxx.net.tw IP:<61.229.13.49> From:sip:1033@ser.xxx.net.tw To:sip:1011@ser.xxx.net.tw sip:1033@10.18.1.102:1718 SER: BLIND CALL FORWARDING SER: Look aliases SER: Look location SER isflagset (sip) SER: Look aliases SER: Look location SER isflagset (sip) SER: SIP Call On-Net section route(2) PDT:prefix2domain: no prefix found in [1011] Time:[Mon Feb 21 11:12:50 2005] Method:<INVITE> r-uri:1011@ser.xxx.net.tw IP:<61.229.13.49> From:sip:1033@ser.xxx.net.tw To:sip:1011@ser.xxx.net.tw sip:1033@10.18.1.102:1718 SER: BLIND CALL FORWARDING SER: Look aliases SER: Look location SER isflagset (sip) SER: Look aliases SER: Look location SER isflagset (sip) SER: SIP Call On-Net section route(2) error: mediaproxy/sendMediaproxyCommand(): can't connect to MediaProxy error: mediaproxy/sendMediaproxyCommand(): can't connect to MediaProxy SER: SIP Call On-Net section route(2) error: mediaproxy/sendMediaproxyCommand(): can't connect to MediaProxy SER: SIP Call On-Net section route(2) error: mediaproxy/sendMediaproxyCommand(): can't connect to MediaProxy SER: SIP Call On-Net section route(2) error: mediaproxy/sendMediaproxyCommand(): can't connect to MediaProxy SER: SIP Call On-Net section route(2) error: mediaproxy/sendMediaproxyCommand(): can't connect to MediaProxy SER: SIP Call On-Net section route(2) ----------------------------------------------------------------------------------------------------------------
On Sun, 20 Feb 2005 21:58:12 -0500, Java Rockx javarockx@gmail.com wrote:
Can you include an output of the error messages?
Regards, Paul
On Mon, 21 Feb 2005 10:12:23 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear ALL:
I start ser 0.9.0. And when I make a sip call or off-net call(to PSTN), some error(as Subject) about MediaProxy will display in Log file.
Does anybody have the same problem and have any solution to fix it?
My ser.cfg list below:
debug=10 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=no # (cmd line: -E)
listen=xxx.xxx.xxx.xxx alias=ser.xxx.net.tw alias=ser alias=xxx.xxx.xxx.xxx
check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) port=5060 children=4 fifo_mode=0666 fifo="/tmp/ser_fifo" fifo_db_url="mysql://ser:heslo@localhost/ser"
# ------------------ module loading ---------------------------------- # ----------------- setting module-specific parameters --------------- ----------(skip)
# -- mediaproxy params -- modparam("mediaproxy", "natping_interval", 30) modparam("mediaproxy", "sip_asymmetrics", "/usr/local/etc/ser/sip-asymmetric-clients") modparam("mediaproxy", "rtp_asymmetrics", "/usr/local/etc/ser/rtp-asymmetric-clients")
# -- usrloc params -- modparam("usrloc", "db_mode", 1) modparam("usrloc", "timer_interval", 60) modparam("usrloc", "desc_time_order", 1)
# -- auth params -- modparam("auth_db", "calculate_ha1", yes) 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)
# -- db_url params -- modparam("acc|auth_db|domain|group|permissions|speeddial|uri_db|usrloc|pdt", "db_url", "mysql://ser:heslo@localhost/ser")
# -- use_domain params -- modparam("auth_db|group|registrar|speeddial|uri_db|usrloc", "use_domain", 0)
# -- permissions params -- modparam("permissions", "db_mode", 1) modparam("permissions", "trusted_table", "trusted")
# -- accounting params -- modparam("acc", "db_flag", 1) modparam("acc", "db_missed_flag", 1) modparam("acc", "log_fmt", "cdfimorstup") modparam("acc", "log_level", 1) modparam("acc", "failed_transactions", 1) modparam("acc", "report_cancels", 1) modparam("acc", "report_ack", 0)
# -- domain params -- modparam("domain", "db_mode", 1)
# ------------- exec parameters modparam("exec", "setvars", 1) modparam("exec", "time_to_kill", 10)
# -- registration params -- modparam("registrar", "nat_flag", 2) modparam("registrar", "min_expires", 60) modparam("registrar", "max_expires", 86400) modparam("registrar", "default_expires", 3600) modparam("registrar", "append_branches", 1)
# -- avp params -- modparam("avpops", "avp_url", "mysql://ser:heslo@localhost/ser") modparam("avpops", "avp_table", "usr_preferences") #modparam("avpops", "use_domain", "1") modparam("avpops", "uuid_column", "uuid") modparam("avpops", "username_column", "username") modparam("avpops", "domain_column", "domain") modparam("avpops", "attribute_column", "attribute") modparam("avpops", "value_column", "value") modparam("avpops", "type_column", "type") modparam("avpops", "avp_aliases", "voicemail=i:500;calltype=i:700;fwd_no_answer_type=i:701;fwd_busy_type=i:702") # To use more than one tables example #modparam("avpops", "db_scheme", "scheme1:table=subscriber;uuid_column=uuid;value_column=first_name")
# -- tm params -- modparam("tm", "fr_timer", 15) modparam("tm", "fr_inv_timer", 22) modparam("tm", "wt_timer", 5) modparam("tm", "fr_inv_timer_avp", "inv_timeout")
# -- pdt params -- modparam("pdt", "db_table", "prefix_domain") modparam("pdt", "prefix", "") modparam("pdt", "hsize_2pow", 2) modparam("pdt", "sync_time", 300) modparam("pdt", "clean_time", 600)
# -- logging params modparam("xlog", "buf_size", 8192)
# -- group params -- modparam("group", "table", "grp") modparam("group", "user_column", "username") modparam("group", "domain_column", "domain") modparam("group", "group_column", "grp")
# ------------------------- request routing logic -------------------
# main routing logic
route {
# ------------------------------------------------------------------------ # Sanity Check Section # ------------------------------------------------------------------------ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483", "Too Many Hops"); break; }; if (msg:len > max_len) { sl_send_reply("513", "Message Overflow"); break; }; # ------------------------------------------------------------------------ # NOTIFY Keep-Alive Section # ------------------------------------------------------------------------ if ((method=="NOTIFY") && search("^Event: keep-alive")) { sl_send_reply("200", "OK"); break; }; # ------------------------------------------------------------------------ # OPTIONS Section # ------------------------------------------------------------------------ if (method=="OPTIONS") { options_reply(); break; }; # ------------------------------------------------------------------------ # NAT Test Section #1 # ------------------------------------------------------------------------ if (method=="REGISTER" && client_nat_test("3")) { fix_contact(); force_rport(); setflag(2); }; # ------------------------------------------------------------------------ # Registration Section # ------------------------------------------------------------------------ if (method=="REGISTER") { # allow all requests from user 700 - the Click2Dial controller if (!isflagset(14)) { if (!is_from_local()) { sl_send_reply("403", "Unknown Domain"); break; }; if (!www_authorize("", "subscriber")) { www_challenge("", "0"); break; }; if (!check_to()) { sl_send_reply("401", "Unauthorized"); break; }; # To - Use To username and (optionally) domain to check if (is_user_in("To", "demo-disabled")) { sl_send_reply("403", "Your evaluation period has expired"); break; }; # To - Use To username and (optionally) domain to check if (is_user_in("To", "disabled")) { sl_send_reply("403", "Your account has been disabled"); break; }; }; # snom sip phones use this header to start their # keep-alive mechanism for NAT bindings append_to_reply("P-NAT-Refresh: 15\r\n"); if (!save("location")) { sl_reply_error(); }; break; }; # ------------------------------------------------------------------------ # Accounting Section # 1 # # NOTE: We test for flag 14 because we do not want to record Click2Dial # entries # ------------------------------------------------------------------------ if ((method=="INVITE" || method=="BYE") && !isflagset(14)) { setflag(1); }; # ------------------------------------------------------------------------ # NAT Tear-Down Section # ------------------------------------------------------------------------ if ((method == "BYE" || method == "CANCEL")) { end_media_session(); }; # ------------------------------------------------------------------------ # Record Route Section # # 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(); }; # ------------------------------------------------------------------------ # Loose Route Section # # Grant route routing if route headers present # ------------------------------------------------------------------------ if (loose_route()) { route(2); break; }; prefix2domain(); # ------------------------------------------------------------------------ # NAT Test Section #1 # ------------------------------------------------------------------------ if (client_nat_test("3") && !search("^Record-Route:")) { force_rport(); fix_contact(); }; # ------------------------------------------------------------------------ # PSTN Section # ------------------------------------------------------------------------ if (method=="INVITE") { ## Deny PSTN to 0204 and 095 on Tawan if ((uri=~"^sip:0204[0-9]*@") || (uri=~"^sip:095[0-9]*@")) { sl_send_reply("503", "Service Unavailable"); break; }; }; # ------------------------------------------------------------------------ # Alias Routing Section # ------------------------------------------------------------------------ lookup("aliases"); if (!uri==myself) { route(2); break; }; # ------------------------------------------------------------------------ # Load ACL Section # ------------------------------------------------------------------------ if (method=="INVITE" && !isflagset(14)) { xlog("L_ERR", "Time:[%Tf] Method:<%rm> r-uri:<%ru>\n"); xlog("L_ERR", "IP:<%is> From:<%fu> To:<%tu> %ct\n"); if (is_user_in("Request-URI", "voicemail")) { setflag(31); }; if (is_from_local() || is_uri_host_local()) { # Check user from grp table if (is_user_in("From", "int")) { log(1, "SER: a INT user\n"); setflag(29); }; if (is_user_in("From", "free-pstn")) { log(1, "SER: a FREE-PSTN user\n"); setflag(28); }; if (avp_db_load("$from/username", "s:callidblock")) { if (avp_check("s:callidblock", "eq/y/i")) { setflag(25); }; }; }; if (avp_db_load("$ruri/username", "s:anoncallrej")) { if (avp_check("s:anoncallrej", "eq/y/i")) { log(1, "SER: a ANON-CALL-REJ user\n"); setflag(24); }; }; }; # ------------------------------------------------------------------------ # Anonymous Call Rejection Section # 24 # ------------------------------------------------------------------------ if (isflagset(24) && (method=="INVITE") &&
search("^(f|F)rom:.*(a|A)nonymous")) { route(8); break; };
# ------------------------------------------------------------------------ # Speed Dialing Section # ------------------------------------------------------------------------ if ((method=="INVITE") && (uri=~"^sip:[0-9]{2}@.*")) { sd_lookup("speed_dial"); }; # ------------------------------------------------------------------------ # 002 International Call Section # 29 # ------------------------------------------------------------------------ if (method=="INVITE" && uri=~"^sip:002[0-9]*@") { if (isflagset(29)) { log(1, "SER: an International Call route(6)\n"); route(6); } else { sl_send_reply("503", "Service Unavailable"); }; break; }; # ------------------------------------------------------------------------ # 0XXXXXXXXX Domestic Call Section # 29 # ------------------------------------------------------------------------ if (method=="INVITE" && uri=~"^sip:0[0-9]{9}@") { if (isflagset(29)) { log(1, "SER: a Domestic Call route(6)\n"); route(6); } else { sl_send_reply("503", "Service Unavailable"); }; break; }; # ------------------------------------------------------------------------ # URI Compare Section # # Here we compare the "from" and "to" to see if the caller is dialing # their own extension. If so then we route to voicemail(31) if needed # ------------------------------------------------------------------------ if (method=="INVITE") { avp_write("$from", "i:34"); if (avp_check("i:34", "eq/$ruri/i")) { if (isflagset(31)) { route(5); break; } else { sl_send_reply("486", "Busy"); break; }; }; }; # ------------------------------------------------------------------------ # Do Not Disturb Section # ------------------------------------------------------------------------ if (avp_db_load("$ruri/username", "s:donotdisturb")) { if (avp_check("s:donotdisturb", "eq/y/i")) { route(5); break; }; }; # ------------------------------------------------------------------------ # Blind Call Forwarding Section # ------------------------------------------------------------------------ if (method=="INVITE") { log(1, "SER: BLIND CALL FORWARDING\n"); # here we must store the current (aka original) R-URI because if # we set call forwarding and the forwarded number is busy then we # need to use this original R-URI to determine which voicemail # box we should go to if (isflagset(31)) { avp_write("$ruri", "$voicemail"); }; if (avp_db_load("$ruri/username", "s:callfwd")) { avp_pushto("$ruri", "s:callfwd"); # lookup the call fowarding number to see if it is a served # sip number or a PSTN number # check forwarding number rules log(1, "SER: Check Forwarding Number Rules\n"); route(1); if (avp_check("$calltype", "eq/-/i")) { log(1, "SER: 503 Service Unavailable 1\n"); sl_send_reply("503", "Service Unavailable"); break; }; # test for domestic PSTN gateway if (avp_check("$calltype", "eq/dom/i")) { log(1, "SER: Start a domestic PSTN call route(3)\n"); route(3); break; }; # test for international PSTN gateway if (avp_check("$calltype", "eq/int/i")) { log(1, "SER: Start an international PSTN call route(6)\n"); route(6); break; }; }; }; # ------------------------------------------------------------------------ # Call Routing Section # ------------------------------------------------------------------------ if (!lookup("location")) { # if flag 31 (ie voicemail) is set and we made it here this means # the user's phone is not registered anywhere. We'll forward to # voicemail after this block because we need to check the call # forward settings first if (isflagset(31)) { # flag 19 means the user has voicemail but is not online # so we need to remember to send to voicemail if call # forwarding is not enabled setflag(19); }; if (method=="INVITE") { if (does_uri_exist()) { # subscriber record found, but they're offline log(1, "SER: Temporarily Unavailable\n"); sl_send_reply("480", "Temporarily Unavailable"); break; }; if (uri=~"^sip:0[0-9]{9}@") { # Send to PSTN Gateway if (isflagset(28) || (is_user_in("From", "int")) ||
(is_user_in("From", "free-pstn"))) { log(1, "SER: Start a PSTN call\n"); route(3); } else { log(1, "SER: 503 Service Unavailable 2\n"); sl_send_reply("503", "Service Unavailable"); }; break; }; sl_send_reply("404", "User Not Found"); break; }; };
# ------------------------------------------------------------------------ # Call Forwarding Section # ------------------------------------------------------------------------ if (method=="INVITE") { # save R-URI in a temp AVP for later use avp_write("$ruri", "i:99"); # only load the forward no answer option if voice mail is not enabled if (!isflagset(31)) { if (avp_db_load("$ruri/username", "s:fwdnoanswer")) { route(1); }; }; if (avp_db_load("$ruri/username", "s:fwdbusy")) { route(1); }; avp_pushto("$ruri", "i:99"); }; if (isflagset(19)) { # send to voicemail route(5); } else { route(2); };
}
route[1] {
# Here we have route checks for all the call forwarding stuff. # The return values are passed as AVP $calltype as follows: # # "-" = R-URI is not allowed # "dom" = R-RURI is a domestic call # "int" = R-RURI is an international call # "sip" = R-RURI is a sip call avp_write("sip", "$calltype");
# Call rejected if ((uri=~"^sip:0204[0-9]*@") || (uri=~"^sip:095[0-9]*@") || (uri=~"^sip:[0-9]{3}@")) { break; }; log(1, "SER: Look aliases\n"); lookup("aliases");
log(1, "SER: Look location\n"); if (!lookup("location")) { if (uri=~"^sip:0[0-9]{9}@") { # test for domestic PSTN number if (isflagset(28)) { log(1, "SER isflagset 28 (domestic)\n"); avp_write("dom", "$calltype"); }; } else if (uri=~"^sip:002[0-9]*@") { # test for international PSTN number if (isflagset(29)) { log(1, "SER isflagset 29 (int)\n"); avp_write("int", "$calltype"); }; }; break; }; log(1, "SER isflagset (sip)\n"); avp_write("sip", "$calltype");
}
route[2] { log(1, "SER: SIP Call On-Net section route(2)\n"); if ((method=="INVITE") && !allow_trusted()) { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; }; if (uri=~"[@:](192.168.|10.|172.(1[6-9]|2[0-9]|3[0-1]).)" && !search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (isflagset(25)) { replace("^From:(.*)>" , "From: "Anonymous" sip:someone@anonymous.invalid"); }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; t_on_failure("1"); t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
route[3] { log(1, "SER: Demestic Call Off-Net section route(3)\n");
# All Domestic Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout log(1, "SER: Connecting to PSTN.....\n"); avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; if (isflagset(31)) { t_on_failure("1"); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
route[4] { log(1, "SER: Voice Mail section route(4)\n");
# voicemail route #1 # # this path this executed during these conditions: # # cond 1) the called number is in the location table # but the callee did not answer the phone # (ie, failover to voicemail) if (isflagset(25)) { replace("^From:(.*)>" , "From: \"Anonymous\"
sip:someone@anonymous.invalid"); }; rewritehostport("99.99.99.100:5060"); append_branch(); t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
route[5] { log(1, "SER: Voice Mail section route(5)\n");
# voicemail route #2 # # this path this executed during these conditions: # # cond 1) the called number is not in the location table # cond 2) the from_uri == to_uri (ie, caller==callee) if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; rewritehostport("99.99.99.100:5060"); t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); };
}
route[6] { log(1, "SER: International Call Off-Net section route(6)\n");
# All International Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
route[7] { log(1, "SER: Caller Blocked section route(7)\n");
# caller blocked announcment # # this path this executed if a caller has been blocked if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; rewriteuri("sip:699@99.99.99.100:5060"); t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); };
}
route[8] { log(1, "SER: Anonymous Call Rejection section route(8)\n");
# anonymous call rejection announcment # # this path this executed for anonymous callers if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; rewriteuri("sip:698@99.99.99.100:5060"); t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); };
}
onreply_route[1] { # Not all 2xx messages have a content body so here we # make sure our Content-Length > 0 to avoid a parse error if (status=~"(180)|(183)|2[0-9][0-9]") { if (!search("^Content-Length:\ 0")) { use_media_proxy(); }; }; if (client_nat_test("1")) { fix_contact(); }; }
failure_route[1] { log(1, "SER: Failure Route section failure_route(1)\n");
# if caller hung up then don't sent to voicemail if (t_check_status("487")) { break; }; if (isflagset(26) && t_check_status("486")) { # forward busy is flag 26 if (avp_pushto("$ruri", "s:fwdbusy")) { log(1, "SER: fork to fwdbusy\n"); avp_delete("s:fwdbusy"); append_branch(); resetflag(26); # test for domestic PSTN gateway if (uri=~"^sip:0[0-9]{9}@") { # if (avp_check("$fwd_busy_type", "eq/dom/i")) { # test for domestic PSTN gateway log(1, "SER: Busy Failure and Jump to route(3)\n"); route(3); } else if (uri=~"^sip:002[1-9][0-9]*@") { # } else if (avp_check("$fwd_busy_type", "eq/int/i")) { # test for international PSTN gateway log(1, "SER: Busy Failure and Jump to route(6)\n"); route(6); } else { # default to sip call log(1, "SER: Busy Failure and Jump to route(2)\n"); route(2); }; break; }; }; # here we can have either voicemail __OR__ forward no answer if (isflagset(27) && t_check_status("408")) { # forward no answer is flag 27 if (avp_pushto("$ruri", "s:fwdnoanswer")) { log(1, "SER: fork to fwdnoanswer\n"); avp_delete("s:fwdnoanswer"); append_branch(); resetflag(27); if (uri=~"^sip:0[0-9]{9}@") { # if (avp_check("$fwd_no_answer_type", "eq/dom/i")) { # test for domestic PSTN gateway log(1, "SER: No Answer Failure and Jump to route(3)\n"); route(3); } else if (uri=~"^sip:002[1-9][0-9]*@") { # } else if (avp_check("$fwd_no_answer_type", "eq/int/i")) { # test for international PSTN gateway log(1, "SER: No Answer Failure and Jump to route(6)\n"); route(6); } else { # default to sip call log(1, "SER: No Answer Failure and Jump to route(2)\n"); route(2); }; break; }; } else if (isflagset(31) && avp_pushto("$ruri", "$voicemail")) { avp_delete("$voicemail"); log(1, "SER: No Answer Failure and Jump to route(4)\n"); route(4); break; };
}
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Dear ALL:
I make the UA 1033 as busy status(pick up the phone and do nothing).
Then I try to make a call from 1011 to 1033. It should be redirect to a PSTN phone number( sip:0939749xxx@ser.xxx.net.tw ). I find it call failure and jump to failure_route[1], then swicth to route[3](for PSTN). But when I dump the package using ngrep. I can't find it try to connect PSTN trunk( xxx.xxx.190.243 is a CISCO 5300). I can find "SER: Connecting to PSTN....." message list at log file. Then the log display "SER: SIP Call On-Net section route(2)" message. It means that the call return to route[2] then failed. I guess that it stops or jump out route[3] after rewritehost(xxx.xxx.190.243).
Can anyone help me to trace the bug in the route[3]?
Best Regard Charles
Subset of ser.cfg about route[3: ------------------------------------------------------------------------------------------------------- route[3] { log(1, "SER: Demestic Call Off-Net section route(3)\n");
# All Domestic Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout log(1, "SER: Connecting to PSTN.....\n"); avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192.168.|10.|172.(1[6-9]|2[0-9]|3[0-1]).)" && !search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; if (isflagset(31)) { # is voice mail? t_on_failure("1"); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
Dump using ngrep -d eth0 -W byline port 5060 ------------------------------------------------------------------ Notes: xxx.xxx.190.248 : is SER sip proxy xxx.xxx.13.49 : is NAT sip:1033@xxx.xxx.13.49:33536 : location of 1033 sip:1011@xxx.xxx.13.49:35700 : location of 1011
interface: eth0 (xxx.xxx.190.240/255.255.255.240) filter: ip and ( port 5060 ) # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46237906 46237906 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Proxy-Authenticate: Digest realm="ser.xxx.net.tw", nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb". Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4199 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 ACK. Max-Forwards: 70. Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4201 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 INVITE sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@xxx.xxx.13.49:35700. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 16. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 SIP/2.0 486 Busy Here. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. Contact: sip:1033@10.18.1.102:1718. Content-Length: 0. .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 ACK sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. CSeq: 26232 ACK. User-Agent: Sip EXpress router(0.10.99-dev0 (i386/linux)). Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 408 Request Timeout. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4203 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==0". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 ACK. Max-Forwards: 70. Content-Length: 0. .
# # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 .... # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 .... # U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 ................ # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
Charles,
How are you starting mediaproxy? Below is the start script I use.
Regards, Paul
#!/bin/sh # # chkconfig: 2345 90 20 # description: VoIP RTP Proxy Server # # processname: mediaproxy # pidfile: /var/run/mediaproxy.pid
# source function library . /etc/rc.d/init.d/functions
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
INSTALL_DIR="/usr/local" RUNTIME_DIR="/var/run"
PROXY="$INSTALL_DIR/mediaproxy/mediaproxy.py" DISPATCHER="$INSTALL_DIR/mediaproxy/proxydispatcher.py" PROXY_PID="$RUNTIME_DIR/mediaproxy.pid" DISPATCHER_PID="$RUNTIME_DIR/proxydispatcher.pid"
# Options for mediaproxy and dispatcher. Do not include --pid <pidfile> # --pid <pidfile> will be added automatically if needed. PROXY_OPTIONS="--ip=24.48.42.20 --listen=127.0.0.1" DISPATCHER_OPTIONS="domain://sip.mycompany.com"
NAME="mediaproxy" DESC="SER MediaProxy server"
test -f $PROXY || exit 0 test -f $DISPATCHER || exit 0
if [ "$PROXY_PID" != "/var/run/mediaproxy.pid" ]; then PROXY_OPTIONS="--pid $PROXY_PID $PROXY_OPTIONS" fi if [ "$DISPATCHER_PID" != "/var/run/proxydispatcher.pid" ]; then DISPATCHER_OPTIONS="--pid $DISPATCHER_PID $DISPATCHER_OPTIONS" fi
start() { echo -n "Starting $DESC: $NAME" $PROXY $PROXY_OPTIONS $DISPATCHER $DISPATCHER_OPTIONS echo "." }
stop () { echo -n "Stopping $DESC: $NAME" kill `cat $PROXY_PID` kill `cat $DISPATCHER_PID` echo "." }
case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop #sleep 1 start ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac
exit 0
On Mon, 21 Feb 2005 13:39:10 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear ALL:
I make the UA 1033 as busy status(pick up the phone and do nothing).
Then I try to make a call from 1011 to 1033. It should be redirect to a PSTN phone number( sip:0939749xxx@ser.xxx.net.tw ). I find it call failure and jump to failure_route[1], then swicth to route[3](for PSTN). But when I dump the package using ngrep. I can't find it try to connect PSTN trunk( xxx.xxx.190.243 is a CISCO 5300). I can find "SER: Connecting to PSTN....." message list at log file. Then the log display "SER: SIP Call On-Net section route(2)" message. It means that the call return to route[2] then failed. I guess that it stops or jump out route[3] after rewritehost(xxx.xxx.190.243).
Can anyone help me to trace the bug in the route[3]?
Best Regard Charles
Subset of ser.cfg about route[3:
route[3] { log(1, "SER: Demestic Call Off-Net section route(3)\n");
# All Domestic Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout log(1, "SER: Connecting to PSTN.....\n"); avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; if (isflagset(31)) { # is voice mail? t_on_failure("1"); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
Dump using ngrep -d eth0 -W byline port 5060
Notes: xxx.xxx.190.248 : is SER sip proxy xxx.xxx.13.49 : is NAT sip:1033@xxx.xxx.13.49:33536 : location of 1033 sip:1011@xxx.xxx.13.49:35700 : location of 1011
interface: eth0 (xxx.xxx.190.240/255.255.255.240) filter: ip and ( port 5060 ) # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46237906 46237906 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Proxy-Authenticate: Digest realm="ser.xxx.net.tw", nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb". Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4199 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 ACK. Max-Forwards: 70. Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4201 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 INVITE sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@xxx.xxx.13.49:35700. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 16. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 SIP/2.0 486 Busy Here. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. Contact: sip:1033@10.18.1.102:1718. Content-Length: 0. .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 ACK sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. CSeq: 26232 ACK. User-Agent: Sip EXpress router(0.10.99-dev0 (i386/linux)). Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 408 Request Timeout. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4203 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==0". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 ACK. Max-Forwards: 70. Content-Length: 0. .
# # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 .... # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 .... # U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 ................ # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Dear Paul:
So surprised it is. I never see any executable file or script named "mediaproxy.py" in my source files. I guess that the mediaproxy is only a module including in "sip_router/modules/mediaproxy/mediaproxy.so". When I can get a executable version of mediaproxy or where the mediaproxy.py is?
And also I miss the "proxydispatcher". I can find a directory named "dispatcher" under my sip_router/modules.
I usually start my ser with "/usr/local/sbin/serctl start".
Please let me know where I can get these files what you said.
On Mon, 21 Feb 2005 07:04:48 -0500, Java Rockx javarockx@gmail.com wrote:
Charles,
How are you starting mediaproxy? Below is the start script I use.
Regards, Paul
#!/bin/sh # # chkconfig: 2345 90 20 # description: VoIP RTP Proxy Server # # processname: mediaproxy # pidfile: /var/run/mediaproxy.pid
# source function library . /etc/rc.d/init.d/functions
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
INSTALL_DIR="/usr/local" RUNTIME_DIR="/var/run"
PROXY="$INSTALL_DIR/mediaproxy/mediaproxy.py" DISPATCHER="$INSTALL_DIR/mediaproxy/proxydispatcher.py" PROXY_PID="$RUNTIME_DIR/mediaproxy.pid" DISPATCHER_PID="$RUNTIME_DIR/proxydispatcher.pid"
# Options for mediaproxy and dispatcher. Do not include --pid <pidfile> # --pid <pidfile> will be added automatically if needed. PROXY_OPTIONS="--ip=24.48.42.20 --listen=127.0.0.1" DISPATCHER_OPTIONS="domain://sip.mycompany.com"
NAME="mediaproxy" DESC="SER MediaProxy server"
test -f $PROXY || exit 0 test -f $DISPATCHER || exit 0
if [ "$PROXY_PID" != "/var/run/mediaproxy.pid" ]; then PROXY_OPTIONS="--pid $PROXY_PID $PROXY_OPTIONS" fi if [ "$DISPATCHER_PID" != "/var/run/proxydispatcher.pid" ]; then DISPATCHER_OPTIONS="--pid $DISPATCHER_PID $DISPATCHER_OPTIONS" fi
start() { echo -n "Starting $DESC: $NAME" $PROXY $PROXY_OPTIONS $DISPATCHER $DISPATCHER_OPTIONS echo "." }
stop () { echo -n "Stopping $DESC: $NAME" kill `cat $PROXY_PID` kill `cat $DISPATCHER_PID` echo "." }
case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop #sleep 1 start ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac
exit 0
On Mon, 21 Feb 2005 13:39:10 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear ALL:
I make the UA 1033 as busy status(pick up the phone and do nothing).
Then I try to make a call from 1011 to 1033. It should be redirect to a PSTN phone number( sip:0939749xxx@ser.xxx.net.tw ). I find it call failure and jump to failure_route[1], then swicth to route[3](for PSTN). But when I dump the package using ngrep. I can't find it try to connect PSTN trunk( xxx.xxx.190.243 is a CISCO 5300). I can find "SER: Connecting to PSTN....." message list at log file. Then the log display "SER: SIP Call On-Net section route(2)" message. It means that the call return to route[2] then failed. I guess that it stops or jump out route[3] after rewritehost(xxx.xxx.190.243).
Can anyone help me to trace the bug in the route[3]?
Best Regard Charles
Subset of ser.cfg about route[3:
route[3] { log(1, "SER: Demestic Call Off-Net section route(3)\n");
# All Domestic Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout log(1, "SER: Connecting to PSTN.....\n"); avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; if (isflagset(31)) { # is voice mail? t_on_failure("1"); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
Dump using ngrep -d eth0 -W byline port 5060
Notes: xxx.xxx.190.248 : is SER sip proxy xxx.xxx.13.49 : is NAT sip:1033@xxx.xxx.13.49:33536 : location of 1033 sip:1011@xxx.xxx.13.49:35700 : location of 1011
interface: eth0 (xxx.xxx.190.240/255.255.255.240) filter: ip and ( port 5060 ) # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46237906 46237906 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Proxy-Authenticate: Digest realm="ser.xxx.net.tw", nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb". Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4199 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 ACK. Max-Forwards: 70. Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4201 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 INVITE sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@xxx.xxx.13.49:35700. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 16. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 SIP/2.0 486 Busy Here. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. Contact: sip:1033@10.18.1.102:1718. Content-Length: 0. .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 ACK sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. CSeq: 26232 ACK. User-Agent: Sip EXpress router(0.10.99-dev0 (i386/linux)). Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 408 Request Timeout. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4203 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==0". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 ACK. Max-Forwards: 70. Content-Length: 0. .
# # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 .... # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 .... # U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 ................ # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
MediaProxy is a two-part project. SER only includes the interface to the actual mediaproxy. You must install the actual mediaproxy server, which is written in Python.
http://www.ag-projects.com/MediaProxy.html
Regards, Paul
On Mon, 21 Feb 2005 20:26:19 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear Paul:
So surprised it is. I never see any executable file or script named "mediaproxy.py" in my source files. I guess that the mediaproxy is only a module including in "sip_router/modules/mediaproxy/mediaproxy.so". When I can get a executable version of mediaproxy or where the mediaproxy.py is?
And also I miss the "proxydispatcher". I can find a directory named "dispatcher" under my sip_router/modules.
I usually start my ser with "/usr/local/sbin/serctl start".
Please let me know where I can get these files what you said.
On Mon, 21 Feb 2005 07:04:48 -0500, Java Rockx javarockx@gmail.com wrote:
Charles,
How are you starting mediaproxy? Below is the start script I use.
Regards, Paul
#!/bin/sh # # chkconfig: 2345 90 20 # description: VoIP RTP Proxy Server # # processname: mediaproxy # pidfile: /var/run/mediaproxy.pid
# source function library . /etc/rc.d/init.d/functions
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
INSTALL_DIR="/usr/local" RUNTIME_DIR="/var/run"
PROXY="$INSTALL_DIR/mediaproxy/mediaproxy.py" DISPATCHER="$INSTALL_DIR/mediaproxy/proxydispatcher.py" PROXY_PID="$RUNTIME_DIR/mediaproxy.pid" DISPATCHER_PID="$RUNTIME_DIR/proxydispatcher.pid"
# Options for mediaproxy and dispatcher. Do not include --pid <pidfile> # --pid <pidfile> will be added automatically if needed. PROXY_OPTIONS="--ip=24.48.42.20 --listen=127.0.0.1" DISPATCHER_OPTIONS="domain://sip.mycompany.com"
NAME="mediaproxy" DESC="SER MediaProxy server"
test -f $PROXY || exit 0 test -f $DISPATCHER || exit 0
if [ "$PROXY_PID" != "/var/run/mediaproxy.pid" ]; then PROXY_OPTIONS="--pid $PROXY_PID $PROXY_OPTIONS" fi if [ "$DISPATCHER_PID" != "/var/run/proxydispatcher.pid" ]; then DISPATCHER_OPTIONS="--pid $DISPATCHER_PID $DISPATCHER_OPTIONS" fi
start() { echo -n "Starting $DESC: $NAME" $PROXY $PROXY_OPTIONS $DISPATCHER $DISPATCHER_OPTIONS echo "." }
stop () { echo -n "Stopping $DESC: $NAME" kill `cat $PROXY_PID` kill `cat $DISPATCHER_PID` echo "." }
case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop #sleep 1 start ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac
exit 0
On Mon, 21 Feb 2005 13:39:10 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear ALL:
I make the UA 1033 as busy status(pick up the phone and do nothing).
Then I try to make a call from 1011 to 1033. It should be redirect to a PSTN phone number( sip:0939749xxx@ser.xxx.net.tw ). I find it call failure and jump to failure_route[1], then swicth to route[3](for PSTN). But when I dump the package using ngrep. I can't find it try to connect PSTN trunk( xxx.xxx.190.243 is a CISCO 5300). I can find "SER: Connecting to PSTN....." message list at log file. Then the log display "SER: SIP Call On-Net section route(2)" message. It means that the call return to route[2] then failed. I guess that it stops or jump out route[3] after rewritehost(xxx.xxx.190.243).
Can anyone help me to trace the bug in the route[3]?
Best Regard Charles
Subset of ser.cfg about route[3:
route[3] { log(1, "SER: Demestic Call Off-Net section route(3)\n");
# All Domestic Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout log(1, "SER: Connecting to PSTN.....\n"); avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; if (isflagset(31)) { # is voice mail? t_on_failure("1"); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
Dump using ngrep -d eth0 -W byline port 5060
Notes: xxx.xxx.190.248 : is SER sip proxy xxx.xxx.13.49 : is NAT sip:1033@xxx.xxx.13.49:33536 : location of 1033 sip:1011@xxx.xxx.13.49:35700 : location of 1011
interface: eth0 (xxx.xxx.190.240/255.255.255.240) filter: ip and ( port 5060 ) # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46237906 46237906 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Proxy-Authenticate: Digest realm="ser.xxx.net.tw", nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb". Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4199 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 ACK. Max-Forwards: 70. Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4201 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 INVITE sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@xxx.xxx.13.49:35700. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 16. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 SIP/2.0 486 Busy Here. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. Contact: sip:1033@10.18.1.102:1718. Content-Length: 0. .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 ACK sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. CSeq: 26232 ACK. User-Agent: Sip EXpress router(0.10.99-dev0 (i386/linux)). Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 408 Request Timeout. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4203 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==0". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 ACK. Max-Forwards: 70. Content-Length: 0. .
# # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 .... # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 .... # U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 ................ # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Dear Paul:
I guess that you are right. But I can not understand why I can make a call from two different NATs? Don't they communicate via my ser? Or just signal channel via ser?
Thank you for your explain.
Charles
On Mon, 21 Feb 2005 07:41:58 -0500, Java Rockx javarockx@gmail.com wrote:
MediaProxy is a two-part project. SER only includes the interface to the actual mediaproxy. You must install the actual mediaproxy server, which is written in Python.
http://www.ag-projects.com/MediaProxy.html
Regards, Paul
On Mon, 21 Feb 2005 20:26:19 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear Paul:
So surprised it is. I never see any executable file or script named "mediaproxy.py" in my source files. I guess that the mediaproxy is only a module including in "sip_router/modules/mediaproxy/mediaproxy.so". When I can get a executable version of mediaproxy or where the mediaproxy.py is?
And also I miss the "proxydispatcher". I can find a directory named "dispatcher" under my sip_router/modules.
I usually start my ser with "/usr/local/sbin/serctl start".
Please let me know where I can get these files what you said.
On Mon, 21 Feb 2005 07:04:48 -0500, Java Rockx javarockx@gmail.com wrote:
Charles,
How are you starting mediaproxy? Below is the start script I use.
Regards, Paul
#!/bin/sh # # chkconfig: 2345 90 20 # description: VoIP RTP Proxy Server # # processname: mediaproxy # pidfile: /var/run/mediaproxy.pid
# source function library . /etc/rc.d/init.d/functions
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
INSTALL_DIR="/usr/local" RUNTIME_DIR="/var/run"
PROXY="$INSTALL_DIR/mediaproxy/mediaproxy.py" DISPATCHER="$INSTALL_DIR/mediaproxy/proxydispatcher.py" PROXY_PID="$RUNTIME_DIR/mediaproxy.pid" DISPATCHER_PID="$RUNTIME_DIR/proxydispatcher.pid"
# Options for mediaproxy and dispatcher. Do not include --pid <pidfile> # --pid <pidfile> will be added automatically if needed. PROXY_OPTIONS="--ip=24.48.42.20 --listen=127.0.0.1" DISPATCHER_OPTIONS="domain://sip.mycompany.com"
NAME="mediaproxy" DESC="SER MediaProxy server"
test -f $PROXY || exit 0 test -f $DISPATCHER || exit 0
if [ "$PROXY_PID" != "/var/run/mediaproxy.pid" ]; then PROXY_OPTIONS="--pid $PROXY_PID $PROXY_OPTIONS" fi if [ "$DISPATCHER_PID" != "/var/run/proxydispatcher.pid" ]; then DISPATCHER_OPTIONS="--pid $DISPATCHER_PID $DISPATCHER_OPTIONS" fi
start() { echo -n "Starting $DESC: $NAME" $PROXY $PROXY_OPTIONS $DISPATCHER $DISPATCHER_OPTIONS echo "." }
stop () { echo -n "Stopping $DESC: $NAME" kill `cat $PROXY_PID` kill `cat $DISPATCHER_PID` echo "." }
case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop #sleep 1 start ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac
exit 0
On Mon, 21 Feb 2005 13:39:10 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear ALL:
I make the UA 1033 as busy status(pick up the phone and do nothing).
Then I try to make a call from 1011 to 1033. It should be redirect to a PSTN phone number( sip:0939749xxx@ser.xxx.net.tw ). I find it call failure and jump to failure_route[1], then swicth to route[3](for PSTN). But when I dump the package using ngrep. I can't find it try to connect PSTN trunk( xxx.xxx.190.243 is a CISCO 5300). I can find "SER: Connecting to PSTN....." message list at log file. Then the log display "SER: SIP Call On-Net section route(2)" message. It means that the call return to route[2] then failed. I guess that it stops or jump out route[3] after rewritehost(xxx.xxx.190.243).
Can anyone help me to trace the bug in the route[3]?
Best Regard Charles
Subset of ser.cfg about route[3:
route[3] { log(1, "SER: Demestic Call Off-Net section route(3)\n");
# All Domestic Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout log(1, "SER: Connecting to PSTN.....\n"); avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; if (isflagset(31)) { # is voice mail? t_on_failure("1"); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
Dump using ngrep -d eth0 -W byline port 5060
Notes: xxx.xxx.190.248 : is SER sip proxy xxx.xxx.13.49 : is NAT sip:1033@xxx.xxx.13.49:33536 : location of 1033 sip:1011@xxx.xxx.13.49:35700 : location of 1011
interface: eth0 (xxx.xxx.190.240/255.255.255.240) filter: ip and ( port 5060 ) # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46237906 46237906 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Proxy-Authenticate: Digest realm="ser.xxx.net.tw", nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb". Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4199 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 ACK. Max-Forwards: 70. Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4201 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 INVITE sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@xxx.xxx.13.49:35700. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 16. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 SIP/2.0 486 Busy Here. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. Contact: sip:1033@10.18.1.102:1718. Content-Length: 0. .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 ACK sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. CSeq: 26232 ACK. User-Agent: Sip EXpress router(0.10.99-dev0 (i386/linux)). Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 408 Request Timeout. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4203 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==0". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 ACK. Max-Forwards: 70. Content-Length: 0. .
# # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 .... # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 .... # U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 ................ # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Are you saying that you have to NATed clients that can communicate?
If so, the reason is that they are being the same firewall and thus can directly reach each other.
Regards, Paul
On Mon, 21 Feb 2005 20:54:33 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear Paul:
I guess that you are right. But I can not understand why I can make a call from two different NATs? Don't they communicate via my ser? Or just signal channel via ser?
Thank you for your explain.
Charles
On Mon, 21 Feb 2005 07:41:58 -0500, Java Rockx javarockx@gmail.com wrote:
MediaProxy is a two-part project. SER only includes the interface to the actual mediaproxy. You must install the actual mediaproxy server, which is written in Python.
http://www.ag-projects.com/MediaProxy.html
Regards, Paul
On Mon, 21 Feb 2005 20:26:19 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear Paul:
So surprised it is. I never see any executable file or script named "mediaproxy.py" in my source files. I guess that the mediaproxy is only a module including in "sip_router/modules/mediaproxy/mediaproxy.so". When I can get a executable version of mediaproxy or where the mediaproxy.py is?
And also I miss the "proxydispatcher". I can find a directory named "dispatcher" under my sip_router/modules.
I usually start my ser with "/usr/local/sbin/serctl start".
Please let me know where I can get these files what you said.
On Mon, 21 Feb 2005 07:04:48 -0500, Java Rockx javarockx@gmail.com wrote:
Charles,
How are you starting mediaproxy? Below is the start script I use.
Regards, Paul
#!/bin/sh # # chkconfig: 2345 90 20 # description: VoIP RTP Proxy Server # # processname: mediaproxy # pidfile: /var/run/mediaproxy.pid
# source function library . /etc/rc.d/init.d/functions
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
INSTALL_DIR="/usr/local" RUNTIME_DIR="/var/run"
PROXY="$INSTALL_DIR/mediaproxy/mediaproxy.py" DISPATCHER="$INSTALL_DIR/mediaproxy/proxydispatcher.py" PROXY_PID="$RUNTIME_DIR/mediaproxy.pid" DISPATCHER_PID="$RUNTIME_DIR/proxydispatcher.pid"
# Options for mediaproxy and dispatcher. Do not include --pid <pidfile> # --pid <pidfile> will be added automatically if needed. PROXY_OPTIONS="--ip=24.48.42.20 --listen=127.0.0.1" DISPATCHER_OPTIONS="domain://sip.mycompany.com"
NAME="mediaproxy" DESC="SER MediaProxy server"
test -f $PROXY || exit 0 test -f $DISPATCHER || exit 0
if [ "$PROXY_PID" != "/var/run/mediaproxy.pid" ]; then PROXY_OPTIONS="--pid $PROXY_PID $PROXY_OPTIONS" fi if [ "$DISPATCHER_PID" != "/var/run/proxydispatcher.pid" ]; then DISPATCHER_OPTIONS="--pid $DISPATCHER_PID $DISPATCHER_OPTIONS" fi
start() { echo -n "Starting $DESC: $NAME" $PROXY $PROXY_OPTIONS $DISPATCHER $DISPATCHER_OPTIONS echo "." }
stop () { echo -n "Stopping $DESC: $NAME" kill `cat $PROXY_PID` kill `cat $DISPATCHER_PID` echo "." }
case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop #sleep 1 start ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac
exit 0
On Mon, 21 Feb 2005 13:39:10 +0800, Charles Wang lazy.charles@gmail.com wrote:
Dear ALL:
I make the UA 1033 as busy status(pick up the phone and do nothing).
Then I try to make a call from 1011 to 1033. It should be redirect to a PSTN phone number( sip:0939749xxx@ser.xxx.net.tw ). I find it call failure and jump to failure_route[1], then swicth to route[3](for PSTN). But when I dump the package using ngrep. I can't find it try to connect PSTN trunk( xxx.xxx.190.243 is a CISCO 5300). I can find "SER: Connecting to PSTN....." message list at log file. Then the log display "SER: SIP Call On-Net section route(2)" message. It means that the call return to route[2] then failed. I guess that it stops or jump out route[3] after rewritehost(xxx.xxx.190.243).
Can anyone help me to trace the bug in the route[3]?
Best Regard Charles
Subset of ser.cfg about route[3:
route[3] { log(1, "SER: Demestic Call Off-Net section route(3)\n");
# All Domestic Calls Go To CISCO 5300 if (method=="INVITE") { if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); break; } else if (!check_from()) { log(1, "Spoofed SIP call attempt"); sl_send_reply("403", "Use From=ID"); break; } else if (!(is_from_local() || is_uri_host_local())) { sl_send_reply("403", "Please register to use our service"); break; }; # enable caller id blocking for PSTN calls if (isflagset(25)) { append_rpid_hf(); }; }; # SIP->PSTN calls get 45 seconds to timeout log(1, "SER: Connecting to PSTN.....\n"); avp_write("i:45", "inv_timeout"); rewritehost("61.220.190.243"); if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){ sl_send_reply("479", "We don't forward to private IP addresses"); break; }; if (method=="INVITE" || method=="ACK") { use_media_proxy(); }; if (isflagset(31)) { # is voice mail? t_on_failure("1"); }; t_on_reply("1"); if (!t_relay()) { if (method=="INVITE" || method=="ACK") { end_media_session(); }; sl_reply_error(); }; }
Dump using ngrep -d eth0 -W byline port 5060
Notes: xxx.xxx.190.248 : is SER sip proxy xxx.xxx.13.49 : is NAT sip:1033@xxx.xxx.13.49:33536 : location of 1033 sip:1011@xxx.xxx.13.49:35700 : location of 1011
interface: eth0 (xxx.xxx.190.240/255.255.255.240) filter: ip and ( port 5060 ) # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46237906 46237906 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 INVITE. Proxy-Authenticate: Digest realm="ser.xxx.net.tw", nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb". Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4199 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK2754265110CD4289ACDA9EA0769C1A8F. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=67771a809cdfb71129a699a517fbb1f0.7608. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26231 ACK. Max-Forwards: 70. Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 INVITE sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 70. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 100 trying -- your call is important to us. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4201 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==1". .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 INVITE sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw. Contact: sip:1011@xxx.xxx.13.49:35700. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Proxy-Authorization: Digest username="1011",realm="ser.xxx.net.tw",nonce="42196d5483841de0d6b79c7dfb4156e2c932e4cb",response="7004beab12b3ac6874c5cd86e5659930",uri="sip:1033@ser.xxx.net.tw". Max-Forwards: 16. Content-Type: application/sdp. User-Agent: X-PRO build 1082. Content-Length: 264. . v=0. o=1011 46238507 46238507 IN IP4 10.18.1.70. s=X-PRO. c=IN IP4 10.18.1.70. t=0 0. m=audio 8000 RTP/AVP 8 3 98 97 101. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 SIP/2.0 486 Busy Here. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. Via: SIP/2.0/UDP 10.18.1.70:5060;received=xxx.xxx.13.49;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. Record-Route: sip:xxx.xxx.190.248;ftag=3281269171;lr=on. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. Contact: sip:1033@10.18.1.102:1718. Content-Length: 0. .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 ACK sip:1033@xxx.xxx.13.49:33536 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.190.248;branch=z9hG4bKa7ac.b59d9107.0. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. To: sip:1033@ser.xxx.net.tw;tag=A8VnZRzqB2nyNgYQ. CSeq: 26232 ACK. User-Agent: Sip EXpress router(0.10.99-dev0 (i386/linux)). Content-Length: 0. .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
# U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 SIP/2.0 408 Request Timeout. Via: SIP/2.0/UDP 10.18.1.70:5060;rport=35700;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC;received=xxx.xxx.13.49. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 INVITE. Server: Sip EXpress router (0.10.99-dev0 (i386/linux)). Content-Length: 0. Warning: 392 xxx.xxx.190.248:5060 "Noisy feedback tells: pid=4203 req_src_ip=xxx.xxx.13.49 req_src_port=35700 in_uri=sip:1033@ser.xxx.net.tw out_uri=sip:1033@xxx.xxx.13.49:33536 via_cnt==0". .
# U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 ACK sip:1033@ser.xxx.net.tw SIP/2.0. Via: SIP/2.0/UDP 10.18.1.70:5060;rport;branch=z9hG4bK1BDE5BF2809C4223A13FC5B1A9AC21CC. From: 1011 sip:1011@ser.xxx.net.tw;tag=3281269171. To: sip:1033@ser.xxx.net.tw;tag=5f573bbafd260ada15def89f1b1724a2-6b7e. Contact: sip:1011@10.18.1.70:5060. Call-ID: B6E73E25-87F9-40BB-A895-561E4ADE8AC8@10.18.1.70. CSeq: 26232 ACK. Max-Forwards: 70. Content-Length: 0. .
# # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:35700 .... # U xxx.xxx.190.248:5060 -> xxx.xxx.13.49:33536 .... # U xxx.xxx.13.49:33536 -> xxx.xxx.190.248:5060 ................ # U xxx.xxx.13.49:35700 -> xxx.xxx.190.248:5060 .
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers