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¶
- Legg
SMS_*-nøklene iWeb.config. - Konfigurer LinkMobility til å POSTe innkommende SMS til
…/api/smsmed den avtalte (hardkodede) webhook-autentiseringen. - 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¶
- ConnectMonitor: Ordreinngang (varsel/purring)
- Integrasjoner