- Type your task here, using "@" to assign to a user and "//" to select a due date
User Story
To provide IPTV services Customer needs an integration with TeleBreeze IPTV platform.
TeleBreeze will provide an infinite service, while all the billing will be done on PortaBilling side.
TeleBreeze will stop providing the service only if Customer in PortaBilling is suspended/blocked/exceeded its credit limit.
Entities
The mapping between PortaBilling and TeleBreeze is that "account" in PortaBilling corresponds to "customer" in TeleBreeze (by analogy with Minerva integration).
Account_id on PortaBilling = Account_id_i_env on TeleBreeze (e.g. Account ID: 123000, i_env = 3, Customer ID on TeleBreeze would be - 123000_3).
Authentication
End-users that will use TeleBreeze services should be authenticated in TeleBreeze. There should be two ways to authenticate a user either by their Device ID or via account_id&password.
Device ID or Password should be provisioned to TeleBreeze from the custom fields. This info will be filled by administrator when creating an account with IPTV service.
Use Cases
Use case #1: IPTV
Roles: Account, Customer, User
Preconditions: On TeleBreeze three channel packages are created, "Basic Package", "Premium Package" and "Entertainment Pack".
Three products are created in PortaBilling: "Basic" has "Basic Package", "Premium" has "Premium Package", add-on "Extra" has "Entertainment Pack".
All products have IPTV service enabled and subscriptions assigned.
Scenario#1 “Customer creation and Product assignment”:
Event: Account is created in PortaBilling with "Basic" product assigned.
Action: Customer is created in TeleBreeze with "Basic Package" assigned.
Event: “Basic” product is changed to "Premium" for the Account in PortaBilling.
Action: "Basic Package" is changed to "Premium Package" for Customer in TeleBreeze.
Event: Add-on product “Extra” is assigned to the Account in PortaBilling;
Action: "Entertainment Pack" is added to the Customer in addition to "Premium Package" in TeleBreeze.
Scenario#2 “Service suspension and Account termination”:
Event: Account has not enough funds to use the service (account is suspended/blocked/exceeded credit limit).
Action: PortaBilling sends request and IPTV service is deactivated on TeleBreeze.
Event: Account is terminated in PortaBilling;
Action: PortaBiling sends request and Customer is removed from TeleBreeze.
Use case #2: VOD and PPV
Roles: Account, Customer, User
Preconditions: "Basic Package" is created on TeleBreeze. Product “Basic" is created in PortaBilling and assigned to the Account;
Scenario#1 “Account has sufficient balance in PortaBilling”:
Event: Customer purchases VOD/PPV via TeleBreeze player.
Action#1: TeleBreeze checks Account's balance in PortaBilling;
Action#2: PortaBilling informs TeleBreeze that there are enough funds to purchase;
Event: Customer confirms the subscription for VOD/PPV service via TeleBreeze player;
Action: TeleBreeze inserts transaction that reflects the amount and information about the content (movie name?)
Scenario#2 “Account has insufficient balance in PortaBilling”:
Event: Customer purchases VOD/PPV via TeleBreeze player.
Action#1: TeleBreeze checks Account's balance in PortaBilling;
Action#2: Customer in TeleBreeze is informed that he is not able to subscribe VOD/PPV service due to the insufficient balance and advised to top up his balance and re-try;
Other requirements / constraints
Customer agrees that packages synchronization between PortaBilling and TeleBreeze can be performed once an hour (by analogy with Minerva).
In case any field is changed on PB side - new values should be provisioned to TeleBreeze.