Receiving and firing events
Events are FreeSWITCH's nervous system. They carry around information, commands, and feedback.
Tapping into the event flow will give your module a complete and real-time view of what's happening in each of the many components and subsystems of FreeSWITCH, from channels to reporting.
Firing events enables your module to actively participate in this flow, making information available that other modules can act upon in real time, or sending API commands as if typed in the console.
Events come in various types and subcategories. Each module can subscribe to ALL
events or only to a certain subset, and then further filter to which event to react to based on the content of the event's oh so many fields:
In our implementation, we subscribed to ALL
events during the LOAD
function.
Then, in the example_event_handler()
, function we filter the events flow based on event_id
(the specific kind of event), and if the event is suitable, then we get a particular header (for example...