Documentation

Documentation.Interface-Events-3-4 History

Hide minor edits - Show changes to output

October 21, 2022, at 10:08 AM by 109.99.227.30 -
Changed lines 44-51 from:
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_datagram | event_datagram ]] - sends Datagrams over UDP or UNIX sockets
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_flatstore | event_flastore ]] - writes to plain text files
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_kafka | event_kafka ]] - sends events via Apache Kafka broker
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_rabbitmq | event_rabbitmq ]] - sends an AMQP message to a RabbitMQ server
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_route | event_route ]] - runs an OpenSIPS event_route in script
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_stream | event_stream ]] - sends a JSON-RPC command/notification over TCP
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_virtual | event_virtual ]] - aggregates event backends for failover and balancing
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_xmlrpc | event_xmlrpc ]] - sends a XML-RPC command over TCP
to:
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_datagram | event_datagram ]] - sends Datagrams over UDP or UNIX sockets
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_flatstore | event_flastore ]] - writes to plain text files
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_kafka | event_kafka ]] - sends events via Apache Kafka broker
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_rabbitmq | event_rabbitmq ]] - sends an AMQP message to a RabbitMQ server
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_route | event_route ]] - runs an OpenSIPS event_route in script
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_stream | event_stream ]] - sends a JSON-RPC command/notification over TCP
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_virtual | event_virtual ]] - aggregates event backends for failover and balancing
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_xmlrpc | event_xmlrpc ]] - sends a XML-RPC command over TCP
October 21, 2022, at 10:07 AM by 109.99.227.30 -
Changed lines 44-50 from:
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_flatstore | event_flastore ]] - writes to plain text files
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_datagram | event_datagram ]] - sends Datagrams over UDP or UNIX sockets
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_rabbitmq | event_rabbitmq ]] - sends an AMQP message to a RabbitMQ server
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_xmlrpc | event_xmlrpc ]] - sends a XML-RPC command over TCP
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_jsonrpc | event_jsonrpc ]] - sends a JSON-RPC command/notification over TCP
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_route | event_route ]] - runs an OpenSIPS event_route in script
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_virtual | event_virtual ]] - aggregates event backends for failover and balancing
to:
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_datagram | event_datagram ]] - sends Datagrams over UDP or UNIX sockets
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_flatstore | event_flastore ]] - writes to plain text files
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_kafka | event_kafka ]] - sends events via Apache Kafka broker
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_rabbitmq | event_rabbitmq ]] - sends an AMQP message to a RabbitMQ server
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_route | event_route ]] - runs an OpenSIPS event_route in script
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_stream | event_stream ]] - sends a JSON-RPC command/notification over TCP
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_virtual | event_virtual ]] - aggregates event backends for failover and balancing
* [[http://www.opensips.org/html/docs/modules/3.2.x/event_xmlrpc | event_xmlrpc ]] - sends a XML-RPC command over TCP
May 18, 2020, at 07:46 PM by rvlad_patrascu -
Changed lines 44-47 from:
* [[http://www.opensips.org/html/docs/modules/1.12.x/event_datagram | event_datagram ]] - sends Datagrams over UDP or UNIX sockets
* [[http://www.opensips.org/html/docs/modules/1.12.x/event_rabbitmq | event_rabbitmq ]] - sends an AMQP message to a RabbitMQ server
* [[http://www.opensips.org/html/docs/modules/1.12.x/event_xmlrpc | event_xmlrpc ]] - issues a RPC command on a RPC server
* [[http://www.opensips.org/html/docs/modules/1.12.x/event_route | event_route ]] - runs an OpenSIPS event_route in script
to:
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_flatstore | event_flastore ]] - writes to plain text files
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_datagram | event_datagram ]] - sends Datagrams over UDP or UNIX sockets
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_rabbitmq | event_rabbitmq ]] - sends an AMQP message to a RabbitMQ server
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_xmlrpc | event_xmlrpc ]] - sends a XML-RPC command over TCP
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_jsonrpc | event_jsonrpc ]] - sends a JSON-RPC command/notification over TCP
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_route | event_route ]] - runs an OpenSIPS event_route in script
* [[http://www.opensips.org/html/docs/modules/3.4.x/event_virtual | event_virtual ]] - aggregates event backends for failover and balancing
March 20, 2014, at 08:56 PM by razvancrainea -
Added lines 1-75:
!!!!!Documentation -> [[Documentation.Manuals|Manuals]] -> [[Documentation.Manual-3-4|Manual 3.4]] -> Events Interface
(:title Events Interface - 3.4:)
----
(:allVersions Interface-Events 3.4:)

\\

|| %color=#185662%[+'''Events Interface v3.4 '''+]%% ||

||[[Interface-CoreMI-3-4|Prev]] || [[Interface-CoreEvents-3-4|Next]]||
----


The '''Events Interface''' is an OpenSIPS interface that provides different ways to notify external applications about certain events triggered inside OpenSIPS.

!!!! Overview

In order to notify an external application about OpenSIPS internal events, the '''Event Interface''' provides the following functions:
# manages exported events
# manages subscriptions from different applications
# exports generic functions to raise an event (regardless the transport protocol used)
# communicates with different transport protocols to send the events

More detailed information about '''OpenSIPS Event Interface''' can be found in the [[Documentation.Tutorials-EventInterface| Event Interface Tutorial]].


----

!!!! Events

There are several types of events that can be exported by OpenSIPS:
* '''Core events''' - internal events that trigger changes of OpenSIPS core/global behavior. A full list of exported core events can be found [[Documentation.Interface-CoreEvents-3-4 | here]].
* '''Modules events''' - events triggered by each module, when loaded. Each module can export zero, one or more events. Details can be found in the [[Documentation.Modules-3-4 | documentation page]] of each module.
* '''Custom events''' - triggered from script using the [[Documentation.Script-CoreFunctions-3-4#raise_event | raise_event()]] command.

----

!!!! Transport Protocols

External applications can be notified about the events triggered using various transport protocols. While the interface itself is provided by OpenSIPS core, each transport protocol is implemented by a separate OpenSIPS module. Multiple transport modules can be loaded simultaneously in order to provide different ways of notifications.

Available transport protocols are :

* [[http://www.opensips.org/html/docs/modules/1.12.x/event_datagram | event_datagram ]] - sends Datagrams over UDP or UNIX sockets
* [[http://www.opensips.org/html/docs/modules/1.12.x/event_rabbitmq | event_rabbitmq ]] - sends an AMQP message to a RabbitMQ server
* [[http://www.opensips.org/html/docs/modules/1.12.x/event_xmlrpc | event_xmlrpc ]] - issues a RPC command on a RPC server
* [[http://www.opensips.org/html/docs/modules/1.12.x/event_route | event_route ]] - runs an OpenSIPS event_route in script

An external application can subscribe to any of the exported module and can be notified using any of the loaded transport modules/protocols.

----


!!!! Events Subscription

You can subscribe for an event either at startup (using the [[Documentation.Script-CoreFunctions-3-4#subscribe_event | subscribe_event()]] command in the script) or during runtime, using the [[Interface-CoreMI-3-4#event_subscribe | event_subscribe]] MI command.
----

!!!! Examples

In order to configure a RabbbitMQ server to be notified when a custom event is triggered, first you have to subscribe it to the event, using the [[Documentation.Script-CoreFunctions-3-4#subscribe_event | subscribe_event()]] command:

[@
startup_route {
subscribe_event("E_SCRIPT_CUSTOM_EVENT", "rabbitmq:127.0.0.1/opensips");
}
@]

Then, in order to trigger the event from the script, call the [[Documentation.Script-CoreFunctions-3-4#raise_event | raise_event()]] command when needed:

[@
....
raise_event("E_SCRIPT_CUSTOM_EVENT"); # raises an event without any parameters
...
@]

Page last modified on October 21, 2022, at 10:08 AM