[Serusers] 483 - Too many hops
Jan Janak
jan at iptel.org
Wed Jun 25 07:14:05 CEST 2003
Hello,
yes, that is possible because the new version of ser implements loose
routing as per RFC3261.
It is possible that:
1) Some user agents don't implement it right
2) There is a bug in the rr module.
FYI, I have fixed a bug in the rr module approximately 2-3 weeks ago
which could cause 483.
Jan.
On 24-06 15:14, Greg Fausak wrote:
> 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
> >
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
More information about the sr-users
mailing list