sms versturen vanop command line

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 23-09 21:10

Blokker_1999

Full steam ahead

Topicstarter
Ik heb een SMS modem aan de seriële poort /dev/ttyS0 hangen en probeer nu vanuit bash een SMS te sturen. Ik probeer alles met zo min mogelijk extra packages te doen zodat het script later eenvoudig te verplaatsen is naar een andere machine.

Maar ik gebruik van minicom of gewoon screen dan lukt het perfect om de nodige AT commando's te sturen naar de SMS modem en komt het bericht ook netjes aan. Doe ik dit vanuit een bash script dan lukt het evenwel niet:

NUMBER=+32...
MESSAGE="Testing bash SMS"
echo "AT" > /dev/ttyS0
echo "AT+CMGF=1" > /dev/ttyS0
echo "AT+CMGS=\"${NUMBER}\"" > /dev/ttyS0
echo -e "\"${MESSAGE}\"\032" > /dev/ttyS0

No keyboard detected. Press F1 to continue.


Acties:
  • 0 Henk 'm!

  • Keuvie
  • Registratie: Oktober 2005
  • Laatst online: 21-09 16:41
Heb je zelf ook al informatie hierover gezocht? Met google vond ik het volgende:

http://www.unix.com/shell...ittle-script-minicom.html

of

http://stackoverflow.com/...icom-send-automate-script

[ Voor 19% gewijzigd door Keuvie op 22-10-2015 12:19 ]


Acties:
  • 0 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 23-09 21:10

Blokker_1999

Full steam ahead

Topicstarter
Ik heb meerdere oplossingen tegengekomen, maar de meeste maken gebruik van extra packages (die ik probeer te vermijden) zoals chat. De oplossing die je dan nog het meest tegenkomt is zoals hierboven. Een echo redirecten naar de seriële poort nadat je met stty de baud rate goed hebt gezet.

Zal het dan toch eens met een tooltje moeten gaan proberen denk ik.

No keyboard detected. Press F1 to continue.


Acties:
  • 0 Henk 'm!

  • Keuvie
  • Registratie: Oktober 2005
  • Laatst online: 21-09 16:41
Wat je zou kunnen doen is dat je eerst alles naar een "config" bestand wegschrijft en deze oproept met minicom.

Acties:
  • 0 Henk 'm!

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 11:12
Via de command line lukt het ook niet? Misschien dat je wat delays moet invoegen om je modem wat tijd te geven?

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Moet je /dev/ttyS0 niet uitlezen tussendoor? Ik neem aan dat de modem alles echo't.

Acties:
  • 0 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 23-09 21:10

Blokker_1999

Full steam ahead

Topicstarter
de modem zal echo'en maar of je dat echt moet uitlezen zou me verbazen. Lijkt me dat dit dan gewoon in een zwart gat verdwijnt.

En nee, via de CLI lukt het ook niet, heb ondertussen wat sleeps ertussen gezet om de modem tijd te geven, bedacht ik me ondertussen ook, maar ook dat heeft geen resultaat opgeleverd.

No keyboard detected. Press F1 to continue.


Acties:
  • 0 Henk 'm!

  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 08-09 21:46

daft_dutch

>.< >.< >.< >.<

gewoon een gok hoor.
maar misschien komt het door de newline die door echo wordt mee gegeven.

>.< >.< >.< >.<


Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Blokker_1999 schreef op donderdag 22 oktober 2015 @ 13:43:
de modem zal echo'en maar of je dat echt moet uitlezen zou me verbazen. Lijkt me dat dit dan gewoon in een zwart gat verdwijnt.
Als dat ding soft- of hardware handshake doet, zal de uart de input dichtgooien als de buffer vol is. (16 bytes?). Dan blijft de modem hangen in het schrijven van de volgende data.

Acties:
  • 0 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 23-09 21:10

Blokker_1999

Full steam ahead

Topicstarter
daft_dutch schreef op donderdag 22 oktober 2015 @ 13:53:
gewoon een gok hoor.
maar misschien komt het door de newline die door echo wordt mee gegeven.
Die zijn sowieso nodig. Na elk AT commando dient een newline gestuurt te worden.

No keyboard detected. Press F1 to continue.


Acties:
  • +1 Henk 'm!

  • Springuin
  • Registratie: Juli 2002
  • Laatst online: 23-09 15:37
Modems gebruiken meestal een \r als line ending, echo \n, misschien helpt dat?

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 08:30
Je moet waarschijnlijk eerst de serial parameters (baudrate, flow control, etc.) even goedzetten. Minicom en screen doen dat je voor je, vanaf de cli kun je iets als stty gebruiken.

Acties:
  • +3 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 23-09 21:10

Blokker_1999

Full steam ahead

Topicstarter
Springuin schreef op donderdag 22 oktober 2015 @ 13:58:
Modems gebruiken meestal een \r als line ending, echo \n, misschien helpt dat?
_/-\o_

De nagel op de kop. Door mijn echo's een \r mee te geven (en de -e natuurlijk) komt de SMS netjes aan. Whoohoo

edit:
Working end result:

#!/bin/bash
echo "formatting msg"
NUMBER=+32...
MESSAGE="Testing bash SMS"
echo "setting speed"
stty -F /dev/ttyS0 9600
echo "sending msg"
echo -e "AT\r" > /dev/ttyS0
sleep 1
echo -e "AT+CMGF=1\r" > /dev/ttyS0
sleep 1
echo -e "AT+CMGS=\"${NUMBER}\"\r" > /dev/ttyS0
sleep 1
echo -e "\"${MESSAGE}\"\032\r" > /dev/ttyS0
sleep 1

[ Voor 37% gewijzigd door Blokker_1999 op 22-10-2015 14:19 ]

No keyboard detected. Press F1 to continue.


Acties:
  • 0 Henk 'm!

  • Thc_Nbl
  • Registratie: Juli 2001
  • Laatst online: 21-05 22:24
+32 !!! Belgiee... :-)
bedankt voor die code, altijd handig.

wil je ook vertellen wat er precies achter hangt, dan kan handig zijn voor de init regel.
dat is toch deze :

echo -e "AT+CMGF=1\r"

ehhh.. noppes


Acties:
  • 0 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 23-09 21:10

Blokker_1999

Full steam ahead

Topicstarter
Ik maak gebruik van een Cinterion MC52, voorheen een Siemens M20. De AT commando's zijn uiteraard netjes gestandariseerd en wat hierboven staat zou op de meeste GSM/GPRS terminals moeten werken.

AT+CMGF=1 geeft aan de terminal aan dat je een SMS gaat versturen in text modus. Naast text modus is er ook nog een PDU modus waarbij je het bericht gecodeerd gaat versturen.

Ook niet vergeten dat bij SMS het niet mogelijk is om meerdere ontvangers op te geven. De moderne smartphone geeft in de software wel de mogelijkheid om meerdere ontvangers te selecteren, maar zal daarna voor elke ontvanger apart dezelfde SMS versturen.

[ Voor 7% gewijzigd door Blokker_1999 op 27-10-2015 10:39 ]

No keyboard detected. Press F1 to continue.

Pagina: 1