Estou usando um mini-modem 3G USB da marca HUAWEI, modelo E173 com chip Tim-Beta e também estava recebendo a mensagem de erro "Error +cms 305" sempre que tentava enviar uma mensagem com mais de um caractere. E mesmo quando conseguia enviar usando apenas 1 caractere a mensagem chegava completamente em branco para o destinatário.
Depois de pesquisar um pouco achei em um fórum gringo um cara explicando que esse erro ocorre dependendo do tipo do modo de envio, e que para enviar somente texto deve-se usar o comando "AT+CSCS="GSM". A partir daí foi só mudar na unit ACBRSMSClass a seguinte linha:
// definir o modo de envio *************************************************** Cmd := 'AT+CSCS="GSM"'; // 'AT+CMGF=1'; Self.EnviarComando(Cmd); if not Self.ATResult then raise EACBrSMSException.Create(FALHA_INICIALIZACAO + sLineBreak + fpUltimaResposta);
Depois dessa alteração funcionou perfeitamente e consegui enviar sem problemas. Não entendo muito sobre o funcionamento do SMS mas acho que poderíamos fazer uma alteração no componente para permitir selecionar o modo de envio do texto para aumentar a compatibilidade com outros modems e outros serviços de envio.
Eu estou disposto a fazer essa alteração na classe, se aceitarem, ou deixo aqui a idéia para que a alteração seja feita por alguém que entenda melhor do assunto.
UM abraço!