[Serusers] Forward to Quintum GW - One way audio

Jan Janak jan at iptel.org
Fri Dec 3 21:16:33 CET 2004


Well, the question is too generic and it does not contain enough
information so we will not be able to help you. There are many things
that can go wrong, try to investigate yourself. You have higher chance
of getting reply with more specific questions.

  Jan.

On 01-12 11:04, Pavel Siderov wrote:
> 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

> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers




More information about the sr-users mailing list