Os dispositivos que usam a "interface" de modem no estilo AT operam em vários estados:
- modo de comando
- modo de discagem
- modo de aperto de mão
- modo de dados
Os modems iniciam no modo de comando e respondem aos comandos AT
-prefixed. Depois de estabelecer uma conexão (após ATD
, por exemplo, após passar pelos modos de discagem e handshake), eles alternam para o modo de dados e todos os dados enviados a eles são transmitidos para o dispositivo ao qual eles estão conectados. Para retornar ao modo de comando, o remetente precisa pausar o fluxo de dados por um determinado período, enviar +++
e pausar novamente; o modem retorna ao modo de comando e começa a responder novamente aos comandos AT
(e o fluxo de dados é interrompido).
Alguns modems não precisavam das pausas, o que significava que os dados seriam interpretados como sequências de comandos se contivessem +++
(daí a piada prática +++ATH0
no IRC).
Para fornecer outro protocolo em cima da conexão de dados do modem, você precisa usar outra ferramenta. Qual ferramenta você usa depende do protocolo que a outra extremidade espera (SLIP, PPP, PPPoE ...); por exemplo, você usaria ppp
para PPP (de preferência como integrado em sua distribuição, portanto, a configuração acaba sendo mais transparente) . Isso fornecerá alguma forma de encapsulamento IP e, em seguida, você poderá usar o IP como de costume. A ferramenta envolvida usará qualquer dispositivo necessário para falar com o modem ( /dev/ttyACM0
no seu caso) e expor outra interface que o restante do sistema pode usar para fins de rede (em geral, uma interface de rede, por exemplo ppp0
).