Patches item #2826542, was opened at 2009-07-24 15:27
Message generated for change (Comment added) made by miconda
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743022&aid=2826542&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: ver 1.5.x
>Status: Closed
>Resolution: Accepted
Priority: 5
Private: No
Submitted By: Alex Hermann (axlh)
>Assigned to: Daniel-Constantin Mierla (miconda)
Summary: Add id parameter to pua_mi's send_publish
Initial Comment:
When using presence with dialog-info, one needs to be able to specify an id, otherwise presentity from different calls for the same presentity-uri will overwrite each other. This patch makes it possible to specify an 'id' in the MI interface for send_publish. Unfortunately it breaks backward compatibility but it's the only way to use dialog-info with MI without having to manually store a the state of the ETag in the proxy.
----------------------------------------------------------------------
>Comment By: Daniel-Constantin Mierla (miconda)
Date: 2010-03-17 21:37
Message:
Patch applied in GIT devel version.
----------------------------------------------------------------------
Comment By: Alex Hermann (axlh)
Date: 2010-03-02 12:05
Message:
I don't think changing the API in a stable release is appropriate. So, no,
I didn't commit it to 1.5. It might apply to git master too, but I haven't
had time to use/evaluate SR yet and I don't feel comfortable with
committing without testing.
----------------------------------------------------------------------
Comment By: Daniel-Constantin Mierla (miconda)
Date: 2010-03-01 21:02
Message:
Just saw this one again. Alex, did you commit it?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743022&aid=2826542&group_…
Module: sip-router
Branch: master
Commit: 8b7f0d9c8a79e5d2d5e7acd193a1ddace84a4a0b
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=8b7f0d9…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Wed Mar 17 20:32:40 2010 +0100
pua_mi: id parameter introduced in mi pua_publish
- the parameter is before etag
- required to refer to same call for dialog-info
- patch by Alex Hermann (SF#2826542)
---
modules_k/pua_mi/README | 122 +++++++++++++++++++-------------
modules_k/pua_mi/doc/pua_mi_admin.xml | 13 ++++
modules_k/pua_mi/mi_func.c | 21 ++++++-
3 files changed, 105 insertions(+), 51 deletions(-)
diff --git a/modules_k/pua_mi/README b/modules_k/pua_mi/README
index 487b3d0..ecbc6ca 100644
--- a/modules_k/pua_mi/README
+++ b/modules_k/pua_mi/README
@@ -14,27 +14,26 @@ Juha Heinanen
Copyright � 2006 voice-system.ro
Revision History
- Revision $Revision$ $Date: 2008-08-06 12:08:33 +0200
- (Mi, 06 Aug 2008) $
- __________________________________________________________
+ Revision $Revision$ $Date$
+ __________________________________________________________________
Table of Contents
1. Admin Guide
- 1.1. Overview
- 1.2. Dependencies
+ 1. Overview
+ 2. Dependencies
- 1.2.1. Kamailio Modules
- 1.2.2. External Libraries or Applications
+ 2.1. Kamailio Modules
+ 2.2. External Libraries or Applications
- 1.3. Exported Parameters
- 1.4. Exported Functions
- 1.5. Exported MI functions
+ 3. Exported Parameters
+ 4. Exported Functions
+ 5. Exported MI functions
- 1.5.1. pua_publish
+ 5.1. pua_publish
- 1.6. pua_subscribe
+ 6. pua_subscribe
List of Examples
@@ -42,44 +41,63 @@ Juha Heinanen
Chapter 1. Admin Guide
-1.1. Overview
+ Table of Contents
+
+ 1. Overview
+ 2. Dependencies
+
+ 2.1. Kamailio Modules
+ 2.2. External Libraries or Applications
+
+ 3. Exported Parameters
+ 4. Exported Functions
+ 5. Exported MI functions
+
+ 5.1. pua_publish
+
+ 6. pua_subscribe
- The pua_mi offers the possibility to publish presence
- information and subscribe to presence information via MI
- transports.
+1. Overview
- Using this module you can create independent
- applications/scripts to publish not sip-related information
- (e.g., system resources like CPU-usage, memory, number of
- active subscribers ...). Also, this module allows non-SIP
- speaking applications to subscribe presence information kept in
- a SIP presence server.
+ The pua_mi offers the possibility to publish presence information and
+ subscribe to presence information via MI transports.
-1.2. Dependencies
+ Using this module you can create independent applications/scripts to
+ publish not sip-related information (e.g., system resources like
+ CPU-usage, memory, number of active subscribers ...). Also, this module
+ allows non-SIP speaking applications to subscribe presence information
+ kept in a SIP presence server.
-1.2.1. Kamailio Modules
+2. Dependencies
+
+ 2.1. Kamailio Modules
+ 2.2. External Libraries or Applications
+
+2.1. Kamailio Modules
The following modules must be loaded before this module:
* pua
-1.2.2. External Libraries or Applications
+2.2. External Libraries or Applications
- The following libraries or applications must be installed
- before running Kamailio with this module loaded:
+ The following libraries or applications must be installed before
+ running Kamailio with this module loaded:
* none
-1.3. Exported Parameters
+3. Exported Parameters
* none
-1.4. Exported Functions
+4. Exported Functions
+
+ The module does not export functions to be used in configuration
+ script.
- The module does not export functions to be used in
- configuration script.
+5. Exported MI functions
-1.5. Exported MI functions
+ 5.1. pua_publish
-1.5.1. pua_publish
+5.1. pua_publish
Command parameters:
* presentity_uri - e.g. sip:system@kamailio.org
@@ -88,13 +106,18 @@ Chapter 1. Admin Guide
information (e.g. presence).
* content type - Content type of published information (e.g.
application/pidf+xml) or . if no information is enclosed.
- * ETag - ETag that publish should match or . if no ETag is
- given.
- * extra_headers - Extra headers added to PUBLISH request or .
- if no extra headers.
+ * id - id for a series of related PUBLISHes to the same
+ presentity-uri or . to always use the same series. For example
+ dialog-info must reuse the same id for the same call otherwise
+ status will be lost when multiple parallel calls to/from the same
+ user take place. The dialog-id from the dialog-info body qualifies
+ as a suitable id here.
+ * ETag - ETag that publish should match or . if no ETag is given.
+ * extra_headers - Extra headers added to PUBLISH request or . if no
+ extra headers.
* body - The body of the publish request containing published
- information or missing if no published information. It has
- to be a single line for FIFO transport.
+ information or missing if no published information. It has to be a
+ single line for FIFO transport.
Example 1.1. pua_publish FIFO example
...
@@ -106,20 +129,19 @@ presence
application/pidf+xml
.
.
-<?xml version='1.0'?><presence xmlns='urn:ietf:params:xml:ns:pidf' xmlns
-:dm='urn:ietf:params:xml:ns:pidf:data-model' xmlns:rpid='urn:ietf:params
-:xml:ns:pidf:rpid' xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' entity='s
-ystem(a)kamailio.org'><tuple id='0x81475a0'><status><basic>open</basic></s
-tatus></tuple><dm:person id='pdd748945'><rpid:activities><rpid:away/>awa
-y</rpid:activities><dm:note>CPU:16 MEM:476</dm:note></dm:person></presen
-ce>
-
+.
+<?xml version='1.0'?><presence xmlns='urn:ietf:params:xml:ns:pidf' xmlns:dm='urn
+:ietf:params:xml:ns:pidf:data-model' xmlns:rpid='urn:ietf:params:xml:ns:pidf:rpi
+d' xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' entity='system(a)kamailio.org'><tup
+le id='0x81475a0'><status><basic>open</basic></status></tuple><dm:person id='pdd
+748945'><rpid:activities><rpid:away/>away</rpid:activities><dm:note>CPU:16 MEM:4
+76</dm:note></dm:person></presence>
-1.6. pua_subscribe
+6. pua_subscribe
Command parameters:
* presentity_uri - e.g. sip:presentity@kamailio.org
* watcher_uri - e.g. sip:watcher@kamailio.org
* event package
- * expires - Relative time in seconds for the desired validity
- of the subscription.
+ * expires - Relative time in seconds for the desired validity of the
+ subscription.
diff --git a/modules_k/pua_mi/doc/pua_mi_admin.xml b/modules_k/pua_mi/doc/pua_mi_admin.xml
index 8602c49..5f332b8 100644
--- a/modules_k/pua_mi/doc/pua_mi_admin.xml
+++ b/modules_k/pua_mi/doc/pua_mi_admin.xml
@@ -120,6 +120,18 @@
</listitem>
<listitem>
<para>
+ <emphasis>id</emphasis>
+ - id for a series of related PUBLISHes to the same
+ presentity-uri or . to always use the same series.
+ For example dialog-info must reuse the same id for the
+ same call otherwise status will be lost when multiple
+ parallel calls to/from the same user take place. The
+ dialog-id from the dialog-info body qualifies as a suitable
+ id here.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
<emphasis>ETag</emphasis>
- ETag that publish should
match or . if no ETag is given.
@@ -154,6 +166,7 @@ presence
application/pidf+xml
.
.
+.
<?xml version='1.0'?><presence xmlns='urn:ietf:params:xml:ns:pidf' xmlns:dm='urn:ietf:params:xml:ns:pidf:data-model' xmlns:rpid='urn:ietf:params:xml:ns:pidf:rpid' xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' entity='system(a)kamailio.org'><tuple id='0x81475a0'><status><basic>open</basic></status></tuple><dm:person id='pdd748945'><rpid:activities><rpid:away/>away</rpid:activities><dm:note>CPU:16 MEM:476</dm:note></dm:person></presence>
]]>
</programlisting>
diff --git a/modules_k/pua_mi/mi_func.c b/modules_k/pua_mi/mi_func.c
index b8089aa..fe3fa3a 100644
--- a/modules_k/pua_mi/mi_func.c
+++ b/modules_k/pua_mi/mi_func.c
@@ -58,6 +58,7 @@ struct mi_root* mi_pua_publish(struct mi_root* cmd, void* param)
publ_info_t publ;
str event;
str content_type;
+ str id;
str etag;
str extra_headers;
int result;
@@ -142,6 +143,19 @@ struct mi_root* mi_pua_publish(struct mi_root* cmd, void* param)
if(node == NULL)
return 0;
+ /* Get id */
+ id= node->value;
+ if(id.s== NULL || id.len== 0)
+ {
+ LM_ERR("empty id parameter\n");
+ return init_mi_tree(400, "Empty id parameter", 20);
+ }
+ LM_DBG("id '%.*s'\n", id.len, id.s);
+
+ node = node->next;
+ if(node == NULL)
+ return 0;
+
/* Get etag */
etag= node->value;
if(etag.s== NULL || etag.len== 0)
@@ -213,7 +227,12 @@ struct mi_root* mi_pua_publish(struct mi_root* cmd, void* param)
{
publ.content_type= content_type;
}
-
+
+ if(! (id.len== 1 && id.s[0]== '.'))
+ {
+ publ.id= id;
+ }
+
if(! (etag.len== 1 && etag.s[0]== '.'))
{
publ.etag= &etag;
Module: sip-router
Branch: sr_3.0
Commit: 56ca5cb4c864b024c124dc21e225a95cc5cead3f
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=56ca5cb…
Author: Henning Westerholt <henning.westerholt(a)1und1.de>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Wed Feb 24 17:04:54 2010 +0100
userblacklist(k): short term fix in the docs for redundant table definition
(cherry picked from commit 2372a7d5039a72f9cdb6b8bb7acb8a5ae2cb5c5f)
---
modules_k/userblacklist/README | 4 +++-
modules_k/userblacklist/doc/userblacklist_db.xml | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/modules_k/userblacklist/README b/modules_k/userblacklist/README
index c771760..5e0c242 100644
--- a/modules_k/userblacklist/README
+++ b/modules_k/userblacklist/README
@@ -399,7 +399,9 @@ modparam("userblacklist", "userblacklist_whitelist_col", "whitelist")
8. globalblacklist_table (String)
- Name of the globalblacklist table for the userblacklist module.
+ Name of the globalblacklist table for the userblacklist module. Please
+ not that this table is currently ignored, the table needs to be given
+ as a parameter for the check_blacklist function.
Default value is "globalblacklist".
diff --git a/modules_k/userblacklist/doc/userblacklist_db.xml b/modules_k/userblacklist/doc/userblacklist_db.xml
index f4d2585..5e8df9c 100644
--- a/modules_k/userblacklist/doc/userblacklist_db.xml
+++ b/modules_k/userblacklist/doc/userblacklist_db.xml
@@ -111,7 +111,9 @@ modparam("userblacklist", "userblacklist_whitelist_col", "whitelist")
</section>
<section>
<title><varname>globalblacklist_table</varname> (String)</title>
- <para>Name of the globalblacklist table for the userblacklist module.</para>
+ <para>Name of the globalblacklist table for the userblacklist module.
+ Please not that this table is currently ignored, the table needs to be
+ given as a parameter for the check_blacklist function.</para>
<para>
<emphasis>Default value is <quote>globalblacklist</quote>.</emphasis>
</para>