Module: sip-router Branch: master Commit: d5c6185f4369833113e21802baafe18288fb4254 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=d5c6185f...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: Fri Aug 22 15:52:12 2014 +0200
dialog: documentation for dlg_remote_profile() config function
---
modules/dialog/README | 31 +++++++++++++++++++++ modules/dialog/doc/dialog_admin.xml | 51 +++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/modules/dialog/README b/modules/dialog/README index aeafc0b..37b2bc4 100644 --- a/modules/dialog/README +++ b/modules/dialog/README @@ -110,6 +110,7 @@ Alex Balashov 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
@@ -233,6 +234,7 @@ Alex Balashov 1.64. dlg_set_timeout usage 1.65. dlg_set_timeout_by_profile usage 1.66. dlg_set_property usage + 1.67. dlg_remote_profile usage
Chapter 1. Admin Guide
@@ -317,6 +319,7 @@ Chapter 1. Admin Guide 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
@@ -1169,6 +1172,7 @@ modparam("dialog", "timer_procs", 1) 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])
@@ -1511,6 +1515,33 @@ dlg_set_property("ka-dst"); dlg_set_property("timeout-noreset"); ...
+6.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 + notification to add/remove can be received via SIP or a RPC command, + the operation can be then triggered from configuration file. This + should allow counting active dialogs in a profile that are managed by + multiple SIP server instances. + + Meaning of the parameters is as follows: + * cmd - the operations to do: add - add an item in profile; rm - + remove an item from profile + * profile - name of profile + * value - value for profile (if no value is needed for that profile, + use an empty string. + * expires - absolute time (unix timestamp) when this profile item + should be removed automatically (time based), if still in the + profile + + This function can be used from ANY_ROUTE. + + Example 1.67. dlg_remote_profile usage +... +$var(exp) = 3600 + $Ts; +dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); +... + 7. Statistics
7.1. active_dialogs diff --git a/modules/dialog/doc/dialog_admin.xml b/modules/dialog/doc/dialog_admin.xml index 1d5506f..3feb5f3 100644 --- a/modules/dialog/doc/dialog_admin.xml +++ b/modules/dialog/doc/dialog_admin.xml @@ -1886,6 +1886,57 @@ dlg_set_property("timeout-noreset"); </example> </section>
+ <section id="dialog.f.dlg_remote_profile"> + <title> + <function moreinfo="none">dlg_remote_profile(cmd, profile, value, uid, expires)</function> + </title> + <para> + Manage remote profile via config file. A remote profile item is considered when + the dialog is not managed by this server instance. The notification to add/remove + can be received via SIP or a RPC command, the operation can be then triggered + from configuration file. This should allow counting active dialogs in a profile + that are managed by multiple SIP server instances. + </para> + <para>Meaning of the parameters is as follows:</para> + <itemizedlist> + <listitem> + <para> + <emphasis>cmd</emphasis> - the operations to do: add - add an item in + profile; rm - remove an item from profile + </para> + </listitem> + <listitem> + <para> + <emphasis>profile</emphasis> - name of profile + </para> + </listitem> + <listitem> + <para> + <emphasis>value</emphasis> - value for profile (if no value is needed + for that profile, use an empty string. + </para> + </listitem> + <listitem> + <para> + <emphasis>expires</emphasis> - absolute time (unix timestamp) when this + profile item should be removed automatically (time based), + if still in the profile + </para> + </listitem> + </itemizedlist> + <para> + This function can be used from ANY_ROUTE. + </para> + <example> + <title><function>dlg_remote_profile</function> usage</title> + <programlisting format="linespecific"> +... +$var(exp) = 3600 + $Ts; +dlg_remote_profile("add", "caller", "test", "$sruid", "$var(exp)"); +... +</programlisting> + </example> + </section> </section>
Hi Daniel,
This is very useful :)
It is also a good use case for dmq_bcast_message() in config.
Do you think it would be worthwhile adding dmq integration to dialog module to enable the notifications to be sent and processed automatically? I'm happy to do it if so.
Regards,
Charles
On 22 August 2014 14:59, Daniel-Constantin Mierla miconda@gmail.com wrote:
Hi Charles,
I am just about to send an rfc email on this topic, as I thought of several options here, dmq being one of them and now is getting higher in the priority list as you committed to code it :-)
Cheers, Daniel
On 22/08/14 16:12, Charles Chance wrote:
Hehe :)
On 22 August 2014 15:15, Daniel-Constantin Mierla miconda@gmail.com wrote: