1 Introduction

This document outlines the test plan for testing the interoperability between PortaOne OCS and WTL P-GW (TT#849704 + QA-7494 in 2024 and TT#856958 + QA-8769 in 2025). 

For details about provisioning part from PortaBilling towards WTL HLR/HSS check PMD-2773 and WTL HLR/HSS provisioning via Boomi.

2 System information

2.1 Configuration

2.2 Peers

PeerRelease

Origin-Realm

Origin-Host

IP address

Transport

Port

OCSMR120-0portaone.comocs.portaone.com
137.*.*.11
TCP3868
P-GW
portaone.comsmf.portaone.com10.32.1.68TCPrandom

2.3 User Identification

AttributeValue
User-Name(not used)

END_USER_E164

32473123456

2.4 Predefined Rating Group names

NameGy Value

Notes

RG1010paid
RG1111free

3 Test Cases

#Test Script IDCase NameDescriptionResultTesterComments/BugsDate
1.CER

Connection Establishment and Capabilities Exchange (CER/CEA)

Verify that a Diameter peer is successfully established.

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


15.03.24
2.DPR

Disconnect Peer (DPR/DPA)

Verify that disconnect between peers is properly acknowledged.

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


15.03.24
3.TS013G session - diameter/interconnectivity3G session - diameter/interconnectivity

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


18.03.24
4.TS023G session - establish connection3G session - establish connection

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


25.03.25
5.TS033G session - rejected connection for nonexistent subscriber3G session - rejected connection for nonexistent subscriber

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


25.03.25
6.TS03.a3G session - hotlined connection for expired, blocked, suspended subscriber3G session - hotlined connection for expired, blocked, suspended subscriber

PASSED (M)

Andrii Kravchenko, Benoit Bolsee from WTL

  • Hotline URL is not controlled by OCS, it is configured on WTL end
  • Any reject/no GSU/quota exhaust redirects user to URL
  • Free traffic can either be included to some free RG or can be not accounted at all
    (second variant was used during tests). 
09.07.25
7.TS043G session - billing session3G session - billing session

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


25.03.25
8.TS04.a3G session - billing for multiple rating groups within a session3G session - billing for multiple rating groups within a session

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


25.03.25
9.TS053G session – session is hotlined once quota is depleted3G session – session is hotlined once quota is depleted

PASSED (M)

Andrii Kravchenko, Benoit Bolsee from WTL

  • Hotline URL is not controlled by OCS, it is configured on WTL end
  • Any reject/no GSU/quota exhaust redirects user to URL  
09.07.25
10.TS063G session - hotlined connection when insufficient funds3G session - hotlined connection when insufficient funds

PASSED (M)

Andrii Kravchenko, Benoit Bolsee from WTL

  • Hotline URL is not controlled by OCS, it is configured on WTL end
  • Any reject/no GSU/quota exhaust redirects user to URL  
09.07.25
11.TS073G session - Validity-Time support3G session - Validity-Time support

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


25.03.25
12.TS083G session - Session re-establishment upon payment3G session - Session re-establishment upon payment

PASSED (M)

Andrii Kravchenko, Benoit Bolsee from WTL

  • Hotline URL is not controlled by OCS, it is configured on WTL end
  • Any reject/no GSU/quota exhaust redirects user to URL 
  • RAR triggers re-auth for all configured RGs
09.07.25
13.TS093G session - Volume-Quota-Threshold support3G session - Volume-Quota-Threshold support

PASSED

Andrii Kravchenko, Benoit Bolsee from WTL


04.04.24
14.TS10RoamingRoaming usage depending on 3GPP-SGSN-MCC-MNC

PASSED (M)

Andrii Kravchenko, Benoit Bolsee from WTL

Real testing has not been performed, but should work since WTL provides with MCC-MNC of the roaming network in 3GPP-SGSN-MCC-MNC AVP28.03.25
15.TS11Multi-IMSI case (QA-9061)Charges are performed based on IMSI + MCC-MNC

PENDING




PASSED - without issues

PASSED (M) - with minor issues (the reason should be described in "Comments/Bugs" column)

PASSED (C) - with critical issues (the reason should be described in "Comments/Bugs" column)

FAILED - issues are too critical (the reason should be described in "Comments/Bugs" column)

PENDING - is not started yet

3 Test Cases description and results

3.1 Connection Establishment and Capabilities Exchange (CER/CEA)

This case is aimed to verify Diameter connection between PortaOne OCS and test P-GW. 

3.2 Disconnect Peer (DPR/DPA)

Disconnect-Peer-Request (DPR) can be originated by any of peers. It is needed to check both cases. 

3.3 Diameter/interconnectivity

In this case basic CC exchange is going to be checked. P-GW should send CCR-I, OCS - CCA-I.

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com

portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST) is received
Session-Id                         = 'smf.portaone.com;1710751467;2;app_gy'
Event-Timestamp                    = '1710753289'
Origin-Host                        = 'smf.portaone.com'
Origin-Realm                       = 'portaone.com'
Destination-Realm                  = 'portaone.com'
Auth-Application-Id                = '4'
Service-Context-Id                 = '32251@3gpp.org'
CC-Request-Type                    = 'INITIAL_REQUEST'
CC-Request-Number                  = '0'
Subscription-Id                    = 'BEGIN-GROUP'
  Subscription-Id-Type               = 'END_USER_IMSI'
  Subscription-Id-Data               = '001010000020340'
