The TM module enables stateful processing of SIP transactions. Stateful logic is costly in terms of memory and CPU. The main use is services that inherently need state. For example, transaction-based accounting (module acc) needs to process transaction state as opposed to individual messages. Any kind of forking must be implemented transaction statefully. By using transaction states you trade CPU caused by retransmission processing for memory. That only makes sense if CPU consumption per request is huge. For example, if you want to avoid costly DNS resolution for every retransmission of a request to an unresolvable destination, use stateful mode. Then, only the initial message burdens server by DNS queries, subsequent retransmissions will be dropped and will not result in more processes blocked by DNS resolution. The price is more memory consumption and higher processing latency. From the admin's perspective, these are the major functions : t_relay, t_relay_to_udp and t_relay_to_tcp. All of them set up transaction state, absorb retransmissions from upstream, generate downstream retransmissions and correlate replies to requests. t_relay forwards to current URI (be it original request's URI or a URI changed by some of URI-modifying functions, such as sethost). t_relay_to_udp and t_relay_to_tcp forward to a specific address over UDP or TCP respectively. In general, if TM is used, it copies clones of received SIP messages in shared memory. That costs memory and also CPU time (mem
| Parámetro | Tipo | Descripción |
|---|---|---|
| fr_timer | integer | 3.2. fr_inv_timer (integer) 3.3. max_inv_lifetime (integer) 3.4. max_noninv_lifetime (integer) 3.5. wt_timer (integer) 3.6. retr_timer1 (integer) 3.7. retr_timer2 (integer) 3.8. noisy_ctimer (integer) |
| fr_inv_timer | integer | 3.3. max_inv_lifetime (integer) 3.4. max_noninv_lifetime (integer) 3.5. wt_timer (integer) 3.6. retr_timer1 (integer) 3.7. retr_timer2 (integer) 3.8. noisy_ctimer (integer) 3.9. restart_fr_on_each_rep |
| max_inv_lifetime | integer | 3.4. max_noninv_lifetime (integer) 3.5. wt_timer (integer) 3.6. retr_timer1 (integer) 3.7. retr_timer2 (integer) 3.8. noisy_ctimer (integer) 3.9. restart_fr_on_each_reply (integer) 3.10. auto_inv_100 |
| max_noninv_lifetime | integer | 3.5. wt_timer (integer) 3.6. retr_timer1 (integer) 3.7. retr_timer2 (integer) 3.8. noisy_ctimer (integer) 3.9. restart_fr_on_each_reply (integer) 3.10. auto_inv_100 (integer) 3.11. auto_inv_100_reason |
| wt_timer | integer | 3.6. retr_timer1 (integer) 3.7. retr_timer2 (integer) 3.8. noisy_ctimer (integer) 3.9. restart_fr_on_each_reply (integer) 3.10. auto_inv_100 (integer) 3.11. auto_inv_100_reason (string) 3.12. unix_tx_ |
| retr_timer1 | integer | 3.7. retr_timer2 (integer) 3.8. noisy_ctimer (integer) 3.9. restart_fr_on_each_reply (integer) 3.10. auto_inv_100 (integer) 3.11. auto_inv_100_reason (string) 3.12. unix_tx_timeout (integer) 3.13. agg |
| retr_timer2 | integer | 3.8. noisy_ctimer (integer) 3.9. restart_fr_on_each_reply (integer) 3.10. auto_inv_100 (integer) 3.11. auto_inv_100_reason (string) 3.12. unix_tx_timeout (integer) 3.13. aggregate_challenges (integer) |
| noisy_ctimer | integer | 3.9. restart_fr_on_each_reply (integer) 3.10. auto_inv_100 (integer) 3.11. auto_inv_100_reason (string) 3.12. unix_tx_timeout (integer) 3.13. aggregate_challenges (integer) 3.14. reparse_invite (integ |
| restart_fr_on_each_reply | integer | 3.10. auto_inv_100 (integer) 3.11. auto_inv_100_reason (string) 3.12. unix_tx_timeout (integer) 3.13. aggregate_challenges (integer) 3.14. reparse_invite (integer) 3.15. ac_extra_hdrs (string) 3.16. b |
| auto_inv_100 | integer | 3.11. auto_inv_100_reason (string) 3.12. unix_tx_timeout (integer) 3.13. aggregate_challenges (integer) 3.14. reparse_invite (integer) 3.15. ac_extra_hdrs (string) 3.16. blst_503 (integer) 3.17. blst_ |
| auto_inv_100_reason | string | 3.12. unix_tx_timeout (integer) 3.13. aggregate_challenges (integer) 3.14. reparse_invite (integer) 3.15. ac_extra_hdrs (string) 3.16. blst_503 (integer) 3.17. blst_503_def_timeout (integer) 3.18. bls |
| unix_tx_timeout | integer | 3.13. aggregate_challenges (integer) 3.14. reparse_invite (integer) 3.15. ac_extra_hdrs (string) 3.16. blst_503 (integer) 3.17. blst_503_def_timeout (integer) 3.18. blst_503_min_timeout (integer) 3.19 |
| aggregate_challenges | integer | 3.14. reparse_invite (integer) 3.15. ac_extra_hdrs (string) 3.16. blst_503 (integer) 3.17. blst_503_def_timeout (integer) 3.18. blst_503_min_timeout (integer) 3.19. blst_503_max_timeout (integer) 3.20 |
| reparse_invite | integer | 3.15. ac_extra_hdrs (string) 3.16. blst_503 (integer) 3.17. blst_503_def_timeout (integer) 3.18. blst_503_min_timeout (integer) 3.19. blst_503_max_timeout (integer) 3.20. blst_methods_add (unsigned in |
| ac_extra_hdrs | string | 3.16. blst_503 (integer) 3.17. blst_503_def_timeout (integer) 3.18. blst_503_min_timeout (integer) 3.19. blst_503_max_timeout (integer) 3.20. blst_methods_add (unsigned integer) 3.21. blst_methods_loo |
| blst_503 | integer | 3.17. blst_503_def_timeout (integer) 3.18. blst_503_min_timeout (integer) 3.19. blst_503_max_timeout (integer) 3.20. blst_methods_add (unsigned integer) 3.21. blst_methods_lookup (unsigned integer) 3. |
| blst_503_def_timeout | integer | 3.18. blst_503_min_timeout (integer) 3.19. blst_503_max_timeout (integer) 3.20. blst_methods_add (unsigned integer) 3.21. blst_methods_lookup (unsigned integer) 3.22. cancel_b_method (integer) 3.23. r |
| blst_503_min_timeout | integer | 3.19. blst_503_max_timeout (integer) 3.20. blst_methods_add (unsigned integer) 3.21. blst_methods_lookup (unsigned integer) 3.22. cancel_b_method (integer) 3.23. reparse_on_dns_failover (integer) 3.24 |
| blst_503_max_timeout | integer | 3.20. blst_methods_add (unsigned integer) 3.21. blst_methods_lookup (unsigned integer) 3.22. cancel_b_method (integer) 3.23. reparse_on_dns_failover (integer) 3.24. on_sl_reply (string) 3.25. contacts |
| cancel_b_method | integer | 3.23. reparse_on_dns_failover (integer) 3.24. on_sl_reply (string) 3.25. contacts_avp (string) 3.26. contact_flows_avp (string) 3.27. fr_timer_avp (string) 3.28. fr_inv_timer_avp (string) 3.29. unmatc |
| reparse_on_dns_failover | integer | 3.24. on_sl_reply (string) 3.25. contacts_avp (string) 3.26. contact_flows_avp (string) 3.27. fr_timer_avp (string) 3.28. fr_inv_timer_avp (string) 3.29. unmatched_cancel (integer) 3.30. ruri_matching |
| on_sl_reply | string | 3.25. contacts_avp (string) 3.26. contact_flows_avp (string) 3.27. fr_timer_avp (string) 3.28. fr_inv_timer_avp (string) 3.29. unmatched_cancel (integer) 3.30. ruri_matching (integer) 3.31. via1_match |
| contacts_avp | string | 3.26. contact_flows_avp (string) 3.27. fr_timer_avp (string) 3.28. fr_inv_timer_avp (string) 3.29. unmatched_cancel (integer) 3.30. ruri_matching (integer) 3.31. via1_matching (integer) 3.32. callid_m |
| contact_flows_avp | string | 3.27. fr_timer_avp (string) 3.28. fr_inv_timer_avp (string) 3.29. unmatched_cancel (integer) 3.30. ruri_matching (integer) 3.31. via1_matching (integer) 3.32. callid_matching (integer) 3.33. callid_cs |
| fr_timer_avp | string | 3.28. fr_inv_timer_avp (string) 3.29. unmatched_cancel (integer) 3.30. ruri_matching (integer) 3.31. via1_matching (integer) 3.32. callid_matching (integer) 3.33. callid_cseq_matching (int) 3.34. pass |
| fr_inv_timer_avp | string | 3.29. unmatched_cancel (integer) 3.30. ruri_matching (integer) 3.31. via1_matching (integer) 3.32. callid_matching (integer) 3.33. callid_cseq_matching (int) 3.34. pass_provisional_replies (integer) 3 |
| unmatched_cancel | integer | 3.30. ruri_matching (integer) 3.31. via1_matching (integer) 3.32. callid_matching (integer) 3.33. callid_cseq_matching (int) 3.34. pass_provisional_replies (integer) 3.35. default_code (integer) 3.36. |
| ruri_matching | integer | 3.31. via1_matching (integer) 3.32. callid_matching (integer) 3.33. callid_cseq_matching (int) 3.34. pass_provisional_replies (integer) 3.35. default_code (integer) 3.36. default_reason (string) 3.37. |
| via1_matching | integer | 3.32. callid_matching (integer) 3.33. callid_cseq_matching (int) 3.34. pass_provisional_replies (integer) 3.35. default_code (integer) 3.36. default_reason (string) 3.37. disable_6xx_block (integer) 3 |
| callid_matching | integer | 3.33. callid_cseq_matching (int) 3.34. pass_provisional_replies (integer) 3.35. default_code (integer) 3.36. default_reason (string) 3.37. disable_6xx_block (integer) 3.38. local_ack_mode (integer) 3. |
4.2. t_relay_to_udp([ip, port]) 4.3. t_relay_to_tcp([ip, port]) 4.4. t_relay_to_tls([ip, port]) 4.5. t_relay_to_sctp([ip, port]) 4.6. t_on_failure(failure_route) 4.7. t_on_branch_failure(branch_failure_route) 4.8. t_on_reply(onreply_route) 4.9. t_on_
4.3. t_relay_to_tcp([ip, port]) 4.4. t_relay_to_tls([ip, port]) 4.5. t_relay_to_sctp([ip, port]) 4.6. t_on_failure(failure_route) 4.7. t_on_branch_failure(branch_failure_route) 4.8. t_on_reply(onreply_route) 4.9. t_on_branch(branch_route) 4.10. t_new
4.4. t_relay_to_tls([ip, port]) 4.5. t_relay_to_sctp([ip, port]) 4.6. t_on_failure(failure_route) 4.7. t_on_branch_failure(branch_failure_route) 4.8. t_on_reply(onreply_route) 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reaso
4.5. t_relay_to_sctp([ip, port]) 4.6. t_on_failure(failure_route) 4.7. t_on_branch_failure(branch_failure_route) 4.8. t_on_reply(onreply_route) 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) 4.12. t_reply_error()
4.6. t_on_failure(failure_route) 4.7. t_on_branch_failure(branch_failure_route) 4.8. t_on_reply(onreply_route) 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) 4.12. t_reply_error() 4.13. t_send_reply(code, reason)
4.7. t_on_branch_failure(branch_failure_route) 4.8. t_on_reply(onreply_route) 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) 4.12. t_reply_error() 4.13. t_send_reply(code, reason) 4.14. t_lookup_request() 4.15. t_
4.8. t_on_reply(onreply_route) 4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) 4.12. t_reply_error() 4.13. t_send_reply(code, reason) 4.14. t_lookup_request() 4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_fo
4.9. t_on_branch(branch_route) 4.10. t_newtran() 4.11. t_reply(code, reason_phrase) 4.12. t_reply_error() 4.13. t_send_reply(code, reason) 4.14. t_lookup_request() 4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18.
4.10. t_newtran() 4.11. t_reply(code, reason_phrase) 4.12. t_reply_error() 4.13. t_send_reply(code, reason) 4.14. t_lookup_request() 4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port)
4.11. t_reply(code, reason_phrase) 4.12. t_reply_error() 4.13. t_send_reply(code, reason) 4.14. t_lookup_request() 4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_no
4.12. t_reply_error() 4.13. t_send_reply(code, reason) 4.14. t_lookup_request() 4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_
4.13. t_send_reply(code, reason) 4.14. t_lookup_request() 4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_nonack_tls(ip, port) 4
4.14. t_lookup_request() 4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_nonack_tls(ip, port) 4.21. t_forward_nonack_sctp(ip, po
4.15. t_retransmit_reply() 4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_nonack_tls(ip, port) 4.21. t_forward_nonack_sctp(ip, port) 4.22. t_set_fr(fr_inv
4.16. t_release() 4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_nonack_tls(ip, port) 4.21. t_forward_nonack_sctp(ip, port) 4.22. t_set_fr(fr_inv_timeout [, fr_timeout]) 4.
4.17. t_forward_nonack([ip, port]) 4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_nonack_tls(ip, port) 4.21. t_forward_nonack_sctp(ip, port) 4.22. t_set_fr(fr_inv_timeout [, fr_timeout]) 4.23. t_reset_fr() 4
4.18. t_forward_nonack_udp(ip, port) 4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_nonack_tls(ip, port) 4.21. t_forward_nonack_sctp(ip, port) 4.22. t_set_fr(fr_inv_timeout [, fr_timeout]) 4.23. t_reset_fr() 4.24. t_set_max_lifetime(inv_lifetim
4.19. t_forward_nonack_tcp(ip, port) 4.20. t_forward_nonack_tls(ip, port) 4.21. t_forward_nonack_sctp(ip, port) 4.22. t_set_fr(fr_inv_timeout [, fr_timeout]) 4.23. t_reset_fr() 4.24. t_set_max_lifetime(inv_lifetime, noninv_lifetime) 4.25. t_reset_max
4.20. t_forward_nonack_tls(ip, port) 4.21. t_forward_nonack_sctp(ip, port) 4.22. t_set_fr(fr_inv_timeout [, fr_timeout]) 4.23. t_reset_fr() 4.24. t_set_max_lifetime(inv_lifetime, noninv_lifetime) 4.25. t_reset_max_lifetime() 4.26. t_set_retr(retr_t1_
4.21. t_forward_nonack_sctp(ip, port) 4.22. t_set_fr(fr_inv_timeout [, fr_timeout]) 4.23. t_reset_fr() 4.24. t_set_max_lifetime(inv_lifetime, noninv_lifetime) 4.25. t_reset_max_lifetime() 4.26. t_set_retr(retr_t1_interval, retr_t2_interval) 4.27. t_r
4.22. t_set_fr(fr_inv_timeout [, fr_timeout]) 4.23. t_reset_fr() 4.24. t_set_max_lifetime(inv_lifetime, noninv_lifetime) 4.25. t_reset_max_lifetime() 4.26. t_set_retr(retr_t1_interval, retr_t2_interval) 4.27. t_reset_retr() 4.28. t_set_auto_inv_100(0
4.23. t_reset_fr() 4.24. t_set_max_lifetime(inv_lifetime, noninv_lifetime) 4.25. t_reset_max_lifetime() 4.26. t_set_retr(retr_t1_interval, retr_t2_interval) 4.27. t_reset_retr() 4.28. t_set_auto_inv_100(0|1) 4.29. t_branch_timeout() 4.30. t_branch_re
4.24. t_set_max_lifetime(inv_lifetime, noninv_lifetime) 4.25. t_reset_max_lifetime() 4.26. t_set_retr(retr_t1_interval, retr_t2_interval) 4.27. t_reset_retr() 4.28. t_set_auto_inv_100(0|1) 4.29. t_branch_timeout() 4.30. t_branch_replied() 4.31. t_any
4.25. t_reset_max_lifetime() 4.26. t_set_retr(retr_t1_interval, retr_t2_interval) 4.27. t_reset_retr() 4.28. t_set_auto_inv_100(0|1) 4.29. t_branch_timeout() 4.30. t_branch_replied() 4.31. t_any_timeout() 4.32. t_any_replied() 4.33. t_grep_status("co
4.26. t_set_retr(retr_t1_interval, retr_t2_interval) 4.27. t_reset_retr() 4.28. t_set_auto_inv_100(0|1) 4.29. t_branch_timeout() 4.30. t_branch_replied() 4.31. t_any_timeout() 4.32. t_any_replied() 4.33. t_grep_status("code") 4.34. t_is_canceled() 4.
Copyright © 2003 FhG FOKUS
Copyright © 2008 Juha Heinanen
Copyright © 2016 Daniel-Constantin Mierla