[Serusers] NAT & SER & IPv4 vs IPv6 (newbie problem)

Marian Dumitru marian.dumitru at voice-sistem.ro
Fri Mar 4 17:42:43 CET 2005


Hi Ozan,

you have a syntax error in script, at line 60:
    if (!uri == myself) && method == "INVITE") {
                     ^^^

Best regards,
Marian

Ozan Blotter wrote:
> Conditions as follows :
>  
> * SER runs on a Public IP
> * SER works without auth & database modules,
> * Nearly all user behind NAT (but routers configured to do port 
> forwarding for TCP/UDP 5060) to help SER in some cases,
> * Users numbers in format of 833XXXXXXX 834XXXXXXX and they should call 
> each P2P-SIP-Calls (if not behind NAT),
> * If a user need to call PSTN end point (SIP Gateway located at 
> 212.154.32.154) the call traffic should flow over SER to SIP Gateway via 
> T1 connection already located between that systems so SER handles all 
> voice traffic by help of RTP Proxy.
> * UA's registers on SER (Zyxel Prestige 2000, Zyxel Prestige 200W, Cisco 
> ATA186 etc.)
>  
> Problem is users cannot call each other (if i comment lines for 
> nathelper they can call)
>  
> It's clear i think, and below is my ser.cfg, what do i need extra or 
> erase. (It was successful without nathelper module and added dial plan)
>  
> I get this error :
>  
> root at sipproxy/usr/local/etc/ser 
> <mailto:root at sipproxy/usr/local/etc/ser>> ser 127.0.0.1 -n 1 -ddddddd -D -E
>  0(4419) read 23490987 from /dev/random
>  0(4419) seeding PRNG with 1133443665
>  0(4419) test random number 1528986547
>  0(4419) shm_mem_init: success
>  0(4419) DEBUG: register_fifo_cmd: new command (print) registered
>  0(4419) DEBUG: register_fifo_cmd: new command (uptime) registered
>  0(4419) DEBUG: register_fifo_cmd: new command (version) registered
>  0(4419) DEBUG: register_fifo_cmd: new command (pwd) registered
>  0(4419) DEBUG: register_fifo_cmd: new command (arg) registered
>  0(4419) DEBUG: register_fifo_cmd: new command (which) registered
>  0(4419) DEBUG: register_fifo_cmd: new command (ps) registered
>  0(4419) DEBUG: register_fifo_cmd: new command (kill) registered
>  0(4419) parse error (60,46-47): parse error
>  0(4419) parse error (60,46-47): bad command
>  0(4419) parse error (60,46-47): bad command
>  0(4419) parse error (60,48-49): bad command
>  0(4419) parse error (65,6-7): parse error
>  0(4419) parse error (65,6-7):
> ERROR: bad config file (6 errors)
> root at sipproxy/usr/local/etc/ser <mailto:root at sipproxy/usr/local/etc/ser>>
>  
> <<< ser.cfg. starts here <<<
>  
> #
> # /usr/local/etc/ser/ser.cfg 2005/04/03 12:00:00 by Ozan Blotter $
> #
> # simple quick-start config script with nathelper/rtpproxy
> # for IPv4/IPv6 gatewaying
> #
> # ----------- global configuration parameters ------------------------
>  
> debug=3                 # debug level
> #fork=yes
> #log_stderror=no        #
>  
> check_via=no            # (cmd. line: -v)
> dns=no                  # (cmd. line: -r)
> rev_dns=no              # (cmd. line: -R)
> port=5060
> children=2              # count of ser processes per interface
> fifo="/tmp/ser_fifo"
>  
> # ------------------ module loading ----------------------------------
>  
> 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"
>  
> #Nathelper for RTPproxy
> loadmodule "/usr/local/lib/ser/modules/nathelper.so"
>  
> # ----------------- setting module-specific parameters ---------------
> # -- usrloc params --
>  
> modparam("usrloc", "db_mode",   0)
>  
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr", 1)
>  
> modparam ("nathelper", "rtpproxy_sock", "/var/run/rtpproxy.sock")
>  
> # -------------------------  request routing logic -------------------
>  
> # main routing logic
>  
> route {
>     # initial sanity checks -- messages with
>     # max_forwards==0, or excessively long requests
>     if (!mf_process_maxfwd_header("10")) {
>         sl_send_reply("483","Too Many Hops");
>         break;
>     };
>     if ( msg:len > max_len ) {
>         sl_send_reply("513", "Message Too Big");
>         break;
>     };
>  
>     # route invitation request to other domains
>     if (!uri == myself) && method == "INVITE") {
>         record_route();
>         if (!t_relay())
>                     sl_reply_error();
>         break;
>     };
>  
>     if (method == "REGISTER") {
>         if (af == inet) {
>                 save ("location_inet4");
>         } else if (af ==inet6) {
>                 save ("location_inet6");
>         } else {
>                 sl_send_reply("403", "Call Cannot Be Served Here");
>         };
>         break;
>     };
>  
>     if (method == "INVITE") {
>         if (lookup("location_inet4")) {
>  
>                 # Comment Out Three Lines Below If You Want
>                 # RTP for IPv4>IPv4 Calls To Go Directly
>                 # Between UAs
>  
>                 if (af == inet)
>                         if (force_rtp_proxy("FAII"))
>                             t_on_reply("1");
>  
>                 # Proxy Session From An Internal IPv4
>                 # Phone To An External IPv6 Address
>  
>                 if (af == inet6)
>                         if (force_rtp_proxy("FAIE"))
>                             t_on_reply("1");
>                 } else if (lookup("location_inet6")) {
>  
>                 # Proxy Session From An External IPv6
>                 # Phone To An Internal IPv4 Address
>  
>                 if (af == inet)
>                         if (force_rtp_proxy(FAEI"))
>                             t_on_reply("1");
>  
>                 # Comment Out Three Lines Below If You Want
>                 # RTP for IPv6>IPv6 Calls To Go Directly
>                 # Between UAs
>  
>                 if (af == inet6)
>                         if (force_rtp_proxy("FAEE"))
>                             t_on_reply("1");
>         } else {
>                 sl_send_reply("403", "Call Cannot Be Served Here");
>                 break;
>         };
>     };
>  
>     if (method == "BYE" || method == "CANCEL")
>         unforce_rtp_proxy();
>  
>     #Do Strict Routing If Pre-Loaded Route Headers Present
>     if (loose_route()) {
>     t_relay();
>     break;
>     };
>  
>     if (method == "INVITE")
>     record_route();
>  
>     if (!t_relay())
>     sl_reply_error();
>     }
>  
>     onreply_route[1] {
>         if (!(status=~"183" || status=~"200"))
>             break;
>         force_rtp_proxy("FA");
>     }
>  
>  >>> ser.cfg. ends here >>>
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers

-- 
Voice System
http://www.voice-system.ro




More information about the sr-users mailing list