diff --git a/modules/dialog/README b/modules/dialog/README index 683a4d2e5bd..91521c8e761 100644 --- a/modules/dialog/README +++ b/modules/dialog/README @@ -39,132 +39,133 @@ Olle E. Johansson 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_name_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.terminate_dlg - 9.6. dlg.end_dlg - 9.7. dlg.profile_get_size - 9.8. dlg.profile_list - 9.9. 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_name_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.terminate_dlg + 10.6. dlg.end_dlg + 10.7. dlg.profile_get_size + 10.8. dlg.profile_list + 10.9. 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 @@ -255,132 +256,133 @@ 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_name_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.terminate_dlg - 9.6. dlg.end_dlg - 9.7. dlg.profile_get_size - 9.8. dlg.profile_list - 9.9. 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_name_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.terminate_dlg + 10.6. dlg.end_dlg + 10.7. dlg.profile_get_size + 10.8. dlg.profile_list + 10.9. 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 @@ -410,17 +412,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 @@ -450,81 +462,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_name_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_name_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. @@ -537,7 +549,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 @@ -555,7 +567,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 @@ -568,7 +580,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). @@ -580,7 +592,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 @@ -593,7 +605,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. @@ -605,7 +617,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). @@ -617,7 +629,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 @@ -648,7 +660,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. @@ -665,7 +677,7 @@ modparam("dialog", "dlg_match_mode", 1) modparam("dialog", "detect_spirals", 1) ... -5.10. db_url (string) +6.10. db_url (string) In order to store information about dialogs in a database, a database URL must be specified. @@ -677,7 +689,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): @@ -698,7 +710,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 the server is configured to store the dialog information at a given @@ -713,7 +725,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 @@ -729,7 +741,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 dialog data from the database. @@ -741,7 +753,7 @@ modparam("dialog", "db_fetch_rows", 500) modparam("dialog", "db_skip_load", 1) ... -5.15. table_name (string) +6.15. table_name (string) Database table name used for storing dialog information. @@ -752,7 +764,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 dialog call-id. @@ -763,7 +775,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 (URI). @@ -775,7 +787,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 header tag from the INVITE request. @@ -787,7 +799,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 (URI). @@ -799,7 +811,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 header tag from the 200 OK response to the INVITE request, if present. @@ -811,7 +823,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. @@ -822,7 +834,7 @@ modparam("dialog", "to_tag_column", "to_tag_c_name") modparam("dialog", "from_cseq_column", "from_cseq") ... -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. @@ -833,7 +845,7 @@ modparam("dialog", "from_cseq_column", "from_cseq") modparam("dialog", "to_cseq_column", "to_cseq") ... -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). @@ -845,7 +857,7 @@ modparam("dialog", "to_cseq_column", "to_cseq") modparam("dialog", "from_route_column", "rroute_from") ... -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). @@ -857,7 +869,7 @@ modparam("dialog", "from_route_column", "rroute_from") modparam("dialog", "to_route_column", "rroute_to") ... -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. @@ -868,7 +880,7 @@ modparam("dialog", "to_route_column", "rroute_to") modparam("dialog", "from_contact_column", "from_contact_uri") ... -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. @@ -879,7 +891,7 @@ modparam("dialog", "from_contact_column", "from_contact_uri") modparam("dialog", "to_contact_column", "to_contact_uri") ... -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. @@ -891,7 +903,7 @@ modparam("dialog", "to_contact_column", "to_contact_uri") modparam("dialog", "from_sock_column", "socket_from") ... -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. @@ -903,7 +915,7 @@ modparam("dialog", "from_sock_column", "socket_from") modparam("dialog", "to_sock_column", "socket_to") ... -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. @@ -915,7 +927,7 @@ modparam("dialog", "to_sock_column", "socket_to") 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 dialog's hash entry information. @@ -927,7 +939,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 dialog's state information. @@ -939,7 +951,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 dialog's start time information. @@ -951,7 +963,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 dialog's timeout. @@ -962,7 +974,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 dialog script flags. @@ -973,7 +985,7 @@ modparam("dialog", "timeout_column", "timeout_c_name") modparam("dialog", "sflags_column", "s_flags") ... -5.35. toroute_name_column (string) +6.35. toroute_name_column (string) The column name in the database to store the index of the route to be executed at timeout. @@ -985,7 +997,7 @@ modparam("dialog", "sflags_column", "s_flags") modparam("dialog", "toroute_name_column", "timeout_route") ... -5.36. vars_table_name (string) +6.36. vars_table_name (string) If you want to store the dialog variables ("$dlg_var(name)") for a dialog in a database a table name must be specified. @@ -997,7 +1009,7 @@ modparam("dialog", "toroute_name_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 dialog's hash id information (as a reference to the dialog table). @@ -1009,7 +1021,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 dialog's hash entry information (as a reference to the dialog table). @@ -1021,7 +1033,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 names (keys) of a dialog variable. @@ -1033,7 +1045,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 values of a dialog variable. @@ -1045,7 +1057,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, separated with semi-colon ";". @@ -1056,7 +1068,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, separated with semi-colon ";". @@ -1068,7 +1080,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. @@ -1079,7 +1091,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. @@ -1090,7 +1102,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 @@ -1113,7 +1125,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. @@ -1125,7 +1137,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 @@ -1139,7 +1151,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 @@ -1152,7 +1164,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 @@ -1173,7 +1185,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 @@ -1186,7 +1198,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 module will start a separate dialog timer process to execute dialog timeout tasks. The default is to use the core @@ -1199,7 +1211,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 @@ -1216,7 +1228,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 @@ -1229,27 +1241,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 @@ -1271,7 +1283,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. @@ -1290,7 +1302,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 @@ -1318,7 +1330,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 @@ -1345,7 +1357,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. @@ -1363,7 +1375,7 @@ if(dlg_isflagset("1")) } ... -6.6. dlg_setflag(flag) +7.6. dlg_setflag(flag) Set a dialog flag. @@ -1378,7 +1390,7 @@ if(dlg_isflagset("1")) dlg_setflag("1"); ... -6.7. dlg_resetflag(flag) +7.7. dlg_resetflag(flag) Reset the dialog flag. @@ -1393,7 +1405,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. @@ -1409,7 +1421,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'. @@ -1426,7 +1438,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 @@ -1450,7 +1462,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'. @@ -1468,7 +1480,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. @@ -1489,7 +1501,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 @@ -1514,7 +1526,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 @@ -1537,7 +1549,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. @@ -1559,7 +1571,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). @@ -1590,7 +1602,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 @@ -1617,46 +1629,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 @@ -1679,7 +1691,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. @@ -1692,7 +1704,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. @@ -1716,7 +1728,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. @@ -1738,7 +1750,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 @@ -1758,7 +1770,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 @@ -1778,7 +1790,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. @@ -1797,19 +1809,19 @@ 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.terminate_dlg - 9.6. dlg.end_dlg - 9.7. dlg.profile_get_size - 9.8. dlg.profile_list - 9.9. 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.terminate_dlg + 10.6. dlg.end_dlg + 10.7. dlg.profile_get_size + 10.8. dlg.profile_list + 10.9. dlg.bridge_dlg -9.1. dlg.list +10.1. dlg.list Lists the description of all dialogs (calls). @@ -1818,7 +1830,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd 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. @@ -1828,7 +1840,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd 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). @@ -1843,7 +1855,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd 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 @@ -1856,7 +1868,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd dlg.list_ctx abcdrssfrs122444@192.168.1.1 AAdfeEFF33 -9.5. dlg.terminate_dlg +10.5. dlg.terminate_dlg Terminates an ongoing dialog by sending BYE in both directions, matching the dialog on call-id, from tag and to tag. @@ -1873,7 +1885,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd dlg.dlg_terminate_dlg callid12345 fromtag123 totag123 -9.6. dlg.end_dlg +10.6. dlg.end_dlg Terminates an ongoing dialog by sending BYE in both directions. @@ -1891,7 +1903,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd dlg.end_dlg 342 56 -9.7. dlg.profile_get_size +10.7. 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 @@ -1909,7 +1921,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd dlg.dlg.profile_get_size inbound_calls -9.8. dlg.profile_list +10.8. 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 @@ -1927,7 +1939,7 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd dlg.profile_list inbound_calls -9.9. dlg.bridge_dlg +10.9. dlg.bridge_dlg Bridge two SIP addresses into a call using INVITE(hold)-REFER-BYE mechanism. @@ -1942,20 +1954,20 @@ dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); RPC Command Format: kamcmd 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 @@ -1967,7 +1979,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 @@ -1976,15 +1988,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 @@ -1993,21 +2005,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 6c78aed1d1b..c0e9749ac2b 100644 --- a/modules/dialog/doc/dialog_admin.xml +++ b/modules/dialog/doc/dialog_admin.xml @@ -58,6 +58,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