Hi,
I downloaded the latest CVS tarball and installed it in our lab. Using a LAN setup, where SER and 2 Sipura units are all in the same subnet, I am unable to complete any calls. All I can tell is that SER is unable to match the ACK to a current transaction. So when phone A makes a call to phone B and it answers, phone B sends the STATUS 200 OK back. Phone A then sends the ACK, but SER is unable to match it and is not forwarded to phone B. So the call is not completed.
The syslog just shows a bunch of these messages: Warning: sl_send_reply: I won't send a reply for ACK!!
I have tried this under RedHat 7.3 and Solaris 8 with the exact same results.
I can send the Ethereal Trace of this event to whoever can help me.
The config file is extremely simple (listed below).
Any clues of what is going on?
Thanks.
Simply removed the second bracket after save("location"); break;
see below
Nils
Am Friday 30 January 2004 04:06 schrieb Andres:
Hi,
I downloaded the latest CVS tarball and installed it in our lab. Using a LAN setup, where SER and 2 Sipura units are all in the same subnet, I am unable to complete any calls. All I can tell is that SER is unable to match the ACK to a current transaction. So when phone A makes a call to phone B and it answers, phone B sends the STATUS 200 OK back. Phone A then sends the ACK, but SER is unable to match it and is not forwarded to phone B. So the call is not completed.
The syslog just shows a bunch of these messages: Warning: sl_send_reply: I won't send a reply for ACK!!
I have tried this under RedHat 7.3 and Solaris 8 with the exact same results.
I can send the Ethereal Trace of this event to whoever can help me.
The config file is extremely simple (listed below).
Any clues of what is going on?
Thanks.
-- Andres Network Admin http://www.telesip.net
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol record_route(); # loose-route processing if (loose_route()) { t_relay(); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { save("location"); break; }; };
^^^ remove these bracket because it ends your uri==myself block and thus the ACKs end up in the lookup below.
# native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; # forward to current uri now; use stateful forwarding; that # works reliably even if we forward from TCP to UDP if (!t_relay()) { sl_reply_error(); };
}
Ok...I removed it and added it at the bottom (or else SER says there is an error). But still the same problem. Here is the new config:
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol record_route(); # loose-route processing if (loose_route()) { t_relay(); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { save("location"); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; };
# forward to current uri now; use stateful forwarding; that # works reliably even if we forward from TCP to UDP if (!t_relay()) { sl_reply_error(); }; } }
Nils Ohlmeier wrote:
Simply removed the second bracket after save("location"); break;
see below
Nils
Am Friday 30 January 2004 04:06 schrieb Andres:
Hi,
I downloaded the latest CVS tarball and installed it in our lab. Using a LAN setup, where SER and 2 Sipura units are all in the same subnet, I am unable to complete any calls. All I can tell is that SER is unable to match the ACK to a current transaction. So when phone A makes a call to phone B and it answers, phone B sends the STATUS 200 OK back. Phone A then sends the ACK, but SER is unable to match it and is not forwarded to phone B. So the call is not completed.
The syslog just shows a bunch of these messages: Warning: sl_send_reply: I won't send a reply for ACK!!
I have tried this under RedHat 7.3 and Solaris 8 with the exact same results.
I can send the Ethereal Trace of this event to whoever can help me.
The config file is extremely simple (listed below).
Any clues of what is going on?
Thanks.
-- Andres Network Admin http://www.telesip.net
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol record_route(); # loose-route processing if (loose_route()) { t_relay(); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { save("location"); break; }; };
^^^
remove these bracket because it ends your uri==myself block and thus the ACKs end up in the lookup below.
# native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; # forward to current uri now; use stateful forwarding; that # works reliably even if we forward from TCP to UDP if (!t_relay()) { sl_reply_error(); };
}
Now you moved the bracket to much to the end and thus the ACKs are probably not transported because they do not hit any forward or t_ call.
BTW why dont you simply use a new fresh working default ser config (i dont see too much changes to our defautl script)
Nils
On Friday 30 January 2004 04:45, Andres wrote:
Ok...I removed it and added it at the bottom (or else SER says there is an error). But still the same problem. Here is the new config:
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol record_route(); # loose-route processing if (loose_route()) { t_relay(); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { save("location"); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; };
insert here };
# forward to current uri now; use stateful forwarding; that # works reliably even if we forward from TCP to UDP if (!t_relay()) { sl_reply_error(); };
} }
^^^ remove
Great. It works now! And except for that misplaced bracket, that is indeed the default ser.cfg that came with 8.11 and we have used it ever since in our lab tests.
Thanks Nils!
Andres
Nils Ohlmeier wrote:
Now you moved the bracket to much to the end and thus the ACKs are probably not transported because they do not hit any forward or t_ call.
BTW why dont you simply use a new fresh working default ser config (i dont see too much changes to our defautl script)
Nils
On Friday 30 January 2004 04:45, Andres wrote:
Ok...I removed it and added it at the bottom (or else SER says there is an error). But still the same problem. Here is the new config:
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol record_route(); # loose-route processing if (loose_route()) { t_relay(); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { save("location"); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; };
insert here };
# forward to current uri now; use stateful forwarding; that # works reliably even if we forward from TCP to UDP if (!t_relay()) { sl_reply_error(); };
} }
^^^ remove
Simply removed the second bracket after save("location"); break;
see below
Nils
Am Friday 30 January 2004 04:06 schrieb Andres:
Hi,
I downloaded the latest CVS tarball and installed it in our lab. Using a LAN setup, where SER and 2 Sipura units are all in the same subnet, I am unable to complete any calls. All I can tell is that SER is unable to match the ACK to a current transaction. So when phone A makes a call to phone B and it answers, phone B sends the STATUS 200 OK back. Phone A then sends the ACK, but SER is unable to match it and is not forwarded to phone B. So the call is not completed.
The syslog just shows a bunch of these messages: Warning: sl_send_reply: I won't send a reply for ACK!!
I have tried this under RedHat 7.3 and Solaris 8 with the exact same results.
I can send the Ethereal Trace of this event to whoever can help me.
The config file is extremely simple (listed below).
Any clues of what is going on?
Thanks.
-- Andres Network Admin http://www.telesip.net
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol record_route(); # loose-route processing if (loose_route()) { t_relay(); break; }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { save("location"); break; }; };
^^^ remove these bracket because it ends your uri==myself block and thus the ACKs end up in the lookup below.
# native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; # forward to current uri now; use stateful forwarding; that # works reliably even if we forward from TCP to UDP if (!t_relay()) { sl_reply_error(); };
}