SearchSearch  Log in to check your private messagesLog in to check your private messages  recent posts Recent Posts
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
blake.mckeebyOffline



Joined: Oct 01, 2009
Posts: 1

Status: Offline
Posted: Oct 01, 2009 - 05:32 PM Reply with quote Back to top
Hi all,
I am attempting to setup kamailo and keep receiving a "483 too many hops" when trying to register. I'm using x-lite.
My client makes a request to register, kamailio responds with a 401, then my client responds with authentication credentials and then Kamailio responds with 483. I've included below a wireshark of the exhcange.

"No.","Time","Source","Destination","Protocol","Info"
"1","0.000000","129.59.83.113","174.129.12.103","UDP","Source port: sip-tls Destination port: sip"
"2","0.000014","129.59.83.113","174.129.12.103","UDP","Source port: sip-tls Destination port: sip"
"3","0.000047","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"4","0.000052","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"5","0.028033","174.129.12.103","129.59.83.113","SIP","Status: 401 Unauthorized (0 bindings)"
"6","0.029509","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"7","0.029519","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"8","0.158754","174.129.12.103","129.59.83.113","SIP","Status: 483 Too Many Hops (0 bindings)"
"9","10.003315","129.59.83.113","174.129.12.103","UDP","Source port: sip-tls Destination port: sip"
"10","10.003329","129.59.83.113","174.129.12.103","UDP","Source port: sip-tls Destination port: sip"
"11","20.007211","129.59.83.113","174.129.12.103","UDP","Source port: sip-tls Destination port: sip"
"12","20.007223","129.59.83.113","174.129.12.103","UDP","Source port: sip-tls Destination port: sip"
"13","20.257899","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"14","20.257909","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"15","20.285715","174.129.12.103","129.59.83.113","SIP","Status: 401 Unauthorized (0 bindings)"
"16","20.287118","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"17","20.287127","129.59.83.113","174.129.12.103","SIP","Request: REGISTER sip:174.129.12.103"
"18","20.520434","174.129.12.103","129.59.83.113","SIP","Status: 483 Too Many Hops (0 bindings)"

I will also include a copy of the routing logic in my config file:
####### Routing Logic ########


# main request routing logic

route{

if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}

# NAT detection
route(4);

if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("BYE")) {
setflag(1); # do accounting ...
setflag(3); # ... even if the transaction fails
}
route(1);
} else {
if (is_method("SUBSCRIBE") && uri == myself) {
# in-dialog subscribe requests
route(2);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# non loose-route, but stateful ACK; must be an ACK after a 487 or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching transaction ... ignore and discard.\n");
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}

#initial requests

# CANCEL processing
if (is_method("CANCEL"))
{
if (t_check_trans())
t_relay();
exit;
}

t_check_trans();

# authentication
route(3);

# record routing
if (!is_method("REGISTER|MESSAGE"))
record_route();

# account only INVITEs
if (is_method("INVITE")) {
setflag(1); # do accounting
}
if (!uri==myself)
/* replace with following line if multi-domain support is used */
##if (!is_uri_host_local())
{
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
##if($rd=="tls_domain1.net") {
## t_relay("tls:domain1.net");
## exit;
##} else if($rd=="tls_domain2.net") {
## t_relay("tls:domain2.net");
## exit;
##}
route(1);
}

# requests for my domain

if( is_method("PUBLISH|SUBSCRIBE"))
route(2);

if (is_method("REGISTER"))
{
if (!save("location"))
sl_reply_error();

exit;
}

if ($rU==NULL) {
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}

# apply DB based aliases (uncomment to enable)
##alias_db_lookup("dbaliases");

if (!lookup("location")) {
switch ($retcode) {
case -1:
case -3:
t_newtran();
t_reply("404", "Not Found");
exit;
case -2:
sl_send_reply("405", "Method Not Allowed");
exit;
}
}

# when routing via usrloc, log the missed calls also
setflag(2);

route(1);
}


route[1] {
if (check_route_param("nat=yes")) {
setbflag(6);
}
if (isflagset(5) || isbflagset(6)) {
route(5);
}

/* example how to enable some additional event routes */
if (is_method("INVITE")) {
#t_on_branch("1");
t_on_reply("1");
t_on_failure("1");
}

if (!t_relay()) {
sl_reply_error();
}
exit;
}


