| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- mqueue Module
- Elena-Ramona Modroiu
- asipto.com
- Edited by
- Elena-Ramona Modroiu
- <[email protected]>
- Copyright © 2010 Elena-Ramona Modroiu (asipto.com)
- __________________________________________________________________
- Table of Contents
- 1. Admin Guide
- 1. Overview
- 2. Dependencies
- 2.1. Kamailio Modules
- 2.2. External Libraries or Applications
- 3. Exported Parameters
- 3.1. mqueue (string)
- 4. Exported Functions
- 4.1. mq_add(queue, key, value)
- 4.2. mq_fetch(queue)
- 4.3. mq_pv_free(queue)
- List of Examples
- 1.1. Set mqueue parameter
- 1.2. mq_add usage
- 1.3. mq_fetch usage
- 1.4. mq_pv_free usage
- Chapter 1. Admin Guide
- Table of Contents
- 1. Overview
- 2. Dependencies
- 2.1. Kamailio Modules
- 2.2. External Libraries or Applications
- 3. Exported Parameters
- 3.1. mqueue (string)
- 4. Exported Functions
- 4.1. mq_add(queue, key, value)
- 4.2. mq_fetch(queue)
- 4.3. mq_pv_free(queue)
- 1. Overview
- This module offers generic message queue system in shared memory for
- inter-process communication via config file. One example of usage is to
- send time consuming operations to a timer process that consumes items
- in the queue, without affecting SIP message handling.
- There can be defined many queues, access to values being done via
- pseudo variables.
- 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:
- * None.
- 2.2. External Libraries or Applications
- The following libraries or applications must be installed before
- running Kamailio with this module loaded:
- * None.
- 3. Exported Parameters
- 3.1. mqueue (string)
- 3.1. mqueue (string)
- Definition of memory queue
- 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.
- The parameter can be set many time, each holding the definition of one
- queue.
- Example 1.1. Set mqueue parameter
- ...
- modparam("mqueue", "mqueue", "name=myq;size=20;")
- modparam("mqueue", "mqueue", "name=qaz")
- ...
- 4. Exported Functions
- 4.1. mq_add(queue, key, value)
- 4.2. mq_fetch(queue)
- 4.3. mq_pv_free(queue)
- 4.1. mq_add(queue, key, value)
- 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
- ...
- 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.
- Return: true on success (1); false on failure (-1) or no item fetched
- (-2).
- Example 1.3. mq_fetch usage
- ...
- while(mq_fetch("myq"))
- {
- xlog("$mqk(myq) - $mqv(myq)\n");
- }
- ...
- 4.3. mq_pv_free(queue)
- Free the item fetched in pseudo-variables. It is optional, a new fetch
- frees the old values.
- Example 1.4. mq_pv_free usage
- ...
- mq_pv_free("myq");
- ...
|