• Type your task here, using "@" to assign to a user and "//" to select a due date

User Story

Mobile operator wants to offer a service wallet to be applied for domestic calls, SMS and data. The balance there should be separate from the real monetary balance (which will be used for international calls, etc.)

Use Cases

Use case #1: Monetary Wallet

Roles: Administrator, End-user

Scenario #1.1: Initial configuration

  • Administrator configures the rates: US domestic phone call - $0.03/min; phone calls to Mexico - $0.15/min; SMS to any US mobile operator - $0.02; 1MB of data - $0.10.

  • Initial value for the service wallet is $10; wallet is applicable to US domestic phone calls, US domestic SMS and wireless data only
  • Customer is given options to top-up the service wallet: $5 = $5 credit; $10 = $11 credit; $20 = $25 credit; $50 = $65 credit

Scenario #1.2: Using the service and top-up

  • End-user signs up. His account is provisioned - initial "main" balance is zero; service wallet balance is $10.
  • End-user talks for 15 minutes; the wallet balance is now $10 - $0.45 = $9.55
  • End-user sends two SMS; the wallet balance is now $9.55 - $0.04 = $9.51
  • End-user wants to top-up and chooses $20 option. His credit card is charged $20 + tax = $22.15; the balance of the wallet becomes $9.51 + $25 = $34.51
  • End-user tries to make a call Mexico, the call is not authorized
  • End-user browses web and uses 31 MB of data; the wallet balance is now $34.51 - $3.10 = $31.41
  • End-user tops up his "main" balance by $10. The service wallet balance is still $31.41
  • End-user makes a call to Mexico, speaks for 20 minutes. His "main" balance is now $10 - $3.00 = $7. The service wallet balance is still $31.41

Use case #2: Virtual Units Wallet

Roles: Administrator, End-user

Scenario #2.1: Initial configuration

  • Administrator configures the rates: US domestic phone call - 3 units; SMS to any US mobile operator - 1 unit; 1MB of data - 5 units. Calls to Mexico are $0.15/min.

  • Initial value for the service wallet is 0 units
  • Customer is given options to top-up the service wallet: $5 = 500 units; $10 = 1100 units; $20 = 2500 units; $50 = 6500 units

Scenario #2.2: Using the service and top-up

  • End-user signs up. His account is provisioned - initial balance is $0, service wallet balance is 0 units.
  • End-user wants to top-up and chooses $10 option. His credit card is charged $10 + tax = $11.07; the balance of the wallet is now 1100 units
  • End-user talks for 15 minutes; his balance is now 1100 - 45 = 1055
  • End-user sees Facebook ad "like us and get free stuff (1000 units!)" and clicks "Like". External app "promotion" applies 1000 units credit to his wallet (via API). The wallet's balance is now 2055.
  • End-user sends two SMS; his balance is now 2055 - 2 = 2053
  • End-user wants to top-up and chooses $20 option. His credit card is charged $20 + tax = $22.15; the balance of the wallet becomes 2053 + 2500 = 4553.
  • End-user tries to make a call Mexico, the call is not authorized
  • End-user browses web and uses 31 MB of data; his balance is now 4553 - 155 = 4398.
  • End-user tops up his "main" balance by $10. The service wallet balance is still 4398
  • End-user makes a call to Mexico, speaks for 20 minutes. His "main" balance is now $10 - $3.00 = $7. The service wallet balance is still 4398
  • End-user activates a promotion "Top-up your amigo's phone" to transfer 1000 units as 500 pesos credit to a mobile subscriber in Mexico via TransferTo. External app (via API) decreases the amount of available wallet units 4398 - 1000 = 3398 and then sends the remittance request to TransferTo; his friend in Mexico gets the credit.

Use case #3: Wallet combination

Roles: Administrator, End-user

Scenario #3.1: Initial configuration

  • Administrator configures the rates: US domestic phone call - 3 units; SMS to any US mobile operator - 1 unit; phone calls to Mexico - $0.15/min; 1MB of data - $0.10.

  • Initial value for the service wallet for calls/SMS is 0 units
  • Customer is given options to top-up the call/SMS wallet: $5 = 500 units; $10 = 1100 units; $20 = 2500 units; $50 = 6500 units

  • Initial value for the service wallet for data is 1GB
  • Customer is given options to top-up the data wallet: $5 = 1GB; $10 = 2GB; $20 = 5GB; $50 = 15GB

Scenario #3.2: Using the service and top-up

  • End-user signs up. His account is provisioned - initial "main" balance is zero; the balance of call/SMS wallet is 0 units; the balance of data wallet is 1GB
  • End-user wants to top-up calls and chooses $10 option. His credit card is charged $10 + tax = $11.07; the balance of the call/SMS wallet is now 1100 units
  • End-user talks for 15 minutes; the balance of call/SMS wallet is now 1100 - 45 = 1055; the balance of data wallet is still 1GB
  • End-user sends two SMS; the balance of call/SMS wallet is now 1055 - 2 = 1053; the balance of data wallet is still 1GB
  • End-user tries to make a call Mexico, the call is not authorized
  • End-user browses web and uses 31 MB of data; the balance of data wallet is now 1GB - 31MB = 993MB
  • End-user tops up his "main" balance by $10. The balance of call/SMS wallet is still 1053 units, the balance of data wallet is still 993MB
  • End-user makes a call to Mexico, speaks for 20 minutes. His "main" balance is now $10 - $3.00 = $7. The balance of call/SMS wallet is still 1053 units, the balance of data wallet is still 993MB

Limitations

In one discount plan, we can configure only one service wallet or quota with service pool.