MessageQueue

From Yate Documentation
Revision as of 12:08, 11 April 2013 by Dana (Talk | contribs)

Jump to: navigation, search

The MessageQueues is a mechanism for organizing YATE's messages in different queues, identified by message name and some specified filters.

This article explains how to create and use a MessageQueue in Javascript.

Contents

How to create MessageQueue in Javascript

In JavaScript a MessageQueue can be created by calling Message.installHook() method.

A description of MessageQueue behaviour can be found here .

installHook parameters

  • processCallback - function, optional. The method that should process the messages skipping the engine handlers list.
  • msgName - string, mandatory. The message name for the queue filtering.
  • workers - integer, mandatory. The number of workers that should be used for message processing.
  • trapCallback - function, optional. The method that should be called when a queue overload is detected.
  • trapCount - integer, mandatory if trapCallback is present. The number of messages in the queue when we should be alerted.
  • filter - string, optional, can be repeated. Optional message filter. Should be in form 'name=value'.

Examples

1. Creates a MessageQueue for engine.timer message with one processing thread.

installHook("engine.timer",1);

2. Creates a MessageQueue for call.route message, who has called=123. Two processing threads will be created. When a message needs to be processed the callback method will be called.

installHook(callback,"call.route",2,"called=123");

3. The same behaviour as above only that the trapCallback method will be called when in the queue exists more than 50 unprocessed messages

installHook(callback,"call.route",2,trapCallback,50,"called=123");

When to use?

MessageQueue can be used:

  • when a message sends more messages that need to be processed
  • when you want to avoid using Yate's message queue
  • when a certain type of message comes frequently

If you see a problem when certain types of messages comes frequently or the handle of the messages is to slow then you can use the MessageQueue mechanism.

See also

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers