mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
3.2 KiB
136 lines
3.2 KiB
Distributed Message Queue Module
|
|
|
|
Marius Ovidiu Bucur
|
|
|
|
Edited by
|
|
|
|
Marius Ovidiu Bucur
|
|
|
|
Copyright © 2011 Marius Bucur
|
|
__________________________________________________________________
|
|
|
|
Table of Contents
|
|
|
|
1. Admin Guide
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Parameters
|
|
|
|
3.1. dmq_server_address(str)
|
|
3.2. dmq_notification_address(str)
|
|
|
|
2. Developer Guide
|
|
|
|
1. dmq_load_api(dmq_api_t* api)
|
|
|
|
List of Examples
|
|
|
|
1.1. Set dmq_server_address parameter
|
|
1.2. Set dmq_notification_address parameter
|
|
2.1. dmq_api_t structure
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
Table of Contents
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Parameters
|
|
|
|
3.1. dmq_server_address(str)
|
|
3.2. dmq_notification_address(str)
|
|
|
|
1. Overview
|
|
|
|
The DMQ module implements a distributed message passing system on top
|
|
of Kamailio. The DMQ nodes within the system are grouped in a logical
|
|
entity called DMQ bus and are able to communicate with each others by
|
|
sending/receiving messages (either by broadcast or sending a DMQ
|
|
message to a specific node). The system transparently deals with node
|
|
discovery, node consistency within the DMQ bus, retransmissions, etc.
|
|
|
|
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:
|
|
* sl.
|
|
* tm.
|
|
|
|
2.2. External Libraries or Applications
|
|
|
|
* Each peer needs to use its own serialization mechanism. Some
|
|
examples are libtpl, protobuf. .
|
|
|
|
3. Parameters
|
|
|
|
3.1. dmq_server_address(str)
|
|
3.2. dmq_notification_address(str)
|
|
|
|
3.1. dmq_server_address(str)
|
|
|
|
The local server address.
|
|
|
|
The modules needs it to know on which interface the DMQ engine should
|
|
send and receive messages.
|
|
|
|
Default value is "NULL".
|
|
|
|
Example 1.1. Set dmq_server_address parameter
|
|
...
|
|
modparam("dmq", "dmq_server_address", "mysql://kamailio:kamailiorw@localhost/kam
|
|
ailio")
|
|
...
|
|
|
|
3.2. dmq_notification_address(str)
|
|
|
|
The address of the DMQ node from which the local node should retrieve
|
|
initial information.
|
|
|
|
Default value is "NULL".
|
|
|
|
Example 1.2. Set dmq_notification_address parameter
|
|
...
|
|
modparam("dmq", "dmq_notification_address", "mysql://kamailio:kamailiorw@localho
|
|
st/kamailio")
|
|
...
|
|
|
|
Chapter 2. Developer Guide
|
|
|
|
Table of Contents
|
|
|
|
1. dmq_load_api(dmq_api_t* api)
|
|
|
|
The module provides the following functions that can be used in other
|
|
Kamailio modules.
|
|
|
|
1. dmq_load_api(dmq_api_t* api)
|
|
|
|
This function binds the dmq modules and fills the structure with the
|
|
exported functions -> register_dmq_peer - registers an entity as a DMQ
|
|
peer which permits receiving/sending messages between nodes which
|
|
support the same peer, -> bcast_message - broadcast a DMQ message to
|
|
all peers available in the DMQ bus, -> send_message - sends a DMQ
|
|
message to a specific peer in the local DMQ bus.
|
|
|
|
Example 2.1. dmq_api_t structure
|
|
...
|
|
typedef struct dmq_api {
|
|
register_dmq_peer_t register_dmq_peer;
|
|
bcast_message_t bcast_message;
|
|
send_message_t send_message;
|
|
} dmq_api_t;
|
|
...
|