[Serusers] Forward to Quintum GW - One way audio

Pavel Siderov pi at hostmates.com
Wed Dec 1 10:04:27 CET 2004


Marian, Jan please tell me what to do.
  ----- Original Message ----- 
  From: Pavel Siderov 
  To: serusers at lists.iptel.org 
  Sent: Tuesday, November 30, 2004 6:58 PM
  Subject: [Serusers] Forward to Quintum GW - One way audio


  Hi guys, 
  I have a strange problem when tying to forward call to Quintum gw. 
  Callee is hearing what I speak but I don't hear anything. 
  Forwarding to another SER is ok. Both - users with real ips and natted.
  Somebody can help me?

  Here is my config file:
  debug=10         # debug level (cmd line: -dddddddddd)
  #fork=yes
  log_stderror=yes # (cmd line: -E)

  /* Uncomment these lines to enter debugging mode 
  debug=7
  fork=no
  log_stderror=yes
  */

  check_via=no # (cmd. line: -v)
  dns=no           # (cmd. line: -r)
  rev_dns=no      # (cmd. line: -R)
  port=5060
  children=4
  fifo="/tmp/ser_fifo"
  #fork=no
  # ------------------ module loading ----------------------------------

  # Uncomment this if you want to use SQL database
  loadmodule "/usr/local/lib/ser/modules/mysql.so"

  loadmodule "/usr/local/lib/ser/modules/sl.so"
  loadmodule "/usr/local/lib/ser/modules/tm.so"
  loadmodule "/usr/local/lib/ser/modules/rr.so"
  loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
  loadmodule "/usr/local/lib/ser/modules/usrloc.so"
  loadmodule "/usr/local/lib/ser/modules/registrar.so"
  loadmodule "/usr/local/lib/ser/modules/auth.so"
  loadmodule "/usr/local/lib/ser/modules/auth_db.so"
  loadmodule "/usr/local/lib/ser/modules/textops.so"
  loadmodule "/usr/local/lib/ser/modules/domain.so"
  loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
  loadmodule "/usr/local/lib/ser/modules/acc.so"
  loadmodule "/usr/local/lib/ser/modules/group.so"
  loadmodule "/usr/local/lib/ser/modules/nathelper.so"
  # ----------------- setting module-specific parameters ---------------

  # -- usrloc params --
  modparam("usrloc", "db_mode", 2)
  modparam("usrloc", "db_url", "mysql://ser:heslo@192.168.2.15/ser")
  modparam("usrloc","user_column","username")

  modparam("auth_db", "calculate_ha1", yes)
  modparam("auth_db", "password_column", "password")
  modparam("rr", "enable_full_lr", 1)
  #modparam("acc", "db_url", "mysql://ser:heslo@192.168.2.15/ser")
  #modparam("acc", "log_level", 2) 
  #modparam("acc", "log_flag", 3)
  #modparam("acc", "log_level", 1)
  # number of flag, which will be used for accounting; if a message is
  # labeled with this flag, its completion status will be reported
  modparam("acc", "log_flag", 1)
  modparam("acc", "log_fmt", "cdfimorstup")
  modparam("acc", "db_url", "mysql://ser:heslo@192.168.2.15/ser")
  modparam("acc", "db_flag", 1)
  modparam("acc", "db_missed_flag", 1)
  modparam("acc", "log_missed_flag", 1)
  #modparam("acc", "report_cancels", 1)
  modparam("acc", "report_ack", 1)
  #modparam("mediaproxy", "mediaproxy_socket", "/var/run/proxydispatcher.sock")
  #modparam("mediaproxy", "natping_interval", 20)
  modparam("nathelper","rtpproxy_sock", "/var/run/rtpproxy.sock")
  modparam("registrar", "nat_flag", 6)
  modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
  modparam("nathelper", "ping_nated_only", 1)

  listen=193.2.6.17
  # -------------------------  request routing logic -------------------
  # main routing logic
  route{
          if (!mf_process_maxfwd_header("70")) {
                  sl_send_reply("483","Too Many Hops");
                  break;
          };
          if ( msg:len > max_len ) {
                  sl_send_reply("513", "Message too big");
                  break;
          };
   if (nat_uac_test("3")) {
    if (method == "REGISTER" || ! search("^Record-Route:")) {
        log("LOG: Someone trying to register from private IP, rewriting\n");

        # This will work only for user agents that support symmetric
        # communication. We tested quite many of them and majority is
        # smart enough to be symmetric. In some phones it takes a configuration
        # option. With Cisco 7960, it is called NAT_Enable=Yes, with kphone it is
        # called "symmetric media" and "symmetric signalling".

        fix_nated_contact(); # Rewrite contact with source IP of signalling
        if (method == "INVITE") {
            fix_nated_sdp("1"); # Add direction=active to SDP
        };
        force_rport(); # Add rport parameter to topmost Via
        setflag(6);    # Mark as NATed
    };
   };


   if (!method=="REGISTER") record_route(); 

   if (loose_route()) {
    # mark routing logic in request
    append_hf("P-hint: rr-enforced\r\n"); 
    route(1);
    break;
   };

   if (!uri==myself) {
    # mark routing logic in request
    append_hf("P-hint: outbound\r\n"); 

    route(1);
    break;
   };

   if (uri==myself) {

    if (method=="REGISTER") {

  # Uncomment this if you want to use digest authentication
     if (!www_authorize("193.2.6.17", "subscriber")) {
      www_challenge("193.2.6.17", "0");
      break;
     };

     save("location");
     break;
    };

    lookup("aliases");
    if (!uri==myself) {
     append_hf("P-hint: outbound alias\r\n"); 
     route(1);
     break;
    };

  if (uri=~"^sip:[1-9]*@193.2.6.17") {  # QUINTUM GW
          rewritehost("194.24.1.6");
          append_branch("194.24.1.6");
  #        t_relay_to_udp("194.24.1.6", "5060");
          t_relay();
          rewritehostport("194.24.1.6:5060");
          append_hf("P-hint: VoipSwitch GATEWAY");
          break;
  }
                  } else {
  if (uri=~"^sip:[0]*@193.2.6.17") {       ### Other SER
          setflag(1);
          rewritehostport("bla.mydomain.com:5060");
          append_branch("bla.mydomain.com");
          t_relay();
          break;
  };
  };






    # native SIP destinations are handled using our USRLOC DB
    if (!lookup("location")) {
     sl_send_reply("404", "Not Found");
     break;
    };

  # };
   append_hf("P-hint: usrloc applied\r\n"); 
   route(1);
  }

  route[1] 
  {
   
   
   # if client or server know to be behind a NAT, enable relay
   if (isflagset(6)) {
       force_rtp_proxy();
   };

   # NAT processing of replies; apply to all transactions (for example,
   # re-INVITEs from public to private UA are hard to identify as
   # NATed at the moment of request processing); look at replies
   t_on_reply("1");

   # send it out now; use stateful forwarding as it works reliably
   # even for UDP2TCP
   if (!t_relay()) {
    sl_reply_error();
   };
  }

  # !! Nathelper
  onreply_route[1] {
      # NATed transaction ?
      if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
          fix_nated_contact();
   force_rtp_proxy();
      # otherwise, is it a transaction behind a NAT and we did not
      # know at time of request processing ? (RFC1918 contacts)
      } else if (nat_uac_test("1")) {
          fix_nated_contact();
      };
  }



  Thanks In Advance!
  Pavel Siderov 


------------------------------------------------------------------------------


  _______________________________________________
  Serusers mailing list
  serusers at lists.iptel.org
  http://lists.iptel.org/mailman/listinfo/serusers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20041201/b62474b4/attachment.htm>


More information about the sr-users mailing list