Gå til innhold

SMS (LinkMobility / jhlLinkSMS)

1. Hva den gjør

Toveis SMS for gassnett-kunder (selskap 368): kunden sender målerstand på SMS («GASS 1234»), systemet registrerer den i Visma og svarer med bekreftelse. Utgående varsel/purring sendes av ConnectMonitor.

Flyt

flowchart LR
    KUNDE[Gasskunde] -->|SMS GASS 1234 webhook| API[Connect API: SMSController]
    API -->|RegisterMeterValue| VISMA[(Visma R7/FreeInf3)]
    API -->|svar-SMS| KUNDE
    CM[ConnectMonitor -x/-y] -->|varsel/purring| GW[LinkMobility] --> KUNDE
    classDef sys fill:#f8d7da,stroke:#b53b46
    class API,CM sys

2. Dataretning

Begge veier. Innkommende webhook (kunde → API) og utgående (API → gateway → kunde).

3. Autentisering og konfigurasjon

Konfig Rolle
SMS_Username / SMS_Password LinkMobility-pålogging
SMS_PlatformPartnerId / SMS_PlatformId / SMS_GateId Plattform-/gateway-ID-er
SMS_Source Avsender-ID (f.eks. kortnummer)
Innkommende webhook-auth Hardkodet brukernavn/passord i SMSController.cs

Innkommende auth er hardkodet

Webhook-autentiseringen (Basic auth som LinkMobility bruker når den POSTer inn) er hardkodet i SMSController — å endre den krever kodeendring + redeploy, ikke bare config.

4. Implementasjon

Controllers/SMSController.cs: - Konstruktør lager jhlLinkSMS.SMS(...) fra SMS_*-nøklene. - Post() — innkommende SMS (validerer webhook-auth → parser «GASS ‹tall›» → vbs.Metering.RegisterMeterValue() → svar-SMS). - Report() — leveringskvittering (DLR). - Logger via NLog.

5. Oppsett

  1. Legg SMS_*-nøklene i Web.config.
  2. Konfigurer LinkMobility til å POSTe innkommende SMS til …/api/sms med den avtalte (hardkodede) webhook-autentiseringen.
  3. Målerkundene må finnes i Visma med telefonnummer (Metering).

6. Feilmodi

Symptom Årsak Tiltak
Innkommende SMS gir 403 Webhook-auth feil Sjekk hardkodet bruker i SMSController mot LinkMobility-oppsettet
Svar-SMS sendes ikke Feil SMS_*-nøkler / gateway nede Verifiser nøkler; test sending
Måler ikke registrert Feil SMS-format eller ukjent nummer Kunden får instruksjons-SMS; sjekk loggen

7. Test

# Simuler innkommende målerstand (webhook)
curl -s -X POST https://‹api-host›/api/sms \
  -u "‹webhook-bruker›:‹webhook-passord›" \
  -H "Content-Type: application/json" \
  -d '{"source":"+47‹nr›","content":{"userData":"GASS 1234"}}'
# Se etter «Mottatt på SMS» i jhlVismaAPILog.txt

8. Rotasjon

SMS_*: config + recycle. Webhook-auth: kodeendring i SMSController + redeploy.

Relaterte sider