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:
Module: sip-router
Branch: master
Commit: d5c6185f4369833113e21802baafe18288fb4254
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=d5c6185f4369833113e21802baafe18288fb4254

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>




_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev




www.sipcentric.com

Follow us on twitter @sipcentric

Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered office: Faraday Wharf, Innovation Birmingham Campus, Holt Street, Birmingham Science Park, Birmingham B7 4BB.