README 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. mqueue Module
  2. Elena-Ramona Modroiu
  3. asipto.com
  4. Edited by
  5. Elena-Ramona Modroiu
  6. <[email protected]>
  7. Copyright © 2010 Elena-Ramona Modroiu (asipto.com)
  8. __________________________________________________________________
  9. Table of Contents
  10. 1. Admin Guide
  11. 1. Overview
  12. 2. Dependencies
  13. 2.1. Kamailio Modules
  14. 2.2. External Libraries or Applications
  15. 3. Exported Parameters
  16. 3.1. mqueue (string)
  17. 4. Exported Functions
  18. 4.1. mq_add(queue, key, value)
  19. 4.2. mq_fetch(queue)
  20. 4.3. mq_pv_free(queue)
  21. List of Examples
  22. 1.1. Set mqueue parameter
  23. 1.2. mq_add usage
  24. 1.3. mq_fetch usage
  25. 1.4. mq_pv_free usage
  26. Chapter 1. Admin Guide
  27. Table of Contents
  28. 1. Overview
  29. 2. Dependencies
  30. 2.1. Kamailio Modules
  31. 2.2. External Libraries or Applications
  32. 3. Exported Parameters
  33. 3.1. mqueue (string)
  34. 4. Exported Functions
  35. 4.1. mq_add(queue, key, value)
  36. 4.2. mq_fetch(queue)
  37. 4.3. mq_pv_free(queue)
  38. 1. Overview
  39. This module offers generic message queue system in shared memory for
  40. inter-process communication via config file. One example of usage is to
  41. send time consuming operations to a timer process that consumes items
  42. in the queue, without affecting SIP message handling.
  43. There can be defined many queues, access to values being done via
  44. pseudo variables.
  45. 2. Dependencies
  46. 2.1. Kamailio Modules
  47. 2.2. External Libraries or Applications
  48. 2.1. Kamailio Modules
  49. The following modules must be loaded before this module:
  50. * None.
  51. 2.2. External Libraries or Applications
  52. The following libraries or applications must be installed before
  53. running Kamailio with this module loaded:
  54. * None.
  55. 3. Exported Parameters
  56. 3.1. mqueue (string)
  57. 3.1. mqueue (string)
  58. Definition of memory queue
  59. Default value is “none”.
  60. Value must be a list of parameters: attr=value;... The attribute 'name'
  61. is mandatory, defining the name of the queue. Optional attribute 'size'
  62. specifies the maximum number of items in queue, if it is execeeded the
  63. oldest one is removed.
  64. The parameter can be set many time, each holding the definition of one
  65. queue.
  66. Example 1.1. Set mqueue parameter
  67. ...
  68. modparam("mqueue", "mqueue", "name=myq;size=20;")
  69. modparam("mqueue", "mqueue", "name=qaz")
  70. ...
  71. 4. Exported Functions
  72. 4.1. mq_add(queue, key, value)
  73. 4.2. mq_fetch(queue)
  74. 4.3. mq_pv_free(queue)
  75. 4.1. mq_add(queue, key, value)
  76. Add a new item (key, value) in the queue. If max size of queue is
  77. exceeded, the oldest one is removed.
  78. Example 1.2. mq_add usage
  79. ...
  80. mq_add("myq", "$rU", "call from $fU");
  81. ...
  82. 4.2. mq_fetch(queue)
  83. Take oldest item from queue and fill $mqk(queue) and $mqv(queue) pseudo
  84. variables.
  85. Return: true on success (1); false on failure (-1) or no item fetched
  86. (-2).
  87. Example 1.3. mq_fetch usage
  88. ...
  89. while(mq_fetch("myq"))
  90. {
  91. xlog("$mqk(myq) - $mqv(myq)\n");
  92. }
  93. ...
  94. 4.3. mq_pv_free(queue)
  95. Free the item fetched in pseudo-variables. It is optional, a new fetch
  96. frees the old values.
  97. Example 1.4. mq_pv_free usage
  98. ...
  99. mq_pv_free("myq");
  100. ...