[Serusers] 483 - Too many hops

Andy Blen andy.blen at iptel.org
Tue Jun 24 23:28:05 CEST 2003


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 



More information about the sr-users mailing list