The utility was recently announced D modem which stands out for implementing modem software to organize data transmission over networks VoIP based on the SIP protocol.
D-Modem allows you to create a communication channel through VoIP by analogy with the way that traditional dial-up modems allowed data transmission over telephone networks.
Project application areas include connecting to existing dial-up networks without using the other end of the telephone network, organizing covert communication channels, and conducting security testing of systems that can only be accessed via telephone access. The project code is written in C and is distributed under the GPLv2 license.
Traditional "controller-based" modems generally used a microcontroller and a DSP to handle all aspects of modem communication on the device itself. Later, so-called "Winmodems" were introduced that enabled field-programmable DSPs and moved the controller and other functions to the software running on the host PC. This was followed by "pure software" modems that also brought DSP functionality to the host. The physical hardware of these softmodems was only used to connect to the telephone network, and all processing was done in software.
D-Modem replaces the physical hardware of a softmodem with a SIP stack. Instead of passing audio to and from the DSP software over an analog phone line, the audio travels through the RTP (or SRTP) media streams of a SIP VoIP call
SIP protocol support is implemented through the PJSIP communications library and slmodem driver components, originally supplied for Smart Link software modems, are used to ensure modem functionality.
Unlike traditional modems, which use DSP for signal processing, and modulation is done by a microcontroller, software modems have only DSP and all other functions are implemented in the software on the controller side.
The D-Modem project offers a fully software modem in which DSP functionality it is also implemented in software. The hardware components used in the modems have been replaced with a SIP stack and instead of using DSP to transmit audio over analog communication lines in D-Modem, the sound is transmitted through multimedia streams such as RTP or SRTP used in the VoIP voice process.
Mechanisms for signal processing and support for AT commands, as well as the implementation of the V.32bis (14.4kbps) and V.34 (33.6kbps) protocols, are borrowed from the out-of-the-box slmodemd kernel driver, which It was supplemented and cut taking into account the particularities of the project.
Most of the slmodemd code is proprietary, its source code is not provided, BLOB dsplib.o is used; The proprietary driver has been redesigned to run separately as an application rather than as a kernel module. To interact with external applications, the ability to exchange data over network sockets has been implemented. To control slmodemd, an additional d-modem has been prepared, which provides the final interface and includes means for controlling audio streams and voice calls based on the SIP protocol.
In the process, a / dev / ttySL device is created *, through which you can interact with the modem, send AT commands and exchange data, similar to how you work with a normal modem (for example, you can use pppd to create an IP Channel).
Linking to a SIP account is done using the SIP_LOGIN environment variable. The project, among other things, can be used to connect to existing dial-up networks, in conditions where there is no classic modem (the SIP call can be redirected to a normal telephone network).
Finally, if you are interested in knowing more about it, you can consult the details in the following link.