Subscription-Id                    = 'END-GROUP'
Subscription-Id                    = 'BEGIN-GROUP'
  Subscription-Id-Type               = 'END_USER_E164'
  Subscription-Id-Data               = '32473123456'
Subscription-Id                    = 'END-GROUP'
Requested-Action                   = 'DIRECT_DEBITING'
AoC-Request-Type                   = 'AOC_FULL'
Multiple-Services-Indicator        = 'NOT_SUPPORTED'
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
  QoS-Information                    = 'BEGIN-GROUP'
    QoS-Class-Identifier               = 'QCI_9'
    Allocation-Retention-Priority      = 'BEGIN-GROUP'
      Priority-Level                     = '8'
      Pre-emption-Capability             = 'PRE-EMPTION_CAPABILITY_DISABLED'
      Pre-emption-Vulnerability          = 'PRE-EMPTION_VULNERABILITY_ENABLED'
    Allocation-Retention-Priority      = 'END-GROUP'
    APN-Aggregate-Max-Bitrate-UL       = '1000000000'
    APN-Aggregate-Max-Bitrate-DL       = '1000000000'
  QoS-Information                    = 'END-GROUP'
Multiple-Services-Credit-Control   = 'END-GROUP'
Service-Information                = 'BEGIN-GROUP'
  PS-Information                     = 'BEGIN-GROUP'
    Called-Station-Id                  = 'cmnet'
    3GPP-Charging-Id                   = '\000\000\000\001'
    3GPP-PDP-Type                      = '0'
    PDP-Address                        = '10.44.0.2'
    SGSN-Address                       = '127.0.0.3'
    GGSN-Address                       = '127.0.0.4'
    3GPP-Selection-Mode                = '0'
    3GPP-SGSN-MCC-MNC                  = '00101'
    3GPP-NSAPI                         = '\005'
    3GPP-MS-TimeZone                   = '\000\000'
    3GPP-User-Location-Info            = '\130\000\241\016\000\001\000\241\016\000\000\001\001'
    3GPP-RAT-Type                      = '\006'
    User-Equipment-Info                = 'BEGIN-GROUP'
      User-Equipment-Info-Type           = 'IMEISV'
      User-Equipment-Info-Value          = '3514963720835613'
    User-Equipment-Info                = 'END-GROUP'
  PS-Information                     = 'END-GROUP'
Service-Information                = 'END-GROUP'
2
portaone.comCheck, if all required/expected attributes are presentThe request is understood by PortaBilling and responded to client
Session-Id                         = 'smf.portaone.com;1710751467;2;app_gy'
Auth-Application-Id                = '4'
CC-Request-Number                  = '0'
CC-Request-Type                    = 'INITIAL_REQUEST'
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '7195'
Multiple-Services-Credit-Control   = 'END-GROUP'
Result-Code                        = '2001'
Origin-Host                        = 'ocs.portaone.com'
Origin-Realm                       = 'portaone.com'
3
portaone.comCheck response is delivered to HA diameter clientGW is able to decode the response736D662E 706F7274 616F6E65 66F1D832

