here is my routes
route {
#----------------------------------------------------------------- # Sanity Check Section #-----------------------------------------------------------------
if (!mf_process_maxfwd_header("10")) { sl_send_reply("483", "Too Many Hops"); break; };
if (msg:len > max_len) { sl_send_reply("513", "Message Overflow"); break; };
#----------------------------------------------------------------- # Record Route Section #-----------------------------------------------------------------
if (method!="REGISTER") { record_route(); };
if (method=="BYE" || method=="CANCEL") { unforce_rtp_proxy();
#----------------------------------------------------------------- # Loose Route Section #-----------------------------------------------------------------
if (loose_route()) {
if (has_totag() && method=="INVITE") { if (nat_uac_test("19")) { setflag(6); force_rport(); fix_nated_contact(); }; #log("hello");
force_rtp_proxy("l"); };
route(1);
break; }; #----------------------------------------------------------------- # Call Type Processing Section #-----------------------------------------------------------------
if (uri==myself) { if (method=="INVITE") { route(3); break; } else if (method=="REGISTER") { route(2); break; };
if (!lookup("location")) { sl_send_reply("404", "User Not Found"); break; };
route(1); }; }
route[1] { #----------------------------------------------------------------- # Default Message Handler #----------------------------------------------------------------- t_on_reply("1");
if (!t_relay()) { if (method=="INVITE" && isflagset(6)) { unforce_rtp_proxy(); };
sl_reply_error(); }; }
route[2] { #----------------------------------------------------------------- # REGISTER Message Handler #---------------------------------------------------------------- if (!search("^Contact: *") && nat_uac_test("19")) { setflag(6); fix_nated_register(); force_rport(); };
sl_send_reply("100", "Trying");
if (!save("location")) { sl_reply_error(); }; }
route[3] { #----------------------------------------------------------------- # INVITE Message Handler #----------------------------------------------------------------- exec_msg("cat >> /tmp/withoutstrip.log"); if(uri=="^sip:00[1-9].*@.*") { route(4); break; } else if (uri=="^sip:0[1-9].*@.*") { strip(1); route(5); break; } else { route(4); break; } }
route[4] { rewritehostport("127.0.0.1:5970"); force_rport(); fix_nated_contact(); t_relay(); }
route[5] { if (nat_uac_test("19")) { setflag(6); }
if (!lookup("location")) { break; } if (isflagset(6)) { force_rport(); fix_nated_contact(); force_rtp_proxy(); };
t_on_reply("1");
if (!t_relay()) {
if(isflagset(6)) { unforce_rtp_proxy(); }
sl_reply_error(); }; }
onreply_route[1] { if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") {
fix_nated_contact();
if (!search("^Content-Length:\ 0")) { force_rtp_proxy(); }; } else if (nat_uac_test("1")) { fix_nated_contact(); }; }
--- Iqbal iqbal@gigo.co.uk wrote:
loop detected, when the call gets to asterisk what are you telling asterisk to do, send it back to ser, or out somewhere else. Calls are not workinf after the change or before.
iqbal
Kamran Ahmad wrote:
i m only sending invite to asterisk one when i try bindaddr=0.0.0.0
calls are not working. now i changed sip.conf bindaddr=0.0.0.0 and in ser.cfg port=5060
with these changes now register messages are stoped but still getting 482 "Loop Detected".
--- Iqbal iqbal@gigo.co.uk wrote:
Hi
The register messages what username are they for, and from what IP address, do a sip debug in asterisk for this. Also why are you sending register messages to asterisk, just send your INVITES there.
As for debug run ngrep, to pick up your messages , and see what is going on, and to look at the uri problem, remove 2 out
of
3 of the routes, and see what happens, if call fails then matching is
not
correctly being done, or the uri is not correct.
iqbal
Kamran Ahmad wrote:
i tried to do debug (put messages in
/tmp/call.log)
but there is no Invite having only one zero(like 06999786) all call were 0097937223 or 46364736.
this
means that only third else part is always active
but
if third part is active then there must be some
invite
starting with only one zero. it means second time invite call is not comming here .
My from main invites are only comming here
route(3). i
think all messages are going to asterisk because
there
is only one statement in ser.cfg having port 5970 (this is for asterisk) and all my register
messages
are also going there to asterisk.
there are too many register messages on my
asterisk. i
dont know why they are comming to asterisk as
this
port is not available for any user nobody uses
this
port only ser is routing calls to asterisk
route { if (uri==myself) { if (method=="INVITE") { route(3); break; } } } route[3] { exec_msg("cat >> /tmp/call.log"); if(uri=="^sip:00[1-9].*@.*") { route(4); break; } else if (uri=="^sip:0[1-9].*@.*") { strip(1); route(5); break; } else { route(4); break; }
} --- Iqbal iqbal@gigo.co.uk wrote:
dump a call trace showing your uri
Iqbal
Kamran Ahmad wrote:
hello
i m using ser-0.9.0 on 5060 and asterisk-1.0.9
on
5970
but problem is that i cannot send my ser back
to
asterisk. the problem is that it always goto route(4)
second
else if is not properly checked how to check
this
condition. i m adding 0 when asterisk is
sending
call
back.
if(uri=="^sip:00[1-9]+@.*") { route(4); break; } else if (uri=="^sip:0[1-9]+@.*") { strip(1); route(5); break; } else { route(4); break; }
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail
=== message truncated ===
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com