python-gammu — Gammu 1.43.2 documentation (original) (raw)

python-gammu Examples

See also

Many examples are available in /examples directory in the python-gammu git repository.

Sending a message

#!/usr/bin/env python

Sample script to show how to send SMS

from future import print_function import gammu import sys

Create object for talking with phone

state_machine = gammu.StateMachine()

Optionally load config file as defined by first parameter

if len(sys.argv) > 2: # Read the configuration from given file state_machine.ReadConfig(Filename=sys.argv[1]) # Remove file name from args list del sys.argv[1] else: # Read the configuration (~/.gammurc) state_machine.ReadConfig()

Check parameters

if len(sys.argv) != 2: print("Usage: sendsms.py [configfile] RECIPIENT_NUMBER") sys.exit(1)

Connect to the phone

state_machine.Init()

Prepare message data

We tell that we want to use first SMSC number stored in phone

message = { "Text": "python-gammu testing message", "SMSC": {"Location": 1}, "Number": sys.argv[1], }

Actually send the message

state_machine.SendSMS(message)

Sending a long message

#!/usr/bin/env python

Sample script to show how to send long (multipart) SMS

from future import print_function import gammu import sys

Create object for talking with phone

state_machine = gammu.StateMachine()

Optionally load config file as defined by first parameter

if len(sys.argv) > 2: # Read the configuration from given file state_machine.ReadConfig(Filename=sys.argv[1]) # Remove file name from args list del sys.argv[1] else: # Read the configuration (~/.gammurc) state_machine.ReadConfig()

Check parameters

if len(sys.argv) != 2: print("Usage: sendlongsms.py [configfile] RECIPIENT_NUMBER") sys.exit(1)

Connect to the phone

state_machine.Init()

Create SMS info structure

smsinfo = { "Class": -1, "Unicode": False, "Entries": [ { "ID": "ConcatenatedTextLong", "Buffer": "Very long python-gammu testing message " "sent from example python script. " "Very long python-gammu testing message " "sent from example python script. " "Very long python-gammu testing message " "sent from example python script. ", } ], }

Encode messages

encoded = gammu.EncodeSMS(smsinfo)

Send messages

for message in encoded: # Fill in numbers message["SMSC"] = {"Location": 1} message["Number"] = sys.argv[1]

# Actually send the message
state_machine.SendSMS(message)

Initiating a voice call

#!/usr/bin/env python

from future import print_function import gammu import sys

Create object for talking with phone

state_machine = gammu.StateMachine()

Read the configuration (~/.gammurc or from command line)

if len(sys.argv) > 2: state_machine.ReadConfig(Filename=sys.argv[1]) del sys.argv[1] else: state_machine.ReadConfig()

Connect to the phone

state_machine.Init()

Check whether we have a number to dial

if len(sys.argv) != 2: print("Usage: dialvoice.py NUMBER") sys.exit(1)

Dial a number

state_machine.DialVoice(sys.argv[1])

Reading calendar from phone

#!/usr/bin/env python

Example for reading calendar from phone

from future import print_function import gammu

Create object for talking with phone

state_machine = gammu.StateMachine()

Read the configuration (~/.gammurc)

state_machine.ReadConfig()

Connect to the phone

state_machine.Init()

Get number of calendar entries

status = state_machine.GetCalendarStatus()

remain = status["Used"]

start = True

while remain > 0: # Read the entry if start: entry = state_machine.GetNextCalendar(Start=True) start = False else: entry = state_machine.GetNextCalendar(Location=entry["Location"]) remain = remain - 1

# Display it
print()
print("%-20s: %d" % ("Location", entry["Location"]))
print("%-20s: %s" % ("Type", entry["Type"]))
for v in entry["Entries"]:
    print("%-20s: %s" % (v["Type"], str(v["Value"])))