3.4 Establish connection

To check that user can use some traffic.

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com


portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
  QoS-Information                    = 'BEGIN-GROUP'
    QoS-Class-Identifier               = 'QCI_9'
    Allocation-Retention-Priority      = 'BEGIN-GROUP'
      Priority-Level                     = '8'
      Pre-emption-Capability             = 'PRE-EMPTION_CAPABILITY_DISABLED'
      Pre-emption-Vulnerability          = 'PRE-EMPTION_VULNERABILITY_ENABLED'
    Allocation-Retention-Priority      = 'END-GROUP'
    APN-Aggregate-Max-Bitrate-UL       = '1000000000'
    APN-Aggregate-Max-Bitrate-DL       = '1000000000'
  QoS-Information                    = 'END-GROUP'
Multiple-Services-Credit-Control   = 'END-GROUP'
2
portaone.comCheck, if session is grantedthe response provides grants to establish the session
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '7195'
Multiple-Services-Credit-Control   = 'END-GROUP'
3
portaone.comCheck response will allow user to start using the sessionGW allows the user to connect736D662E 706F7274 616F6E65 66F1D832

3.5 Rejected connection for nonexistent subscriber

To check that service cannot be provided for nonexistent user. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com


portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
2
portaone.comCheck, if reject response is providedthe CCA denies the session
Session-Id                         = 'smf.portaone.com;1710751467;4;app_gy'
Auth-Application-Id                = '4'
CC-Request-Number                  = '0'
CC-Request-Type                    = 'INITIAL_REQUEST'
Origin-Host                        = 'ocs.portaone.com'
Origin-Realm                       = 'portaone.com'
Result-Code                        = '5030'
3
portaone.comCheck response will disallow user to connectSAE-GW rejects the connection736D662E 706F7274 616F6E65 A09ED1B5

3.6 Hotlined connection for expired, blocked, suspended subscriber

To check that expired/blocked/suspended user is redirected to captive portal.

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com


portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit

2
portaone.comCheck, if reject response is providedthe CCA denies the session and provides the "hotlining" redirect URL

3
portaone.comCheck that SAE-GW disallows user to connectUpon any web browsing attempt user is redirected to the hotlining server; all other network traffic is blocked

3.7 Billing session

To check that session is billed properly and xDRs are shown properly on WI. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com


portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
2
portaone.comCheck, if session is grantedthe response provides grants to establish the session
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '7195'
Multiple-Services-Credit-Control   = 'END-GROUP'
3
portaone.comCheck response will allow user to start using the sessionthe user is able to use the service736D662E 706F7274 616F6E65 66F1D832
4User performs some data transfers (1-10MBs)portaone.comCheck if the session generates UPDATE reauthorizationsbilling records are produced, usage and session is represented on PB gui
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    Reporting-Reason                   = 'QUOTA_EXHAUSTED'
    CC-Time                            = '21'
    CC-Input-Octets                    = '306770'
    CC-Output-Octets                   = '693232'
  Used-Service-Unit                  = 'END-GROUP'
5User terminates the sessionportaone.comCheck if the session generates TERMINATE CCRfinal billing record is produced, usage and session is cleaned in PortaBilling
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    CC-Time                            = '18'
    CC-Input-Octets                    = '154346'
    CC-Output-Octets                   = '456675'
  Used-Service-Unit                  = 'END-GROUP'
  Reporting-Reason                   = 'FINAL'

3.8 Billing for multiple rating groups within a session

To check that session is billed properly for several rating groups and xDRs are shown properly on WI. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

