gammu-smsd-run - dokumentace pro parametr RunOnReceive
Gammu SMSD může být nastaven pomocí direktivy RunOnReceive (viz
gammu-smsdrc(5)) aby spouštěl
zadaný program při přijetí zprávy.
Tento prarametr je spuštěn přes shell,
takže možná budete potřebovat escapovat některé znaky a můžete
použít jakékoliv množství parametrů. SMSD dále přidá parametry s
identifikátory přijatých zpráv. Typ identifikátorů záleží na
použité službě, pro databázové služby je to obvykle ID vloženého
řádku, pro souborové pak jméno souboru.
Gammu SMSD čeká na ukončení skriptu. Pokud budete provádět nějaké časově náročné operace, zastavíte přijímání nových zpráv. Aby se zabránilo větším komplikacím, čeká SMSD maximálně dvě minuty. Po této době bude pokračovat v normálním běhu a může spustit váš skript znovu.
Program je spuštěn s prostředím, které obsahuje mnoho informací o zprávě. Toto můžete použít spolu se službou NULL (viz gammu-smsd-null(7)) pro vytvoření vlastního zpracování zpráv.
Počet skutečně přijatých zpráv.
Počet dekódovaných částí zpráv.
Proměnné dále popsané jako SMS_1_... jsou vytvořeny pro každou fyzickou zprávu, kde číslo 1 je nahrazeno číslem zprávy.
Třída zprávy.
Číslo odesílatele.
Text zprávy. Není dostupné pro 8-bitové binární zprávy.
Proměnné dále popsané jako DECODED_1_... jsou vytvořeny pro každou část zprávy, kde číslo 1 je nahrazeno číslem části zprávy.
Dekódovaný dlouhý text zprávy.
Odesílatel zprávy oznamující MMS.
Název zprávy oznamující MMS.
Addresa (URL) MMS zpráv z ze zprávy oznamující MMS.
Velikost MMS tak jak je uvedena ve zprávě oznamující MMS.
Následující skript (pokud bude použit jako RunOnReceive) zapíše informace o každé přijaté zprávě oznamující MMS do textového souboru. Nahrazením příkazu echo můžete zařadit vlastní program, který tyto parametry zpracuje.
#!/bin/sh
if [ $DECODED_PARTS -eq 0 ] ; then
# Nejsou žádné dekódované části
exit
fi
if [ "$DECODED_1_MMS_ADDRESS" ] ; then
echo "$DECODED_1_MMS_ADDRESS" "$DECODED_1_MMS_SENDER" "$DECODED_1_MMS_TITLE" >> /tmp/smsd-mms.log
fi