From: Stefan Sayer Sent: Tuesday, May 10, 2005 4:02 PM
in my opinion t_newtran() will release the transmission on processing of an ACK so the 200 is not retransmitted; have a look at t_newtran (in t_lookup.c about line 1094).
Unfortunately I cannot verify this behaviour. See my code snippet of ser.cfg below.
Without explicitly using t_relay() for ACK the 200 OKs are retransmitted by SER. Calling t_newtran() is obviously not enough to stop retransmissions.
Any further opinions around?
Regards Franz
--- code snippet of ser.cfg follows --------------------------------------
if (method=="INVITE" || method=="BYE" || method=="CANCEL" || method=="ACK") { # switch to stateful mode: if (!t_newtran()) { sl_send_reply("500","could not create transaction\n"); break; }; if (method=="INVITE" && uri=~"sip:910@") { t_reply("100","Trying - just wait a minute !"); if(!t_write_req("/tmp/am_fifo","announcement")) { t_reply("500","error contacting sems"); }; break; };
if (method=="BYE" || method=="CANCEL") { if(!t_write_req("/tmp/am_fifo","bye")) { t_reply("500","error contacting sems"); }; break; };
if (method=="ACK") { t_relay(); }; };