blob: 6892a7e0822126cf097d4a5e6d5b9f76805c55e7 [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
9from osmo_gsm_tester.test import *
10
11SMPP_ESME_RINVDSTADR = 0x0000000B
12
13hlr = suite.hlr()
14bts = suite.bts()
15mgcpgw = suite.mgcpgw(bts_ip=bts.remote_addr())
Pau Espin Pedrol386b78d2017-11-09 13:02:09 +010016mgw_bsc = suite.mgw()
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020017msc = suite.msc(hlr, mgcpgw)
Pau Espin Pedrol386b78d2017-11-09 13:02:09 +010018bsc = suite.bsc(msc, mgw_bsc)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020019stp = suite.stp()
20bsc.bts_add(bts)
21
22ms = suite.modem()
23esme = suite.esme()
24msc.smsc.esme_add(esme)
25
26hlr.start()
27stp.start()
28msc.start()
29mgcpgw.start()
Pau Espin Pedrol386b78d2017-11-09 13:02:09 +010030mgw_bsc.start()
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020031bsc.start()
32bts.start()
33
34esme.connect()
35hlr.subscriber_add(ms)
36ms.connect(msc.mcc_mnc())
37
38ms.log_info()
39print('waiting for modem to attach...')
40wait(ms.is_connected, msc.mcc_mnc())
41wait(msc.subscriber_attached, ms)
42
43print('sending first sms...')
44msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message')
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020045esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020046wait(ms.sms_was_received, msg)
47
48print('sending second sms (unicode chars not in gsm aplhabet)...')
49msg = Sms(esme.msisdn, ms.msisdn, 'chars:[кизаçйж]')
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020050esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020051wait(ms.sms_was_received, msg)
52
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020053wrong_msisdn = ms.msisdn + esme.msisdn
54print('sending third sms (with wrong msisdn %s)' % wrong_msisdn)
55msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
56esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020057
58esme.disconnect()