blob: 308ebf317223f9b9f642a1bae098debfd6d2f029 [file] [log] [blame]
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +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.
6# * When SMS is sent in 'store & forward' mode, ESME fails to send an SMS to non registered MS.
7# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to a not yet registered MS.
8# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to an already registered MS.
9# * When SMS is sent in 'store & forward' mode, ESME receives a SMS receipt if it asked for it.
10
11from osmo_gsm_tester.test import *
12
13SMPP_ESME_RINVDSTADR = 0x0000000B
14
15hlr = suite.hlr()
16bts = suite.bts()
17mgcpgw = suite.mgcpgw(bts_ip=bts.remote_addr())
18msc = suite.msc(hlr, mgcpgw)
19bsc = suite.bsc(msc)
20stp = suite.stp()
21bsc.bts_add(bts)
22
23ms = suite.modem()
24esme = suite.esme()
25msc.smsc.esme_add(esme)
26
27hlr.start()
28stp.start()
29msc.start()
30mgcpgw.start()
31bsc.start()
32bts.start()
33
34esme.connect()
35hlr.subscriber_add(ms)
36
37wrong_msisdn = ms.msisdn + esme.msisdn
38print('sending sms with wrong msisdn %s, it will fail' % wrong_msisdn)
39msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest')
40esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD)
41
Pau Espin Pedrol4a22ac72017-07-06 16:41:02 +020042# Disabled due to known issue, see ticket OsmoSMSC #2354
43#print('sending sms, it will be stored...')
44#msg = Sms(esme.msisdn, ms.msisdn, 'smpp send not-yet-registered message')
45#umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020046
47print('MS registers and will receive the SMS...')
48ms.connect(msc.mcc_mnc())
49wait(ms.is_connected, msc.mcc_mnc())
50wait(msc.subscriber_attached, ms)
Pau Espin Pedrol4a22ac72017-07-06 16:41:02 +020051#wait(ms.sms_was_received, msg)
52#print('Waiting to receive and consume sms receipt with reference', umref)
53#wait(esme.receipt_was_received, umref)
Pau Espin Pedroldb0d8ab2017-07-05 13:38:33 +020054
55print('checking MS can receive SMS while registered...')
56msg = Sms(esme.msisdn, ms.msisdn, 'smpp send already-registered message')
57umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True)
58wait(ms.sms_was_received, msg)
59print('Waiting to receive and consume sms receipt with reference', umref)
60wait(esme.receipt_was_received, umref)
61esme.disconnect()