Cisco Modem Relay

Hi all,

I was wondering if anyone had any experience with Cisco Modem Relay?

For those of you that don’t know, the Cisco proprietary Modem Relay feature effectively demodulates the modem audio coming in, sends it as data in the RTP stream and then modulates at the far end to improve reliability. Note it only supports v.34 or v.90 with v42bis enabled. Other modulations are just sent over G711.

During previous testing with various external modems at one side, and a Cisco NM-30DM Modem Card at the other (With an E1 looped back into itself) it worked really well, speeds close to 56k were possible and it was fairly robust even with slight packet loss and jitter.

I’m now trying something different, with an external modem at either side of the link. This should work fine, but I’m having issues with the modems either not syncing at all, or losing sync and disconnecting fairly quickly. Interestingly if I swap the calling modem from a USR Courier to a Zoom modem it does behave better, but its still not great. I’ve ordered another Courier and Zoom modem to do some more testing.

I’m finding this quite odd. Admittedly there is an additional digital to analogue conversion which wouldn’t take place with the NM-30DM setup, but as its demodulated and demodulated this shouldn’t matter much in theory, as conditions should be almost perfect. I’ve tried tweaking the gain/attenuation on the FXS ports as its plausible given the short cables and the re-modulation it’s a little “hot” but no improvements there unfortunately.

It feels like this is some kind of compatibility issue rather than just line conditions. Does anyone have any experiences or thoughts here?


Sadly I’ve only read about this feature in the documentation, and I have no experience with it. From the way you describe it, I would also geneally follow your conclusions that it’s more like some kind of incompatiiblity.

You could try running the slmodemd softmodem implementation, AFAIR @manawyrm had figured out how to enable rather verbose logging. maybe it tells you what exactly is happening in terms of renegotiation, etc?

Indeed, I used

and modded the debug/logging routines accordingly.
I’m not sure anymore if that was done just by changing the C code or modding the binary (which I’ve had to do for other things), but I’d be willing to try and find out if this is a way you’d want to go there.
This will only work for incoming calls, not outgoing calls (due to a limitation in Yate’s external/playrec mechanism), so that’s something to be aware of.

Is the clocking on that setup sane? Generated by the NT BRI aka the Cisco in this case and also used by the converter?

FWIW: I’ve seen very similar behaviour (with connection aborts and retrainings) on an Agere/LSI Winmodem. That slmodem setup was absolutely rock solid with 33600kbit/s sync against a hardware 56k modem, but not against the Winmodem.

1 Like