Add main.py
This commit is contained in:
commit
ad84e85d37
81
main.py
Normal file
81
main.py
Normal file
@ -0,0 +1,81 @@
|
||||
import json
|
||||
import logging
|
||||
import random
|
||||
import sys
|
||||
import smpplib.consts
|
||||
import smpplib.gsm
|
||||
import ssl
|
||||
|
||||
with open("config.json", "r") as config_file:
|
||||
data = json.load(config_file)
|
||||
|
||||
smppserverhostname = data["SMPPServer"]["Hostname"]
|
||||
smppserverport = data["SMPPServer"]["Port"]
|
||||
smppserverusername = data["SMPPServer"]["Username"]
|
||||
smppserverpassword = data["SMPPServer"]["Password"]
|
||||
usessl = data["SMPPServer"]["SSL"]
|
||||
smssendsource = data["SMSSend"]["Source"]
|
||||
smssenddest = data["SMSSend"]["Destination"]
|
||||
smssendcont = data["SMSSend"]["Content"]
|
||||
numberofmsgtosend = data["SMSSend"]["Count"]
|
||||
validityperiod = data["SMSSend"]["ValidityPeriod"]
|
||||
othersettingsloglevel = data["OtherSettings"]["LogLevel"]
|
||||
|
||||
logging.basicConfig(level=othersettingsloglevel)
|
||||
|
||||
if usessl == "1":
|
||||
ssl_context = ssl.create_default_context()
|
||||
ssl_context.check_hostname = False
|
||||
ssl_context.verify_mode = ssl.CERT_NONE
|
||||
ssl_context.options = ssl.OP_NO_SSLv2
|
||||
client = smpplib.client.Client(smppserverhostname, smppserverport, allow_unknown_opt_params=True,
|
||||
ssl_context=ssl_context)
|
||||
else:
|
||||
client = smpplib.client.Client(smppserverhostname, smppserverport, allow_unknown_opt_params=True)
|
||||
|
||||
client.set_message_sent_handler(
|
||||
lambda pdu: sys.stdout.write('Sent msg with sequence ID {}, got ID back {}\n'.format(pdu.sequence, pdu.message_id)))
|
||||
|
||||
client.set_message_received_handler(
|
||||
lambda pdu: sys.stdout.write('Delivered msg with ID {}, and state {}\n'.format(pdu.receipted_message_id,
|
||||
pdu.message_state)))
|
||||
|
||||
try:
|
||||
print("Connecting to SMPP Server", smppserverhostname, "on port", smppserverport)
|
||||
client.connect()
|
||||
client.bind_transceiver(system_id=smppserverusername, password=smppserverpassword)
|
||||
print("Connected to SMPP Server", smppserverhostname, "on port", smppserverport)
|
||||
print("Sending", numberofmsgtosend, "messages towards server", smppserverhostname)
|
||||
except:
|
||||
print("Error connecting to SMPP Server", smppserverhostname, "on port", smppserverport,
|
||||
"Will exit with return code 1.")
|
||||
client.disconnect()
|
||||
exit(1)
|
||||
|
||||
for i in range(numberofmsgtosend):
|
||||
parts, encoding_flag, msg_type_flag = smpplib.gsm.make_parts(smssendcont + str(random.randint(1, 10000)))
|
||||
for part in parts:
|
||||
pdu = client.send_message(
|
||||
# source_addr_ton=smpplib.consts.SMPP_TON_INTL,
|
||||
source_addr_ton=smpplib.consts.SMPP_TON_ALNUM,
|
||||
# source_addr_npi=smpplib.consts.SMPP_NPI_ISDN,
|
||||
# Make sure it is a byte string, not unicode:
|
||||
source_addr=smssendsource,
|
||||
dest_addr_ton=smpplib.consts.SMPP_TON_INTL,
|
||||
# dest_addr_npi=smpplib.consts.SMPP_NPI_ISDN,
|
||||
# Make sure these two params are byte strings, not unicode:
|
||||
destination_addr=smssenddest,
|
||||
short_message=part,
|
||||
data_coding=encoding_flag,
|
||||
esm_class=msg_type_flag,
|
||||
# validity_period=validityperiod,
|
||||
registered_delivery=True,
|
||||
)
|
||||
|
||||
# Enters a loop, waiting for incoming PDUs
|
||||
print('Starting thread to listen for incoming delivery reports. Ctrl+C to exit.')
|
||||
while True:
|
||||
try:
|
||||
client.listen()
|
||||
except KeyboardInterrupt:
|
||||
break
|
||||
Loading…
Reference in New Issue
Block a user