summaryrefslogtreecommitdiffstats
path: root/smpp_test.py
blob: e2c2ee06a6d048e23df5e55b1a4a56867f476c6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/python
import logging
import sys

import smpplib.gsm
import smpplib.client
import smpplib.consts

# This is a small script using https://github.com/podshumok/python-smpplib
# to generate some SMS load on OsmoNITB via its SMPP interface

# if you want to know what's happening
logging.basicConfig(level='DEBUG')

def send_message(dest, string):
    parts, encoding_flag, msg_type_flag = smpplib.gsm.make_parts(string)

    print 'Sending SMS "%s" to %s' % (string, dest)
    for part in parts:
        pdu = client.send_message(
            source_addr_ton=smpplib.consts.SMPP_TON_INTL,
            source_addr_npi=smpplib.consts.SMPP_NPI_ISDN,
            source_addr='3802',
            dest_addr_ton=smpplib.consts.SMPP_TON_INTL,
            dest_addr_npi=smpplib.consts.SMPP_NPI_ISDN,
            destination_addr=dest,
            short_message=part,
            data_coding=encoding_flag,
            #esm_class=msg_type_flag,
            esm_class=smpplib.consts.SMPP_MSGMODE_FORWARD,
            registered_delivery=False,
    )
    print(pdu.sequence)


client = smpplib.client.Client('127.0.0.1', 2775)

# Print when obtain message_id
client.set_message_sent_handler(
    lambda pdu: sys.stdout.write('sent {} {}\n'.format(pdu.sequence, pdu.message_id)))
client.set_message_received_handler(
    lambda pdu: sys.stdout.write('delivered {}\n'.format(pdu.receipted_message_id)))

client.connect()
client.bind_transceiver(system_id='test', password='test')

destinations = ('3802', '7839', '3807', '3811', '3806', '3805', '3804', '3809', '3812', '3815', '3814', '3803', '3813')

for dest in destinations:
    send_message(dest, 'Mahlzeit')

client.listen()