SMS API

Dave6 years ago

Good afternoon,
When you have a moment, I would really appreciate your help.
I am really struggling with the SMS API function.
All of my account details are correct and yet I recieve this message in my log file:

2019-06-13 14:29:45  WARN: SMS send failed - 
javax.ws.rs.ProcessingException: java.lang.IllegalArgumentException: Illegal character(s) in message header field: Authorization:Basic dHJhY2NhcjozOTlEQURCNy0wNTYxLTdEQ0EtQjc5Qy1CQTMzQUZENzcyXXx=
    at org.glassfish.jersey.client.ClientRuntime.processFailure(ClientRuntime.java:207)
    at org.glassfish.jersey.client.ClientRuntime.access$100(ClientRuntime.java:61)
    at org.glassfish.jersey.client.ClientRuntime$2.lambda$failure$1(ClientRuntime.java:159)

However, when I use that exact traccar generated header with a curl command it works perfectly.
This had me stumped for nearly a week.

Regards, Dave.

Anton Tananaev6 years ago

What's in your config?

Dave6 years ago

Currently it is as below:


entry key='notificator.types'>web,mail,sms</entry
entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry
entry key='sms.http.url'>https://rest.clicksend.com/v3/sms/send</entry
entry key='sms.http.user'>traccar</entry
entry key='sms.http.password'>399DADB7-0561-7DCA-B79C-BA33AFD77XXx</entry
entry key='sms.http.template'
    {
        "to": "{phone}",
        "body": "{message}",
        "from": "+447854870065"
    }
        </entry

I have also tried varying combinations including the following:

entry key='sms.http.authorizationHeader'>Authorization: Basic dHJhY2NhcjozOTlEQURCNy0wNTYxLTdEQ0EtQjc5Qy1CQTMzQUZENzcyXXx=</entry
entry key='sms.http.authorization'>dHJhY2NhcjozOTlEQURCNy0wNTYxLTdEQ0EtQjc5Qy1CQTMzQUZENzcyXXx=</entry

(I have removed the leading and trailing "<>" marks otherwise text is removed when posting)

Anton Tananaev6 years ago

Parameter authorizationHeader should be just the header name. In case it's a standard Authorization then you don't even need to specify it.

Dave6 years ago

OK, I understand that.
I was just explaining that I had manually created an authorization header and that didn't work either.

The config is only:

entry key='notificator.types'>web,mail,sms</entry
entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry
entry key='sms.http.url'>https://rest.clicksend.com/v3/sms/send</entry
entry key='sms.http.user'>traccar</entry
entry key='sms.http.password'>399DADB7-0561-7DCA-B79C-BA33AFD77XXx</entry
entry key='sms.http.template'
    {
        "to": "{phone}",
        "body": "{message}",
        "from": "+447854870065"
    }
        </entry

and this gives the "Illegal character" error quoted above.

Joao Paulo Lino6 years ago

Posta o link gerado pela API se fosse enviar um teste pelo navegador , passei por algo parecido e consegui resolver , pode ser q consigo te ajudar.

Dave6 years ago

Obrigado pela ajuda.

Você poderia me dizer como extrair esse link, por favor.
Eu tenho procurado encontrar o URL

Por favor, desculpe meu Português, estou usando o Google Tradutor

Joao Paulo Lino6 years ago

Depende de cada Fornecedor de API o meu é assim

http://SITE_API?codigo="XX"Token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

então usei seguinte paramentro

<entry key='notificator.types'>sms,web</entry>
<entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry>
<entry key='sms.http.url'>URL-API</entry>
<entry key='sms.http.template'>
codigo=[SEUCODIGO]&amp;token=[SEUTOKEN]&amp;From=x&amp;to={phone}&amp;body={message}
</entry>
Dave6 years ago

Ah, eu estava usando o protocolo errado, mas aqui estão os parâmetros da API:

https://api-mapper.clicksend.com/http/v2/send.php?username=xxxx&key=xxxx&to=xxxx,yyyy,zzzz&message=xxxx

Joao Paulo Lino6 years ago

Se vai usar no traccar Use da seguinte forma

