Skip to content


Repository files navigation

OpenR2 - MFC/R2 and DTMF/R2 call setup library

OpenR2 is a library that implements the MFC/R2 and DTMF/R2 signalling over E1 lines.

The library can work with or without the DAHDI interface. Asterisk users typically
will use it along with DAHDI. However FreeSWITCH users or other custom applications can
specify I/O and signaling hooks to use any other media and signaling API.

The MF R2 tones required for the signaling are generated by code borrowed from the 
LGPL library SpanDSP written by Steve Underwood (by default), however the user also
has the option to provide MF generation and detection hooks to use his own MF R2 
and DTMF tone generation and detection, so the library will use them when needed. 


- libc
- pthreads

Optional Dependencies:
- Zaptel/DAHDI - This is only a dependency if you will use the r2test application.
                 OpenR2 is known to work with Zaptel 1.2, 1.4 and all DAHDI versions.

Asterisk users be aware that Asterisk <= 1.8 can only be used with openr2 1.x versions.
OpenR2 2.x releases can be used with FreeSWITCH and Asterisk > 1.8 (bigger than, not inclusive!)

Support, bugs and limitations:

- Starting with OpenR2 2.0 This is a thread-safe library and the user code
  does not need to lock the r2chan and r2context structures, the library does
  that on each API call associated with an r2chan or r2context structure.

- If you have a question that is related to the usage of openr2 in Asterisk, send an e-mail to
  the asterisk-r2 mailing list:

- If you have a qustion that is related to the usage of openr2 in FreeSWITCH, send an e-mail to
  the freeswitch-users mailing list:

- Any other bugs, questions or suggestions may be sent to my e-mail. 
  Please do not send me emails requesting support. Use the appropiate mailing list for that.
  If you are willing to pay for support you can check openr2 support contacts:

Moises Silva <>