ZyXEL Omni 56K modem, mgetty/vgetty and GPL

Posted 27 Jul 2000 at 06:59 UTC by const Share This

Mgetty supports more and more modems, but the number of new hardware incompatible with older models is constantly increased. What about ZyXEL Omni 56K?

Well, this story have begun in the spring time when I've bought new PC and needed a new modem. I was familiar with older ZyXEL U-1496 modems and had positive experience working with them (excellent fax implementation, well-supported voice features, high reliability etc). And, needless to say, ZyXEL modems used to be expensive. But ZyXEL Omni 56K seemed to differ significally: it's inexpensive and in the same time is claimed to stand near other ZyXEL modems regarding to its feature list. It sounds suspicious, does not it? Anyway, I've bought Omni 56K.

I've plugged my new modem and discovered that its voice mode is not supported by vgetty -- Omni 56K is not compatible with U-1496 or U-336 series of ZyXEL modems. But the main thing I've liked to know that there is voice mode so I'll be able to make it work.

So I had written support for voice mode of these modem series myself and sent patches to mgetty mailing list. But there was another problem: while Omni 56K is claimed to use standard IMA ADPCM for voice compression, actually it uses another ADPCM variation which differs from IMA ADPCM. And I could not find any free sources for dealing with this compression (actually, I even was not able to find out what is the name for this format) and I've sent a letter to support at zyxel.ru. Thanks to Maxim Medvedev at russian office of ZyXEL Communications Corp., I've got the sources and Maxim has confirmed that I may use it under the GPL license. I've adapted that code for use with vgetty (in pvftormd and rmdtopvf utilities) and now I may say that ZyXEL Omni 56K modems are supported by mgetty/vgetty.

So, why am I writing all this? Basically to say two things:

  1. ZyXEL Omni 56K is a good modem (although it's inexpensive).
  2. Now it's supported by the development version of mgetty/vgetty in all modes of operation (voice, fax, data).

But as far as there is no release of mgetty available with this support yet, I have to describe, how to get the things working:

After downloading mgetty-1.1.21 distribution, you have to get the current developers' patch. It already includes all my Omni 56K stuff, but unfortunately it's broken in another place. So, after applying that patch, apply another one:

diff -urN mgetty-1.1.21.new/voice/libvoice/detect.c
--- mgetty-1.1.21.new/voice/libvoice/detect.c	Sun Jul 23 18:03:17 2000
+++ mgetty-1.1.21/voice/libvoice/detect.c	Sun Jul 23 20:33:29 2000
@@ -238,10 +238,6 @@
                 ((*s == ' ') || (*s == '\t'))); s++)
-               /* Supports the modem V250 commands? */
-               if (voice_command("AT+IFC=?", "ERROR") != OK)
-		/* if the modem not answers with error then it supports V250 commands
                for (i = 0; ((modem_database[i].at_cmnd != NULL) &&
                 (voice_modem == &no_modem)); i++)
@@ -286,6 +282,13 @@
+     /* Does the modem support V250 commands?
+        If the modem does not answer with "ERROR",
+        then it supports V250 commands. */
+     if (voice_modem == &no_modem &&
+         voice_command("AT+IFC=?", "ERROR") != VMA_USER_1)
+       voice_modem=&V250modem;
      if (voice_modem != &no_modem)
           lprintf(L_MESG, "%s detected", voice_modem->name);

By the way, did you know that next mgetty version will be released under the GPL license?

Worth contacting companies, posted 27 Jul 2000 at 09:12 UTC by caolan » (Master)

Seeing as they gave out some source under the GPL for the asking I suppose this shows that it really can be worth contacting companies directly. Its easy to assume that they'll have no interest in talking to you.

This brings back old memories :), posted 28 Jul 2000 at 06:46 UTC by aaronl » (Master)

I set up a voicemail system using vgetty a long time ago. I had a proprietary modem but it turned out it used a Rockwell chipset which was supported and I only had to make a small modification to vgetty to get it to work. This isn't really on-topic, but at least I won't lose karma for it :).

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page