From d412742795d67eb40c8c20ad5f96ba628e379305 Mon Sep 17 00:00:00 2001 From: Liviu Chircu Date: Wed, 5 Jul 2017 16:25:53 +0300 Subject: [PATCH] dialog: Update FAQ regarding issue #938 "The 2.2 dialog does not support simultaneous use of dialog and profile replication" --- modules/dialog/README | 157 +++++++++++++++++------------- modules/dialog/doc/dialog_faq.xml | 31 ++++++ 2 files changed, 118 insertions(+), 70 deletions(-) diff --git a/modules/dialog/README b/modules/dialog/README index 79144033c85..6c32d828e58 100644 --- a/modules/dialog/README +++ b/modules/dialog/README @@ -8,7 +8,7 @@ Bogdan-Andrei Iancu Vladut-Stefan Paiu - Copyright © 2006-2009 Voice Sistem SRL + Copyright © 2006-2009 Voice Sistem SRL Revision History Revision $Revision: 8771 $ $Date$ __________________________________________________________ @@ -248,11 +248,11 @@ Chapter 1. Admin Guide To create the dialog associated to an initial request, you must call the create_dialog() function, with or without parameter.. - 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 1.6.5, - "default_timeout (integer)") and custom timeout (see - "$DLG_timeout" - Section 1.10.8, "$DLG_timeout"). + 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 1.6.5, + “default_timeout (integer)”) and custom timeout (see + “$DLG_timeout” - Section 1.10.8, “$DLG_timeout”). 1.3. Dialog profiling @@ -337,7 +337,7 @@ Chapter 1. Admin Guide dialog processing. Set it to zero to disable or to non-zero to enable it. - Default value is "1 (enabled)". + Default value is “1 (enabled)”. Example 1.1. Set enable_stats parameter ... @@ -356,7 +356,7 @@ modparam("dialog", "enable_stats", 0) modify the hash_size you must delete all table's rows before restarting OpenSIPS. - Default value is "4096". + Default value is “4096”. Example 1.2. Set hash_size parameter ... @@ -371,7 +371,7 @@ modparam("dialog", "hash_size", 1024) provided as the base 2 logarithm(e.g. log_profile_hash_size =4 means the table has 2^4 entries). - Default value is "4". + Default value is “4”. Example 1.3. Set hash_size parameter ... @@ -384,7 +384,7 @@ modparam("dialog", "log_profile_hash_size", 5) #set a table size of 32 cookie. It is used for fast dialog matching of the sequential requests. - Default value is "did". + Default value is “did”. Example 1.4. Set rr_param parameter ... @@ -396,7 +396,7 @@ modparam("dialog", "rr_param", "xyz") The default dialog timeout (in seconds) if no custom one is set. - Default value is "43200 (12 hours)". + Default value is “43200 (12 hours)”. Example 1.5. Set default_timeout parameter ... @@ -409,7 +409,7 @@ modparam("dialog", "default_timeout", 21600) to be added in the requests generated by the module (like BYEs). - Default value is "NULL". + Default value is “NULL”. Example 1.6. Set dlf_extra_hdrs parameter ... @@ -430,7 +430,7 @@ modparam("dialog", "dlg_extra_hdrs", "Hint: credit expired\r\n") * 2 - DID_NONE - the match is done exclusively based on SIP elements; no DID information is added in RR. - Default value is "0 (DID_ONLY)". + Default value is “0 (DID_ONLY)”. Example 1.7. Set dlg_match_mode parameter ... @@ -443,7 +443,7 @@ modparam("dialog", "dlg_match_mode", 1) database a database url must be specified. Default value is - "mysql://opensips:opensipsrw@localhost/opensips". + “mysql://opensips:opensipsrw@localhost/opensips”. Example 1.8. Set db_url parameter ... @@ -465,7 +465,7 @@ modparam("dialog", "db_url", "dbdriver://username:password@dbhost/dbname * 3 - SHUTDOWN - the dialog information will be flushed into DB only at shutdown - no runtime updates. - Default value is "0". + Default value is “0”. Example 1.9. Set db_mode parameter ... @@ -479,7 +479,7 @@ modparam("dialog", "db_mode", 1) too short interval will generate intensive database operations, a too large one will not notice short dialogs. - Default value is "60". + Default value is “60”. Example 1.10. Set db_update_period parameter ... @@ -491,7 +491,7 @@ modparam("dialog", "db_update_period", 120) The interval (seconds) at which OpenSIPS will generate in-dialog OPTIONS pings for dialogs. - Default value is "30". + Default value is “30”. Example 1.11. Set options_ping_interval parameter ... @@ -503,7 +503,7 @@ modparam("dialog", "options_ping_interval", 20) The interval (seconds) at which OpenSIPS will generate in-dialog Re-INVITE pings for dialogs. - Default value is "300". + Default value is “300”. Example 1.12. Set reinvite_ping_interval parameter ... @@ -515,7 +515,7 @@ modparam("dialog", "reinvite_ping_interval", 600) If you want to store the information about the dialogs in a database a table name must be specified. - Default value is "dialog". + Default value is “dialog”. Example 1.13. Set table_name parameter ... @@ -526,7 +526,7 @@ modparam("dialog", "table_name", "my_dialog") The column's name in the database to store the dialogs' callid. - Default value is "callid". + Default value is “callid”. Example 1.14. Set call_id_column parameter ... @@ -538,7 +538,7 @@ modparam("dialog", "call_id_column", "callid_c_name") The column's name in the database to store the caller's sip address. - Default value is "from_uri". + Default value is “from_uri”. Example 1.15. Set from_uri_column parameter ... @@ -550,7 +550,7 @@ modparam("dialog", "from_uri_column", "from_uri_c_name") The column's name in the database to store the From tag from the Invite request. - Default value is "from_tag". + Default value is “from_tag”. Example 1.16. Set from_tag_column parameter ... @@ -562,7 +562,7 @@ modparam("dialog", "from_tag_column", "from_tag_c_name") The column's name in the database to store the calee's sip address. - Default value is "to_uri". + Default value is “to_uri”. Example 1.17. Set to_uri_column parameter ... @@ -574,7 +574,7 @@ modparam("dialog", "to_uri_column", "to_uri_c_name") The column's name in the database to store the To tag from the 200 OK response to the Invite request, if present. - Default value is "to_tag". + Default value is “to_tag”. Example 1.18. Set to_tag_column parameter ... @@ -586,7 +586,7 @@ modparam("dialog", "to_tag_column", "to_tag_c_name") The column's name in the database to store the cseq from caller side. - Default value is "caller_cseq". + Default value is “caller_cseq”. Example 1.19. Set from_cseq_column parameter ... @@ -598,7 +598,7 @@ modparam("dialog", "from_cseq_column", "from_cseq_c_name") The column's name in the database to store the cseq from callee side. - Default value is "callee_cseq". + Default value is “callee_cseq”. Example 1.20. Set to_cseq_column parameter ... @@ -610,7 +610,7 @@ modparam("dialog", "to_cseq_column", "to_cseq_c_name") The column's name in the database to store the route records from caller side (proxy to caller). - Default value is "caller_route_set". + Default value is “caller_route_set”. Example 1.21. Set from_route_column parameter ... @@ -622,7 +622,7 @@ modparam("dialog", "from_route_column", "from_route_c_name") The column's name in the database to store the route records from callee side (proxy to callee). - Default value is "callee_route_set". + Default value is “callee_route_set”. Example 1.22. Set to_route_column parameter ... @@ -634,7 +634,7 @@ modparam("dialog", "to_route_column", "to_route_c_name") The column's name in the database to store the caller's contact uri. - Default value is "caller_contact". + Default value is “caller_contact”. Example 1.23. Set from_contact_column parameter ... @@ -646,7 +646,7 @@ modparam("dialog", "from_contact_column", "from_contact_c_name") The column's name in the database to store the callee's contact uri. - Default value is "callee_contact". + Default value is “callee_contact”. Example 1.24. Set to_contact_column parameter ... @@ -658,7 +658,7 @@ modparam("dialog", "to_contact_column", "to_contact_c_name") The column's name in the database to store the information about the local interface receiving the traffic from caller. - Default value is "caller_sock". + Default value is “caller_sock”. Example 1.25. Set from_sock_column parameter ... @@ -670,7 +670,7 @@ modparam("dialog", "from_sock_column", "from_sock_c_name") The column's name in the database to store information about the local interface receiving the traffic from callee. - Default value is "callee_sock". + Default value is “callee_sock”. Example 1.26. Set to_sock_column parameter ... @@ -682,7 +682,7 @@ modparam("dialog", "to_sock_column", "to_sock_c_name") The column's name in the database to store the dialogs' id information. - Default value is "hash_id". + Default value is “hash_id”. Example 1.27. Set dlg_id_column parameter ... @@ -694,7 +694,7 @@ modparam("dialog", "dlg_id_column", "dlg_id_c_name") The column's name in the database to store the dialogs' state information. - Default value is "state". + Default value is “state”. Example 1.28. Set state_column parameter ... @@ -706,7 +706,7 @@ modparam("dialog", "state_column", "state_c_name") The column's name in the database to store the dialogs' start time information. - Default value is "start_time". + Default value is “start_time”. Example 1.29. Set start_time_column parameter ... @@ -718,7 +718,7 @@ modparam("dialog", "start_time_column", "start_time_c_name") The column's name in the database to store the dialogs' timeout. - Default value is "timeout". + Default value is “timeout”. Example 1.30. Set timeout_column parameter ... @@ -730,7 +730,7 @@ modparam("dialog", "timeout_column", "timeout_c_name") The column's name in the database to store the dialogs' profiles. - Default value is "profiles". + Default value is “profiles”. Example 1.31. Set profiles_column parameter ... @@ -741,7 +741,7 @@ modparam("dialog", "profiles_column", "profiles_c_name") The column's name in the database to store the dialogs' vars. - Default value is "vars". + Default value is “vars”. Example 1.32. Set vars_column parameter ... @@ -753,7 +753,7 @@ modparam("dialog", "vars_column", "vars_c_name") The column's name in the database to store the dialogs' script flags. - Default value is "script_flags". + Default value is “script_flags”. Example 1.33. Set sflags_column parameter ... @@ -765,7 +765,7 @@ modparam("dialog", "sflags_column", "sflags_c_name") The column's name in the database to store the dialogs' module flags. - Default value is "module_flags". + Default value is “module_flags”. Example 1.34. Set mflags_column parameter ... @@ -776,7 +776,7 @@ modparam("dialog", "mflags_column", "mflags_c_name") The column's name in the database to store the dialogs' flags. - Default value is "flags". + Default value is “flags”. Example 1.35. Set flags_column parameter ... @@ -789,7 +789,7 @@ modparam("dialog", "flags_column", "flags_c_name") replicating dialogs over the bin interface. Before, all of them were replicated. - Default value is "empty". + Default value is “empty”. Example 1.36. Set profiles_with_value parameter ... @@ -803,7 +803,7 @@ modparam("dialog", "profiles_with_value", "caller ; my_profile; share/s; replicating dialogs over the bin interface. Before, all of them were replicated. - Default value is "empty". + Default value is “empty”. Example 1.37. Set profiles_no_value parameter ... @@ -817,7 +817,7 @@ repl/b;") along with other dialog state information (see db_mode 1 and 2). - Default value is "empty". + Default value is “empty”. Example 1.38. Set db_flush_vals_profiles parameter ... @@ -829,7 +829,7 @@ modparam("dialog", "db_flush_vals_profiles", 1) The number of dialogs that should be attempted to be deleted at the same time ( a single query ) from the DB back-end. - Default value is "1". + Default value is “1”. Example 1.39. Set timer_bulk_del_no parameter ... @@ -841,7 +841,7 @@ modparam("dialog", "timer_bulk_del_no", 10) Enables distributed dialog profiles and specifies the backend that should be used by the CacheDB interface. - Default value is "empty". + Default value is “empty”. Example 1.40. Set cachedb_url parameter ... @@ -854,7 +854,7 @@ modparam("dialog", "cachedb_url", "redis://127.0.0.1:6379") value when they are inserted into CacheDB backed. This is only used when distributed profiles are enabled. - Default value is "dlg_val_". + Default value is “dlg_val_”. Example 1.41. Set profile_value_prefix parameter ... @@ -867,7 +867,7 @@ modparam("dialog", "profile_value_prefix", "dlgv_") value when they are inserted into CacheDB backed. This is only used when distributed profiles are enabled. - Default value is "dlg_noval_". + Default value is “dlg_noval_”. Example 1.42. Set profile_no_value_prefix parameter ... @@ -880,7 +880,7 @@ modparam("dialog", "profile_no_value_prefix", "dlgnv_") the profiles with value size in CacheDB backed. This is only used when distributed profiles are enabled. - Default value is "dlg_size_". + Default value is “dlg_size_”. Example 1.43. Set profile_size_prefix parameter ... @@ -893,7 +893,7 @@ modparam("dialog", "profile_size_prefix", "dlgs_") CacheDB until it expires. This is only used when distributed profiles are enabled. - Default value is "86400". + Default value is “86400”. Example 1.44. Set profile_timeout parameter ... @@ -920,7 +920,7 @@ modparam("dialog", "accept_replicated_dialogs", 1) dialog-related events (creation, updating and deletion) over TCP, using the Binary Internal Interface. - Default value is "0" (no replication destinations). + Default value is “0” (no replication destinations). Example 1.46. Set replicate_dialogs_to parameter ... @@ -948,7 +948,7 @@ modparam("dialog", "accept_replicated_profiles", 1) dialog-related events (creation, updating and deletion) over TCP, using the Binary Internal Interface. - Default value is "0" (no replication destinations). + Default value is “0” (no replication destinations). Example 1.48. Set replicate_profiles_to parameter ... @@ -959,7 +959,7 @@ modparam("dialog", "replicate_profiles_to", 1) The time between two succesive incoming packets. - Default value is "10". + Default value is “10”. Example 1.49. Set accept_replicated_profile_timeout parameter ... @@ -970,7 +970,7 @@ modparam("dialog", "accept_replicated_profile_timeout", 30) Authentication check for incoming packets. - Default value is "0" (disabled). + Default value is “0” (disabled). Example 1.50. Set auth_check parameter ... @@ -1533,7 +1533,7 @@ $var(account) = $dlg_val(account_type); 1.9.2. dlg_list_ctx - The same as the "dlg_list" but including in the dialog + The same as the “dlg_list” but including in the dialog description the associated context from modules sitting on top of the dialog module. This function also prints the dialog's values. In case of binary values, the non-printable chars are @@ -1541,7 +1541,7 @@ $var(account) = $dlg_val(account_type); Name: dlg_list_ctx - Parameters: see "dlg_list" + Parameters: see “dlg_list” MI FIFO Command Format: :dlg_list_ctx:_reply_fifo_file_ @@ -1855,53 +1855,70 @@ Chapter 2. Developer Guide command is invoked - it's a per dialog type. + DLGCB_DESTROY * dialog_cb cb - callback function to be called. Prototype - is: "void (dialog_cb) (struct dlg_cell* dlg, int type, - struct dlg_cb_params * params); " + is: “void (dialog_cb) (struct dlg_cell* dlg, int type, + struct dlg_cb_params * params); ” * void *param - parameter to be passed to the callback function. * param_free callback_param_free - callback function to be - called to free the param. Prototype is: "void - (param_free_cb) (void *param);" + called to free the param. Prototype is: “void + (param_free_cb) (void *param);” Chapter 3. Frequently Asked Questions 3.1. - What happened with "topology_hiding()" function? + Can I define both the replicate_dialogs_to and + replicate_profiles_to module parameters? + + No! This is a known design issue of the OpenSIPS 2.2 clusterer + module. If you really need this feature (see below), then you + should upgrade to a 2.3+ OpenSIPS, where this is taken care of. + + 3.2. + + Does dialog replication also update the profile values for the + receiving servers? + + Yes! In other words: "when replicating to the same cluster, + dialog replication is inclusive of profile replication". + + 3.3. + + What happened with “topology_hiding()” function? The respective functionality was moved into the topology_hiding module. Function prototype has remained the same. - 3.2. + 3.4. - What happened with "use_tight_match" parameter? + What happened with “use_tight_match” parameter? The parameter was removed with version 1.3 as the option of tight matching became mandatory and not configurable. Now, the tight matching is done all the time (when using DID matching). - 3.3. + 3.5. - What happened with "bye_on_timeout_flag" parameter? + What happened with “bye_on_timeout_flag” parameter? The parameter was removed in a dialog module parameter restructuring. To keep the bye on timeout behavior, you need to provide a "B" string parameter to the create_dialog() function. - 3.4. + 3.6. - What happened with "dlg_flag" parameter? + What happened with “dlg_flag” parameter? The parameter is considered obsolete. The only way to create a dialog is to call the create_dialog() function - 3.5. + 3.7. Where can I find more about OpenSIPS? Take a look at http://www.opensips.org/. - 3.6. + 3.8. Where can I post a question about this module? @@ -1919,7 +1936,7 @@ Chapter 3. Frequently Asked Questions If you want to keep the mail private, send it to . - 3.7. + 3.9. How can I report a bug? diff --git a/modules/dialog/doc/dialog_faq.xml b/modules/dialog/doc/dialog_faq.xml index 92b709861f1..f0b1a2ec5bf 100644 --- a/modules/dialog/doc/dialog_faq.xml +++ b/modules/dialog/doc/dialog_faq.xml @@ -4,6 +4,37 @@ &faqguide; + + + Can I define both the + replicate_dialogs_to and + replicate_profiles_to + module parameters? + + + + + No! This is a known design issue of + the OpenSIPS 2.2 clusterer module. If you really need this feature + (see below), then you should upgrade to a 2.3+ OpenSIPS, where this + is taken care of. + + + + + + Does dialog replication also update the profile values for the + receiving servers? + + + + + Yes! In other words: + "when replicating to the same cluster, dialog replication is + inclusive of profile replication". + + + What happened with topology_hiding()