4.10. Why doesn't the On-Board Modem (OBM) work with some other modems?

	One problem is that the OBM seems to create answerback tones
which identifies itself (for some reason) as an MNP reliable modem
(!).  This confuses some MNP modems and the Telebit Trailblazer (only
if set in MNP reliable mode).  These cannot be altered in the OBM, but
often a system which cannot call the UNIX PC OBM can be called by the
UNIX PC OBM.

	Another problem is that the OBM has trouble establishing a
UUCP connection when calling Telebits configured in locked-speed mode.
Chris Lewis (clewis@ferret.ocunix.on.ca) has written a program called
phfix which can be invoked from /etc/rc to correct this particular
problem using the (undocumented?) PIOCOVSPD setting on the OBM.  The
result is that the OBM can successfully connect with locked-speed
Telebits, and they can connect back.  The program is not on OSU or in
any comp.sources.3b1 archives, so it is presented here:

/*	Sample program for bashing the OBM into tone dial and
	setting PIOCOVSPD to permit talking to certain modems
	(particularly telebits).
	The documentation mentions 2.3% speed change for PIOCOVSPD.
	That's all I know.

	You are free to do whatever you wish with this code, but
	please leave this comment in.

	Chris Lewis, clewis@ecicrl.uucp, Jan 2 1991.
 */
#include <stdio.h>
#include <fcntl.h>
#include <sys/phone.h>

main(argc, argv)
int argc; char **argv; {
    int f;
    struct updata upd;
    f = open("/dev/ph1", O_RDWR | O_NDELAY, 0);
    if (f < 0) {
	perror("/dev/ph1");
	exit(1);
    }
    ioctl(f, PIOCGETP, &upd);	/* retrieve Phone parameters */

#ifdef	NEVER
    /* if you want to play with these go ahead - for some reason my
       3b1 always comes up in PULSE */
    upd.c_lineparam &= ~PULSE;	/* reverse the sense to set to pulse dial */
    upd.c_lineparam |= DTMF;	/* reverse the sense to set to pulse dial */

    upd.c_feedback |= SPEAKERON;
    upd.c_feedback |= LOUDSPK;
    ioctl(f, PIOCDISC, &upd);	/* apply PIOCOVSPD for talking to some modems*/
#endif

    ioctl(f, PIOCOVSPD, &upd);	/* apply PIOCOVSPD for talking to some modems,
				   eg: Telebits */
    ioctl(f, PIOCSETP, &upd);	/* set phone parameters */
}

Parent document is top of "comp.sys.3b1 FAQ part1"
Previous document is "4.9. Is HoneyDanBer UUCP available to replace the stock uucp software?"
Next document is "4.11. How do I get my on-board modem to be a dial-out-only modem?"