Table of Contents
List of Tables
List of Examples
The event_virtual module provides the possibility to have multiple external applications, using different transport protocols, subscribed to the OpenSIPS Event Interface as a single virtual subscriber, for a specific event. When an event is triggered, the event_virtual module notifies the specified transport modules using one of the following policies:
PARALLEL - all subscribers (applications) are notified at once
FAILOVER - for every event raised, try to notify the subscribers, in the order in which they are given, until the first successful notification. A failed subscriber is skipped for further notifications until the failover_timeout passes.
ROUND-ROBIN - for every event raised, notify the subscribers alternatively, in the order in which they are given (for each raised event notify a different subscriber)
Only one expire value can be used (for the whole virtual subscription), and not one for each individual subscriber.
virtual:policy subscriber_1 [[subscriber_2] ...]
virtual: - informs the Event Interface that the events sent to this subscriber should be handled by the event_virtual module
policy - subscriber notification policy, can have one of the following values: 'PARALLEL', 'FAILOVER', 'ROUND-ROBIN' (with the behaviour described above)
!! Important: Policies must always be specified as uppercase strings!
subscriber_1 - use the socket syntax for this specific subscriber (eg. "rabbitmq:guest:firstname.lastname@example.org:5672/pike")
The following libraries or applications must be installed before running OpenSIPS with this module loaded:
The minimum duration in seconds that a failed subscriber is skipped for further notifications. This parameter only affects the FAILOVER policy.
Default value is “30”.
Example 1.1. Setting the
... modparam("event_virtual", "failover_timeout", 5) ...
Table 2.1. Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
|Name||DevScore||Commits||Lines ++||Lines --|
|1.||Vlad Patrascu (@rvlad-patrascu)||22||10||1057||125|
|2.||Liviu Chircu (@liviuchircu)||8||6||39||36|
|3.||Razvan Crainea (@razvancrainea)||6||4||4||2|
|4.||Bogdan-Andrei Iancu (@bogdan-iancu)||3||1||3||2|
|5.||Peter Lemenkov (@lemenkov)||3||1||1||1|
(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)
(2) including any documentation-related commits, excluding merge commits. Regarding imported patches/code, we do our best to count the work on behalf of the proper owner, as per the "fix_authors" and "mod_renames" arrays in opensips/doc/build-contrib.sh. If you identify any patches/commits which do not get properly attributed to you, please submit a pull request which extends "fix_authors" and/or "mod_renames".
(3) ignoring whitespace edits, renamed files and auto-generated files
Table 2.2. Most recently active contributors(1) to this module
|1.||Liviu Chircu (@liviuchircu)||May 2016 - Dec 2021|
|2.||Vlad Patrascu (@rvlad-patrascu)||Jul 2015 - Jul 2020|
|3.||Razvan Crainea (@razvancrainea)||Aug 2015 - Sep 2019|
|4.||Bogdan-Andrei Iancu (@bogdan-iancu)||Apr 2019 - Apr 2019|
|5.||Peter Lemenkov (@lemenkov)||Jun 2018 - Jun 2018|
(1) including any documentation-related commits, excluding merge commits
Last edited by: Vlad Patrascu (@rvlad-patrascu), Liviu Chircu (@liviuchircu), Peter Lemenkov (@lemenkov).
Copyright © 2015 www.opensips-solutions.com