diff options
Diffstat (limited to 'suites')
-rwxr-xr-x | suites/aoip_smpp/esme_ms_sms_storeforward.py | 60 | ||||
-rwxr-xr-x | suites/aoip_smpp/esme_ms_sms_transaction.py (renamed from suites/aoip_smpp/esme_ms_sms.py) | 16 | ||||
-rwxr-xr-x | suites/smpp/esme_ms_sms_storeforward.py | 52 | ||||
-rwxr-xr-x | suites/smpp/esme_ms_sms_transaction.py (renamed from suites/smpp/esme_ms_sms.py) | 17 |
4 files changed, 128 insertions, 17 deletions
diff --git a/suites/aoip_smpp/esme_ms_sms_storeforward.py b/suites/aoip_smpp/esme_ms_sms_storeforward.py new file mode 100755 index 0000000..3e7e4f8 --- /dev/null +++ b/suites/aoip_smpp/esme_ms_sms_storeforward.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +# This test checks following use-cases: +# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously +# defined in its configuration file. +# * When SMS is sent in 'store & forward' mode, ESME fails to send an SMS to non registered MS. +# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to a not yet registered MS. +# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to an already registered MS. +# * When SMS is sent in 'store & forward' mode, ESME receives a SMS receipt if it asked for it. + +from osmo_gsm_tester.test import * + +SMPP_ESME_RINVDSTADR = 0x0000000B + +hlr = suite.hlr() +bts = suite.bts() +mgcpgw = suite.mgcpgw(bts_ip=bts.remote_addr()) +msc = suite.msc(hlr, mgcpgw) +bsc = suite.bsc(msc) +stp = suite.stp() +bsc.bts_add(bts) + +ms = suite.modem() +esme = suite.esme() +msc.smsc.esme_add(esme) + +hlr.start() +stp.start() +msc.start() +mgcpgw.start() +bsc.start() +bts.start() + +esme.connect() +hlr.subscriber_add(ms) + +wrong_msisdn = ms.msisdn + esme.msisdn +print('sending sms with wrong msisdn %s, it will fail' % wrong_msisdn) +msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest') +esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD) + +print('sending sms, it will be stored...') +msg = Sms(esme.msisdn, ms.msisdn, 'smpp send not-yet-registered message') +umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True) + +print('MS registers and will receive the SMS...') +ms.connect(msc.mcc_mnc()) +wait(ms.is_connected, msc.mcc_mnc()) +wait(msc.subscriber_attached, ms) +wait(ms.sms_was_received, msg) +print('Waiting to receive and consume sms receipt with reference', umref) +wait(esme.receipt_was_received, umref) + +print('checking MS can receive SMS while registered...') +msg = Sms(esme.msisdn, ms.msisdn, 'smpp send already-registered message') +umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True) +wait(ms.sms_was_received, msg) +print('Waiting to receive and consume sms receipt with reference', umref) +wait(esme.receipt_was_received, umref) +esme.disconnect() diff --git a/suites/aoip_smpp/esme_ms_sms.py b/suites/aoip_smpp/esme_ms_sms_transaction.py index 7f9ef18..8bcfb6b 100755 --- a/suites/aoip_smpp/esme_ms_sms.py +++ b/suites/aoip_smpp/esme_ms_sms_transaction.py @@ -3,7 +3,8 @@ # This test checks following use-cases: # * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously # defined in its configuration file. -# * ESME can send an SMS to an already registered MS when SMSC is in 'forward' mode. +# * When SMS is sent in 'transaction' mode, ESME can send an SMS to an already registered MS. +# * When SMS is sent in 'transaction' mode, ESME fails to send an SMS to non registered MS. from osmo_gsm_tester.test import * @@ -39,18 +40,17 @@ wait(msc.subscriber_attached, ms) print('sending first sms...') msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message') -esme.sms_send(msg) +esme.sms_send(msg, esme.MSGMODE_TRANSACTION) wait(ms.sms_was_received, msg) print('sending second sms (unicode chars not in gsm aplhabet)...') msg = Sms(esme.msisdn, ms.msisdn, 'chars:[кизаçйж]') -esme.sms_send(msg) +esme.sms_send(msg, esme.MSGMODE_TRANSACTION) wait(ms.sms_was_received, msg) -# FIXME: This test is not failing with error but succeeds, need to check why: (forward vs store policy?) -# wrong_msisdn = ms.msisdn + esme.msisdn -# print('sending third sms (with wrong msisdn %s)' % wrong_msisdn) -# msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest') -# esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send, msg) +wrong_msisdn = ms.msisdn + esme.msisdn +print('sending third sms (with wrong msisdn %s)' % wrong_msisdn) +msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest') +esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_TRANSACTION) esme.disconnect() diff --git a/suites/smpp/esme_ms_sms_storeforward.py b/suites/smpp/esme_ms_sms_storeforward.py new file mode 100755 index 0000000..5ff6ad3 --- /dev/null +++ b/suites/smpp/esme_ms_sms_storeforward.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + +# This test checks following use-cases: +# * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously +# defined in its configuration file. +# * When SMS is sent in 'store & forward' mode, ESME fails to send an SMS to non registered MS. +# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to a not yet registered MS. +# * When SMS is sent in 'store & forward' mode, ESME can send an SMS to an already registered MS. +# * When SMS is sent in 'store & forward' mode, ESME receives a SMS receipt if it asked for it. + +from osmo_gsm_tester.test import * + +SMPP_ESME_RINVDSTADR = 0x0000000B + +nitb = suite.nitb() +bts = suite.bts() +ms = suite.modem() +esme = suite.esme() + +print('start nitb and bts...') +nitb.bts_add(bts) +nitb.smsc.esme_add(esme) +nitb.start() +bts.start() + +esme.connect() +nitb.subscriber_add(ms) + +wrong_msisdn = ms.msisdn + esme.msisdn +print('sending sms with wrong msisdn %s, it will fail' % wrong_msisdn) +msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest') +esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_STOREFORWARD) + +print('sending sms, it will be stored...') +msg = Sms(esme.msisdn, ms.msisdn, 'smpp send not-yet-registered message') +umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True) + +print('MS registers and will receive the SMS...') +ms.connect(nitb.mcc_mnc()) +wait(ms.is_connected, nitb.mcc_mnc()) +wait(nitb.subscriber_attached, ms) +wait(ms.sms_was_received, msg) +print('Waiting to receive and consume sms receipt with reference', umref) +wait(esme.receipt_was_received, umref) + +print('checking MS can receive SMS while registered...') +msg = Sms(esme.msisdn, ms.msisdn, 'smpp send already-registered message') +umref = esme.sms_send_wait_resp(msg, esme.MSGMODE_STOREFORWARD, receipt=True) +wait(ms.sms_was_received, msg) +print('Waiting to receive and consume sms receipt with reference', umref) +wait(esme.receipt_was_received, umref) +esme.disconnect() diff --git a/suites/smpp/esme_ms_sms.py b/suites/smpp/esme_ms_sms_transaction.py index bc9d7d4..a147754 100755 --- a/suites/smpp/esme_ms_sms.py +++ b/suites/smpp/esme_ms_sms_transaction.py @@ -3,7 +3,8 @@ # This test checks following use-cases: # * SMPP interface of SMSC accepts SMPP clients (ESMEs) with password previously # defined in its configuration file. -# * ESME can send an SMS to an already registered MS when SMSC is in 'forward' mode. +# * When SMS is sent in 'transaction' mode, ESME can send an SMS to an already registered MS. +# * When SMS is sent in 'transaction' mode, ESME fails to send an SMS to non registered MS. from osmo_gsm_tester.test import * @@ -31,19 +32,17 @@ wait(nitb.subscriber_attached, ms) print('sending first sms...') msg = Sms(esme.msisdn, ms.msisdn, 'smpp send message') -esme.sms_send(msg) +esme.sms_send(msg, esme.MSGMODE_TRANSACTION) wait(ms.sms_was_received, msg) print('sending second sms (unicode chars not in gsm aplhabet)...') msg = Sms(esme.msisdn, ms.msisdn, 'chars:[кизаçйж]') -esme.sms_send(msg) +esme.sms_send(msg, esme.MSGMODE_TRANSACTION) wait(ms.sms_was_received, msg) - -# FIXME: This test is not failing with error but succeeds, need to check why: (forward vs store policy?) -# wrong_msisdn = ms.msisdn + esme.msisdn -# print('sending third sms (with wrong msisdn %s)' % wrong_msisdn) -# msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest') -# esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send, msg) +wrong_msisdn = ms.msisdn + esme.msisdn +print('sending third sms (with wrong msisdn %s)' % wrong_msisdn) +msg = Sms(esme.msisdn, wrong_msisdn, 'smpp message with wrong dest') +esme.run_method_expect_failure(SMPP_ESME_RINVDSTADR, esme.sms_send_wait_resp, msg, esme.MSGMODE_TRANSACTION) esme.disconnect() |