vgetty+Isdn Teles card

Gert Doering (gert@greenie.muc.de)
Sun, 19 Jul 1998 22:21:21 +0200


Hi,

please send all voice-related questions to Marc (as per the manual) or to
the mgetty mailing list.  I do not know any code from the voice/ tree, nor
do I actively use vgetty at all - I only do fax and data.

(I have CC:ed the mailing list, so others can reply).

As for your question: By chance, I know that some changes are "pending"
(due to the new RING handler, we finally can do things like "keep the
modem in voice mode all the time"), which should help here.

gert


Laurent Chemla wrote:
> It may be either a problem report, or only a not-yet implemented feature,
> I'm not sure but according to a lot of people, vgetty is working very well
> with a lot of ISDN cards so I thought it could be valuable to report what
> happens here.
> 
> My setup is: Linux-2.0.34 with a TELES-16.3 ISDN card, and either
> mgetty-1.1.14 and mgetty-1.1.16.
> 
> First a few words to describe the problem: vgetty, when initialising, first
> switch the ISDN linux kernel driver to voice mode (AT+FCLASS=8) then switch
> it to data mode (AT+FCLASS=0) before entering its main waiting loop.
> 
> The problem is that the Linux kernel checks, before passing control to
> vgetty, is the call is of the type wanted by the last programmed mode. When
> a voice call happens, it never get through the kernel driver stage up to
> vgetty.
> 
> Here is what vgetty does:
> 
>   07/19 13:48:41 yI7  detecting voice modem type
>   07/19 13:48:41 yI7   voice command: 'ATI' -> ''
>   07/19 13:48:41 yI7  Linux ISDN detected
>   07/19 13:48:41 yI7   vgetty: entering voice mode
>   07/19 13:48:41 yI7   vgetty: Installing signal handlers
>   07/19 13:48:41 yI7   voice command: 'AT+FCLASS?' -> ''
>   07/19 13:48:42 yI7   voice command: '' -> 'OK'
>   07/19 13:48:42 yI7   voice command: 'AT+FCLASS=8' -> 'OK'
> 
> This switches (according to linux/Documentation/isdn/README.audio) the
> driver to voice mode: the pseudo S18 register is set to 5 (audio+data).
> 
>   07/19 13:48:42 yI7  initializing ISDN4Linux voice mode
>   07/19 13:48:42 yI7   voice command: 'ATS18?' -> ''
>   07/19 13:48:42 yI7   voice command: '' -> 'OK'
>   07/19 13:48:42 yI7   voice command: 'ATS18=5' -> 'OK'
>   07/19 13:48:42 yI7   voice command: 'ATS13?' -> ''
>   07/19 13:48:42 yI7   voice command: '' -> 'OK'
>   07/19 13:48:42 yI7   voice command: 'ATS13=20' -> 'OK'
>   07/19 13:48:43 yI7   vgetty: leaving voice mode
>   07/19 13:48:43 yI7   voice command: 'AT+FCLASS=0' -> 'OK'
> 
> Now this cancels the audio mode, and S18 is set to 4 (data only).
> 
>   07/19 13:48:43 yI7   vgetty: Restoring signal handlers
>   07/19 13:48:43 yI7   waiting for line to clear (VTIME), read:
>   07/19 13:48:43 yI7   removing lock file
>   07/19 13:48:43 yI7  waiting...
> 
> And here is what the isdn linux driver does (linux/drivers/isdn/isdn_tty.c):
>         if ((!strcmp(isdn_map_eaz2msn(info->emu.msn, di),
>                  eaz)) &&   /* EAZ is matching      */
>            (info->emu.mdmreg[18] & si2bit[si1]) &&   /* SI1 is matching */
>            ((info->emu.mdmreg[19] == si2) || !si2)) {  /* SI2 is matching or 0 */
> 
> It first checks if the EAZ is the one the tty was configured for, and then
> is the S18 register bit for the calling mode is 1. If it's not, then the
> kernel discards the call.
> 
> Vgetty works nicely if I comment out the /*SI1 is matching*/ line, but I
> supose it would be better if this particular setup was directly configurable
> in mgetty/vgetty.
> 
> Thanks anyway,
> 
> Laurent.
> 


-- 
USENET is *not* the non-clickable part of WWW!
                                                           //www.muc.de/~gert/
Gert Doering - Munich, Germany                             gert@greenie.muc.de
fax: +49-89-35655025                        gert.doering@physik.tu-muenchen.de