From bb07a9d6229bbd191078d3a886b82308d066dbda Mon Sep 17 00:00:00 2001 From: "Olle E. Johansson" Date: Tue, 7 Jun 2016 14:25:31 +0200 Subject: [PATCH] dialog Document states of a dialog The states are stored in the state_column in the database, but was only explained in source code previously (cherry picked from commit 50346dbc671078cab8e1d9f21f410a96286c7a83) --- modules/dialog/README | 948 ++++++++++++++-------------- modules/dialog/doc/dialog_admin.xml | 24 + 2 files changed, 504 insertions(+), 468 deletions(-) diff --git a/modules/dialog/README b/modules/dialog/README index ef73c142294..ce87278ce50 100644 --- a/modules/dialog/README +++ b/modules/dialog/README @@ -33,131 +33,132 @@ Alex Balashov 1. Overview 2. How it works - 3. Dialog profiling - 4. Dependencies - - 4.1. Kamailio Modules - 4.2. External Libraries or Applications - - 5. Parameters - - 5.1. enable_stats (integer) - 5.2. hash_size (integer) - 5.3. rr_param (string) - 5.4. dlg_flag (integer) - 5.5. timeout_avp (string) - 5.6. default_timeout (integer) - 5.7. dlg_extra_hdrs (string) - 5.8. dlg_match_mode (integer) - 5.9. detect_spirals (integer) - 5.10. db_url (string) - 5.11. db_mode (integer) - 5.12. db_update_period (integer) - 5.13. db_fetch_rows (integer) - 5.14. db_skip_load (integer) - 5.15. table_name (string) - 5.16. call_id_column (string) - 5.17. from_uri_column (string) - 5.18. from_tag_column (string) - 5.19. to_uri_column (string) - 5.20. to_tag_column (string) - 5.21. from_cseq_column (string) - 5.22. to_cseq_column (string) - 5.23. from_route_column (string) - 5.24. to_route_column (string) - 5.25. from_contact_column (string) - 5.26. to_contact_column (string) - 5.27. from_sock_column (string) - 5.28. to_sock_column (string) - 5.29. h_id_column (string) - 5.30. h_entry_column (string) - 5.31. state_column (string) - 5.32. start_time_column (string) - 5.33. timeout_column (string) - 5.34. sflags_column (string) - 5.35. toroute_column (string) - 5.36. vars_table_name (string) - 5.37. vars_h_id_column (string) - 5.38. vars_h_entry_column (string) - 5.39. vars_key_column (string) - 5.40. vars_value_column (string) - 5.41. profiles_with_value (string) - 5.42. profiles_no_value (string) - 5.43. bridge_controller (string) - 5.44. bridge_contact (string) - 5.45. initial_cbs_inscript (int) - 5.46. send_bye (int) - 5.47. wait_ack (int) - 5.48. ka_timer (int) - 5.49. ka_interval (int) - 5.50. timeout_noreset (int) - 5.51. timer_procs (int) - 5.52. track_cseq_updates (int) - 5.53. lreq_callee_headers (string) - - 6. Functions - - 6.1. set_dlg_profile(profile,[value]) - 6.2. unset_dlg_profile(profile,[value]) - 6.3. is_in_profile(profile,[value]) - 6.4. get_profile_size(profile,[value],size) - 6.5. dlg_isflagset(flag) - 6.6. dlg_setflag(flag) - 6.7. dlg_resetflag(flag) - 6.8. dlg_bye(side) - 6.9. dlg_refer(side, address) - 6.10. dlg_manage() - 6.11. dlg_bridge(from, to, op) - 6.12. dlg_get(callid, ftag, ttag) - 6.13. is_known_dlg() - 6.14. dlg_set_timeout(timeout [, h_entry, h_id]) - 6.15. dlg_set_timeout_by_profile(profile, [value], timeout) - 6.16. dlg_set_property(attr) - 6.17. dlg_remote_profile(cmd, profile, value, uid, expires) - - 7. Statistics - - 7.1. active_dialogs - 7.2. early_dialogs - 7.3. processed_dialogs - 7.4. expired_dialogs - 7.5. failed_dialogs - - 8. MI Commands - - 8.1. dlg_list - 8.2. dlg_list_ctx - 8.3. dlg_end_dlg - 8.4. dlg_terminate_dlg - 8.5. profile_get_size - 8.6. profile_list_dlgs - 8.7. dlg_bridge - - 9. Exported RPC Functions - - 9.1. dlg.list - 9.2. dlg.list_ctx - 9.3. dlg.dlg_list - 9.4. dlg.dlg_list_ctx - 9.5. dlg.end_dlg - 9.6. dlg.profile_get_size - 9.7. dlg.profile_list - 9.8. dlg.bridge_dlg - - 10. Exported pseudo-variables - - 10.1. $DLG_count - 10.2. $DLG_status - 10.3. $DLG_lifetime - 10.4. $dlg(...) - 10.5. $dlg_ctx(...) - 10.6. $dlg_var(key) - - 11. Event Routes - - 11.1. event_route[dialog:start] - 11.2. event_route[dialog:end] - 11.3. event_route[dialog:failed] + 3. Dialog states + 4. Dialog profiling + 5. Dependencies + + 5.1. Kamailio Modules + 5.2. External Libraries or Applications + + 6. Parameters + + 6.1. enable_stats (integer) + 6.2. hash_size (integer) + 6.3. rr_param (string) + 6.4. dlg_flag (integer) + 6.5. timeout_avp (string) + 6.6. default_timeout (integer) + 6.7. dlg_extra_hdrs (string) + 6.8. dlg_match_mode (integer) + 6.9. detect_spirals (integer) + 6.10. db_url (string) + 6.11. db_mode (integer) + 6.12. db_update_period (integer) + 6.13. db_fetch_rows (integer) + 6.14. db_skip_load (integer) + 6.15. table_name (string) + 6.16. call_id_column (string) + 6.17. from_uri_column (string) + 6.18. from_tag_column (string) + 6.19. to_uri_column (string) + 6.20. to_tag_column (string) + 6.21. from_cseq_column (string) + 6.22. to_cseq_column (string) + 6.23. from_route_column (string) + 6.24. to_route_column (string) + 6.25. from_contact_column (string) + 6.26. to_contact_column (string) + 6.27. from_sock_column (string) + 6.28. to_sock_column (string) + 6.29. h_id_column (string) + 6.30. h_entry_column (string) + 6.31. state_column (string) + 6.32. start_time_column (string) + 6.33. timeout_column (string) + 6.34. sflags_column (string) + 6.35. toroute_column (string) + 6.36. vars_table_name (string) + 6.37. vars_h_id_column (string) + 6.38. vars_h_entry_column (string) + 6.39. vars_key_column (string) + 6.40. vars_value_column (string) + 6.41. profiles_with_value (string) + 6.42. profiles_no_value (string) + 6.43. bridge_controller (string) + 6.44. bridge_contact (string) + 6.45. initial_cbs_inscript (int) + 6.46. send_bye (int) + 6.47. wait_ack (int) + 6.48. ka_timer (int) + 6.49. ka_interval (int) + 6.50. timeout_noreset (int) + 6.51. timer_procs (int) + 6.52. track_cseq_updates (int) + 6.53. lreq_callee_headers (string) + + 7. Functions + + 7.1. set_dlg_profile(profile,[value]) + 7.2. unset_dlg_profile(profile,[value]) + 7.3. is_in_profile(profile,[value]) + 7.4. get_profile_size(profile,[value],size) + 7.5. dlg_isflagset(flag) + 7.6. dlg_setflag(flag) + 7.7. dlg_resetflag(flag) + 7.8. dlg_bye(side) + 7.9. dlg_refer(side, address) + 7.10. dlg_manage() + 7.11. dlg_bridge(from, to, op) + 7.12. dlg_get(callid, ftag, ttag) + 7.13. is_known_dlg() + 7.14. dlg_set_timeout(timeout [, h_entry, h_id]) + 7.15. dlg_set_timeout_by_profile(profile, [value], timeout) + 7.16. dlg_set_property(attr) + 7.17. dlg_remote_profile(cmd, profile, value, uid, expires) + + 8. Statistics + + 8.1. active_dialogs + 8.2. early_dialogs + 8.3. processed_dialogs + 8.4. expired_dialogs + 8.5. failed_dialogs + + 9. MI Commands + + 9.1. dlg_list + 9.2. dlg_list_ctx + 9.3. dlg_end_dlg + 9.4. dlg_terminate_dlg + 9.5. profile_get_size + 9.6. profile_list_dlgs + 9.7. dlg_bridge + + 10. Exported RPC Functions + + 10.1. dlg.list + 10.2. dlg.list_ctx + 10.3. dlg.dlg_list + 10.4. dlg.dlg_list_ctx + 10.5. dlg.end_dlg + 10.6. dlg.profile_get_size + 10.7. dlg.profile_list + 10.8. dlg.bridge_dlg + + 11. Exported pseudo-variables + + 11.1. $DLG_count + 11.2. $DLG_status + 11.3. $DLG_lifetime + 11.4. $dlg(...) + 11.5. $dlg_ctx(...) + 11.6. $dlg_var(key) + + 12. Event Routes + + 12.1. event_route[dialog:start] + 12.2. event_route[dialog:end] + 12.3. event_route[dialog:failed] 2. Developer Guide @@ -248,131 +249,132 @@ Chapter 1. Admin Guide 1. Overview 2. How it works - 3. Dialog profiling - 4. Dependencies - - 4.1. Kamailio Modules - 4.2. External Libraries or Applications - - 5. Parameters - - 5.1. enable_stats (integer) - 5.2. hash_size (integer) - 5.3. rr_param (string) - 5.4. dlg_flag (integer) - 5.5. timeout_avp (string) - 5.6. default_timeout (integer) - 5.7. dlg_extra_hdrs (string) - 5.8. dlg_match_mode (integer) - 5.9. detect_spirals (integer) - 5.10. db_url (string) - 5.11. db_mode (integer) - 5.12. db_update_period (integer) - 5.13. db_fetch_rows (integer) - 5.14. db_skip_load (integer) - 5.15. table_name (string) - 5.16. call_id_column (string) - 5.17. from_uri_column (string) - 5.18. from_tag_column (string) - 5.19. to_uri_column (string) - 5.20. to_tag_column (string) - 5.21. from_cseq_column (string) - 5.22. to_cseq_column (string) - 5.23. from_route_column (string) - 5.24. to_route_column (string) - 5.25. from_contact_column (string) - 5.26. to_contact_column (string) - 5.27. from_sock_column (string) - 5.28. to_sock_column (string) - 5.29. h_id_column (string) - 5.30. h_entry_column (string) - 5.31. state_column (string) - 5.32. start_time_column (string) - 5.33. timeout_column (string) - 5.34. sflags_column (string) - 5.35. toroute_column (string) - 5.36. vars_table_name (string) - 5.37. vars_h_id_column (string) - 5.38. vars_h_entry_column (string) - 5.39. vars_key_column (string) - 5.40. vars_value_column (string) - 5.41. profiles_with_value (string) - 5.42. profiles_no_value (string) - 5.43. bridge_controller (string) - 5.44. bridge_contact (string) - 5.45. initial_cbs_inscript (int) - 5.46. send_bye (int) - 5.47. wait_ack (int) - 5.48. ka_timer (int) - 5.49. ka_interval (int) - 5.50. timeout_noreset (int) - 5.51. timer_procs (int) - 5.52. track_cseq_updates (int) - 5.53. lreq_callee_headers (string) - - 6. Functions - - 6.1. set_dlg_profile(profile,[value]) - 6.2. unset_dlg_profile(profile,[value]) - 6.3. is_in_profile(profile,[value]) - 6.4. get_profile_size(profile,[value],size) - 6.5. dlg_isflagset(flag) - 6.6. dlg_setflag(flag) - 6.7. dlg_resetflag(flag) - 6.8. dlg_bye(side) - 6.9. dlg_refer(side, address) - 6.10. dlg_manage() - 6.11. dlg_bridge(from, to, op) - 6.12. dlg_get(callid, ftag, ttag) - 6.13. is_known_dlg() - 6.14. dlg_set_timeout(timeout [, h_entry, h_id]) - 6.15. dlg_set_timeout_by_profile(profile, [value], timeout) - 6.16. dlg_set_property(attr) - 6.17. dlg_remote_profile(cmd, profile, value, uid, expires) - - 7. Statistics - - 7.1. active_dialogs - 7.2. early_dialogs - 7.3. processed_dialogs - 7.4. expired_dialogs - 7.5. failed_dialogs - - 8. MI Commands - - 8.1. dlg_list - 8.2. dlg_list_ctx - 8.3. dlg_end_dlg - 8.4. dlg_terminate_dlg - 8.5. profile_get_size - 8.6. profile_list_dlgs - 8.7. dlg_bridge - - 9. Exported RPC Functions - - 9.1. dlg.list - 9.2. dlg.list_ctx - 9.3. dlg.dlg_list - 9.4. dlg.dlg_list_ctx - 9.5. dlg.end_dlg - 9.6. dlg.profile_get_size - 9.7. dlg.profile_list - 9.8. dlg.bridge_dlg - - 10. Exported pseudo-variables - - 10.1. $DLG_count - 10.2. $DLG_status - 10.3. $DLG_lifetime - 10.4. $dlg(...) - 10.5. $dlg_ctx(...) - 10.6. $dlg_var(key) - - 11. Event Routes - - 11.1. event_route[dialog:start] - 11.2. event_route[dialog:end] - 11.3. event_route[dialog:failed] + 3. Dialog states + 4. Dialog profiling + 5. Dependencies + + 5.1. Kamailio Modules + 5.2. External Libraries or Applications + + 6. Parameters + + 6.1. enable_stats (integer) + 6.2. hash_size (integer) + 6.3. rr_param (string) + 6.4. dlg_flag (integer) + 6.5. timeout_avp (string) + 6.6. default_timeout (integer) + 6.7. dlg_extra_hdrs (string) + 6.8. dlg_match_mode (integer) + 6.9. detect_spirals (integer) + 6.10. db_url (string) + 6.11. db_mode (integer) + 6.12. db_update_period (integer) + 6.13. db_fetch_rows (integer) + 6.14. db_skip_load (integer) + 6.15. table_name (string) + 6.16. call_id_column (string) + 6.17. from_uri_column (string) + 6.18. from_tag_column (string) + 6.19. to_uri_column (string) + 6.20. to_tag_column (string) + 6.21. from_cseq_column (string) + 6.22. to_cseq_column (string) + 6.23. from_route_column (string) + 6.24. to_route_column (string) + 6.25. from_contact_column (string) + 6.26. to_contact_column (string) + 6.27. from_sock_column (string) + 6.28. to_sock_column (string) + 6.29. h_id_column (string) + 6.30. h_entry_column (string) + 6.31. state_column (string) + 6.32. start_time_column (string) + 6.33. timeout_column (string) + 6.34. sflags_column (string) + 6.35. toroute_column (string) + 6.36. vars_table_name (string) + 6.37. vars_h_id_column (string) + 6.38. vars_h_entry_column (string) + 6.39. vars_key_column (string) + 6.40. vars_value_column (string) + 6.41. profiles_with_value (string) + 6.42. profiles_no_value (string) + 6.43. bridge_controller (string) + 6.44. bridge_contact (string) + 6.45. initial_cbs_inscript (int) + 6.46. send_bye (int) + 6.47. wait_ack (int) + 6.48. ka_timer (int) + 6.49. ka_interval (int) + 6.50. timeout_noreset (int) + 6.51. timer_procs (int) + 6.52. track_cseq_updates (int) + 6.53. lreq_callee_headers (string) + + 7. Functions + + 7.1. set_dlg_profile(profile,[value]) + 7.2. unset_dlg_profile(profile,[value]) + 7.3. is_in_profile(profile,[value]) + 7.4. get_profile_size(profile,[value],size) + 7.5. dlg_isflagset(flag) + 7.6. dlg_setflag(flag) + 7.7. dlg_resetflag(flag) + 7.8. dlg_bye(side) + 7.9. dlg_refer(side, address) + 7.10. dlg_manage() + 7.11. dlg_bridge(from, to, op) + 7.12. dlg_get(callid, ftag, ttag) + 7.13. is_known_dlg() + 7.14. dlg_set_timeout(timeout [, h_entry, h_id]) + 7.15. dlg_set_timeout_by_profile(profile, [value], timeout) + 7.16. dlg_set_property(attr) + 7.17. dlg_remote_profile(cmd, profile, value, uid, expires) + + 8. Statistics + + 8.1. active_dialogs + 8.2. early_dialogs + 8.3. processed_dialogs + 8.4. expired_dialogs + 8.5. failed_dialogs + + 9. MI Commands + + 9.1. dlg_list + 9.2. dlg_list_ctx + 9.3. dlg_end_dlg + 9.4. dlg_terminate_dlg + 9.5. profile_get_size + 9.6. profile_list_dlgs + 9.7. dlg_bridge + + 10. Exported RPC Functions + + 10.1. dlg.list + 10.2. dlg.list_ctx + 10.3. dlg.dlg_list + 10.4. dlg.dlg_list_ctx + 10.5. dlg.end_dlg + 10.6. dlg.profile_get_size + 10.7. dlg.profile_list + 10.8. dlg.bridge_dlg + + 11. Exported pseudo-variables + + 11.1. $DLG_count + 11.2. $DLG_status + 11.3. $DLG_lifetime + 11.4. $dlg(...) + 11.5. $dlg_ctx(...) + 11.6. $dlg_var(key) + + 12. Event Routes + + 12.1. event_route[dialog:start] + 12.2. event_route[dialog:end] + 12.3. event_route[dialog:failed] 1. Overview @@ -402,17 +404,27 @@ Chapter 1. Admin Guide 2. How it works To create the dialog associated with an initial request, the flag - "dlg_flag" (Section 5.4, "dlg_flag (integer)") must be set before + "dlg_flag" (Section 6.4, "dlg_flag (integer)") must be set before creating the corresponding transaction. The dialog is automatically destroyed when a "BYE" is received. In case of no "BYE", the dialog lifetime is controlled via the default timeout - (see "default_timeout" - Section 5.6, "default_timeout (integer)") and - custom timeout (see "timeout_avp" - Section 5.5, "timeout_avp + (see "default_timeout" - Section 6.6, "default_timeout (integer)") and + custom timeout (see "timeout_avp" - Section 6.5, "timeout_avp (string)"). The dialog timeout is reset each time a sequential request is processed. -3. Dialog profiling +3. Dialog states + + Dialogs have states that are shown in the RPC interface as well as + stored in the database. + * 1 : Unconfirmed dialog + * 2 : Early dialog (ringing) + * 3 : Confirmed dialog (waiting for ACK) + * 4 : Confirmed dialog (active call) + * 5 : Deleted dialog + +4. Dialog profiling Dialog profiling is a mechanism that helps in classifying, sorting and keeping track of certain types of dialogs. The classification criteria @@ -442,81 +454,81 @@ Chapter 1. Admin Guide and sequential requests) and in the branch, failure and reply routes of the original request. -4. Dependencies +5. Dependencies - 4.1. Kamailio Modules - 4.2. External Libraries or Applications + 5.1. Kamailio Modules + 5.2. External Libraries or Applications -4.1. Kamailio Modules +5.1. Kamailio Modules The following modules must be loaded before this module: * TM - Transaction module * RR - Record-Route module * PV - Pseudovariables module -4.2. External Libraries or Applications +5.2. External Libraries or Applications The following libraries or applications must be installed before running Kamailio with this module loaded: * None. -5. Parameters - - 5.1. enable_stats (integer) - 5.2. hash_size (integer) - 5.3. rr_param (string) - 5.4. dlg_flag (integer) - 5.5. timeout_avp (string) - 5.6. default_timeout (integer) - 5.7. dlg_extra_hdrs (string) - 5.8. dlg_match_mode (integer) - 5.9. detect_spirals (integer) - 5.10. db_url (string) - 5.11. db_mode (integer) - 5.12. db_update_period (integer) - 5.13. db_fetch_rows (integer) - 5.14. db_skip_load (integer) - 5.15. table_name (string) - 5.16. call_id_column (string) - 5.17. from_uri_column (string) - 5.18. from_tag_column (string) - 5.19. to_uri_column (string) - 5.20. to_tag_column (string) - 5.21. from_cseq_column (string) - 5.22. to_cseq_column (string) - 5.23. from_route_column (string) - 5.24. to_route_column (string) - 5.25. from_contact_column (string) - 5.26. to_contact_column (string) - 5.27. from_sock_column (string) - 5.28. to_sock_column (string) - 5.29. h_id_column (string) - 5.30. h_entry_column (string) - 5.31. state_column (string) - 5.32. start_time_column (string) - 5.33. timeout_column (string) - 5.34. sflags_column (string) - 5.35. toroute_column (string) - 5.36. vars_table_name (string) - 5.37. vars_h_id_column (string) - 5.38. vars_h_entry_column (string) - 5.39. vars_key_column (string) - 5.40. vars_value_column (string) - 5.41. profiles_with_value (string) - 5.42. profiles_no_value (string) - 5.43. bridge_controller (string) - 5.44. bridge_contact (string) - 5.45. initial_cbs_inscript (int) - 5.46. send_bye (int) - 5.47. wait_ack (int) - 5.48. ka_timer (int) - 5.49. ka_interval (int) - 5.50. timeout_noreset (int) - 5.51. timer_procs (int) - 5.52. track_cseq_updates (int) - 5.53. lreq_callee_headers (string) - -5.1. enable_stats (integer) +6. Parameters + + 6.1. enable_stats (integer) + 6.2. hash_size (integer) + 6.3. rr_param (string) + 6.4. dlg_flag (integer) + 6.5. timeout_avp (string) + 6.6. default_timeout (integer) + 6.7. dlg_extra_hdrs (string) + 6.8. dlg_match_mode (integer) + 6.9. detect_spirals (integer) + 6.10. db_url (string) + 6.11. db_mode (integer) + 6.12. db_update_period (integer) + 6.13. db_fetch_rows (integer) + 6.14. db_skip_load (integer) + 6.15. table_name (string) + 6.16. call_id_column (string) + 6.17. from_uri_column (string) + 6.18. from_tag_column (string) + 6.19. to_uri_column (string) + 6.20. to_tag_column (string) + 6.21. from_cseq_column (string) + 6.22. to_cseq_column (string) + 6.23. from_route_column (string) + 6.24. to_route_column (string) + 6.25. from_contact_column (string) + 6.26. to_contact_column (string) + 6.27. from_sock_column (string) + 6.28. to_sock_column (string) + 6.29. h_id_column (string) + 6.30. h_entry_column (string) + 6.31. state_column (string) + 6.32. start_time_column (string) + 6.33. timeout_column (string) + 6.34. sflags_column (string) + 6.35. toroute_column (string) + 6.36. vars_table_name (string) + 6.37. vars_h_id_column (string) + 6.38. vars_h_entry_column (string) + 6.39. vars_key_column (string) + 6.40. vars_value_column (string) + 6.41. profiles_with_value (string) + 6.42. profiles_no_value (string) + 6.43. bridge_controller (string) + 6.44. bridge_contact (string) + 6.45. initial_cbs_inscript (int) + 6.46. send_bye (int) + 6.47. wait_ack (int) + 6.48. ka_timer (int) + 6.49. ka_interval (int) + 6.50. timeout_noreset (int) + 6.51. timer_procs (int) + 6.52. track_cseq_updates (int) + 6.53. lreq_callee_headers (string) + +6.1. enable_stats (integer) If statistics support should be enabled or not. Via statistics variables, the module provide information about the dialog processing. @@ -529,7 +541,7 @@ Chapter 1. Admin Guide modparam("dialog", "enable_stats", 0) ... -5.2. hash_size (integer) +6.2. hash_size (integer) The size of the hash table internally used to keep the dialogs. A larger table is much faster but consumes more memory. The hash size @@ -547,7 +559,7 @@ modparam("dialog", "enable_stats", 0) modparam("dialog", "hash_size", 1024) ... -5.3. rr_param (string) +6.3. rr_param (string) Name of the Record-Route parameter used to store the dialog cookie. It is used for the fast matching of sequential requests to tracked @@ -560,7 +572,7 @@ modparam("dialog", "hash_size", 1024) modparam("dialog", "rr_param", "xyz") ... -5.4. dlg_flag (integer) +6.4. dlg_flag (integer) Flag to be used for marking if a dialog should be constructed for the current request (this make sense only for initial requests). @@ -572,7 +584,7 @@ modparam("dialog", "rr_param", "xyz") modparam("dialog", "dlg_flag", 4) ... -5.5. timeout_avp (string) +6.5. timeout_avp (string) The specification of an AVP that contains a custom timeout value (in seconds) for the dialog. It may be used only in a request (initial or @@ -585,7 +597,7 @@ modparam("dialog", "dlg_flag", 4) modparam("dialog", "timeout_avp", "$avp(i:10)") ... -5.6. default_timeout (integer) +6.6. default_timeout (integer) The default dialog timeout (in seconds), in the absence of a custom value provided in an AVP. @@ -597,7 +609,7 @@ modparam("dialog", "timeout_avp", "$avp(i:10)") modparam("dialog", "default_timeout", 21600) ... -5.7. dlg_extra_hdrs (string) +6.7. dlg_extra_hdrs (string) A string containing the extra headers (full format, with EOH) to be added to requests generated locally by the module (like BYEs). @@ -609,7 +621,7 @@ modparam("dialog", "default_timeout", 21600) modparam("dialog", "dlg_extra_hdrs", "Hint: credit expired\r\n") ... -5.8. dlg_match_mode (integer) +6.8. dlg_match_mode (integer) How the sequential requests should be matched against the known dialogs. The modes are a combination of matching based on a cookie @@ -640,7 +652,7 @@ modparam("dialog", "dlg_extra_hdrs", "Hint: credit expired\r\n") modparam("dialog", "dlg_match_mode", 1) ... -5.9. detect_spirals (integer) +6.9. detect_spirals (integer) Whether spirals (i.e., messages routed through the proxy multiple times) should be detected. @@ -657,7 +669,7 @@ modparam("dialog", "dlg_match_mode", 1) modparam("dialog", "detect_spirals", 1) ... -5.10. db_url (string) +6.10. db_url (string) If you want to store the information about the dialogs in a database, a database URL must be specified. @@ -669,7 +681,7 @@ modparam("dialog", "detect_spirals", 1) modparam("dialog", "db_url", "dbdriver://username:password@dbhost/dbname") ... -5.11. db_mode (integer) +6.11. db_mode (integer) Mode of synchronisation of dialog information from memory to an underlying database (if desired): @@ -690,7 +702,7 @@ modparam("dialog", "db_url", "dbdriver://username:password@dbhost/dbname") modparam("dialog", "db_mode", 1) ... -5.12. db_update_period (integer) +6.12. db_update_period (integer) The interval (seconds) at which to update dialogs' information, if you chose to store the dialogs' info at a given interval. Too short an @@ -704,7 +716,7 @@ modparam("dialog", "db_mode", 1) modparam("dialog", "db_update_period", 120) ... -5.13. db_fetch_rows (integer) +6.13. db_fetch_rows (integer) The number of the rows to be fetched at once from database when loading the dialog records at startup from the database. This value can be used @@ -720,7 +732,7 @@ modparam("dialog", "db_update_period", 120) modparam("dialog", "db_fetch_rows", 500) ... -5.14. db_skip_load (integer) +6.14. db_skip_load (integer) Set db_skip_load to 1, to skip the loading of dialogs from the database alltogether. @@ -732,7 +744,7 @@ modparam("dialog", "db_fetch_rows", 500) modparam("dialog", "db_skip_load", 1) ... -5.15. table_name (string) +6.15. table_name (string) If you want to store the information about the dialogs in a database a table name must be specified. @@ -744,7 +756,7 @@ modparam("dialog", "db_skip_load", 1) modparam("dialog", "table_name", "my_dialog") ... -5.16. call_id_column (string) +6.16. call_id_column (string) The column name in the database to store the dialogs' callid. @@ -755,7 +767,7 @@ modparam("dialog", "table_name", "my_dialog") modparam("dialog", "call_id_column", "callid_c_name") ... -5.17. from_uri_column (string) +6.17. from_uri_column (string) The column name in the database to store the caller's sip address. @@ -766,7 +778,7 @@ modparam("dialog", "call_id_column", "callid_c_name") modparam("dialog", "from_uri_column", "from_uri_c_name") ... -5.18. from_tag_column (string) +6.18. from_tag_column (string) The column name in the database to store the From tag from the INVITE request. @@ -778,7 +790,7 @@ modparam("dialog", "from_uri_column", "from_uri_c_name") modparam("dialog", "from_tag_column", "from_tag_c_name") ... -5.19. to_uri_column (string) +6.19. to_uri_column (string) The column name in the database to store the callee's sip address. @@ -789,7 +801,7 @@ modparam("dialog", "from_tag_column", "from_tag_c_name") modparam("dialog", "to_uri_column", "to_uri_c_name") ... -5.20. to_tag_column (string) +6.20. to_tag_column (string) The column name in the database to store the To tag from the 200 OK response to the INVITE request, if present. @@ -801,7 +813,7 @@ modparam("dialog", "to_uri_column", "to_uri_c_name") modparam("dialog", "to_tag_column", "to_tag_c_name") ... -5.21. from_cseq_column (string) +6.21. from_cseq_column (string) The column name in the database to store the cseq from caller side. @@ -812,7 +824,7 @@ modparam("dialog", "to_tag_column", "to_tag_c_name") modparam("dialog", "from_cseq_column", "column_name") ... -5.22. to_cseq_column (string) +6.22. to_cseq_column (string) The column name in the database to store the cseq from callee side. @@ -823,7 +835,7 @@ modparam("dialog", "from_cseq_column", "column_name") modparam("dialog", "to_cseq_column", "column_name") ... -5.23. from_route_column (string) +6.23. from_route_column (string) The column name in the database to store the route records from caller side (proxy to caller). @@ -835,7 +847,7 @@ modparam("dialog", "to_cseq_column", "column_name") modparam("dialog", "from_route_column", "column_name") ... -5.24. to_route_column (string) +6.24. to_route_column (string) The column name in the database to store the route records from callee side (proxy to callee). @@ -847,7 +859,7 @@ modparam("dialog", "from_route_column", "column_name") modparam("dialog", "to_route_column", "column_name") ... -5.25. from_contact_column (string) +6.25. from_contact_column (string) The column name in the database to store the caller's contact uri. @@ -858,7 +870,7 @@ modparam("dialog", "to_route_column", "column_name") modparam("dialog", "from_contact_column", "column_name") ... -5.26. to_contact_column (string) +6.26. to_contact_column (string) The column name in the database to store the callee's contact uri. @@ -869,7 +881,7 @@ modparam("dialog", "from_contact_column", "column_name") modparam("dialog", "to_contact_column", "column_name") ... -5.27. from_sock_column (string) +6.27. from_sock_column (string) The column name in the database to store the information about the local interface receiving the traffic from caller. @@ -881,7 +893,7 @@ modparam("dialog", "to_contact_column", "column_name") modparam("dialog", "from_sock_column", "column_name") ... -5.28. to_sock_column (string) +6.28. to_sock_column (string) The column name in the database to store information about the local interface receiving the traffic from callee. @@ -893,7 +905,7 @@ modparam("dialog", "from_sock_column", "column_name") modparam("dialog", "to_sock_column", "column_name") ... -5.29. h_id_column (string) +6.29. h_id_column (string) The column name in the database to store the dialogs' hash id information. @@ -905,7 +917,7 @@ modparam("dialog", "to_sock_column", "column_name") modparam("dialog", "h_id_column", "hash_id_c_name") ... -5.30. h_entry_column (string) +6.30. h_entry_column (string) The column name in the database to store the dialogs' hash entry information. @@ -917,7 +929,7 @@ modparam("dialog", "h_id_column", "hash_id_c_name") modparam("dialog", "h_entry_column", "h_entry_c_name") ... -5.31. state_column (string) +6.31. state_column (string) The column name in the database to store the dialogs' state information. @@ -929,7 +941,7 @@ modparam("dialog", "h_entry_column", "h_entry_c_name") modparam("dialog", "state_column", "state_c_name") ... -5.32. start_time_column (string) +6.32. start_time_column (string) The column name in the database to store the dialogs' start time information. @@ -941,7 +953,7 @@ modparam("dialog", "state_column", "state_c_name") modparam("dialog", "start_time_column", "start_time_c_name") ... -5.33. timeout_column (string) +6.33. timeout_column (string) The column name in the database to store the dialogs' timeout. @@ -952,7 +964,7 @@ modparam("dialog", "start_time_column", "start_time_c_name") modparam("dialog", "timeout_column", "timeout_c_name") ... -5.34. sflags_column (string) +6.34. sflags_column (string) The column name in the database to store the script flags. @@ -963,7 +975,7 @@ modparam("dialog", "timeout_column", "timeout_c_name") modparam("dialog", "sflags_column", "s_flags") ... -5.35. toroute_column (string) +6.35. toroute_column (string) The column name in the database to store the index of the route to be executed at timeout. @@ -975,7 +987,7 @@ modparam("dialog", "sflags_column", "s_flags") modparam("dialog", "toroute_column", "timeout_route") ... -5.36. vars_table_name (string) +6.36. vars_table_name (string) If you want to store the variables for a dialog in a database a table name must be specified. @@ -987,7 +999,7 @@ modparam("dialog", "toroute_column", "timeout_route") modparam("dialog", "vars_table_name", "my_dialog_vars") ... -5.37. vars_h_id_column (string) +6.37. vars_h_id_column (string) The column name in the database to store the dialogs' hash id information (as a reference to the dialog table). @@ -999,7 +1011,7 @@ modparam("dialog", "vars_table_name", "my_dialog_vars") modparam("dialog", "vars_h_id_column", "vars_h_id_name") ... -5.38. vars_h_entry_column (string) +6.38. vars_h_entry_column (string) The column name in the database to store the dialogs' hash entry information (as a reference to the dialog table). @@ -1011,7 +1023,7 @@ modparam("dialog", "vars_h_id_column", "vars_h_id_name") modparam("dialog", "vars_h_entry_column", "vars_h_entry_name") ... -5.39. vars_key_column (string) +6.39. vars_key_column (string) The column name in the database to store the keys of a variable. @@ -1022,7 +1034,7 @@ modparam("dialog", "vars_h_entry_column", "vars_h_entry_name") modparam("dialog", "vars_key_column", "vars_key_name") ... -5.40. vars_value_column (string) +6.40. vars_value_column (string) The column name in the database to store the keys of a variable. @@ -1033,7 +1045,7 @@ modparam("dialog", "vars_key_column", "vars_key_name") modparam("dialog", "vars_value_column", "vars_value_name") ... -5.41. profiles_with_value (string) +6.41. profiles_with_value (string) List of names for profiles with values. @@ -1044,7 +1056,7 @@ modparam("dialog", "vars_value_column", "vars_value_name") modparam("dialog", "profiles_with_value", "caller ; my_profile") ... -5.42. profiles_no_value (string) +6.42. profiles_no_value (string) List of names for profiles without values. @@ -1055,7 +1067,7 @@ modparam("dialog", "profiles_with_value", "caller ; my_profile") modparam("dialog", "profiles_no_value", "inbound ; outbound") ... -5.43. bridge_controller (string) +6.43. bridge_controller (string) SIP address to be used in From header when initiating a call bridge. @@ -1066,7 +1078,7 @@ modparam("dialog", "profiles_no_value", "inbound ; outbound") modparam("dialog", "bridge_controller", "sip:ctd@kamailio.org") ... -5.44. bridge_contact (string) +6.44. bridge_contact (string) SIP address to be used in Contact header when doing a call bridge. @@ -1077,7 +1089,7 @@ modparam("dialog", "bridge_controller", "sip:ctd@kamailio.org") modparam("dialog", "bridge_contact", "sip:ctd@127.0.0.1:5060") ... -5.45. initial_cbs_inscript (int) +6.45. initial_cbs_inscript (int) If the initial dialog callbacks (i.e., DLGCB_CREATED and DLGCB_SPIRALED) should be executed in-script or post-script. If @@ -1100,7 +1112,7 @@ modparam("dialog", "bridge_contact", "sip:ctd@127.0.0.1:5060") modparam("dialog", "initial_cbs_inscript", 0) ... -5.46. send_bye (int) +6.46. send_bye (int) If set to 1, BYE requests will be sent out for each dialog that timed out. It is an alternative to $dlg_ctx(timeout_bye)=1 for all dialogs. @@ -1112,7 +1124,7 @@ modparam("dialog", "initial_cbs_inscript", 0) modparam("dialog", "send_bye", 1) ... -5.47. wait_ack (int) +6.47. wait_ack (int) If set to 1, dialog will be keept a bit longer in memory in order to absorb the ACK negative replies of initial INVITE. If not, the dialog @@ -1126,7 +1138,7 @@ modparam("dialog", "send_bye", 1) modparam("dialog", "wait_ack", 0) ... -5.48. ka_timer (int) +6.48. ka_timer (int) Keep-alive timer step - how often to execute the callback to send dialog keep alives (SIP OPTIONS requests within dialog). The value @@ -1139,7 +1151,7 @@ modparam("dialog", "wait_ack", 0) modparam("dialog", "ka_timer", 10) ... -5.49. ka_interval (int) +6.49. ka_interval (int) The interval between keep alives within dialog (SIP OPTIONS requests), sent to caller or callee. The keep alive request will be sent by the @@ -1160,7 +1172,7 @@ modparam("dialog", "ka_timer", 10) modparam("dialog", "ka_interval", 300) ... -5.50. timeout_noreset (int) +6.50. timeout_noreset (int) If set to 1, the dialog timeout won't be reset each time a sequential request is processed. It is an alternative to @@ -1173,7 +1185,7 @@ modparam("dialog", "ka_interval", 300) modparam("dialog", "timeout_noreset", 1) ... -5.51. timer_procs (int) +6.51. timer_procs (int) If set to 1, the dialog will run own timer process to execute dialog timeout tasks. @@ -1185,7 +1197,7 @@ modparam("dialog", "timeout_noreset", 1) modparam("dialog", "timer_procs", 1) ... -5.52. track_cseq_updates (int) +6.52. track_cseq_updates (int) Enable the callbacks for tracking if CSeq number needs to be updated. It is the case when the INVITE has to be authenticated to downstream @@ -1202,7 +1214,7 @@ modparam("dialog", "timer_procs", 1) modparam("dialog", "track_cseq_updates", 1) ... -5.53. lreq_callee_headers (string) +6.53. lreq_callee_headers (string) SIP headers to be added when sending local generated requests (e.g., BYE) to callee. It can be useful when you use topoh module with call-id @@ -1215,27 +1227,27 @@ modparam("dialog", "track_cseq_updates", 1) modparam("dialog", "lreq_callee_headers", "TH: dlh\r\n") ... -6. Functions - - 6.1. set_dlg_profile(profile,[value]) - 6.2. unset_dlg_profile(profile,[value]) - 6.3. is_in_profile(profile,[value]) - 6.4. get_profile_size(profile,[value],size) - 6.5. dlg_isflagset(flag) - 6.6. dlg_setflag(flag) - 6.7. dlg_resetflag(flag) - 6.8. dlg_bye(side) - 6.9. dlg_refer(side, address) - 6.10. dlg_manage() - 6.11. dlg_bridge(from, to, op) - 6.12. dlg_get(callid, ftag, ttag) - 6.13. is_known_dlg() - 6.14. dlg_set_timeout(timeout [, h_entry, h_id]) - 6.15. dlg_set_timeout_by_profile(profile, [value], timeout) - 6.16. dlg_set_property(attr) - 6.17. dlg_remote_profile(cmd, profile, value, uid, expires) - -6.1. set_dlg_profile(profile,[value]) +7. Functions + + 7.1. set_dlg_profile(profile,[value]) + 7.2. unset_dlg_profile(profile,[value]) + 7.3. is_in_profile(profile,[value]) + 7.4. get_profile_size(profile,[value],size) + 7.5. dlg_isflagset(flag) + 7.6. dlg_setflag(flag) + 7.7. dlg_resetflag(flag) + 7.8. dlg_bye(side) + 7.9. dlg_refer(side, address) + 7.10. dlg_manage() + 7.11. dlg_bridge(from, to, op) + 7.12. dlg_get(callid, ftag, ttag) + 7.13. is_known_dlg() + 7.14. dlg_set_timeout(timeout [, h_entry, h_id]) + 7.15. dlg_set_timeout_by_profile(profile, [value], timeout) + 7.16. dlg_set_property(attr) + 7.17. dlg_remote_profile(cmd, profile, value, uid, expires) + +7.1. set_dlg_profile(profile,[value]) Inserts the current dialog into a profile. Note that if the profile does not support values, they will be silently discarded. Also, there @@ -1257,7 +1269,7 @@ set_dlg_profile("inbound_call"); set_dlg_profile("caller","$fu"); ... -6.2. unset_dlg_profile(profile,[value]) +7.2. unset_dlg_profile(profile,[value]) Removes the current dialog from a profile. @@ -1276,7 +1288,7 @@ unset_dlg_profile("inbound_call"); unset_dlg_profile("caller","$fu"); ... -6.3. is_in_profile(profile,[value]) +7.3. is_in_profile(profile,[value]) Checks if the current dialog belongs to a profile. If the profile supports values, the check can be reinforced to take into account a @@ -1304,7 +1316,7 @@ if (is_in_profile("caller","XX")) { } ... -6.4. get_profile_size(profile,[value],size) +7.4. get_profile_size(profile,[value],size) Returns the number of dialogs belonging to a profile. If the profile supports values, the check can be reinforced to take into account a @@ -1331,7 +1343,7 @@ if(get_profile_size("caller","$fu","$avp(size)")) xlog("currently, the user $fu has $avp(size) active outgoing calls\n"); ... -6.5. dlg_isflagset(flag) +7.5. dlg_isflagset(flag) Check if the dialog flag is set or not. @@ -1349,7 +1361,7 @@ if(dlg_isflagset("1")) } ... -6.6. dlg_setflag(flag) +7.6. dlg_setflag(flag) Set the dialog flag. @@ -1364,7 +1376,7 @@ if(dlg_isflagset("1")) dlg_setflag("1"); ... -6.7. dlg_resetflag(flag) +7.7. dlg_resetflag(flag) Reset the dialog flag. @@ -1379,7 +1391,7 @@ dlg_setflag("1"); redlg_setflag("1"); ... -6.8. dlg_bye(side) +7.8. dlg_bye(side) Send BYE to both parties of a dialog. @@ -1395,7 +1407,7 @@ redlg_setflag("1"); dlg_bye("all"); ... -6.9. dlg_refer(side, address) +7.9. dlg_refer(side, address) Refer the 'side' to a new SIP 'address'. @@ -1412,7 +1424,7 @@ dlg_bye("all"); dlg_refer("caller", "sip:announcement@kamailio.org"); ... -6.10. dlg_manage() +7.10. dlg_manage() Process current SIP request with dialog module. It is an alternative to setting dialog flag for initial INVITE and Route-parameter-callback @@ -1436,7 +1448,7 @@ route { } ... -6.11. dlg_bridge(from, to, op) +7.11. dlg_bridge(from, to, op) Bridge 'from' SIP address to 'to' SIP address via outbound proxy 'op'. @@ -1454,7 +1466,7 @@ dlg_bridge("sip:user@kamailio.org", "sip:annoucement@kamailio.org", "sip:kamailio.org:5080"); ... -6.12. dlg_get(callid, ftag, ttag) +7.12. dlg_get(callid, ftag, ttag) Search and set current dialog based on Call-ID, From-Tag and To-Tag parameters. @@ -1475,7 +1487,7 @@ if(dlg_get("abcdef", "123", "456")) } ... -6.13. is_known_dlg() +7.13. is_known_dlg() This function checks if the current SIP message being processed belongs to any transaction within an active dialog that the dialog module is @@ -1500,7 +1512,7 @@ if(!uri == myself) { } ... -6.14. dlg_set_timeout(timeout [, h_entry, h_id]) +7.14. dlg_set_timeout(timeout [, h_entry, h_id]) Set the dialog timeout. Dialog timeout will be updated if it was already set. If h_entry and h_id parameters are not provided, the @@ -1523,7 +1535,7 @@ if(dlg_set_timeout("180", "123", "456")) } ... -6.15. dlg_set_timeout_by_profile(profile, [value], timeout) +7.15. dlg_set_timeout_by_profile(profile, [value], timeout) Like dlg_set_timeout(), but simultaneously sets the timeout of all dialogs in a given profile. Can be constrained by profile value. @@ -1545,7 +1557,7 @@ if(dlg_set_timeout("180", "123", "456")) dlg_set_timeout_by_profile("users", "abc123", "3"); ... -6.16. dlg_set_property(attr) +7.16. dlg_set_property(attr) Set a dialog property - an attribute that enable/disable various behaviours (e.g., sending keep alive requests). @@ -1576,7 +1588,7 @@ dlg_set_property("ka-dst"); dlg_set_property("timeout-noreset"); ... -6.17. dlg_remote_profile(cmd, profile, value, uid, expires) +7.17. dlg_remote_profile(cmd, profile, value, uid, expires) Manage remote profile via config file. A remote profile item is considered when the dialog is not managed by this server instance. The @@ -1603,46 +1615,46 @@ $var(exp) = 3600 + $Ts; dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); ... -7. Statistics +8. Statistics - 7.1. active_dialogs - 7.2. early_dialogs - 7.3. processed_dialogs - 7.4. expired_dialogs - 7.5. failed_dialogs + 8.1. active_dialogs + 8.2. early_dialogs + 8.3. processed_dialogs + 8.4. expired_dialogs + 8.5. failed_dialogs -7.1. active_dialogs +8.1. active_dialogs Returns the number of current active dialogs (may be confirmed or not). -7.2. early_dialogs +8.2. early_dialogs Returns the number of early dialogs. -7.3. processed_dialogs +8.3. processed_dialogs Returns the total number of processed dialogs (terminated, expired or active) from the startup. -7.4. expired_dialogs +8.4. expired_dialogs Returns the total number of expired dialogs from the startup. -7.5. failed_dialogs +8.5. failed_dialogs Returns the number of failed dialogs. -8. MI Commands +9. MI Commands - 8.1. dlg_list - 8.2. dlg_list_ctx - 8.3. dlg_end_dlg - 8.4. dlg_terminate_dlg - 8.5. profile_get_size - 8.6. profile_list_dlgs - 8.7. dlg_bridge + 9.1. dlg_list + 9.2. dlg_list_ctx + 9.3. dlg_end_dlg + 9.4. dlg_terminate_dlg + 9.5. profile_get_size + 9.6. profile_list_dlgs + 9.7. dlg_bridge -8.1. dlg_list +9.1. dlg_list Lists the description of a dialog or of all dialogs (calls). If only one dialogs is to be listed, the dialog identifiers are to be passed as @@ -1665,7 +1677,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); abcdrssfrs122444@192.168.1.1 AAdfeEFF33 -8.2. dlg_list_ctx +9.2. dlg_list_ctx The same as the "dlg_list" but including in the dialog description the associated context from modules sitting on top of the dialog module. @@ -1678,7 +1690,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); :dlg_list_ctx:_reply_fifo_file_ _empty_line_ -8.3. dlg_end_dlg +9.3. dlg_end_dlg Terminates a confirmed dialog by sending BYE requests in both directions. @@ -1702,7 +1714,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); 56 _empty_line_ -8.4. dlg_terminate_dlg +9.4. dlg_terminate_dlg Terminates a singe dialog, identified by a Call-ID. @@ -1724,7 +1736,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); abcdrssfrs122444@192.168.1.1 AAdfeEFF33 -8.5. profile_get_size +9.5. profile_get_size Returns the number of dialogs belonging to a profile. If the profile supports values, the check can be reinforced to take into account a @@ -1744,7 +1756,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); inbound_calls _empty_line_ -8.6. profile_list_dlgs +9.6. profile_list_dlgs Lists all the dialogs belonging to a profile. If the profile supports values, the check can be reinforced to take into account a specific @@ -1764,7 +1776,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); inbound_calls _empty_line_ -8.7. dlg_bridge +9.7. dlg_bridge Bridge two SIP addresses in a call using INVITE(hold)-REFER-BYE mechanism. @@ -1783,18 +1795,18 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); op _empty_line_ -9. Exported RPC Functions +10. Exported RPC Functions - 9.1. dlg.list - 9.2. dlg.list_ctx - 9.3. dlg.dlg_list - 9.4. dlg.dlg_list_ctx - 9.5. dlg.end_dlg - 9.6. dlg.profile_get_size - 9.7. dlg.profile_list - 9.8. dlg.bridge_dlg + 10.1. dlg.list + 10.2. dlg.list_ctx + 10.3. dlg.dlg_list + 10.4. dlg.dlg_list_ctx + 10.5. dlg.end_dlg + 10.6. dlg.profile_get_size + 10.7. dlg.profile_list + 10.8. dlg.bridge_dlg -9.1. dlg.list +10.1. dlg.list Lists the description of all dialogs (calls). @@ -1803,7 +1815,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg_list -9.2. dlg.list_ctx +10.2. dlg.list_ctx The same as the "dlg_list" but including in the dialog description the associated context from modules sitting on top of the dialog module. @@ -1813,7 +1825,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg.list_ctx -9.3. dlg.dlg_list +10.3. dlg.dlg_list Lists the description of one dialog. The dialog identifiers are to be passed as parameter (callid and fromtag). @@ -1828,7 +1840,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg.list abcdrssfrs122444@192.168.1.1 AAdfeEFF33 -9.4. dlg.dlg_list_ctx +10.4. dlg.dlg_list_ctx The same as the "dlg.list_ctx" but including in the dialog description the associated context from modules sitting on top of the dialog @@ -1841,7 +1853,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg.list_ctx abcdrssfrs122444@192.168.1.1 AAdfeEFF33 -9.5. dlg.end_dlg +10.5. dlg.end_dlg Terminates an ongoing dialog by sending BYE in both directions. @@ -1859,7 +1871,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg.end_dlg 342 56 -9.6. dlg.profile_get_size +10.6. dlg.profile_get_size Returns the number of dialogs belonging to a profile. If the profile supports values, the check can be reinforced to take into account a @@ -1877,7 +1889,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg.dlg.profile_get_size inbound_calls -9.7. dlg.profile_list +10.7. dlg.profile_list Lists all the dialogs belonging to a profile. If the profile supports values, the check can be reinforced to take into account a specific @@ -1895,7 +1907,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg.profile_list inbound_calls -9.8. dlg.bridge_dlg +10.8. dlg.bridge_dlg Bridge two SIP addresses into a call using INVITE(hold)-REFER-BYE mechanism. @@ -1910,20 +1922,20 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: serctl dlg.list from to op -10. Exported pseudo-variables +11. Exported pseudo-variables - 10.1. $DLG_count - 10.2. $DLG_status - 10.3. $DLG_lifetime - 10.4. $dlg(...) - 10.5. $dlg_ctx(...) - 10.6. $dlg_var(key) + 11.1. $DLG_count + 11.2. $DLG_status + 11.3. $DLG_lifetime + 11.4. $dlg(...) + 11.5. $dlg_ctx(...) + 11.6. $dlg_var(key) -10.1. $DLG_count +11.1. $DLG_count Returns the number of current active dialogs (may be confirmed or not). -10.2. $DLG_status +11.2. $DLG_status Returns the status of the dialog corresponding to the processed sequential request. This PV will be available only for sequential @@ -1935,7 +1947,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); * 4 - Confirmed by a final reply and ACK received. * 5 - Dialog ended. -10.3. $DLG_lifetime +11.3. $DLG_lifetime Returns the duration (in seconds) of the dialog corresponding to the processed sequential request. The duration is calculated from the @@ -1944,15 +1956,15 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); NULL will be returned if there is no dialog for the request. -10.4. $dlg(...) +11.4. $dlg(...) Access to dialog attributes. -10.5. $dlg_ctx(...) +11.5. $dlg_ctx(...) Access to dialog context attributes. -10.6. $dlg_var(key) +11.6. $dlg_var(key) This is a read/write variable that can be used to store custom values assigned with a dialog (e.g. the URI of a billing-server, an assigned @@ -1961,21 +1973,21 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); Note: You will receive "NULL", if there is no dialog for this request. -11. Event Routes +12. Event Routes - 11.1. event_route[dialog:start] - 11.2. event_route[dialog:end] - 11.3. event_route[dialog:failed] + 12.1. event_route[dialog:start] + 12.2. event_route[dialog:end] + 12.3. event_route[dialog:failed] -11.1. event_route[dialog:start] +12.1. event_route[dialog:start] Executed when 200OK for INVITE is processed. -11.2. event_route[dialog:end] +12.2. event_route[dialog:end] Executed when BYE is processed or dialog timed out. -11.3. event_route[dialog:failed] +12.3. event_route[dialog:failed] Executed when dialog is not completed (+300 reply to INVITE). diff --git a/modules/dialog/doc/dialog_admin.xml b/modules/dialog/doc/dialog_admin.xml index b8fb5bb9f8f..e5ff763145a 100644 --- a/modules/dialog/doc/dialog_admin.xml +++ b/modules/dialog/doc/dialog_admin.xml @@ -57,6 +57,30 @@ dialog timeout is reset each time a sequential request is processed. +
+ Dialog states + + Dialogs have states that are shown in the RPC interface as well as stored + in the database. + + + + 1 : Unconfirmed dialog + + + 2 : Early dialog (ringing) + + + 3 : Confirmed dialog (waiting for ACK) + + + 4 : Confirmed dialog (active call) + + + 5 : Deleted dialog + + +
Dialog profiling