# Presence route
/* uncomment the whole following route for enabling presence server */
route[2]
{
#p# if (!t_newtran())
#p# {
#p# sl_reply_error();
#p# exit;
#p# };
#p#
#p# if(is_method("PUBLISH"))
#p# {
#p# handle_publish();
#p# t_release();
#p# }
#p# else
#p# if( is_method("SUBSCRIBE"))
#p# {
#p# handle_subscribe();
#p# t_release();
#p# }
#p# exit;

# if presence enabled, this part will not be executed
if (is_method("PUBLISH") || $rU==null)
{
sl_send_reply("404", "Not here");
exit;
}
return;
}

# Authentication route
/* uncomment the whole following route for enabling authentication */
route[3] {
if (is_method("REGISTER"))
{
# authenticate the REGISTER requests (uncomment to enable auth)
if (!www_authorize("174.129.12.103", "subscriber"))
{
www_challenge("174.129.12.103", "0");
exit;
}

if ($au!=$tU)
{
sl_send_reply("403","Forbidden auth ID");
exit;
}
} else {
# authenticate if from local subscriber (uncomment to enable auth)
if (from_uri==myself)
{
if (!proxy_authorize("", "subscriber")) {
proxy_challenge("", "0");
exit;
}
if (is_method("PUBLISH"))
{
if ($au!=$tU) {
sl_send_reply("403","Forbidden auth ID");
exit;
}
} else {
if ($au!=$fU) {
sl_send_reply("403","Forbidden auth ID");
exit;
}
}

consume_credentials();
# caller authenticated
}
}
return;
}

# Caller NAT detection route
/* uncomment the whole following route for enabling Caller NAT Detection */
route[4]{
force_rport();
if (nat_uac_test("19")) {
if (method=="REGISTER") {
fix_nated_register();
} else {
fix_nated_contact();
}
setflag(5);
}
return;
}

# RTPProxy control
/* uncomment the whole following route for enabling RTPProxy Control */
route[5] {
if (is_method("BYE")) {
unforce_rtp_proxy();
} else if (is_method("INVITE")){
force_rtp_proxy();
}
if (!has_totag()) add_rr_param(";nat=yes");
return;
}

branch_route[1] {
xdbg("new branch at $ru\n");
}


onreply_route[1] {
xdbg("incoming reply\n");

if ((isflagset(5) || isbflagset(6)) && status=~"(183)|(2[0-9][0-9])") {
force_rtp_proxy();
}
if (isbflagset(6)) {
fix_nated_contact();
}
}


failure_route[1] {
if (is_method("INVITE")
&& (isbflagset(6) || isflagset(5))) {
unforce_rtp_proxy();
}

if (t_was_cancelled()) {
exit;
}

# uncomment the following lines if you want to block client
# redirect based on 3xx replies
##if (t_check_status("3[0-9][0-9]")) {
##t_reply("404","Not found");
## exit;
##}

# uncomment the following lines if you want to redirect the failed
# calls to a different new destination
##if (t_check_status("486|408")) {
## sethostport("192.168.2.100:5060");
## append_branch();
## # do not set the missed call flag again
## t_relay();
##}
}


Thanks in advance.
View user's profile Send private message
chhaiOffline



Joined: Oct 12, 2009
Posts: 1

Status: Offline
Posted: Oct 12, 2009 - 06:46 AM Reply with quote Back to top
Check make sure you have added the domains even if you haven't loaded LCR. It's weird but it fixed the problem for me. In fact I had to add two domains.
View user's profile Send private message


View previous topic Printable version Log in to check your private messages View next topic

Post new topic   Reply to topic
Forum Rules and Guidelines | About VoIP User | Privacy Policy


All logos and trademarks in this site are property of their respective owner.
Comments and posts are property of the poster, all the rest (c) 2003-2008 VoIP User Limited.

VoIP User Limited is incorporated in England and Wales under Company Number 6694577.

No part of this site may be reproduced without our prior consent.