O ambiente de trabalho K

6.3. Fazendo o modem desconectar

Às vezes você pode achar que o Kppp tem dificuldades em fazer o modem desconectar. Isso é provavelmente o resultado de uma inconsistência entre as configurações do Kppp e de seu modem. Um modem padrão aceita dois métodos de desconexão: Comando, e DTR. O método do Comando implica em mandar ao modem uma seqüência de escape, que coloca-o em modo de comando; e então, mandar o comando de desconexão (ATH).

Fora do Kppp, quando configurando o pacote pppd manualmente, é muito útil utilizar o método de Comando, pois ele permite sair da sessão de terminal, e carregar o pppd sem desconectar o modem. Já na maioria das outras situações, o método DTR é preferido, por ser mais simples.

6.3.1. Método DTR (AT&Dn)

O método DTR fará o modem desconectar tão logo o Kppp pare de usar o modem. Se você acessar o modem em modo de comando via emulador de terminal, consultar seu estado via AT&V, e uma das linhas da configuração atual for igual a &D0, então o método de desconexão DTR está desligado. Para habilitar o método DTR, use a opção Configuração/Mais/Terminal para acessar o modem. Então:

 ATZ         # reseta o modem para a sua configuração padrão
 AT&D2       # Configura para desconectar na <em/queda/ do DTR
 AT&W        # Grava na configuração padrão (profile)

6.3.1.1. Como funciona o método DTR

Quando o fio Data Terminal Ready (DTR) do cabo serial entre o computador e o modem é alimentado com 0 (zero) volts pelo computador, o modem é desconectado. Quando o Kppp começa a fazer uso da porta serial, o fio DTR é alimentado com -5 (menos cinco) volts pelo computador. Num modem externo, você pode ver a lâmpada DTR (ou TR) acender quando isso acontece. Quando a lâmpada TR apaga (pelo fato do Kppp ter fechado a porta serial, ou talvez alguma coisa pior, como um cabo solto), o modem desconectará da linha telefônica.

Note que não nos importa a voltagem de conexão / desconexão. O que importa é sabermos que esta é uma forma prática do computador dizer ao modem quando ele deve desconectar.

6.3.2. Método de Comando

A outra maneira para fazer o modem desconectar é fazer o modem aceitar um comando enquanto estiver conectado. Para fazê-lo desconectar dessa forma, entre numa sessão de comunicação direta com o modem (usando o Terminal, da mesma forma que alguns parágrafos acima), e mude o tempo de segurança para um intervalo curto como:

 ATZ
 ATS12=5
 AT&W

Então calibre o controle Configurações/Mais/Comandos do Modem/Tempo de Guarda até que fique igual a 5 (cinco), ou seja, idêntico ao registrador S12. Agora o modem deve desconectar corretamente.

6.3.2.1. Como funciona o método de Comando

Quando um modem local está conectado a um modem remoto, ele está no estado de conexão, onde todos os caracteres que ele recebe pela porta serial são incontinenti repassados ao modem remoto.

Para que o modem aceite comandos, é preciso colocá-lo no estado ou modo de comando. O código de escape faz justamente isso.

O código de escape é definido como uma seqüência de três eventos:

  • Silêncio (deve ser maior que S12/50 segundos);

  • Caractere de escape (definido pelo registrador S2, o padrão é "+"); deve ser repetido por três vezes (menos de S12/50 segundos entre eles);

  • Silêncio (maior que S12/50 segundos).

Uma vez que o modem esteja no modo de comando, você pode mandar comandos a ele :) Para fazê-lo desconectar, transmita o comando ATH. Os códigos de escape e comando de desconexão utilizados pelo Kppp são mostrados na janela Configurações/Mais/Comandos do Modem. Eles devem ser próprios a seu modem.