[AsteriskBrasil] RES: Envio de sms com Asterisk

Marcio Luiz Ota ota em univali.br
Quarta Julho 1 08:32:05 BRT 2015


Bom dia Sergio,

SMS é bem limitado. Voce pode converter todos os caracteres especiais (à -> a, ç -> c) e enviar um SMS de 140 caracteres, ou converter a mensagem em Unicode e enviar somente 60 caracteres.
Não é necessário um script php pra isso. So precisa codificar a mensagem (7 bits ou 16 bits).


De: asteriskbrasil-bounces em listas.asteriskbrasil.org [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Sergio A. S. de Aguiar
Enviada em: terça-feira, 30 de junho de 2015 17:54
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: [AsteriskBrasil] Envio de sms com Asterisk

Boa tarde, pessoal.

Estou conseguindo enviar mensagem de texto (sms) usando um servidor Asterisk e placa Khomp.
O problema é que a acentuação não funciona.
Já troquei os caractéres acentuados por não acentuados.
O caso é que, quando se usa o $ (cifrão), este é trocado por um caractere diferente e, se o número estiver colado nele, este é apagado.

Exemplo:
R$ 30,00 -> fica R?30,00 e se for R$30,00 fica R,00 (aproximadamente).
Mais uma coisa estranha: depois que consegui mudar o código para que os caracteres acentuados ejam trocados pelos não acentuados e o $ funciona, nos telefones com sistema Android Lolipop ou nos Iphone com Ios versão 6, o $ (cifrão) continua com problemas.

Alguém conhece uma biblioteca para php que funcione?
Obrigado.

O meu código ficou assim:

$receivedmensagem= "teste com R$ 12,00 às 16h";

$smsmensagem2 = str_replace("R$", "R$ ", $smsmensagem2);  // Coloca um espaço depois do '$', se não existir
$smsmensagem2 = str_replace("R$  ", "R$ ", $smsmensagem2); // Se, depois disto, houver 2 espaços, trocar por apenas um
$smsmensagem2 = str_replace("$", "\x24", $smsmensagem2);  // Troca o cifrão por seu código ascii (apenas um teste, ainda não testei).

$mensagem = URLify::downcode($receivedmensagem); // Muda todos os caractéres acentuados.


class URLify
{

    public static function downcode ($text, $language = "")
    {
        self::init ($language);

        if (preg_match_all (self::$regex, $text, $matches))
        {
            for ($i = 0; $i < count ($matches[0]); $i++)
            {
                $char = $matches[0][$i];
                if (isset (self::$map[$char]))
               {
                    $text = str_replace ($char, self::$map[$char], $text);
                }
            }
        }
        return $text;
    }
}


A classe URLify foi encontrada em: https://github.com/jbroadway/urlify;

Obrigado

Sérgio

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20150701/26649662/attachment.html>


Mais detalhes sobre a lista de discussão AsteriskBrasil