nPVR profile management
nPVR Profiles States
The Account object has a field named npvrProfile
that points to the nPVR profile applied to the account. An nPVR profile contains the amount of recording hours that will be available for users in the account.
This field can be empty, in which case the Account is not enabled for nPVR service.
The SDP is delivered with a DLM script that is executed when SDP is installed or upgraded, which creates the nPVR profiles in the table below:
Name | Description | Default quota (hours) |
---|---|---|
NPVR_DISABLED | The Account has not been enabled for nPVR service. This is equivalent to not having any nPVR profile assigned. The Account cannot access nPVR service. | 0 |
NPVR_SMALL | The Account has been allocated a "SMALL" quota of hours for storing recordings. SMALL can be defined on a per-operator basis (see below). | 1024 |
NPVR_MEDIUM | The Account has been allocated a "MEDIUM" quota of hours for storing recordings. MEDIUM can be defined on a per-operator basis (see below). | 102400 |
NPVR_UNLIMITED | The Account has been allocated a "UNLIMITED" quota of hours for storing recordings. UNLIMITED can be defined on a per-operator basis (see below). | 999999 |
NPVR_SUSPENDED | The Account, which had previously been enabled for nPVR service, cannot currently access it. Existing recordings cannot be retrieved, nor can further recordings be requested. An Account in this state can be re-enabled for nPVR service by updating the nPVR profile to any active state (SMALL, MEDIUM, UNLIMITED). The Account's nPVR data will not be deleted unless it expires. | 0 |
NPVR_CANCELED | The Account, which had been previously enabled for nPVR service, cannot currently access it. Existing recordings cannot be retrieved, nor can further recordings be requested. This is a final state. An Account in this state cannot be re-enabled for nPVR service or get assigned any other nPVR profile. The Account's nPVR data will be deleted at some point in time by a periodic clean-up procedure. | 0 |
Assign an nPVR profile to an account
Once the nPVR profiles have been created, Accounts can get any of those profile assigned, either at creation time or through a later update.
Please refer to SMS Domain – Account Use Cases.
Changing the nPVR profile of an account
The following diagram shows the valid state transitions between nPVR profiles. The operator or SMS service is responsible for changing the profile. SDP will not enforce any validation here.
Modifying an existing nPVR profile
Existing nPVR profiles can be modified, typically to change the size of the quota (recording hours) allocated to the profile.
SDP's VisitorService can be used for this purpose, available from the following end point: ws-gateway/gateway/ws/visitorservice
.
The following samples show the requests required to modify an nPVR profile NPVR_MEDIUM
to set the quota size from 100 to 500 hours.
The first step is to retrieve the identifiers associated to NPVR_MEDIUM
profile in the visitors table:
Retrieve nPVR profile sample request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vis="http://quative.tv/VisitorServiceNamespace">
<soapenv:Header/>
<soapenv:Body>
<vis:getValues>
<hostName>COR_ACCOUNT</hostName>
<hostProperty>NPVR_PROFILE</hostProperty>
<spid>22</spid>
<name>NPVR_MEDIUM</name>
</vis:getValues>
</soapenv:Body>
</soapenv:Envelope>
Response including the identifiers:
Retrieve nPVR profile sample response
<env:Envelopexmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<rqid:requestIDxmlns:rqid="http://quative.tv/requestId">23706668</rqid:requestID>
</env:Header>
<env:Body>
<ns2:getValuesResponse xmlns:ns2="http://quative.tv/VisitorServiceNamespace">
<return>200220</return>
<return>200221</return>
</ns2:getValuesResponse>
</env:Body>
</env:Envelope>
The second step is to access the profile name-values using that identifier (200220):
Retrieve name-value identifiers request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vis="http://quative.tv/VisitorServiceNamespace">
<soapenv:Header/>
<soapenv:Body>
<vis:getByUID>
<uid>200220</uid>
</vis:getByUID>
</soapenv:Body>
</soapenv:Envelope>
Response including the identifier for the MAX_REC_QUOTA_HRS
(201102):
Retrieve name-value pairs response
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<rqid:requestID xmlns:rqid="http://quative.tv/requestId">1449981626</rqid:requestID>
</env:Header>
<env:Body>
<ns2:getByUIDResponsexmlns:ns2="http://quative.tv/VisitorServiceNamespace">
<return>
<serviceProviderID>22</serviceProviderID>
<UID>200220</UID>
<description>NPVR</description>
<hostName>COR_VISITOR</hostName>
<hostProperty>VALUE</hostProperty>
<name>MAX_REC_QUOTA_HRS</name>
<value>201102</value>
</return>
</ns2:getByUIDResponse>
</env:Body>
</env:Envelope>
Finally you can retrieve the actual quota value in the profile using the identifier for the MAX_REC_QUOTA_HRS
field:
Retrieve name-value identifiers request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vis="http://quative.tv/VisitorServiceNamespace">
<soapenv:Header/>
<soapenv:Body>
<vis:getByUID>
<uid>201102</uid>
</vis:getByUID>
</soapenv:Body>
</soapenv:Envelope>
Response including the current quota value (100 h):
Retrieve name-value pairs response
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<rqid:requestID xmlns:rqid="http://quative.tv/requestId">1449981626</rqid:requestID>
</env:Header>
<env:Body>
<ns2:getByUIDResponsexmlns:ns2="http://quative.tv/VisitorServiceNamespace">
<return>
<serviceProviderID>22</serviceProviderID>
<UID>201102</UID>
<description>NPVR</description>
<hostName>COR_VISITOR</hostName>
<hostProperty>VALUE</hostProperty>
<name>MAX_REC_QUOTA_HRS_MEDIUM</name>
<value>100</value>
</return>
</ns2:getByUIDResponse>
</env:Body>
</env:Envelope>
Now you can update the value of MAX_REC_QUOTA_HRS_MEDIUM
to 500 hours:
Update quota value request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vis="http://quative.tv/VisitorServiceNamespace">
<soapenv:Header/>
<soapenv:Body>
<vis:update>
<model>
<serviceProviderID>22</serviceProviderID>
<UID>201102</UID>
<description>NPVR</description>
<hostName>COR_VISITOR</hostName>
<hostProperty>VALUE</hostProperty>
<name>MAX_REC_QUOTA_HRS_MEDIUM</name>
<value>500</value>
</model>
</vis:update>
</soapenv:Body>
</soapenv:Envelope>
Successful response returned by SDP:
Update quota value response
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<rqid:requestID xmlns:rqid="http://quative.tv/requestId">1897805169</rqid:requestID>
</env:Header>
<env:Body>
<ns2:updateResponse xmln:ns2="http://quative.tv/VisitorServiceNamespace">
</env:Body>
</env:Envelope>
The following request can be used to verify that the change has been applied:
Request host group information
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vis="http://quative.tv/VisitorServiceNamespace">
<soapenv:Header/>
<soapenv:Body>
<vis:getGroup>
<hostName>COR_ACCOUNT</hostName>
<hostProperty>NPVR_PROFILE</hostProperty>
<grp>NPVR_MEDIUM</grp>
<spid>22</spid>
</vis:getGroup>
</soapenv:Body>
</soapenv:Envelope>
And the response confirming the change:
Host group information response
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<rqid:requestID xmlns:rqid="http://quative.tv/requestId">942273287</rqid:requestID>
</env:Header>
<env:Body>
<ns2:getGroupResponse xmlns:ns2="http://quative.tv/VisitorServiceNamespace">
<return>
<name>MAX_REC_QUOTA_HRS</name>
<value xsi:type="xs:int" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">500</value>
</return>
<return>
<name>NPVR_STATUS</name>
<value xsi:type="xs:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">ENABLED</value>
</return>
</ns2:getGroupResponse>
</env:Body>
</env:Envelope>
Creating new nPVR profiles
If the nPVR profiles created by default during SDP installation/upgrade are not sufficient, new profiles can be created.
This requires SQL commands to be run against the SDP database, therefore it is recommended that you contact Support for help with this.
As a reference, the following inserts should be triggered to create a new nPVR profile named NPVR_PREMIUM
with 350 hours of recording space.
The operator must select the UID that does not clash with existing instances.
VISITOR_UID | HOST_NAME | HOST_PROPERTY | SPID | NAME | VALUE | DESCRIPTION | TYPE |
---|---|---|---|---|---|---|---|
300400 | COR_ACCOUNT | NPVR_PROFILE | 2 | NPVR_PREMIUM | 301020 | NPVR | GROUP |
300401 | COR_ACCOUNT | NPVR_PROFILE | 2 | NPVR_PREMIUM | 301021 | NPVR | GROUP |
301020 | COR_VISITOR | VALUE | 2 | MAX_REC_QUOTA_HRS | 301103 | NPVR | NAME |
301021 | COR_VISITOR | VALUE | 2 | NPVR_STATUS | 301001 | NPVR | NAME |
301103 | COR_VISITOR | VALUE | 2 | MAX_REC_QUOTA_HRS_PREMIUM | 350 | NPVR | INTEGER |
301001 | COR_VISITOR | VALUE | 2 | NPVR_STATUS_ENABLED | ENABLED | NPVR | STRING |