Caro Alan,
Os problemas de Timer T1, T2 e T3 costumam ser bem "interessantes".
Tudo indica q o SAGE é mestre e as chaves IMS são escravas, correto?
O mecanismo T1 e T2 funcionam como uma especie de cobertura (ou keep alive) dada ao escravo pelo mestre.
De forma bem simplificada, apos o timer T1 ser ressetado no escravo, a proxima mensagem enviada pelo escravo inicia o T1. Quando o mestre recebe a mesma mensagem, o mestre starta o T2. Se antes do final da contagem de T2, o mestre não enviar nenhuma mensagem, assim q terminar T2, o mestre manda uma mensagem tipo S-format para o escravo (estou sem a norna na mão, mas acho que esse é o nome da mensagem) para q o escravo ressete seu T1. Como o T2 é menor que T1, assim que o escravo receber a mensagem do mestre, o escravo resseta seu T1 e manda nova mensagem para o mestre. O mestre recebe e inicia seu T2. E o ciclo de temporização recomeça...
Quando o T2 do mestre e maior que o T1 do escravo, o mestre demora muito pra mandar mensagem ao escravo e o mecanismo de keep alive não funciona. Entao o escravo desconecta o mestre por inatividade do mestre.
T3 serve para o mestre desconectar o escravo por inatividade e deve ser maior que T1 e T2...
O mecanismo da janela K W é um tipo de handshake, e que funciona de acordo com a quantidade de mensagens trocadas... Nao parece ser o seu problema... Da uma pesquisada nisso depois se tiver curiosidade...
Quando o T1 do escravo é estourado, o escravo desconecta o mestre. So não recordo se ha alguma troca de mensagem especifica pra isso ou apenas há desconexão da porta TCP... Teria que verificar na norma.
Minha sugestão é que verifiqie se as configurações dos temporizadores estão iguais em ambos os sistemas.
Outra possibilidade qie eu ja vi acontecendo é uma interpretação errada da norma. A 1a versão da norma 104 trazia uma figura que gerava confusão. A figura sugeria que o mestre ressetasse o seu T2 a cada mensagem recwbida do escravo e caso o escravo mandasse muitas mensagens, o T2 sendo reiniciado repetidas vezes fazia q o T1 do escravo estourasse e o escravo desconectada a porta. Apesar de ser meio basico, ja vi sistemas mestres cometendo esse erro...
Mas como o SAGE parece ser o mestre dessa comunicação, com certeza o SAGE nao faz isso. Eu ja vi outros sistemas conversando com o SAGE e incorrendo neste erro, mas CEPEL implementou o mecanismo conforme a norma.
Se o problema persistir, vc tera que montar uma plataforma de teste pra simular essas condições e atravez do monitoramento de protocolo verificar com uma LUPA como está o perfil dessa comunicação para chegar às conclusões corretas.
Provavelmente o fornecedor não fez homologação de protocolo entre a chave e o CEPEL. Esse tipo de comportamento é testado nessas homologações e pode ser facilmente identificado... Normalmente quando aparece, uma vez conferida as comunicações de ambos os sistemas, so se resolve com melhoria no driver do protocolo, possivelmente por se tratar de uma interpretação equivocada da norma.
Verifica as informações q eu te sugeri e depois passa mais informações pra gente (quem é mestre, quem é escravo, onde vc leu as mensages de erro, se possivel a identificacao do frame que gerou a mensagem de erro etc..).
Vc tem outro problema q é a mensagem de I FORMAT errada... Mas não parece ser o motivo da desconexão... Possivelmente um erro de sequência dos bytes Ns e Nr... Mas sugiro atacar um problema de cada vez.. ;)
Boa sorte!
Roberto Queiroz