<para>Esta secção introduz as chamadas de resposta do &UNIX; (&Linux;), e como o &kppp; poderá ser configurado para se ligar a um servidor de resposta em &UNIX;, especialmente a um <link linkend="callback-resources">servidor de chamadas de resposta</link> em &Linux;.</para>
<para>Pense em alguém que liga para o seu número no servidor e arranja uma senha. Para quê manter uma 'firewall' para a sua ligação à Internet, se o acesso à sua rede é assim tão simples?.</para>
<para>O 'software' de chamadas de resposta normalmente pede o seu nome e coloca então a linha suspensa. A partir daí, ele faz uma chamada de volta, normalmente para um número que se encontra registado numa base de dados <emphasis>no servidor</emphasis>. O cliente poderá então pegar na linha telefónica e continuar com a chamada, como se nada tivesse acontecido. O servidor aí pedirá o seu nome de utilizador e a sua senha, sabendo que você é quem disse que era e onde disse que estava, aquando da ligação. A ligação é estabelecida normalmente e o servidor <application>pppd</application> é iniciado.</para>
<para>Agora a grande pergunta é: como dizer ao cliente para ligar o telefone quando o servidor lhe ligar de volta. Você precisa de algum programa especial, como o <application>mgetty</application>? A resposta é <emphasis>não</emphasis>, você não irá precisar de nenhum programa-cliente em especial, você até poderá usar um programa de terminal normal como o <application>minicom</application> para se ligar.</para>
<para>A única que você terá de fazer é dizer ao seu modem para <command>AutoAnswer</command> (Responder Automaticamente) ao telefone quando for detectado um <computeroutput>RING</computeroutput> pelo modem. Isto é feito com o seguinte comando do modem:</para>
<para>Isto diz ao modem para atender o telefone depois de um <computeroutput>RING</computeroutput>.</para>
<para>Assim como diversos programas, o &kppp; verifica se a ligação é fechada pelo servidor, e termina nesse caso a sessão actual, se for detectado um <computeroutput>NO CARRIER</computeroutput> (Sem Portadora). Este então será o problema real ao estabelecer a chamada de resposta. O <computeroutput>NO CARRIER</computeroutput> será obviamente detectado no momento em que o servidor de resposta suspende a linha. Alguns dos servidores irão necessitar de um programa de autenticação especial. Por isso, como é que você resolve este problema? Você irá indicar para o seu modem mostrar <computeroutput>CARRIER UP</computeroutput> (portadora activa) a toda a hora (o que não trará problemas se você indicar ao cliente para suspender a linha). Você poderá fazer isso com o seguinte comando do modem:</para>
<para>Se você quiser testar isto, você poderá usar primeiro um programa de terminal normal como o <application>minicom</application> e fazer uma chamada ao seu servidor de resposta, para ver o que acontece.</para>
<para>Primeiro indique ao modem para aceitar as ligações e para não parar a negociação quando o servidor de chamadas de resposta suspender a linha da primeira vez. Você poderá indicar ambas as opções na página do <guilabel>Modem</guilabel> da configuração do &kppp;, adicionando à opção da <guilabel>Mensagem de Chamada</guilabel> o texto <command>AT&C0S0=1DT</command></para>
<para>Não existem mais alterações na configuração do &kppp;. Se tiver problemas com a reinicialização do modem, veja a secção de <link linkend="callback-troubleshooting">Resolução de Problemas</link> para mais informações.</para>
<para>Pense no seu servidor por um momento. Lembre-se que os sistema operativos &UNIX;, &Windows; e Macintosh têm diferentes opiniões sobre como terminar uma linha num ficheiro de texto e, deste modo, o mesmo se aplica nos procedimentos de autenticação. Se você se estiver a ligar a um servidor em &Windows;, use o <userinput>CR/LF</userinput>, se se estiver a ligar a um servidor &UNIX;, use o <userinput>CR</userinput>, e, finalmente, se estiver a utilizar um servidor Macintosh server, use o <userinput>LF</userinput> </para>
<para>Nós assumimos para estas instruções que você está a efectuar uma chamada a um servidor de &Linux; que usa uma autenticação normal (sem ser <acronym>PAP</acronym> ou algo do género).</para>
<para>Configure o estilo da <guilabel>Autenticação</guilabel> na página de <guilabel>Ligar</guilabel> da configuração da conta para <guilabel>Baseada num Programa</guilabel></para>
<para>Agora você terá de criar um 'script' ou um programa de autenticação. A edição destes programas é uma das funcionalidades muito jeitosas do &kppp; Você poderá aceder a esse editor no <guilabel>Programa de Autenticação</guilabel> da janela de <guilabel>Editar a Conta</guilabel>.</para>
<para>Neste exemplo, o utilizador <systemitem>utilizador_xyz</systemitem> precisa de chamar o seguinte programa. O servidor de chamadas de resposta já conhece a tabela dos nomes e dos seus números de telefone respectivos, por isso você poderá seleccionar o número de telefone a usar com um nome alternativo, por razões de segurança.</para>
<para>Para cada linha, escolha o critério na lista à esquerda da janela, e indique a acção no campo de texto à sua direita. Escolha o botão <guibutton>Adicionar</guibutton> para adicionar cada uma das linhas ao programa. Você poderá usar o botão <guibutton>Inserir</guibutton> para adicionar uma linha no meio do programa ou ainda o botão <guibutton>Remover</guibutton> para apagar uma linha se você cometer algum erro.</para>
<para>O programa inteiro deverá ficar algo semelhante a isto (sem os comentários, que são mostrados aqui a começar com um #)</para>
<screen>Expect ogin: <lineannotation># lembre-se que fazemos uma autenticação de terminal normal</lineannotation>
ID "" <lineannotation># o kppp envia o ID que configurou na janela principal</lineannotation>
Expect for utilizador_xyz: <lineannotation># uma lista com os números disponíveis é mostrada e o utilizador deverá escolher um</lineannotation>
Send casa-utilizador_xyz <lineannotation># o utilizador deseja ser chamado de volta para o número da casa dele</lineannotation>
Expect ogin: <lineannotation># O processo da chamada de resposta está agora em execução, com uma ligação e uma autenticação novas.</lineannotation>
<para>Depois de esperar pelo pedido de autenticação, o utilizador envia o seu identificador e espera por uma lista com os números de telefone disponíveis para esse utilizador. Ele poderá então indicar ao servidor qual dos números oferecidos é que ele gostaria de ser chamado em resposta. O &kppp; poderá então abrir uma janela para isso, se a sua localização varia com frequência, ⪚ se for um representante de vendas e se muda de hotel para hotel. Neste momento, o servidor está à espera do utilizador e da senha para a autenticação, mas entretanto o servidor suspende-se e chama o utilizador de volta. A informação de autenticação é enviada, e o &kppp; fica à espera de uma linha de comandos, iniciando então um pequeno programa (aqui chamado de <filename>start_ppp</filename>, o qual irá despoletar o <application>pppd</application> no servidor.</para>
<para>Claro que a configuração de um servidor de <acronym>PPP</acronym> não está no âmbito deste documento. Para informações mais detalhadas, veja as páginas de manual do <application>pppd</application>. Existe uma descrição excelente para um servidor de resposta em <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"> http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback</ulink></para>
<para>Todos os outros detalhes de configuração, como a configuração do <application>pppd</application> ou do <acronym>IP</acronym> funcionam de forma normal, e não é necessário nenhum programa em especial será necessário para atender a linha.</para>
<para>As chamadas de resposta do &kppp; e dos outros programas como o <application>mgetty</application> ou outro 'faxgetty' poderão ser executados na mesma porta série. Não existem nenhuns problemas com o estabelecimento da ligação, dado que o &kppp; cria um ficheiro de bloqueio que irá indicar ao programa 'getty' que outra aplicação (neste caso, o &kppp;, como é óbvio) está a usar a linha nessa altura.</para>
<para>Logo que inicializa o modem para responder automaticamente, você terá de reinicializar o modem depois de a sua ligação terminar. Caso contrário, o seu modem irá continuar a atender a linha para si, o que não é uma boa ideia se a linha em questão for a sua linha telefónica principal.</para>
<para>O &kppp; tem alguns pequenos problemas ao partilhar uma linha com outro programa, como o <application>mgetty</application>. Se o <application>mgetty</application> estiver em execução sobre a mesma linha de modem, o &kppp; não será capaz de inicializar o modem correctamente. </para>
<para>O &kppp; não é capaz de perguntar por algum texto do utilizador durante uma autenticação baseada num programa. Infelizmente, ao usar o programa de exemplo acima, o &kppp; também irá perguntar pelo utilizador da segunda vez que o servidor de resposta lho pedir. Você poder-se-á ver livre disto se puser manualmente o nome do seu utilizador no programa de autenticação (nem é bom nem portável, mas funciona).</para>
<title>Recursos da Internet sobre o 'software' servidor</title>
<para>Os pacotes de servidores de chamadas de resposta para &Linux; estão disponíveis em vários sítios.</para>
<para>O famoso programa <application>mgetty</application> é bastante poderoso e consegue também efectuar chamadas de resposta. Uma descrição sobre como configurar o <application>mgetty</application> para este fim é mantida em <ulink url="http://www.dyer.demon.co.uk/slug/tipscrip.htm"> http://www.dyer.demon.co.uk/slug/tipscrip.htm</ulink>, por Colin McKinnon, <email>colin@wew.co.uk</email>.</para>
<para>Existe também um pacote pronto a usar para o &Linux; em <ulink url="http://www.icce.rug.nl/docs/programs/callback/callback.html"> http://www.icce.rug.nl/docs/programs/callback/callback.html</ulink>. Este pacote é mantido pelo Frank B. Brokken, <email>frank@icce.rug.nl</email>. Dado que a configuração, ainda que intuitiva, não é muito fácil, foi criada uma breve introdução sobre o mesmo em <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback">http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/</ulink>, local que contém também uma introdução mais geral para as chamadas de resposta.</para>
<title>Chamadas de resposta de <acronym>RAS</acronym> do &Windows; NT</title>
<para>O &Windows; NT utiliza uma aproximação completamente diferente da usada em cima. O NT necessita de uma extensão ao próprio protocolo <acronym>PPP</acronym>, chamada de <acronym>CBCP</acronym> (Call Back Control Protocol). O <application>pppd</application> tem o suporte para este protocolo, mas você terá de recompilar o <application>pppd</application>. Se alguém tiver experiência com ligações bem-sucedidas a um servidor de chamadas de resposta de NT, por favor contacte-nos.</para>