Failure to use the SMS service of the Traccar SMS Gateway application

Shadow2 months ago

Hello everyone, I have my traccar server configured to send push and web notifications, however it asked me to send SMS as well, so I decided to use the traccar SMS gateway app, however the SMS are not sent and a very long ror message appears at the bottom of the screen, this is my configuration

<entry key='notificator.types'>web,firebase,sms</entry>
    <entry key='notificator.firebase.serviceAccount'>
            {
                "type": "service_account",
                "project_id": "PROJECT_ID",
                "private_key_id": "PRIVATE_ID",
                "private_key": "PRIVATE_kEY"
            }
    </entry>


    <entry key='notificator.sms.manager.class'>org.traccar.sms.HttpSmsClient</entry>
    <entry key='sms.http.url'>https://www.traccar.org/sms/</entry>
    <entry key='sms.http.authorization'>TOKEN</entry>
    <entry key='sms.http.template'>
    {
        "to": "{phone}",
        "message": "{message}"
    }
</entry>

I use a similar configuration for a server that had a very old version of traccar, but it works without any problems.

If anyone could help me with this question I would greatly appreciate it. I use Traccar Server version 6.5.

I forgot to mention that web and push notifications work perfectly, the problem is with SMS notifications.

pdta: Sorry for my terrible English

Anton Tananaev2 months ago

I recommend upgrading first. If it still doesn't work, there's probably some issue with the token.

Shadow17 days ago

Hello, greetings, I'm sorry I didn't answer before but I had some serious personal matters, I did the update but all notifications stopped, firebase web and sms (which were already failing), to add context for the frontend, the frontend of a previous version is being used at the request of users, 6.5 to be exact.
My traccar.xml configuration file is exactly the same as I showed it last time, the connection to the database is correct, it seems that the only problem is the notifications, the error it gives is this.

org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) at org.glassfish.jersey.internal.Errors.process(Errors.java:292) at org.glassfish.jersey.internal.Errors.process(Errors.java:274) at org.glassfish.jersey.internal.Errors.process(Errors.java:244) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764) at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) at org.eclipse.jetty.servlets.DoSFilter.doFilterChain(DoSFilter.java:462) at org.eclipse.jetty.servlets.DoSFilter.doFilter(DoSFilter.java:317) at org.eclipse.jetty.servlets.DoSFilter.doFilter(DoSFilter.java:282) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.traccar.web.OverrideFilter.doFilter(OverrideFilter.java:50) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) at org.eclipse.jetty.server.Server.handle(Server.java:563) at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149) at java.base/java.lang.Thread.run(Thread.java:1583)

Any help or support on how to resolve this issue will be greatly appreciated.

Anton Tananaev17 days ago

You cannot use mismatching backend and frontend.

Shadow17 days ago

Yes, I suspected it could be that, because the last time I had a similar problem, it was handled like this and it worked. Okay, I'll take my time to download the latest front end from GitHub and run tests. Thanks for the information and your time. As soon as I'm done, I'll update the progress here. Thanks again.

Anton Tananaev17 days ago

To be clear, I don't know if it's the reason, but it could be.

Shadow10 days ago

Hello, best regards, for testing purposes I installed traccar version 6.7.2, the only modification made to traccar.xml were the database settings as shown here.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>

    <!-- Documentation: https://www.traccar.org/configuration-file/ -->

    <entry key='config.default'>./conf/default.xml</entry>
    <entry key='database.driver'>com.mysql.cj.jdbc.Driver</entry>
    <entry key='database.url'>jdbc:mysql://localhost:3306/traccar?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=UTC</entry>
    <entry key='database.user'>DATABASE.USER</entry>
    <entry key='database.password'>DATABASE.PASSWORD</entry>
</properties>

The connection to the database works perfectly, but when I made the test channels in the notifications section, I got this error, the channel I tested is the web one since I have not added configurations for firebase or sms
java.lang.NullPointerException: Cannot invoke "org.traccar.model.Notification.getBoolean(String)" because "notification" is null

Any help or clarification on the subject will be greatly appreciated.

Anton Tananaev10 days ago

Are you sure you're using the official version without any code modifications? And you're using the same version of the web app without modifications?

Shadow10 days ago

Yes, I have not uploaded any modifications, the only one that was made was in the traccar.xml
Captura.PNG

not.PNG

Anton Tananaev10 days ago

What's in more details?

Shadow10 days ago

In more detail this returns to me

java.lang.NullPointerException: Cannot invoke "org.traccar.model.Notification.getBoolean(String)" because "notification" is null
	at org.traccar.notification.NotificationFormatter.formatMessage(NotificationFormatter.java:78)
	at org.traccar.notificators.NotificatorWeb.send(NotificatorWeb.java:55)
	at org.traccar.api.resource.NotificationResource.testMessage(NotificationResource.java:108)
...
Anton Tananaev10 days ago

You should upgrade to the latest version. It fixes the problem.

Shadow10 days ago

Ok, I've already updated to version traccar 6.7.3 and if that error no longer appears, I'll proceed to test the SMS and Firebase configuration. Thank you very much. I'm truly grateful for your time and help.

Shadow10 days ago

The necessary tests have been carried out and all the errors discussed in this post have been resolved. Thank you again for the support. Additionally, I would like to mention that my superior insists on keeping the previous frontend since he likes it more than the current one, so that one is being used and it works without problems so far. However, I leave this as a task to convince him to use the current frontend in future updates. Thank you again.