FreeSWITCH is event-driven; it responds to and emits events. Events are the result of any activity happening on the system, and are generated by the core and modules of FreeSWITCH, and by external sources. The event system is also what makes it possible to build event socket applications.
You can quickly see the event system in action in
All you need to do now is to start making calls, issue commands, or just wait, and the events will start pouring in.
For a comprehensive list of events, see Event List.
The event system allows external software programs to act as listeners regarding. Almost everything that happens within the FreeSWITCH system causes some sort of event message to be generated. These events can be watched by external entities. This is similar to the publish/subscribe (or "pub-sub") system used by common message queuing software solutions, although it is specifically tailored for FreeSWITCH events.
The event system is bi-directional: In addition to allowing external programs to listen to events, external programs can also send events to FreeSWITCH. You can send and/or receive events in real time from your own programs. This combination allows you to use FreeSWITCH in almost any way you can imagine.