<entry key='notificator.types'>web,mail,sms</entry>
<entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry>
<entry key='sms.http.url'>https://api-mapper.clicksend.com/http/v2/send.php?</entry>
<entry key='sms.http.user'>[USER]</entry>
<entry key='sms.http.password'>[YOUR KAY]</entry>
<entry key='sms.http.template'>
    token=[SEUTOKEN]&amp;From=x&amp;to={phone}&amp;textosms={message}
</entry>

ou

<entry key='notificator.types'>web,mail,sms</entry>
<entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry>
<entry key='sms.http.url'>https://api-mapper.clicksend.com/http/v2/send.php?</entry>
<entry key='sms.http.template'>
    username=XXXX&amp;key=[SEUKEY]&amp;From=x&amp;to={phone}&amp;message={message}
</entry>

Caso não de certo teria q ver esta sua API para testar os parâmetros possíveis.

Dave6 years ago

Joao Paulo Lino, você é maravilhoso.
Obrigado
Eu estava tão perto, perdi um detalhe na minha nova configuração depois que você enviou sua última sugestão (amp;).

Funciona perfeitamente.

Obrigado novamente.

Dave

Jackson Barcelos5 years ago

10 meses atrás esse tópico, espero que alguém ainda possa me ajudar.
Instalei o traccar no AWS, funciona perfeito se usando o app cliente. Quando tento adicionar o rastreador do carro pelo IMEI não funciona.
Vi que talvez precise enviar um SMS pro rastreador. Habilitei o smmp (acredito que fiz da maneira correta, pois segui os passos informados na documentação) e abri uma conta no twilio

Nessa parte tenho algumas dúvidas:

<entry key='notificator.types'>web,mail,sms</entry>
<entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry>
<entry key='sms.http.url'>https://api.twilio.com/2010-04-01/Accounts/[YOUR ACCOUNT SID]/Messages.json</entry>
<entry key='sms.http.user'>[YOUR ACCOUNT SID]</entry>
<entry key='sms.http.password'>[YOUR AUTH TOKEN]</entry>
<entry key='sms.http.template'>
    From=[YOUR PHONE NUMBER]&amp;To={phone}&amp;Body={message}
</entry>

Account SID = ok

<entry key='sms.http.url'>https://api.twilio.com/2010-04-01/Accounts/[YOUR ACCOUNT SID]/Messages.json</entry>

essa linha cima me deixa em dúvida porque tem um caminho com data de 2010 e não vi no twilio como substituir isso.
outra dúvida é o número de telefone url coded. Tenho meu número no twilio, mas nem no suporte sabem sobre como fazer esse url coded com o número. Eu entendo que é o caminho até o número, mas como pegar isso?

Dave5 years ago

Se você definiu todas as informações e modelos de mensagens corretos a partir do twillo, pode ser mais fácil enviar um SMS do seu celular para o dispositivo rastreador com o endereço IP e a porta para enviar os dados.

smsoousa4 years ago

Olá amigos, eu estou tendo um problema parecido e não estou conseguindo montar a API nas configuração do sistema.
A configuração utilizada está assim:

<entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry>
<entry key='sms.http.url'>https://api.z-api.io/instances/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/token/xxxxxxxxxxxxxxxxxxxxx/send-messages</entry>
<entry key='sms.http.user'>[YOUR ACCOUNT SID]</entry>
<entry key='sms.http.password'>[YOUR AUTH TOKEN]</entry>
<entry key='sms.http.template'>
    destino={phone}&amp;mensagem={message}
</entry>

Alguém poderia me dar um auxilio? Obrigado

Murthy Varanasi4 years ago

can you pls let me know if this is wrong , my sms is not passing thorugh

<entry key='notificator.types'>web,mail,sms</entry>
<entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry>
<entry key='sms.http.url'>https://api.msg91.com/api/sendhttp.php</entry>


<entry key='sms.http.template'>
    {
        route=xx&amp;sender=xxxxx&amp;country=91&amp;mobiles={phone}&amp;message={message}&amp;authkey=xxxx
       
    }
</entry>

this is the http api that works

https://api.msg91.com/api/sendhttp.php?route=4&sender=senderid&message=Hello! This is a test message&country=91&mobiles=1234567890&authkey=xxxxxx