Table of Contents
List of Examples
Table of Contents
This module offers amqp communication using librabbitmq. This module was created using rabbitmq-c C client (https://github.com/alanxz/rabbitmq-c). An new amqp connection is setup on a per-children basis, when Kamailio starts. If connection is lost, the process tries to re-establish it when a new amqp action is required.
Currently librabbitmq offers no async API, but sync API, with a timeout. See below link for updates on this issue:
https://github.com/alanxz/rabbitmq-c/issues/370.
The following libraries or applications must be installed before running Kamailio with this module:
librabbitmq-dev - (https://github.com/alanxz/rabbitmq-c).
The user name of amqp connection.
Default value is “"guest"”.
The password of amqp connection.
Default value is “"guest"”.
The host of amqp connection.
Default value is “"localhost"”.
The vhost of the amqp connection.
Default value is “"/"”.
The port of the amqp connection.
Default value is “5672”.
The timeout in seconds. The timeout_sec + timeout_usec combination gives the time to wait for an amqp reply, when rabbitmq_publish_consume() is used.
Default value is “1”.
The function publishes messagebody without waiting for a reply.
Meaning of the parameters is as follows:
exchange - the amqp exchange.
routing_key - the amqp routing_key.
content_type - the content_type of the messagebody.
messagebody - the messagebody to be published.
This function can be used from REQUEST_ROUTE.
Example 1.8. rabbitmq_publish
usage
rabbitmq_publish("exchange", "routing_key", "application/json", "$avp(json_request)");
The function publishes messagebody and waits timeoute_sec + timeout_usec for a reply. If the reply comes, one can read it in the reply avp.
Meaning of the parameters is as follows:
exchange - the amqp exchange.
routing_key - the amqp routing_key.
content_type - the content_type of the messagebody.
messagebody - the messagebody to be published.
reply - the consumed reply.
This function can be used from REQUEST_ROUTE.
Example 1.9. rabbitmq_publish_consume
usage
rabbitmq_publish_consume("exchange", "routing_key", "application/json", "$avp(json_request)", "$avp(json_reply)");