[Serusers] 483 - Too many hops

Greg Fausak greg at august.net
Tue Jun 24 22:14:48 CEST 2003


Hi,

I'm seeing this particular message much more
often with the CVS code than I did with the 8.10 code.

Just an observation :-)

---greg


> -----Original Message-----
> From: serusers-bounces at lists.iptel.org 
> [mailto:serusers-bounces at lists.iptel.org] On Behalf Of Andy Blen
> Sent: Tuesday, June 24, 2003 3:03 PM
> To: Chintan Thakker
> Cc: serusers at lists.iptel.org
> Subject: Re: [Serusers] 483 - Too many hops
> 
> 
> (you forgot to CC the mailing list)
> 
> a possibility is that the contacts you registered cause a loop.
> 
> andy
> 
> At 06:22 PM 6/24/2003, Chintan Thakker wrote:
> >Hi,
> > Seems I missed something, I am sending INVITE to 
> sip:9727610001 at 192.1.2.17 with Route: <sip:192.1.2.17;lr> to 
> the proxy server ('ser') running on 192.1.2.17 and getting 
> 483 - too many hops message. I modified ser.conf to add alias 
> = "192.1.2.17" but it still gives me the same problem.
> > What am I missing out ?. I guess an 'alias=192.1.2.17' 
> entry should return a true to 'uri==myself' matching 
> performed in the script and make the server process that 
> request rather than forwarding it (to itself in this case)
> >
> >Thanks,
> >Chintan
> >
> >-- ser.cfg --
> >
> >   1 #
> >     2 # $Id: ser.cfg,v 1.20 2003/05/31 21:12:19 jiri Exp $
> >     3 #
> >     4 # simple quick-start config script
> >     5 #
> >     6
> >     7 # ----------- global configuration parameters 
> ------------------------
> >     8
> >     9 debug=3         # debug level (cmd line: -dddddddddd)
> >    10 fork=yes
> >    11 log_stderror=no # (cmd line: -E)
> >    12
> >    13 /* Uncomment these lines to enter debugging mode
> >    14 debug=7
> >    15 fork=no
> >    16 log_stderror=yes
> >    17 */
> >    18
> >    19 check_via=no    # (cmd. line: -v)
> >    20 dns=no           # (cmd. line: -r)
> >    21 rev_dns=no      # (cmd. line: -R)
> >    22 port=5060
> >    23 children=4
> >    24 fifo="/tmp/ser_fifo"
> >    25
> >    26 # ------------------ module loading 
> ----------------------------------
> >    27
> >    28 # Uncomment this if you want to use SQL database
> >    29 #loadmodule "/usr/local/lib/ser/modules/mysql.so"
> >    30
> >    31 loadmodule "/usr/local/lib/ser/modules/sl.so"
> >    32 loadmodule "/usr/local/lib/ser/modules/tm.so"
> >    33 loadmodule "/usr/local/lib/ser/modules/rr.so"
> >    34 loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
> >    35 loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> >    36 loadmodule "/usr/local/lib/ser/modules/registrar.so"
> >    37
> >    38 # Uncomment this if you want digest authentication
> >    39 # mysql.so must be loaded !
> >    40 #loadmodule "/usr/local/lib/ser/modules/auth.so"
> >    41 #loadmodule "/usr/local/lib/ser/modules/auth_db.so"
> >    42
> >    43 # ----------------- setting module-specific 
> parameters ---------------
> >    44
> >    45 # -- usrloc params --
> >    46
> >    47 modparam("usrloc", "db_mode",   0)
> >    48
> >    49 # Uncomment this if you want to use SQL database
> >    50 # for persistent storage and comment the previous line
> >    51 #modparam("usrloc", "db_mode", 2)
> >    52
> >   53 # -- auth params --
> >    54 # Uncomment if you are using auth module
> >    55 #
> >    56 #modparam("auth_db", "calculate_ha1", yes)
> >    57 #
> >    58 # If you set "calculate_ha1" parameter to yes (which 
> true in this config),
> >    59 # uncomment also the following parameter)
> >    60 #
> >    61 #modparam("auth_db", "password_column", "password")
> >    62
> >    63 # -------------------------  request routing logic 
> -------------------
> >    64
> >    65 #add aliases
> >    66 alias="192.1.2.17"
> >    67
> >    68 # main routing logic
> >    69
> >    70 route{
> >    71
> >    72         # initial sanity checks -- messages with
> >    73         # max_forwards==0, or excessively long requests
> >    74         if (!mf_process_maxfwd_header("10")) {
> >    75                 sl_send_reply("483","Too Many Hops");
> >    76                 break;
> >    77         };
> >    78         if (len_gt( max_len )) {
> >    79                 sl_send_reply("513", "Message too big");
> >    80                 break;
> >    81         };
> >    82
> >    83         # we record-route all messages -- to make sure that
> >    84         # subsequent messages will go through our 
> proxy; that's
> >    85         # particularly good if upstream and 
> downstream entities
> >    86         # use different transport protocol
> >    87         record_route();
> >    88         # loose-route processing
> >    89         if (loose_route()) {
> >    90                 t_relay();
> >    91                 break;
> >    92         };
> >    93
> >    94         # if the request is for other domain use UsrLoc
> >    95         # (in case, it does not work, use the 
> following command
> >    96         # with proper names and addresses in it)
> >    97         if (uri==myself) {
> >    98
> >    99                 if (method=="REGISTER") {
> >   100
> >   101 # Uncomment this if you want to use digest authentication
> >   102 #                       if 
> (!www_authorize("iptel.org", "subscriber")) {
> >   103 #                               
> www_challenge("iptel.org", "0");
> >                                                             
>           
> >53,1          65%
> >  104 #                               break;
> >   105 #                       };
> >   106
> >   107                         save("location");
> >   108                         break;
> >   109                 };
> >   110
> >   111                 # native SIP destinations are handled 
> using our USRLOC DB
> >   112                 if (!lookup("location")) {
> >   113                         sl_send_reply("404", "Not Found");
> >   114                         break;
> >   115                 };
> >   116         };
> >   117         #Let tje server [rpcess tje cirremt reqiest
> >   118         #if(uri =~ "^sip:(.+@)?(192\.1\.2\.17)([:;\?].*)?$" )
> >   119         #{
> >   120         #       break;
> >   121         #};
> >   122
> >   123         # forward to current uri now; use stateful 
> forwarding; that
> >   124         # works reliably even if we forward from TCP to UDP
> >   125         if (!t_relay()) {
> >   126                 sl_reply_error();
> >   127         };
> >   128
> >   129 }
> >   130
> >- end ser.cfg --
> >Andy Blen wrote:
> >
> >>most likely a misconfig issue on your side, feel free to 
> read the doc, 
> http://www.iptel.org/ser/doc/prerelease/x1026.html#AEN1032
> >>
> >>andy
> >>
> >>At 12:18 AM 6/21/2003, Chintan Thakker wrote:
> >> 
> >>
> >>>Hi,
> >>>Consider the following scenario. UA1 is trying to call UA2 
> both registered with the same proxy. (UA1 -> 'ser' -> UA2)
> >>>
> >>>1.
> >>>UA1 sends INVITE to the proxy with request uri set to UA2. 
> It also sets the Route header in the invite to that of the proxy.
> >>>This returns a 483 - too many hops to UA1
> >>>
> >>>It seems that in the above mentioned scenario, the proxy 
> loops back the INVITE multiple times locally. This decrements 
> the Max Forwards value every time until it becomes zero and 
> hence sends 483 back to UA1. It seems to me this is not the 
> correct behavior of the server. It should forward the request to UA2.
> >>>
> >>>Thanks in advance,
> >>>
> >>>Chintan
> >>>
> >>>-- Start trace --
> >>>
> >>>U 2003/06/20 15:24:42.362466 192.1.2.88:5060 -> 192.1.2.17:5060
> >>>INVITE sip:9727610001 at 192.1.2.17 SIP/2.0.Via: SIP/2.0/UDP 
> 192.1.2.88:5060;b
> >>>ranch=z9hG4bK421668676.Max-Forwards: 70.From: 9727619271 
> <sip:9727619271 at 19
> >>>2.1.2.88>;tag=421668676.To: 9727610001 
> <sip:9727610001 at 192.1.2.17>.Call-ID:
> >>>421668676 at 192.1.2.88.CSeq: 1 INVITE.Contact: 
> <sip:9727619271 at 192.1.2.88>.C
> >>>ontent-Type: application/sdp.Content-Length: 138.Route: 
> <sip:192.1.2.17;lr>
> >>>..v=0.o=username 421668676 421668676 IN IP4 
> 192.1.2.88.s=Session SDP.c=IN I
> >>>P4 192.1.2.88.t=0 0.m=audio 54454 RTP/AVP 0.a=rtpmap:0 PCMU/8000.
> >>>
> >>>U 2003/06/20 15:24:42.363813 192.1.2.17:5060 -> 192.1.2.88:5060
> >>>SIP/2.0 100 trying -- your call is important to us..Via: 
> SIP/2.0/UDP 192.1.
> >>>2.88:5060;branch=z9hG4bK421668676..From: 9727619271 
> <sip:9727619271 at 192.1.2
> >>>.88>;tag=421668676.To: 9727610001 
> <sip:9727610001 at 192.1.2.17>.Call-ID: 4216
> >>>68676 at 192.1.2.88.CSeq: 1 INVITE.Server: Sip EXpress router 
> (0.8.11pre29 (i3
> >>>86/linux))..Content-Length: 0..Warning: 392 
> 192.1.2.17:5060 "Noisy feedback
> >>>tells:  pid=15107 req_src_ip=192.1.2.88 req_src_port=5060 
> in_uri=sip:97276
> >>>10001 at 192.1.2.17 out_uri=sip:9727610001 at 192.1.2.17 via_cnt==1"....
> >>>#
> >>>U 2003/06/20 15:24:42.794681 192.1.2.17:5060 -> 192.1.2.88:5060
> >>>SIP/2.0 483 Too Many Hops..Via: SIP/2.0/UDP 
> 192.1.2.88:5060;branch=z9hG4bK4
> >>>21668676..From: 9727619271 
> <sip:9727619271 at 192.1.2.88>;tag=421668676.To: 97
> >>>27610001 
> <sip:9727610001 at 192.1.2.17>;tag=b27e1a1d33761e85846fc98f5f3a7e58.4
> >>>632.Call-ID: 421668676 at 192.1.2.88.CSeq: 1 INVITE.Server: 
> Sip EXpress router
> >>>(0.8.11pre29 (i386/linux))..Content-Length: 0..Warning: 
> 392 192.1.2.17:506
> >>>0 "Noisy feedback tells:  pid=15107 req_src_ip=192.1.2.17 
> req_src_port=5060
> >>>in_uri=sip:9727610001 at 192.1.2.17 
> out_uri=sip:9727610001 at 192.1.2.17 via_cnt
> >>>==71"....
> >>>
> >>>-- End trace --
> >>>
> >>>ps: We checked it with loose routing(suceeding ';lr' 
> present in URIs in Route) as well as strict routing(suceeding 
> ';lr' not present in URIs in Route). Should the type of 
> routing used matter ?
> >>>
> >>>_______________________________________________
> >>>Serusers mailing list
> >>>serusers at lists.iptel.org
> >>>http://lists.iptel.org/mailman/listinfo/serusers
> >>>   
> >>
> >>--
> >>Andy Blen
> >>iptel.org Services 
> >> 
> >
> >
> 
> --
> Andy Blen
> iptel.org Services 
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> 



More information about the sr-users mailing list