[Serusers] error: mediaproxy/sendMediaproxyCommand(): can't connect to MediaProxy
Charles Wang
lazy.charles at gmail.com
Mon Feb 21 04:36:29 CET 2005
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 at ser.xxx.net.tw>
IP:<61.229.13.49> From:<sip:1033 at ser.xxx.net.tw>
To:<sip:1011 at ser.xxx.net.tw> <sip:1033 at 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 at ser.xxx.net.tw>
IP:<61.229.13.49> From:<sip:1033 at ser.xxx.net.tw>
To:<sip:1011 at ser.xxx.net.tw> <sip:1033 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at lists.iptel.org
> > http://lists.iptel.org/mailman/listinfo/serusers
> >
>
More information about the sr-users
mailing list