event_route Module

Table of Contents

1. Admin Guide
1.1. Overview
1.2. ROUTE events parameters
1.3. EVENT_ROUTE usage
1.4. EVENT_ROUTE socket syntax
1.5. Dependencies
1.5.1. OpenSIPS Modules
1.5.2. External Libraries or Applications
1.6. Exported Parameters
1.7. Exported Functions
2. Frequently Asked Questions
3. Contributors
3.1. By Commit Statistics
3.2. By Commit Activity
4. Documentation
4.1. Contributors

List of Tables

3.1. Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
3.2. Most recently active contributors(1) to this module

List of Examples

1.1. EVENT_ROUTE usage

Chapter1.Admin Guide


This module provides a simple way for capturing and handling directly in the OpenSIPS script of different events triggered through the OpenSIPS Event Interface

If you want to capture and handle a certian event, you need to define a dedicated route (event_route) into the OpenSIPS script, route having as name the name/code of the desired event. The route is triggered (and executed) by the module when the corresponding event is raised by the OpenSIPS

NOTE that the triggered event_route is run asyncronus (and in a different process) in regards to the code or process that generated the actual event.

NOTE that inside the event_route you should NOT rely on anything more than the content provide by the event itself (see below variable). DO NOT assume to have access to any other variable or context, not even to a SIP message.

1.2.ROUTE events parameters

In order to retrieve the parameters of an event, the $param(name) variable has to be used. It's name can be the parameter's name, or, if an integer is specified, its index inside the parameter's list.


xlog("first parameters is $param(1)\n");
xlog("Pike Blocking IP is $param(ip)\n");

NOTE: An event may be triggered within a different event, leading to nested processing. This function will retrieve the parameters of the currently processed event.

The event name can contain any non-quoted string character, but it is recommended to follow the syntax: E_MODULE_NAME_EXTRA_NAME

1.3.EVENT_ROUTE usage

In order to handle the E_PIKE_BLOCKED event, the following snippet can be used:

Example1.1.EVENT_ROUTE usage

	event_route[E_PIKE_BLOCKED] {
		xlog("IP $param(ip) has been blocked\n");

1.4.EVENT_ROUTE socket syntax

As the OpenSIPS Event Interface requires, the event_route module uses a specific socket syntax:

'route:' event_name




1.5.1.OpenSIPS Modules

The following modules must be loaded before this module:

  • No dependencies on other OpenSIPS modules.

1.5.2.External Libraries or Applications

The following libraries or applications must be installed before running OpenSIPS with this module loaded:

  • none

1.6.Exported Parameters

The module does not export parameters to be used in configuration script.

1.7.Exported Functions

The function does not export any function.

Chapter2.Frequently Asked Questions


Can I declare more routes for handling the same event?

No, only a single event_route can be used for a particular event.


What happened with the fetch_event_params() function?

This function has been dropped starting with OpenSIPS 3.0. Its functionality has been replaced by the $param(name) variable.


Where can I find more about OpenSIPS?

Take a look at https://opensips.org/.


Where can I post a question about this module?

First at all check if your question was already answered on one of our mailing lists:

E-mails regarding any stable OpenSIPS release should be sent to and e-mails regarding development versions should be sent to .

If you want to keep the mail private, send it to .


How can I report a bug?

Please follow the guidelines provided at: https://github.com/OpenSIPS/opensips/issues.


3.1.By Commit Statistics

Table3.1.Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)

NameDevScoreCommitsLines ++Lines --
1. Razvan Crainea (@razvancrainea)3924992316
2. Bogdan-Andrei Iancu (@bogdan-iancu)168106376
3. Liviu Chircu (@liviuchircu)13112747
4. Ionut Ionita (@ionutrazvanionita)8513851
5. Ovidiu Sas (@ovidiusas)723849
6. Vlad Patrascu (@rvlad-patrascu)5352
7. Maksym Sobolyev (@sobomax)311512
8. Ionel Cerghit (@ionel-cerghit)3156
9. Peter Lemenkov (@lemenkov)3111
10. Vlad Paiu (@vladpaiu)2110

All remaining contributors: Walter Doekes (@wdoekes).

(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

3.2.By Commit Activity

Table3.2.Most recently active contributors(1) to this module

NameCommit Activity
1. Liviu Chircu (@liviuchircu)Mar 2014 - Mar 2023
2. Razvan Crainea (@razvancrainea)Dec 2012 - Mar 2023
3. Vlad Patrascu (@rvlad-patrascu)May 2017 - Nov 2021
4. Maksym Sobolyev (@sobomax)Feb 2021 - Feb 2021
5. Bogdan-Andrei Iancu (@bogdan-iancu)Oct 2014 - Dec 2020
6. Peter Lemenkov (@lemenkov)Jun 2018 - Jun 2018
7. Vlad Paiu (@vladpaiu)Jun 2016 - Jun 2016
8. Ionel Cerghit (@ionel-cerghit)Jun 2015 - Jun 2015
9. Ionut Ionita (@ionutrazvanionita)Oct 2014 - Oct 2014
10. Ovidiu Sas (@ovidiusas)Jul 2014 - Jul 2014

All remaining contributors: Walter Doekes (@wdoekes).

(1) including any documentation-related commits, excluding merge commits



Last edited by: Razvan Crainea (@razvancrainea), Bogdan-Andrei Iancu (@bogdan-iancu), Peter Lemenkov (@lemenkov), Liviu Chircu (@liviuchircu), Ionut Ionita (@ionutrazvanionita), Ovidiu Sas (@ovidiusas).

Documentation Copyrights:

Copyright 2012 www.opensips-solutions.com