Many languages can directly build FreeSWITCH modules or be run directly from the dialplan or from the fs_cli.
There are a few ways that you can connect your own applications with FreeSWITCH:
The curl module is used to provide FreeSWITCH with information such as configuration, dialplans and users.
Connect to FreeSWITCH from your own application RPC client and issue commands.
The first and simplest one is to use one of the scripting languages.
The event socket is the most advanced interface to use. It's also the most powerful interfance. It let's you control almost everything in FreeSWITCH.
Current directly supported languages
Any language not directly supported can still interact with and control FreeSWITCH via these several options:
- Event Socket Library - a generic socket to watch for events and issue commands to FreeSWITCH - bindings are available in many languages.
- mod_xml_curl - to serve the dialplan, directory, ACL, configuration.
- mod_xml_cdr - to process CDRs upon call completion.
Previously supported languages
It is generally best to do most telephony processing in the dialplan, not in your script. The FS team has put a great deal of effort into making sofia handle many edge cases of SIP processing, so trying to do all that in your script would prove hopeless.
From a core developer:
From an add-on developer: