Published Initial texts of the project D-Modem , implementing a software modem for organizing data transfer over VoIP networks based on the SIP protocol. D-Modem makes it possible to create a communication channel over VoIP by analogy with how traditional Dialup modems allowed to transmit data over telephone networks. As areas of the project, you can note the connection to existing DialUp-networks without use at the second end of the telephone network, the organization of hidden communication channels and conducting security testing systems available only through Dialup. The project code is written in the SI language and extends under the GPLv2 license.
SIP protocol support is implemented using the PJSIP , and to ensure the functionality of the modem used the driver SLModem originally supplied for Soft modems Smart Link. In contrast to traditional modems, which use DSP to process a signal, and the modulation is made by a microcontroller, only DSP is present in soft modems, and all other functions are implemented on the driver side.
D-Modem project offers a fully software modem, in which the DSP functionality is implemented programmatically. The hardware components used in Soft-Modems are replaced by the SIP stack and instead of using the DSP to transmit audio through the analog communication lines in the D-MODEM, the sound is transmitted over multimedia streams, such as RTP or SRTP used during VoIP voice calls.
Signal processing mechanisms and support for AT commands, as well as the implementation of V.32BIS protocols (14.4Kbps) and v.34 (33.6kbps), borrowed from the ready-made SLMODEMD kernel driver, which was supplemented and trimmed with the specifics of the project. The driver was converted to a separate launch in the form of the application, and in the form of the kernel module. To interact with external applications, the ability to exchange data through network sockets is implemented. To control SLModeMD, a D-Modem add-in is prepared, which provides the end-end interface and includes sound flow controls and voice calls based on the SIP protocol.
During the work, the device / dev / ttysl * is created through which you can interact with the modem, send an AT commands and exchange data, similar to how working with a regular modem (for example, you can use PPPD to create an IP channel) . Binding to the SIP account is carried out using the SIP_LOGIN environment variable. The project, including it can be used to connect to existing Dialup networks, in conditions when there is no classic modem (SIP call can be redirected to a regular telephone network).