November 14, 2007
View e9ae889126

Fixing improper blacklisting of destinations because of non-INVITE timeouts. Two new module parameters are introduced:

Miklos Tirpak authored on 14/11/2007 15:30:21
July 26, 2007
View 7a64325cf2

dst blacklist callbacks are extended with the sip msg parameter.

Miklos Tirpak authored on 26/07/2007 11:52:22
June 9, 2007
View d2a3df03ea

- execute wait timer handlers & retr. handlers in the fast timer (=> faster response), but switch to the slow timer for the FR (which might take some time: dns failover, failure routes a.s.o). This change brought me 300 extra cps (~3%). - added missing include

Andrei Pelinescu-Onciul authored on 09/06/2007 17:48:52
June 5, 2007
View b5f473ee9c

- warnings & DBG cleanup

Andrei Pelinescu-Onciul authored on 05/06/2007 21:26:44
View 3357dbdf88

- fix: relay_reply/local_reply on error cancel/cancel_bitmap: avoid attempts to cancel twice - fix: wrong silent discarding condition - noisy_ctimer is now 1 (on) by default (due to the above fix you'll really see silent discards without it which is not probably what you want/expect) - cancel updates: - cancel not sent on timeout, for branches on which no reply was received (closes SER-254). - cancels for silently canceled branches (no replies ever received) are automatically generated if later a provisional reply arrives on such a branch (close SER-232) - if branch canceled (non-silently) and provis. reply on it => immediately retransmit cancel - should_cancel_branch() can now be called w/o any lock held

Andrei Pelinescu-Onciul authored on 05/06/2007 14:35:17
View c0ff60b688

- tm per transaction retr timers: support for changing the retransmission intervals on the fly, from the script, on a per transaction basis (it is enabled if tm is compiled with -DTM_DIFF_RT_TIMEOUT -- default): t_set_retr(t1, t2) - tm transaction lifetime for inv/noninv (config. per transaction): added maximum transaction lifetime - a transaction is not allowed to be active longer then this interval. See t_set_max_lifetime() or the new script params. max_inv_lifetime and max_noninv_lifetime. - fix: retr_interval was not disabled on error in retr_buf_hanlder

Andrei Pelinescu-Onciul authored on 05/06/2007 14:12:36
May 29, 2007
View e67d950955

- transactions are now deleted when their reference counter reaches 0 (this removes the need for the delete timer hack and some extra locking and it should reduce memory usage in very busy situations). For now it's still possible to revert to the old behaviour by removing the TM_DEL_UNREF define in h_table.h.

Andrei Pelinescu-Onciul authored on 29/05/2007 23:59:34
May 24, 2007
View 6aa46ec4aa

- tmcb onsend callbacks update (they get also the request or the reply if they are known when the callback is called) - added unlikely() when checking if an onsend callback has to be called (so that the branch will be predicted as untaken)

Andrei Pelinescu-Onciul authored on 24/05/2007 18:01:19
April 27, 2007
View ad99759256

- added flags to tm onsend callbacks that should tell if the callbacks is called due to a retransmission or for a local generated message

Andrei Pelinescu-Onciul authored on 27/04/2007 14:52:06
March 15, 2007
View 9217a64020

- tm on_send callbacks support: if such a callback is registered it will be called after tm sends a message. The callback can "see" what exactly was sent on the wire and to whom. These callbacks are intended to be read-only (no changes to the message are allowed). Their man purpose is extra-accounting or logging. For more info see the comments in tm/t_hooks.h.

Andrei Pelinescu-Onciul authored on 15/03/2007 16:30:16
October 10, 2006
View 65e998d19c

- tm 6xx fixes: when a 6xx is received send a CANCEL on all the branches for which a provisional response was received and then wait for the branches to finish (timeout, 487 from the CANCEL or another final response which "raced" the CANCEL). Branches that did not receive any response (in fact any response >=100) will be "terminated" immediately (fake 487). - tm which_cancel() 0-the cancel bitmap fix - tm which_cancel(), should_cancel(), cancel_branch() enhancements/changes - tm rpc_cancel fixes (it works now)

Andrei Pelinescu-Onciul authored on 10/10/2006 19:21:59
September 28, 2006
View 9ca82d2758

- reverted to the old behaviour for the transaction timeout reply: now 408 is returned always; before 480 was returned on invite timeout after a provisional reply. - added new script functions: t_branch_timeout() and t_branch_replied(), which can be used to distinguish between a 408 received from the network (if (!t_branch_timeout() && t_check_status("408")) ... ), a local transaction timeout w/o any reply being received (if (t_branch_timeout() && ! t_branch_replied()) ...) and a local timeout after some provsional reply ( if (t_branch_timeout() && t_branch_replied()) ...) - even more script functions: - t_any_timeout() -- true if any of the transaction branches did timeout - t_any_replied() -- true if at least one branch received a reply (when used from an on_reply route it will ignore the "current" reply) - t_is_canceled() -- true if the current transaction has been canceled (for more info see NEWS or tm docs)

Andrei Pelinescu-Onciul authored on 28/09/2006 21:10:43
September 15, 2006
View dcb59e67b4

- dns cache support (ser will cache both positive and negative responses if turned on, see doc/dns.txt for more details & config options) - dns failover support: when a name resolves to more then 1 ip (either multiple A or AAAA records or multiple SRVs) and sending to the first ip fails, ser will retry with the others. By default is off. See doc/dns.txt for more details/config options a.s.o. - destination blacklist: when sending to some destination (defined by ip:port and protocol) fails, ser will temporarily add this destination in a blacklist giving future sends the opportunity of immediately failing. Destination are also added to the blacklist on tm invite timeouts (when no response is received in the fr_timer interval). By default is off, see doc/dst_blacklist.txt form more details/config options. - small makefile fixes (in mode=debug) - resolver get_record api changes (updated enum)

Andrei Pelinescu-Onciul authored on 15/09/2006 10:37:44
December 12, 2005
View 0f283a6823

- shoot-yourself-in-the-foot bug reporting and workarround (time_del(self) in a timer handle) - added timer_allow_del() - use with care - updated timer docs - tm: uses timer_allow_del() in fr (as a safeguard)

Andrei Pelinescu-Onciul authored on 12/12/2005 20:27:16
View b2ca8176b9

- fr timer marked as inactive before executing final_reponse handler, should fix slow_timer infinite loop bug, reported by Michal. (code in the fr handler might want to send a reply and fail due to low mem. condition => it will try to clear all timers and put the transaction on wait => it will try to self delete the running fr timer, which has an infinite loop side effect)

Andrei Pelinescu-Onciul authored on 12/12/2005 16:10:35