I got, for some reasons, the need to communicate with an Asterisk server which has no internet connection.
So I decided to revive old days, when every digital communication had to be done using telephone lines.
I started coding something that one day, when it will be finally finished, will be called app_fsk.
In my mind, app_fsk should be composed by 2 applications: SendFSK, and ReceiveFSK.
Those two raw tools should be used to send and receive digital messages using POTS lines.
Current implementation has only ReceiveFSK implemented.
It is already usable but its behaviour is a little weird.
It only supports Bell103 FSK modulation, and I agree with anyone would say nowdays 300bps are ridiculous.
it receive fsk message until channel hangs up. Therefore is possible to interact with received message only in the hangup extension (exten => h).
If in spite of that someone wants to give a try, please do it. app_fsk.c
To build app_fsk, just drop the .c file into the apps directory of the Asterisk source code.
app_fsk needs SpanDSP built with option for test programs "--enable-tests".
Also you need to modify standard asterisk mekeopts and include -lspandsp-sim in the SPANDSP_LIB line.
Any feedback would be appreciated.