HA-GW is configured to distinguish between classes of network traffic - e.g. generic Internet and VoIP traffic (to/from IP addresses of PortaSIP servers and provider's VoIP gateways).

portaone.comObtain the rating group Ids, assign them as separate entries in the product configuration (rating group = access code)Usage charging definition with multiple groups is created within product

2

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com


portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit

3
portaone.comCheck, if session is grantedthe response provides grants to establish the sesion

4
portaone.comCheck response will allow user to start using the sessionthe user is able to use the service


5User performs some data transfers (1-10MBs) which fall into "chargeable" category and user performs some data transfers (1-10MBs) which fall into "free" categoryportaone.comCheck if the session generates UPDATE reauthorizationsbilling records are produced, usage and session is represented on PB gui. Customer's balance is only changed by the value supplied in the "chargeable" rating group.

6User terminates the sessionportaone.comCheck if the session generates TERMINATE CCRfinal billing record is produced, usage and session is cleaned in PortaBilling

3.9 Session is hotlined once quota is depleted

To check that user is redirected to captive portal as soon as quota is depleted. Only free services are allowed. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com

portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
2
portaone.comCheck, if session is grantedthe response provides grants to establish the session
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
3
portaone.comCheck response will allow user to start using the sessionthe user is able to use the service736D662E 706F7274 616F6E65 2F23C913


4User performs some data transfers (1-10MBs)portaone.comCheck if the session generates UPDATE reauthorizationsbilling records are produced, usage and session is represented on PB gui
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    Reporting-Reason                   = 'THRESHOLD'
    CC-Time                            = '20'
    CC-Input-Octets                    = '253056'
    CC-Output-Octets                   = '547161'
  Used-Service-Unit                  = 'END-GROUP'



5User runs out of available fundsportaone.comCheck if CCA limits the requested quotathe CCA provides less then allowed resources in granted service units, FUA REDIRECT is present in CCA for chargeable RG
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Final-Unit-Indication              = 'BEGIN-GROUP'
    Final-Unit-Action                  = 'TERMINATE'
  Final-Unit-Indication              = 'END-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '744448'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '7195'
  Volume-Quota-Threshold             = '200000'
Multiple-Services-Credit-Control   = 'END-GROUP'
6GW reports final usageportaone.comCheck if CCR-U provides USUbilling records are produced, usage and session is represented on PB gui, OCS replies with no GSU AVP for chargeable RG, access only to services related to free RGs

7User has access only to free services portaone.comCheck if the session generates UPDATE reauthorizationsCCR-U only for free RGs. User is able to use free services only
RGs not supported

3.10 Hotlined connection when insufficient funds

To check that user is redirected when account (customer) has no funds. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com

portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
2
portaone.comCheck, if DIAMETER_CREDIT_LIMIT_REACHED response is providedResult-Code 4012 and FUA REDIRECT is present in CCA
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Final-Unit-Indication              = 'BEGIN-GROUP'
    Final-Unit-Action                  = 'TERMINATE'
  Final-Unit-Indication              = 'END-GROUP'
  Result-Code                        = '4012'
  Validity-Time                      = '7194'
Multiple-Services-Credit-Control   = 'END-GROUP'
3
portaone.comCheck response will allow user to connect only to Redirect-Server-AddressOCS replies with no GSU AVP, access only to URL provided in Redirect-Server-AddressMultiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    CC-Time                            = '0'
    CC-Input-Octets                    = '0'
    CC-Output-Octets                   = '0'
  Used-Service-Unit                  = 'END-GROUP'


3.11 Validity-Time support

To check whether P-GW supports Validity-Time. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com

portaone.commake a user to establish a sessionDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
2
portaone.comCheck, if session is granted and Validity-Time is providedthe response provides grants to establish the session and includes Validity-Time AVP (120 seconds)
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '24'
Multiple-Services-Credit-Control   = 'END-GROUP'
3
portaone.comCheck response will allow user to start using the sessionthe user is able to use the service736D662E 706F7274 616F6E65 6562CE3E


4User performs some data transfers (1-10MBs)portaone.comCheck if the session generates UPDATE reauthorizationsbilling records are produced, usage and session is represented on PB gui
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    CC-Time                            = '24'
    CC-Input-Octets                    = '5790'
    CC-Output-Octets                   = '4508'
  Used-Service-Unit                  = 'END-GROUP'
5
portaone.comCheck if UPDATE CCAs include Validity-Timethe responses provide grants to establish the session and include Validity-Time AVP (120 seconds)
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '25'
Multiple-Services-Credit-Control   = 'END-GROUP'
6User performs too low/no consumptionportaone.comCheck if the session generates UPDATE reauthorizations on Validity-Time expirationbilling records are produced, usage and session is represented on PB gui
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    CC-Time                            = '24'
    CC-Input-Octets                    = '0'
    CC-Output-Octets                   = '0'
  Used-Service-Unit                  = 'END-GROUP'
  Reporting-Reason                   = 'VALIDITY_TIME'
7User terminates the sessionportaone.comCheck if the session generates TERMINATE CCRfinal billing record is produced, usage and session is cleaned in PortaBilling
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    CC-Time                            = '18'
    CC-Input-Octets                    = '0'
    CC-Output-Octets                   = '0'
  Used-Service-Unit                  = 'END-GROUP'
  Reporting-Reason                   = 'FINAL'

3.12 Session re-establishment upon payment

To check that user is returned from captive portal upon payment. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com

portaone.comEnd-user with depleted funds connectsDiameter request (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit

2
portaone.comCheck, if reject response is providedthe CCA denies the session and provides the "hotlining" redirect URL

3
portaone.comCheck response will disallow user to connectUpon any web browsing attempt user is redirected to the hotlining server; all other network traffic is blocked


4
portaone.comEnd-user makes a payment / topup on PortaBilling self-care portal (or via external application, which sends the payment info to PortaBilling via API)User's available funds / quota increased


5
portaone.comRAR is sent from PortaBilling to HA-GWRAR is received and RAA is sent by SAE-GW
2024-03-18T10:20:17.540Z ['diaconv@127.0.0.1':<0.1320.0>] [7] (diameter_req:76) decoding request smf.portaone.com;1710751467;24;app_gy:
  [{"Session-Id","smf.portaone.com;1710751467;24;app_gy"},
   {"Auth-Application-Id","4"},
   {"Re-Auth-Request-Type","AUTHORIZE_ONLY"},
   {"Destination-Host","smf.portaone.com"},
   {"Destination-Realm","portaone.com"}]
2024-03-18T10:20:17.540Z ['diaconv@127.0.0.1':<0.1320.0>] [5] (diameter_req:80) sending request smf.portaone.com;1710751467;24;app_gy to peer smf.portaone.com/portaone.com
2024-03-18T10:20:17.540Z ['diaconv@127.0.0.1':<0.1321.0>] [7] (diameter_cb:102) peer picked: <0.1155.0>
2024-03-18T10:20:17.541Z ['diaconv@127.0.0.1':<0.1321.0>] [7] (diameter_cb:129) preparing 'RAR' message for <0.1155.0>
2024-03-18T10:20:17.556Z ['diaconv@127.0.0.1':<0.1321.0>] [4] (diameter_cb:165) unexpected answer from <0.1155.0>: {diameter_packet,{diameter_header,1,136,258,4,3872314330,3872314330,false,true,false,false},[{diameter_avp,263,undefined,true,false,<<"smf.portaone.com;1710751467;24;app_gy">>,'Session-Id',"smf.portaone.com;1710751467;24;app_gy",'UTF8String',0},{diameter_avp,258,undefined,true,false,<<0,0,0,4>>,'Auth-Application-Id',4,'Unsigned32',1},{diameter_avp,264,undefined,true,false,<<"smf.portaone.com">>,'Origin-Host',"smf.portaone.com",'DiameterIdentity',2},{diameter_avp,296,undefined,true,false,<<"portaone.com">>,'Origin-Realm',"portaone.com",'DiameterIdentity',3},{diameter_avp,268,undefined,true,false,<<0,0,7,209>>,'Result-Code',2001,'Unsigned32',4}],{diameter_3gpp_32_299_RAA,"smf.portaone.com;1710751467;24;app_gy",2001,"smf.portaone.com","portaone.com",[],[],[],[],[],[],[],[],[],[]},<<1,0,0,136,64,0,1,2,0,0,0,4,230,206,211,218,230,206,211,218,0,0,1,7,64,0,0,45,115,109,102,46,112,111,114,116,97,111,110,101,46,99,111,109,59,49,55,49,48,55,53,49,52,54,55,59,50,52,59,97,112,112,95,103,121,0,0,0,0,0,1,2,64,0,0,12,0,0,0,4,0,0,1,8,64,0,0,24,115,109,102,46,112,111,114,116,97,111,110,101,46,99,111,109,0,0,1,40,64,0,0,20,112,111,114,116,97,111,110,101,46,99,111,109,0,0,1,12,64,0,0,12,0,0,7,209>>,[{5001,{diameter_avp,258,undefined,true,false,<<0,0,0,4>>,'Auth-Application-Id',4,'Unsigned32',1}}],undefined}
2024-03-18T10:20:17.556Z ['diaconv@127.0.0.1':<0.1320.0>] [4] (diameter_req:86) no response smf.portaone.com;1710751467;24;app_gy: failure
6
portaone.comUPDATE reauthorization is sent to PortaBillingUser is authorized to use the service normally

3.13 Volume-Quota-Threshold support

To check whether P-GW supports Volume-Quota-Threshold. 

Step IDTest Data SpecificationREALMStep descriptionExpected ResultsResult Data
1

Subscriber identification:
<MDN> # 32473123456
HA-gw node(s): <Origin-Host/Origin-Realm>

# smf.portaone.com / portaone.com

portaone.commake a user to establish a sessionDiameter requests (INITIAL_REQUEST/UPDATE_REQUEST) is received containing Requested-Service-Unit
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
2
portaone.comCheck, if session is granted and Volume-Quota-Threshold AVP is providedthe response provides grants to establish the session and includes Volume-Quota-Threshold AVP
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '7195'
  Volume-Quota-Threshold             = '200000'
Multiple-Services-Credit-Control   = 'END-GROUP'
3
portaone.comCheck response will allow user to start using the sessionthe user is able to use the service736D662E 706F7274 616F6E65 2F23C913


4User performs some data transfers (1-10MBs)portaone.comCheck if the session generates UPDATE reauthorizationsbilling records are produced, usage and session is represented on PB gui
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Requested-Service-Unit             = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Requested-Service-Unit             = 'END-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    Reporting-Reason                   = 'THRESHOLD'
    CC-Time                            = '20'
    CC-Input-Octets                    = '253056'
    CC-Output-Octets                   = '547161'
  Used-Service-Unit                  = 'END-GROUP'
5
portaone.comCheck if UPDATE CCAs include Volume-Quota-Threshold AVPthe responses provide grants to establish the session and include Volume-Quota-Threshold AVP
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Granted-Service-Unit               = 'BEGIN-GROUP'
    CC-Total-Octets                    = '1000000'
  Granted-Service-Unit               = 'END-GROUP'
  Result-Code                        = '2001'
  Validity-Time                      = '7195'
  Volume-Quota-Threshold             = '200000'
Multiple-Services-Credit-Control   = 'END-GROUP'
6User performs too low/no consumptionportaone.comCheck if the session generates UPDATE reauthorizations when the quota contents fall below Volume-Quota-Threshold.HA/PGW sends CCR-U message to BOSS. HA/PGW shall allow service to continue whilst the re-authorization is progress, up to the volume indicated in the original quota. Billing records are produced, usage and session is represented on PB gui

7User terminates the sessionportaone.comCheck if the session generates TERMINATE CCRfinal billing record is produced, usage and session is cleaned in PortaBilling
Multiple-Services-Credit-Control   = 'BEGIN-GROUP'
  Used-Service-Unit                  = 'BEGIN-GROUP'
    CC-Time                            = '0'
    CC-Input-Octets                    = '15860'
    CC-Output-Octets                   = '528892'
  Used-Service-Unit                  = 'END-GROUP'
  Reporting-Reason                   = 'FINAL'
  • No labels