blob: a14775474269ae8c7187e566949d9d6efe5f3e8b [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
13nitb = suite.nitb()
14bts = suite.bts()
15ms = suite.modem()
16esme = suite.esme()
17
18print('start nitb and bts...')
19nitb.bts_add(bts)
20nitb.smsc.esme_add(esme)
21nitb.start()
22bts.start()
23
24esme.connect()
25nitb.subscriber_add(ms)
26ms.connect(nitb.mcc_mnc())
27
28ms.log_info()
29print('waiting for modem to attach...')
30wait(ms.is_connected, nitb.mcc_mnc())
31wait(nitb.subscriber_attached, ms)
32
33print('sending first sms...')
34msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message')
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020035esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020036wait(ms.sms_was_received, msg)
37
38print('sending second sms (unicode chars not in gsm aplhabet)...')
39msg = Sms(esme.msisdn, ms.msisdn, 'chars:[кизаçйж]')
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020040esme.sms_send(msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020041wait(ms.sms_was_received, msg)
42
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020043wrong_msisdn = ms.msisdn + esme.msisdn
44print('sending third sms (with wrong msisdn %s)' % wrong_msisdn)
45msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
46esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_TRANSACTION)
Pau Espin Pedrol2d16f6f2017-05-30 15:33:57 +020047
48esme.disconnect()