blob: d42012b5d1e011d08a4c2c7db7f6c89ed61fac45 [file] [log] [blame]
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +02001#!/usr/bin/env python3
2
3# This test checks following use-cases:
4# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously
5# defined in its configuration file.
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +02006# * When SMS is sent in 'transaction' mode, ESME can send an SMS to an already registered MS.
7# * When SMS is sent in 'transaction' mode, ESME fails to send an SMS to non registered MS.
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +02008
Pau Espin Pedroldfe38ad2017-11-09 13:57:39 +01009from osmo_gsm_tester.testenv import *
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020010
11SMPP_ESME_RINVDSTADR = 0x0000000B
12
Pau Espin Pedrol40c7bc72020-05-05 13:41:42 +020013hlr = tenv.hlr()
14bts = tenv.bts()
15mgw_msc = tenv.mgw()
16mgw_bsc = tenv.mgw()
17stp = tenv.stp()
18msc = tenv.msc(hlr, mgw_msc, stp)
19bsc = tenv.bsc(msc, mgw_bsc, stp)
Pau Espin Pedrol43857802018-09-13 15:07:27 +020020bsc.bts_add(bts)
21
Pau Espin Pedrol40c7bc72020-05-05 13:41:42 +020022ms = tenv.modem()
23esme = tenv.esme()
Pau Espin Pedrol43857802018-09-13 15:07:27 +020024msc.smsc.esme_add(esme)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020025
Pau Espin Pedrol43857802018-09-13 15:07:27 +020026hlr.start()
27stp.start()
28msc.start()
29mgw_msc.start()
30mgw_bsc.start()
31bsc.start()
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020032bts.start()
Pau Espin Pedrol43857802018-09-13 15:07:27 +020033wait(bsc.bts_is_connected, bts)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020034
35esme.connect()
Pau Espin Pedrol43857802018-09-13 15:07:27 +020036hlr.subscriber_add(ms)
37ms.connect(msc.mcc_mnc())
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020038
39ms.log_info()
40print('waiting for modem to attach...')
Pau Espin Pedrol43857802018-09-13 15:07:27 +020041wait(ms.is_connected, msc.mcc_mnc())
42wait(msc.subscriber_attached, ms)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020043
44print('sending first sms...')
45msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message')
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020046esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020047wait(ms.sms_was_received, msg)
48
49print('sending second sms (unicode chars not in gsm aplhabet)...')
50msg = Sms(esme.msisdn, ms.msisdn, 'chars:[кизаçйж]')
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020051esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020052wait(ms.sms_was_received, msg)
53
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020054wrong_msisdn = ms.msisdn + esme.msisdn
55print('sending third sms (with wrong msisdn %s)' % wrong_msisdn)
56msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
57esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020058
59esme.disconnect()