[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