|
@@ -1,3 +1,4 @@
|
|
|
+
|
|
|
mqueue Module
|
|
|
|
|
|
Elena-Ramona Modroiu
|
|
@@ -18,7 +19,7 @@ Alex Balashov
|
|
|
<[email protected]>
|
|
|
|
|
|
Copyright © 2010 Elena-Ramona Modroiu (asipto.com)
|
|
|
- __________________________________________________________________
|
|
|
+ _________________________________________________________________
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
@@ -36,10 +37,12 @@ Alex Balashov
|
|
|
|
|
|
4. Functions
|
|
|
|
|
|
- 4.1. mq_add(queue, key, value)
|
|
|
- 4.2. mq_fetch(queue)
|
|
|
- 4.3. mq_pv_free(queue)
|
|
|
- 4.4. mq_size(queue)
|
|
|
+ 4.1. mq_add(queue, key, value)
|
|
|
+ 4.2. mq_fetch(queue)
|
|
|
+ 4.3. mq_pv_free(queue)
|
|
|
+ 4.4. mq_size(queue)
|
|
|
+
|
|
|
+ 5. Exported Pseudo-variables
|
|
|
|
|
|
List of Examples
|
|
|
|
|
@@ -65,20 +68,22 @@ Chapter 1. Admin Guide
|
|
|
|
|
|
4. Functions
|
|
|
|
|
|
- 4.1. mq_add(queue, key, value)
|
|
|
- 4.2. mq_fetch(queue)
|
|
|
- 4.3. mq_pv_free(queue)
|
|
|
- 4.4. mq_size(queue)
|
|
|
+ 4.1. mq_add(queue, key, value)
|
|
|
+ 4.2. mq_fetch(queue)
|
|
|
+ 4.3. mq_pv_free(queue)
|
|
|
+ 4.4. mq_size(queue)
|
|
|
+
|
|
|
+ 5. Exported Pseudo-variables
|
|
|
|
|
|
1. Overview
|
|
|
|
|
|
- The mqueue module offers a generic message queue system in shared
|
|
|
- memory for inter-process communication using the config file. One
|
|
|
- example of usage is to send time consuming operations to one or several
|
|
|
- timer processes that consumes items in the queue, without affecting SIP
|
|
|
- message handling in the socket-listening process.
|
|
|
+ The mqueue module offers a generic message queue system in shared
|
|
|
+ memory for inter-process communication using the config file. One
|
|
|
+ example of usage is to send time consuming operations to one or
|
|
|
+ several timer processes that consumes items in the queue, without
|
|
|
+ affecting SIP message handling in the socket-listening process.
|
|
|
|
|
|
- There can be many defined queues. Access to queued values is done via
|
|
|
+ There can be many defined queues. Access to queued values is done via
|
|
|
pseudo variables.
|
|
|
|
|
|
2. Dependencies
|
|
@@ -93,7 +98,7 @@ Chapter 1. Admin Guide
|
|
|
|
|
|
2.2. External Libraries or Applications
|
|
|
|
|
|
- The following libraries or applications must be installed before
|
|
|
+ The following libraries or applications must be installed before
|
|
|
running Kamailio with this module loaded:
|
|
|
* None.
|
|
|
|
|
@@ -105,15 +110,15 @@ Chapter 1. Admin Guide
|
|
|
|
|
|
Definition of a memory queue
|
|
|
|
|
|
- Default value is "none".
|
|
|
+ Default value is "none".
|
|
|
|
|
|
- Value must be a list of parameters: attr=value;... The attribute 'name'
|
|
|
- is mandatory, defining the name of the queue. Optional attribute 'size'
|
|
|
- specifies the maximum number of items in queue, if it is execeeded the
|
|
|
- oldest one is removed.
|
|
|
+ Value must be a list of parameters: attr=value;... The attribute
|
|
|
+ 'name' is mandatory, defining the name of the queue. Optional
|
|
|
+ attribute 'size' specifies the maximum number of items in queue, if it
|
|
|
+ is execeeded the oldest one is removed.
|
|
|
|
|
|
- The parameter can be set many times, each holding the definition of one
|
|
|
- queue.
|
|
|
+ The parameter can be set many times, each holding the definition of
|
|
|
+ one queue.
|
|
|
|
|
|
Example 1.1. Set mqueue parameter
|
|
|
...
|
|
@@ -123,14 +128,14 @@ modparam("mqueue", "mqueue", "name=qaz")
|
|
|
|
|
|
4. Functions
|
|
|
|
|
|
- 4.1. mq_add(queue, key, value)
|
|
|
- 4.2. mq_fetch(queue)
|
|
|
- 4.3. mq_pv_free(queue)
|
|
|
- 4.4. mq_size(queue)
|
|
|
+ 4.1. mq_add(queue, key, value)
|
|
|
+ 4.2. mq_fetch(queue)
|
|
|
+ 4.3. mq_pv_free(queue)
|
|
|
+ 4.4. mq_size(queue)
|
|
|
|
|
|
4.1. mq_add(queue, key, value)
|
|
|
|
|
|
- Add a new item (key, value) in the queue. If max size of queue is
|
|
|
+ Add a new item (key, value) in the queue. If max size of queue is
|
|
|
exceeded, the oldest one is removed.
|
|
|
|
|
|
Example 1.2. mq_add usage
|
|
@@ -140,10 +145,10 @@ mq_add("myq", "$rU", "call from $fU");
|
|
|
|
|
|
4.2. mq_fetch(queue)
|
|
|
|
|
|
- Take oldest item from queue and fill $mqk(queue) and $mqv(queue) pseudo
|
|
|
- variables.
|
|
|
+ Take oldest item from queue and fill $mqk(queue) and $mqv(queue)
|
|
|
+ pseudo variables.
|
|
|
|
|
|
- Return: true on success (1); false on failure (-1) or no item fetched
|
|
|
+ Return: true on success (1); false on failure (-1) or no item fetched
|
|
|
(-2).
|
|
|
|
|
|
Example 1.3. mq_fetch usage
|
|
@@ -173,3 +178,14 @@ mq_pv_free("myq");
|
|
|
$var(q_size) = mq_size("queue");
|
|
|
xlog("L_INFO", "Size of queue is: $var(q_size)\n");
|
|
|
...
|
|
|
+
|
|
|
+5. Exported Pseudo-variables
|
|
|
+
|
|
|
+ * $mqv(mqueue) - the most recent item key fetched from the specified
|
|
|
+ mqueue
|
|
|
+ * $mqv(mqueue) - the most recent item value fetched from the
|
|
|
+ specified mqueue
|
|
|
+ * $mq_size(mqueue) - the size of the specified mqueue
|
|
|
+
|
|
|
+ Exported pseudo-variables are documented at
|
|
|
+ http://www.kamailio.org/wiki/.
|