[Serusers] 483 - Too many hops

Jan Janak jan at iptel.org
Wed Jun 25 16:46:07 CEST 2003


Hello,

That was a bug in record routing module. It is now fixed in the stable
branch of the CVS.

See http://iptel.org/ser/cvs for description of downloading the stable
branch, or you can download it from here:

http://iptel.org/~janakj/stable/ser-0.8.11pre32_src.tar.gz

Please upgrade your ser and try again. Thanks for reporting it.

   Jan.

On 24-06 16:39, Chintan Thakker wrote:
> Thank you for your patience,
> I have put all the traces here..
> 
> -- ngrep trace start --
> 
> ngrep -t port 5060
> interface: eth0 (192.1.2.0/255.255.255.0)
> filter: ip and ( port 5060 )
> #
> #
> U 2003/06/24 16:44:39.787675 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=z9hG4bK2342.Max-Forwards: 70.From: 9727619271 
> <sip:9727619271 at 192.1.2
>  .88>;tag=2342.To: 9727610001 <sip:9727610001 at 192.1.2.17>.Call-ID: 
> 71327895@
>  192.1.2.88.CSeq: 1 INVITE.Contact: 
> <sip:9727619271 at 192.1.2.88>.Content-Type
>  : application/sdp.Content-Length: 128.Route: 
> <sip:192.1.2.17;lr>..v=0.o=use
>  rname 2342 2342 IN IP4 192.1.2.88.s=Session SDP.c=IN IP4 
> 192.1.2.88.t=0 0.m
>  =audio 54454 RTP/AVP 0.a=rtpmap:0 PCMU/8000.
> #
> U 2003/06/24 16:44:39.788623 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=z9hG4bK2342..From: 9727619271 
> <sip:9727619271 at 192.1.2.88>;
>  tag=2342.To: 9727610001 <sip:9727610001 at 192.1.2.17>.Call-ID: 
> 71327895 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:5060 "Noisy feedback 
> tells:  pi
>  d=17073 req_src_ip=192.1.2.88 req_src_port=5060 
> in_uri=sip:9727610001 at 192.1
>  .2.17 out_uri=sip:9727610001 at 192.1.2.17 via_cnt==1"....
> #
> U 2003/06/24 16:44:40.213333 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=z9hG4bK2
>  342..From: 9727619271 <sip:9727619271 at 192.1.2.88>;tag=2342.To: 
> 9727610001 <
>  
> sip:9727610001 at 192.1.2.17>;tag=b27e1a1d33761e85846fc98f5f3a7e58.e341.Call-I
>  D: 71327895 at 192.1.2.88.CSeq: 1 INVITE.Server: Sip EXpress router 
> (0.8.11pre
>  29 (i386/linux))..Content-Length: 0..Warning: 392 192.1.2.17:5060 
> "Noisy fe
>  edback tells:  pid=17072 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"....
> #
> U 2003/06/24 16:44:40.813094 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=z9hG4bK2
>  342..From: 9727619271 <sip:9727619271 at 192.1.2.88>;tag=2342.To: 
> 9727610001 <
>  
> sip:9727610001 at 192.1.2.17>;tag=b27e1a1d33761e85846fc98f5f3a7e58.e341.Call-I
>  D: 71327895 at 192.1.2.88.CSeq: 1 INVITE.Server: Sip EXpress router 
> (0.8.11pre
>  29 (i386/linux))..Content-Length: 0..Warning: 392 192.1.2.17:5060 
> "Noisy fe
>  edback tells:  pid=17072 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"....
> #
> U 2003/06/24 16:44:42.816700 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=z9hG4bK2
>  342..From: 9727619271 <sip:9727619271 at 192.1.2.88>;tag=2342.To: 
> 9727610001 <
>  
> sip:9727610001 at 192.1.2.17>;tag=b27e1a1d33761e85846fc98f5f3a7e58.e341.Call-I
>  D: 71327895 at 192.1.2.88.CSeq: 1 INVITE.Server: Sip EXpress router 
> (0.8.11pre
>  29 (i386/linux))..Content-Length: 0..Warning: 392 192.1.2.17:5060 
> "Noisy fe
>  edback tells:  pid=17072 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"....
> 
> -- ngrep trace end --
> 
> Andy Blen wrote:
> 
> >That was a false track. Can you make us a favor please and send messages
> >as you see them on your loopback interface.
> >
> >thanks,
> >
> >-andy
> >
> >At 11:00 PM 6/24/2003, Chintan Thakker wrote:
> > 
> >
> >>I do not completely follow what you are trying to say,
> >>
> >>The server is running on 192.1.2.17 and I am registering two users
> >>
> >>Thank you,
> >>
> >>-- start ./serctl ul show --
> >>===Domain list===
> >>---Domain---
> >>name : 'location'
> >>size : 512
> >>table: 0x422b88c4
> >>d_ll {
> >> n    : 2
> >> first: 0x422ba8f4
> >> last : 0x422baa78
> >>}
> >>
> >>...Record(0x422ba8f4)...
> >>domain: 'location'
> >>aor   : '9727619271'
> >>~~~Contact(0x422ba988)~~~
> >>domain : 'location'
> >>aor    : '9727619271'
> >>Contact: 'sip:9727619271 at 192.1.2.88'
> >>Expires: 3569
> >>q      :       0.00
> >>Call-ID: '1241 at 192.1.2.88'
> >>CSeq   : 1
> >>replic : 0
> >>State  : CS_NEW
> >>next   : (nil)
> >>prev   : (nil)
> >>~~~/Contact~~~~
> >>.../Record...
> >>...Record(0x422baa78)...
> >>domain: 'location'
> >>aor   : '9727610001'
> >>~~~Contact(0x422bab0c)~~~
> >>domain : 'location'
> >>aor    : '9727610001'
> >>Contact: 'sip:9727610001 at 192.1.2.223'
> >>Expires: 3595
> >>q      :       0.00
> >>Call-ID: '1281 at 192.1.2.223'
> >>CSeq   : 1
> >>replic : 0
> >>State  : CS_NEW
> >>next   : (nil)
> >>prev   : (nil)
> >>~~~/Contact~~~~
> >>.../Record...
> >>
> >>---/Domain---
> >>===/Domain list===
> >>-- end ./serctl ul show --
> >>Andy Blen wrote:
> >>
> >>   
> >>
> >>>(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 
> >>>
> >>>     
> >>>
> >>   
> >>
> >
> >--
> >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