I'm trying to send a SMS with an RBSXTR (RouterOS v7.1.3) via the API (using using the gopkg.in/routeros.v2 Go library).
I've got most parts working, however, sending the text "Hellö!" fails, I'm receiving just "Hell!" (I've masked the phone number for obvious reasons):
Code: Select all
// omitting error handling for brevity
client, _ := routeros.Dial("192.168.0.123", "api", "apipassword")
client.Run("/tool/sms/send", "=port=lte1", "=phone-number=+4917611111111", "=message=Hellö!")
In the logs, I find these entries:
Code: Select all
12:34:48 lte,async lte1: sent AT+CMGS=17\r
12:34:48 lte,async lte1: sent 0021000D91947116111111F1001105C8329B1D02\0x1a
12:34:49 lte,async,event lte1: +CMGS: 65
12:34:49 lte,async lte1: rcvd +CMGS: 65
12:34:49 lte,async lte1: rcvd OK
12:34:50 lte,async,event lte1: +CDS: 27\r
12:34:50 lte,async,event 079194710600400706410d91947116111111f122201221433540222012214345400000
This post from 2012 suggests transforming the message string Windows-1252, but that didn't work either (ö = 0xF6):
To me, it looks like the /tool/sms/send command performs input sanitization and drops that character. Is there any way to circumvent this?
I also tried to directly sent an AT+CMGS low-level command using the /interface/lte/at-chat command, but I couldn't get the router to accept that command (I could not figure out how to pass the LTE port as argument).