Open IPTV Forum
Release 2 Specification
Volume 4 - Protocols
[V2.3] - [2014-01-24]
Postal Address
Open IPTV Forum support office
650 Route des Lucioles - Sophia Antipolis
Valbonne - FRANCE
Tel.: +33 4 92 94 43 83
Fax: +33 4 92 38 52 90
Internet
http://www.oipf.tv
Disclaimer
The Open IPTV Forum accepts no liability whatsoever for any use of this document.
Copyright Notification
No part may be reproduced except as authorized by written permission.
Any form of reproduction and/or distribution of these works is prohibited.
Copyright 2014 © Open IPTV Forum e.V.
All rights reserved.
This Technical Specification (TS) has been produced by the Open IPTV Forum.
This specification provides multiple options for some features. The Open IPTV Forum Profiles specification complements the Release 2 specifications by defining the Open IPTV Forum implementation and deployment profiles. This document is Volume 4 in the 10 Volume set of specifications that define the Open IPTV Forum Release 2 Solution.
The other Volumes in the set are:
This document specifies the protocols over the following reference point interfaces defined in the Open IPTV Forum Release 2 Architecture specification [OIPF_ARCH2].
The requirements for these interfaces are derived from the following sources:
[3G-SEC] | 3GPP, TS 33.203, "3G security; Access security for IP-based services" |
[AAC] | ISO/IEC, 14496-3:2009, "Information Technology - Coding of audio-visual objects - Part 3: Audio". |
[ADDR] | IETF, RFC 1918, "Address Allocation for Private Internets" URL: http://tools.ietf.org/html/rfc1918 |
[AFSPDF] | ETSI, TS 183 017, "Telecommunications and Internet Converged Services and Protocols for Advanced Networking (TISPAN);Resource and Admission Control: DIAMETER protocol for session based policy set-up information exchange between the Application Function (AF) and the Service Policy Decision Function (SPDF);Protocol specification" |
[ATIS-IDSA] | ATIS, ATIS-0800006, IIF Default Scrambling Algorithm (IDSA) |
[BCG] | ETSI, TS 102 539, "Digital Video Broadcasting (DVB);Carriage of Broadband Content Guide (BCG) information over Internet Protocol (IP)" |
[CEA-2014-A] | Consumer Electronics Association, CEA-2014-A, "Web-based Protocol Framework for Remote User Interface on UPnP Networks and the Internet (Web4CE)", (including the August 2008 Errata) |
[CHNG] | ETSI, ES 282 010, "Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN); Charging" |
[CLSLESS] | IETF, RFC 3442, "The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4" URL: http://tools.ietf.org/html/rfc3442 |
[DHCP-OPT] | IETF, RFC 2132, "DHCP Options and BOOTP Vendor Extensions" URL: http://tools.ietf.org/html/rfc2132 |
[DHCP-VND] | IETF, RFC 3925, "Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)" URL: http://tools.ietf.org/html/rfc3925 |
[DIAM] | ETSI, TS 183 033, "Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN);IP Multimedia; Diameter based protocol for the interfaces between the Call Session Control Function and the User Profile Server Function/Subscription Locator Function; Signalling flows and protocol details" [3GPP TS 29.228 V6.8.0 and 3GPP TS 29.229 V6.6.0, modified] |
[DIAMCHG] | 3GPP, TS 32.299, "Telecommunication management; Charging management; Diameter charging applications (Release 8)" |
[DLNA] | DLNA, IEC, 62481-2, Digital living network alliance (DLNA) home networked device interoperability guidelines – Part 2: Media Formats, ed1.0 (2007-08). |
[DVB-SC] | ETSI, TS 103 197 V1.5.1, "Digital Video Broadcasting (DVB); Head-end implementation of DVB SimulCrypt", March 2007. |
[ES282003] | ETSI, ES 282 003, "Resource and Admission Control Sub-system (RACS) - Functional architecture" |
[ES283002] | ETSI, ES 283 002, "Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN);H.248 Profile for controlling Access and Residential Gateways" |
[ES283003] | ETSI, ES 283 003, "Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN);IP Multimedia Call Control based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Stage 3" [3GPP TS 24.229 [Release 7], modified] |
[FCC] | DVB BlueBook A152 (08/10), "Server-Based Fast Channel Change in DVB-IPTV Systems" |
[FEC] | IETF, RFC 4756, "Forward Error Correction Grouping Semantics in Session Description Protocol" URL: http://tools.ietf.org/html/rfc4756 |
[FLUTE] | IETF, RFC 3926, "FLUTE - File Delivery over Unidirectional Transport" URL: http://tools.ietf.org/html/rfc3926 |
[GAA] | 3GPP, TS 33.220, "Generic Authentication Architecture (GAA); Generic bootstrapping architecture" |
[HTTP] | IETF, RFC 2616, "Hypertext Transfer Protocol -- HTTP/1.1" URL: http://tools.ietf.org/html/rfc2616 |
[HTTPAUTH] | IETF, RFC 2617, "HTTP Authentication: Basic and Digest Access Authentication" URL: http://tools.ietf.org/html/rfc2617 |
[IGMP3] | IETF, RFC 3376, "Internet Group Management Protocol, Version 3" URL: http://tools.ietf.org/html/rfc3376 |
[INFO-PKG] | IETF, RFC 6086, "Session Initiation Protocol (SIP) INFO Method and Package Framework" URL: http://tools.ietf.org/html/rfc6086 |
[MPEG2TS] | ISO/IEC, 13818-1:2000/Amd.3:2004, "Generic coding of moving pictures and associated audio information: Systems". |
[NASS-E4] | ETSI, ES 283 034, "Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN); Network Attachment Sub-System (NASS); e4 interface based on the DIAMETER protocol" |
[OFRANSR] | IETF, RFC 3264, "An Offer/Answer Model with the Session Description Protocol (SDP)" URL: http://tools.ietf.org/html/rfc3264 |
[PORTMAP] | IETF, RFC 6284, "Port Mapping Between Unicast and Multicast RTP Sessions" URL: http://tools.ietf.org/html/rfc6284 |
[PSS] | 3GPP, TS 26.234v750, "Transparent end to end packet switched streaming service (PSS) – Protocols and Codecs" |
[PSS-MBMS] | 3GPP, TS 26.237, "IP Multimedia Subsystem (IMS) based Packet Switch Streaming (PSS) and Multimedia Broadcast/Multicast Service (MBMS) User Service; Protocols (Release 8)" |
[RACS-RE] | ETSI, TS 183 060. "Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN); Resource and Admission Control Subsystem (RACS); Re interface based on the DIAMETER protocol" |
[RAMS] | IETF, RFC 6285, "Unicast-Based Rapid Acquisition of Multicast RTP Sessions" URL: http://tools.ietf.org/html/rfc6285 |
[RFC2045] | IETF, RFC 2045, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies" URL: http://tools.ietf.org/html/rfc2045 |
[RFC2837] | IETF, RFC 2387, "The MIME Multipart/Related Content-type" URL: http://tools.ietf.org/html/rfc2637 |
[RFC3016] | IETF, RFC 3016, "RTP Payload Format for MPEG-4 Audio/Visual Streams" URL: http://tools.ietf.org/html/rfc3016 |
[RFC3376] | IETF, RFC 3376, "Internet Group Management Protocol, Version 3" URL: http://tools.ietf.org/html/rfc3376 |
[RFC3420] | IETF, RFC 3420, "Internet Media Type message/sipfrag" URL: http://tools.ietf.org/html/rfc3420 |
[RFC3515] | IETF, RFC 3515, "The Session Initiation Protocol (SIP) REFER Method" URL: http://tools.ietf.org/html/rfc3515 |
[RFC3550] | IETF, RFC 3550, "RTP: A Transport Protocol for Real-Time Applications" URL: http://tools.ietf.org/html/rfc3550 |
[RFC3551] | IETF, RFC 3551, "RTP Profile for Audio and Video Conferences with Minimal Control" URL: http://tools.ietf.org/html/rfc3551 |
[RFC3588] | IETF, RFC 3588, "Diameter Base Protocol" URL: http://tools.ietf.org/html/rfc3588 |
[RFC3640] | IETF, RFC 3640, "RTP Payload Format for Transport of MPEG-4 Elementary Streams" URL: http://tools.ietf.org/html/rfc3640 |
[RFC3840] | IETF, RFC 3840, "Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)" URL: http://tools.ietf.org/html/rfc3841 |
[RFC3841] | IETF, RFC 3841, "Caller Preferences for the Session Initiation Protocol (SIP)" URL: http://tools.ietf.org/html/rfc3841 |
[RFC3890] | IETF, RFC 3890, "A Transport Independent Bandwidth Modifier for the Session Description Protocol (SDP) URL: http://tools.ietf.org/html/rfc3890 |
[RFC3891] | IETF, RFC 3891, "The Session Initiation Protocol (SIP) "Replaces" Header" URL: http://tools.ietf.org/html/rfc3891 |
[RFC3903] | IETF, RFC 3903, "Session Initiation Protocol (SIP) Extension for Event State Publication" URL: http://tools.ietf.org/html/rfc3903 |
[RFC3926] | IETF, RFC 3926, "FLUTE - File Delivery over Unidirectional Transport" URL: http://tools.ietf.org/html/rfc3926 |
[RFC3984] | IETF, RFC 3984, "RTP Payload Format for H.264 Video" URL: http://tools.ietf.org/html/rfc3984 |
[RFC3986] | IETF, RFC 3986, "Uniform Resource Identifier (URI): Generic Syntax" URL: http://tools.ietf.org/html/rfc3986 |
[RFC3994] | IETF, RFC 3994, "Indication of Message Composition for Instant Messaging" URL: http://tools.ietf.org/html/rfc3994 |
[RFC4122] | IETF, RFC 4122, "A Universally Unique Identifier (UUID) Namespace" URL: http://tools.ietf.org/html/rfc4122 |
[RFC4588] | IETF, RFC 4588, "RTP Retransmission Payload Format" URL: http://tools.ietf.org/html/rfc4588 |
[RFC4605] | IETF, RFC 4605, "Internet Group Management Protocol (IGMP) / Multicast Listener Discovery (MLD)-Based Multicast Forwarding ("IGMP/MLD Proxying")" URL: http://tools.ietf.org/html/rfc4605 |
[RFC4629] | IETF, RFC 4629, "RTP Payload Format for ITU-T Rec. H.263 Video" URL: http://tools.ietf.org/html/rfc4629 |
[RFC4749] | IETF, RFC 4749, "RTP Payload Format for the G.729.1 Audio Codec" URL: http://tools.ietf.org/html/rfc4749 |
[RFC4787] | IETF, RFC 4787, "Network Address Translation (NAT) Behavioural Requirements for Unicast UDP" URL: http://tools.ietf.org/html/rfc4787 |
[RFC4867] | IETF, RFC 4867, "RTP Payload Format and File Storage Format for the AMR and AMR-WB Audio Codecs" URL: http://tools.ietf.org/html/rfc4867 |
[RFC4961] | IETF, RFC 4961, "Symmetric RTP/RTP Control Protocol (RTCP)" URL: http://tools.ietf.org/html/rfc4961 |
[RFC4975] | IETF, RFC 4975, "The Message Session Relay Protocol (MSRP)" URL: http://tools.ietf.org/html/rfc4975 |
[RFC5404] | IETF, RFC 5404, "RTP Payload Format for G.719" URL: http://tools.ietf.org/html/rfc5404 |
[RFC5626] | IETF, RFC 5626, "Managing Client-Initiated Connections in the Session Initiation Protocol (SIP)" URL: http://tools.ietf.org/html/rfc5626 |
[RFC5627] | IETF, RFC 5627, "Obtaining and Using Globally Routable User Agent URIs (GRUU) in the Session Initiation Protocol (SIP)" URL: http://tools.ietf.org/html/rfc5627 |
[RTCP-XR] | IETF, RFC 3611, "RTP Control Protocol Extended Reports (RTCP XR)" URL: http://tools.ietf.org/html/rfc3611 |
[RTP] | IETF, RFC 3550, "RTP: A Transport Protocol for Real-Time Applications" URL: http://tools.ietf.org/html/rfc3550 |
[RTSP] | IETF, RFC 2326, "Real Time Streaming Protocol (RTSP)" URL: http://tools.ietf.org/html/rfc2326 |
[RTSP2-AN] | IETF, draft-stiemerling-rtsp-announce-01, "RTSP 2.0 Asynchronous Notification" |
[SDP] | IETF, RFC 4566, "SDP: Session Description Protocol" URL: http://tools.ietf.org/html/rfc4566 |
[SDP-RTCP] | IETF, RFC 3556, "Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidth" URL: http://tools.ietf.org/html/rfc3556 |
[SDP-TCP] | IETF, RFC 4145, "TCP-Based Media Transport in the Session Description Protocol (SDP)" URL: http://tools.ietf.org/html/rfc4145 |
[SES-TIMR] | IETF, RFC 4028, "Session Timers in the Session Initiation Protocol (SIP)" URL: http://tools.ietf.org/html/rfc4028 |
[SHA-1] | U.S. Department of Commerce/National Institute of Standards and Technology, FIPS PUB 180-1, "Secure Hash Standard" |
[SIP] | IETF, RFC 3261, "SIP: Session Initiation Protocol" URL: http://tools.ietf.org/html/rfc3261 |
[SIP-CFG] | IETF, RFC 6080, "A Framework for Session Initiation Protocol User Agent Profile Delivery" URL: http://tools.ietf.org/html/rfc6080 |
[SIP-EVNT] | IETF, RFC 3265, "Session Initiation Protocol (SIP)-Specific Event Notification" URL: http://tools.ietf.org/html/rfc3265 |
[SIP-IM] | IETF, RFC 3428, "Session Initiation Protocol (SIP) Extension for Instant Messaging" URL: http://tools.ietf.org/html/rfc3428 |
[SIP-PRES] | IETF, RFC 3856, "A Presence Event Package for the Session Initiation Protocol (SIP)" URL: http://tools.ietf.org/html/rfc3856 |
[SIP-REG] | IETF, RFC 3680, "A Session Initiation Protocol (SIP) Event Package for Registrations" URL: http://tools.ietf.org/html/rfc3680 |
[SMPL-IM] | OMA, OMA-TS-SIMPLE_IM-V1_0-20100322-C, "Instant Messaging using SIMPLE" |
[SMPL-PRES] | OMA, OMA-ERP-Presence_SIMPLE-V1_1-20080627-A, "Presence SIMPLE Specification" |
[SRVCONT] | 3GPP, TS 24.237, "IP Multimedia (IM) Core Network (CN) subsystem IP Multimedia Subsystem (IMS) service continuity; Stage 3" |
[TR069] | Broadband Forum, TR-069 Amendment 2, "CPE WAN Management Protocol v1.1" URL: http://www.broadband-forum.org/technical/download/TR-069_Amendment-2.pdf |
[TR098] | Broadband Forum, TR-098, "Internet Gateway Device Data Model for TR-069" URL: http://www.broadband-forum.org/technical/download/TR-098_Amendment-2.pdf |
[TR104] | Broadband Forum, TR-104, "DSLHome™ Provisioning Parameters for VoIP CPE" URL: |
[TR106] | Broadband Forum, TR-106, "Data Model Template for TR-069 Enabled Devices" URL: http://www.broadband-forum.org/technical/download/TR-106_Amendment-7.pdf |
[TR135] | Broadband Forum, TR-135, "Data Model for a TR-069 Enabled STB" URL: http://www.broadband-forum.org/technical/download/TR-135_Amendment-3.pdf |
[TS102034] | ETSI, TS 102 034 V1.4.1 (2007-10), "Digital Video Broadcasting (DVB); Transport of MPEG-2 TS Based DVB Services over IP Networks". |
[TS124503] | ETSI, TS 124 503, "Digital cellular telecommunications system (Phase 2+); Universal Mobile Telecommunications System (UMTS); TISPAN; IP Multimedia Call Control Protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Stage 3" [3GPP TS 24.229 (Release 7), modified] (3GPP TS 24.503 Release 8) |
[TS181005] | ETSI, TS 181 005 V3.3.1 (2009-12), "TISPAN Service and Capability Requirements". |
[TS183019] | ETSI, TS 183 019, "Network Attachment: User-Network protocol Interface Definitions" |
[TS183063] | ETSI, TS 183 063, "Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN);IMS-based IPTV stage 3 specification", Release 3 |
[TS26114] | 3GPP, TS 26.114, "IP Multimedia Subsystem (IMS); Multimedia telephony; Media handling and interaction". |
[TVA-MD] | ETSI, TS 102 822-3-1, "Broadcast and On-line Services: Search, select, and rightful use of content on personal storage systems ("TV-Anytime Phase 1"); Part 3: Metadata; Sub-part 1: Metadata schemas" |
[UB-UA] | 3GPP, TS 24.109, "Bootstrapping interface (Ub) and network application function interface (Ua); Protocol details" |
[UMTS-SH] | ETSI, TS 129 329, "Digital cellular telecommunications system (Phase 2+); Universal Mobile Telecommunications System (UMTS); Sh interface based on the Diameter protocol; Protocol details" (3GPP TS 29.329 version 7.4.0 Release 7) |
[UPNP] | UPnP Forum, "UPnP Device Architecture" |
[UPNP-MR] | UPnP Forum, "MediaRenderer:1 Device Template Version 1.01" |
[UPNP-MS] | UPnP Forum, "MediaServer:1 Device Template Version 1.01" |
[VIDEOSHARE] | GSMA, PRD IR.84 Video Share Interoperability Specification, 2.0. |
[XCAP] | IETF, RFC 4825, "The Extensible Markup Language (XML) Configuration Access Protocol (XCAP)" URL: http://tools.ietf.org/html/rfc4825 |
[XCAP-DFF] | IETF, RFC 5874, "An Extensible Markup Language (XML) Document Format for Indicating A Change in XML Configuration Access Protocol (XCAP) Resources" URL: http://tools.ietf.org/html/rfc5874 |
[XCAP-EVT] | IETF, RFC 5875, "An Extensible Markup Language (XML) Configuration Access Protocol (XCAP) Diff Event Package" URL: http://tools.ietf.org/html/rfc5875 |
[OIPF_ARCH2] | Open IPTV Forum, "Functional Architecture - V2.3", January 2014. |
[OIPF_CSP2] | Open IPTV Forum, "Release 2 Specification, Volume 7 - Authentication, Content Protection and Service Protection", V2.3, January 2014. |
[OIPF_DAE2] | Open IPTV Forum, "Release 2 Specification, Volume 5 - Declarative Application Environment", V2.3, January 2014. |
[OIPF_HAS2] | Open IPTV Forum, "Release 2 Specification, Volume 2a - HTTP Adaptive Streaming", V2.3, January 2014. |
[OIPF_MEDIA2] | Open IPTV Forum, "Release 2 Specification, Volume 2 - Media Formats", V2.3, January 2014. |
[OIPF_META2] | Open IPTV Forum, "Release 2 Specification, Volume 3 - Content Metadata", V2.3, January 2014. |
[OIPF_OVIEW2] | Open IPTV Forum, "Release 2 Specification, Volume 1 - Overview", V2.3, January 2014. |
[OIPF_PAE2] | Open IPTV Forum, "Release 2 Specification, Volume 6 - Procedural Application Environment", V2.3, January 2014. |
[OIPF_PROT_EX2] | Open IPTV Forum, "Release 2 Specification, Volume 4a - Examples of IPTV Protocol Sequences", V2.3, January 2014. |
[OIPF_REQS2] | Open IPTV Forum, "Service and Platform Requirements", V2.0, December 2008. |
[OIPF_WSTVP2] | Open IPTV Forum, "Release 2 Specification, Volume 5a - Web Standards TV Profile", V2.3, January 2014. |
[ABNF] | IETF, RFC 4234, "Augmented BNF for Syntax Specifications: ABNF" URL: http://tools.ietf.org/html/rfc4234 |
[RFC2119] | S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Internet RFC 2119. URL: http://www.ietf.org/rfc/rfc2119.txt |
The key words "must", "must not", "required", "shall", "shall not", "should", "should not", "recommended", "may", and "optional" in this document are to be interpreted as described in [RFC2119].
All sections and appendixes, except "Introduction", are normative, unless they are explicitly indicated to be informative.
OIPF usually abbreviates "Scheduled Content" as "SC". This specification additionally uses, for the same meaning and only in the field names, the abbreviation "BC".
Term | Definition |
---|---|
Native HNI-IGI function (often shortened to Native HNI-IGI) | The procedures for interactions on the HNI-IGI interface are provided as part of the OITF implementation - typically in native code. |
Non-native HNI-IGI function (often shortened to Non-native HNI-IGI) | The procedures for interactions on the HNI-IGI interface are provided by a service provider in JavaScript as part of a DAE application. |
In addition to the Abbreviations provided in Volume 1, the following abbreviations are used in this Volume.
Acronym | Explanation |
---|---|
FCC | Fast Channel Change |
GSMA | GSM Association |
ISC | IMS Service Control |
PCh | Personalised Channel |
PPV | Pay Per View |
RET | RETransmission Function |
RFC | Request For Comments |
XCAP | XML Configuration Access Protocol |
XDM | XML Document Management |
The functional entities, functions and reference points defined for the Consumer Network are described in section 5.3 of [OIPF_ARCH2].
Reference Point | Description | Protocols |
---|---|---|
UNIP-1 | Reference point for user initiated IPTV service profile management. | HTTP, XCAP |
UNIP-2 | Reference point for user initiated profile
management of Person-to-Person Communication Enablers, such as presence
privacy, resource list management, group management, etc.
Note that group management is included to support the management of pre-defined groups that can be reused for several purposes, such as presence privacy, presence request, massaging, chatting, etc. | OMA XDM, OMA Presence Enablers, IMS SIP |
UNIS-6 | Reference point for user interaction with application logic for transfer of user requests and interactive feedback of user responses (provider specific GUI). HTTP, FLUTE and TCP based application specific protocols are used to interface between the DAE and the IPTV Application Function. | HTTP, FLUTE |
UNIS-7 | Requests for transport and encoding of content guide metadata. The reference point includes the metadata and the protocols used to deliver the metadata, and shall be based on DVB-IP BCG [BCG]. | HTTP, DVBSTP |
UNIS-8 | Authentication and session management relying on IMS. | IMS SIP |
UNIS-9 | Authentication for GBA Single-Sign on. See [OIPF_CSP2] | HTTP |
UNIS-11 | Reference point for control of real time streaming (e.g. control for pause, rewind, skip forward). The reference point includes content delivery session setup when not relying on IMS. | RTSP |
UNIS-12 | Reference point between the AG and the provider specific application functional entity. Encompasses two functions:
| HTTP, FLUTE |
UNIS-13 | User Stream control for multicast of real time content and data. | IGMP |
UNIS-14 | Reference point used for authorization of service access. See [OIPF_CSP2] | HTTP |
UNIS-15 | Reference point to the IPTV Service Discovery Functional Entity (FE) to obtain information about IPTV services offered by an IPTV Service Provider. | HTTP, DVBSTP |
UNIT-16 | Reference point used for Network Attachment. Functions connected to this reference point include DHCP Server and DHCP Relay. | DHCP |
UNIT-17 | Content stream including content; content encryption (for protected services) and content encoding. This reference point may be used for both multicast and unicast (UNIT-17M and UNIT-17U, respectively). | RTP, HTTP, UDP |
UNIT-18 | Performance monitoring interface for reporting the performance monitoring results, including RTCP for RET/FCC requesting/control. | RTCP, RTSP |
UNIT-19 | Multicast Data Channel, used to deliver data of different kinds to the OITF by means of multicast. This reference point can carry discrete data that is carried over unicast through e.g., the interfaces UNIS-6 and UNIS-7. Other uses such as UNI-RMS are not excluded. | FLUTE |
UNIS-19 | Reference point to the IPTV Service Provider Discovery functional entity to obtain the list of Service Providers, and related information. | HTTP |
UNI-RMS | Remote Management using Broadband Forum TR-069 framework [TR069] and related extensions based on the DVB-IP-RMS specification. | HTTP/TR-069 |
UNIS-CSP-T | Rights management for protected content – including key management and rights expression. See [OIPF_CSP2] | HTTP/MARLIN |
UNIS-CSP-G | Reference point to support a service and content protection solution specific to the IPTV Service Provider. This interface may be used to obtain licenses for purchases/subscribed content, control content and the service protection system and may also be used to deliver content. |
WAN gateway LAN Interfaces | Interface between OITF/IG and AG and the WAN Gateway | DHCP, IGMP |
HNI-DM | Interface between the WAN gateway and the OITF to support remote management of the OITF in the home. | UPnP DM [UPNP] |
HNI-IGI | Interface between the IMS gateway and the OITF providing, to the OITF, access to IG functions for the adaptation to IPTV services on managed networks relying on IMS. | HTTP, SIP |
In a device that implements both the OITF and the IG, the use of the HNI-IGI interface is optional. In this case, the device shall support the UNIS-8, UNIS-9 and UNI-RMS interfaces.
The HNI-IGI interface consists of a set of interactions between the OITF and the IG.
The HNI-IGI interface supports two optional protocols:
The functionality supported by the OITF and the IG is identical for both options. All IMS specifics are supported by the IG in both options as well.
For the HTTP option, certain interactions on the HNI-IGI interface may be implemented either natively or as a DAE application, whereas other interactions cannot be implemented as a DAE applications and must be implemented in native code. An OITF is said to implement the "native HNI-IGI HTTP option function" if it supports at least (but is not limited to) the interactions which must be implemented in native code. The case where no native interaction is supported is hereafter known as "non-native HNI-IGI HTTP option function".
The interactions that must be implemented natively consist of user registration (sections 5.4.6.1 and 6.1.3.2.2) including service provider discovery (section 5.4.1.1), and GBA procedures (section 5.4.6.2) performed at OITF startup.
An OITF that supports the non-native HNI-IGI HTTP option function can still be used in a managed network scenario, but without the support of GBA based authentication or HTTP digest authentication using IG to application servers.
Note that GBA authentication can be achieved using either the GBA Authentication using IMS Gateway procedure, specified in [OIPF_CSP2] section 5.4.5 or the, more general, procedure, HTTP Digest Authentication using IMS Gateway in [OIPF_CSP2] section 5.4.4. The latter; more general procedure allows the use of different authentication mechanism in a way that is transparent to the OITF, including possible future authentication mechanisms, and should preferably be used. It is expected that GBA Authentication using IMS Gateway procedure will be deprecated and removed in future versions of this specification.
The Functional Entities and Reference Points in the service provider network defined in section 5.2 of [OIPF_ARCH2].
Reference Point | Description | Protocols |
---|---|---|
NPI-1 | Reference point between the Service Access Authentication FE and the User Database. | Not Specified |
NPI-2 | An optional reference point allowing interaction between IPTV applications and the IPTV Control FE. | Not Specified |
NPI-3 | The reference point between Authentication Session Management and Person-to-Person Communication Enablers. | ISC interface [TS124503] |
NPI-4 | Reference point for routing of IPTV service related messages to the IPTV Control FE. | ISC interface [TS124503] |
NPI-6 | This reference point allows the IPTV Control FE to retrieve the subscriber’s IPTV-related service data when a user registers in the IMS network. | Not Specified |
NPI-7 | This reference point allows person-to-person application enablers to retrieve the subscriber’s IMS data from the user database. | Sh Interface [UMTS-SH] |
NPI-9 | This reference point allows the IPTV Control Point to retrieve the subscriber’s IMS-specific data from the user database. | Sh Interface [UMTS-SH] |
NPI-10 | A reference point for the allocation/de-allocation and control of content for a unicast session. | RTSP |
NPI-11 | A reference point for sending events and charging information. | Rf and Ro [CHNG] |
NPI-12 | This reference point allows the Authentication and Session Management FE to retrieve the subscriber’s IMS data from the User Database as a part of the user’s IMS registration. | Cx [DIAM] |
NPI-14 | A reference point from Charging FE and Authentication and Session Management FE. | Rf [CHNG] |
NPI-15 | This reference point controls the Resources and Admission Control. | Gq’ [AFSPDF] |
NPI-16 | Reference point between the Transport Processing Function and Resource and Admission Control. | Re [RACS-RE] |
NPI-17 | Reference point between the IPTV Applications and the IPTV Service Profile. | XCAP |
NPI-18 | Reference point between the Service Access and Authentication FE and the IPTV Applications. | Not Specified |
NPI-19 | This reference point shall be used for unicast session setup control between the Authentication and Session Management and the Content Delivery Network Controller. | SIP/SDP |
NPI-20 | This optional reference point allows the retrieval of CG data. | Not Specified |
NPI-21 | This reference point allows the GBA Single Sign-on functional entity to validate user credentials. | Not Specified |
NPI-25 | This reference point allows forwarding unicast control messages to the appropriate Content Delivery Network Controller FE. | SIP/SDP |
NPI-26 | The reference point allows the Content Delivery Network Controller to delegate the handling of a unicast session to a specific Cluster Controller. | SIP/SDP |
NPI-27 | The reference point between the Authentication Proxy and the GBA Single Sign-on node allows the proxy to retrieve a user key for authentication purposes. | Not Specified |
NPI-28 | This reference point shall be used to push the user access capabilities to the Network Attachment and the RAC. | e4 [NASS-E4] |
NPI-30 | This reference point supports the IPTV Service Provider Discovery step of the service discovery procedure relying on IMS. | ISC interface [TS124503] |
NPI-32 | Reference point between the ASM FE and the IMS messaging AS. (This is the ISC interface defined by 3GPP in TS 23.228) | ISC interface [TS124503] |
NPI-33 | Reference point allowing interaction between IPTV Applications and the IPTV Metadata Control FE. This is not subject to standardization. | Not Specified |
NPI-34 | The reference point between the IMS messaging server and the notification services. It is based on IMS SIP as defined by 3GPP in TS 24.229. | SIP |
NPI-36 | This reference points allows access to notification services. It is based on Parlay X -API as defined by (http://www.3gpp.org/ftp/Specs/html-info/29-series.htm). | Parlay X |
NPI-38 | This reference point between notification services and multicast and delivery control function supports multicast traffic for emergency services and is FFS. | Not Specified |
NPI-39 | This reference point between emergency services and the notification services is local and regional specific. | Not Specified |
NPI-40 | Content Delivery Function (CDF) Stream control for multicast of real time. The protocol used on this interface is IGMP. This interface is optional. | IGMP |
NPI-41 | Content stream including content; content encryption (for protected services) and content encoding. This reference point is used for multicast delivery. The protocol used on this interface is RTP. This interface is optional. | RTP |
NPI-42 | This reference point between the IPTV Application and the Multicast Content Delivery Function supports multicast traffic for notification services. | FLUTE |
NPI-CSPT1 | Reference point to confirm whether a Marlin content license can be issued for the request received via UNIS CSP-T. | See [OIPF_CSP2] |
NPI-CSPG1 | Reference point to allow the CSP-G Server to be provisioned with entitlement information by IPTV Applications. | Not Specified |
NPI-CSPG1a | Reference point to allow the CSP-G Server to be provisioned with entitlement information by the IPTV Service Profile. | Not Specified |
NPI-CSPG3 | Reference point for the Key Management Function to exchange content encryption information with CSP-G Server. | HTTP |
NPI-CSPT1a | Reference point used by the Marlin DRM system to include business information or a reference to business information into a DRM request (e.g. license request) as requested via UNIS-CSP-T, and the subsequent confirmation and retrieval of this business information when the DRM request is consumed. | See [OIPF_CSP2] |
NPI-CSPT2 | Reference point, used in the managed network model, to retrieve information on the appropriate cluster controller in the Content Delivery Network that will serve a particular request for purchased or subscribed-to content. This chosen cluster controller will be contacted by the CSP-T Server functional entity via NPI-CSP3. | Not Specified |
NPI-CSPT3 | Reference point to retrieve the appropriate encryption key needed to prepare a Marlin content license for the chosen content. It is the content encryption key for downloadable content or the key that encodes the Marlin short term key message that contains the key that encodes the streaming media. | HTTP |
NPI-43 | Reference point that provides GBA authentication mechanism to the Service Access Authentication Function. | |
NPI-44 | Reference point where the encrypted content is stored on the content storage entity for delivery by the Content Delivery Function. This interface has been identified just to illustrate informatively the separation between content encryption, which is part of content preparation, and content delivery. | Not Specified |
NPI-45 | Reference point where the content Service, Program and Content Keys and ECM attached information are provided to the CoD Encryption Management Function. | HTTP |
NPI-46 | Reference point where the content Service, Program and Content Keys and content protection related ECM attached information (e.g. ECM, DRM metadata) are provided to the Scheduled Content Encryption Function. This interface is specified by this version of the specification for the unicast stream encryption case. This interface is not specified by this version of the specification for the multicast stream encryption case. | HTTP |
NPI-47 | Reference point where the On Demand Content is fetched by the Content Delivery Function for delivery. This interface has been identified just to illustrate informatively the separation between content encryption, which is part of content preparation, and content delivery. | Not Specified |
NPI-48 | Reference point for the Key Management Function to provide appropriate information to the IPTV Applications functional entity, e.g. in relation with content access licenses. | Not Specified |
NPI-49 | Reference point for the Content Management Function to provide the CoD Encryption Function with content related information. | Not Specified |
NPI-50 | Reference point for the Scheduling Function to provide the Recording Function with a record list/schedule for the Catch-up and Start-over use cases. | Not Specified |
NPI-51 | Reference point for the Content Management Function to provide appropriate information to the IPTV Applications functional entity. | Not Specified |
NPI-52 | Reference point for the Scheduling Function to provide appropriate information to the IPTV Applications functional entity. | Not Specified |
NPI-53 | Reference point for the Scheduling Function to provide the Scheduled Content Encryption Function with content related information and schedule. | Not Specified |
NPI-AR-01 | Reference point for providing static audience data about users who have opted-in. It includes content metadata and user related information stored in the IPTV Service Profile. | |
NPI-AR-02 NPI-AR-02’ NPI-AR-02’’ | Reference points
for collecting the information intercepted by the Transport Processing
Function, the IPTV Control, the Cluster Control or other FEs based on
different criteria, e.g. the events triggered by the Audience Research
Collector, event detected from other FEs, the deployment done by the
service provider etc.
Note: The IPTV Control can retrieve the Audience Research data from the ITF or the Cluster Controller using existing SIP messages such as SIP INFO, MESSAGE, INVITE or PRESENCE. | |
NPI-AR-03 | Reference point used for exposing the Audience Research data to the Audience Research Agency. |
DLNA Function | Interface between the OITF and DLNA devices in the home. | DLNA |
Each section of this specification identified below defines the procedures that use a specific protocol:
This section defines the protocol for the use of HTTP over the following reference points:
In support of the HNI-IGI HTTP option the IG shall act a protocol converter between HTTP and SIP. In that respect, the IG acts as an HTTP server towards the OITF, and as a SIP User Agent (UA) towards the IMS network. The following lists the behaviour of the IG as a SIP UA towards the IMS network:
When the OITF initiates, modifies or terminates a multcast content service, the OITF sends HNI-IGI messages containing the appropriate method, mapped to HNI-IGI as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)”.
The SIP-specific information in the related messages is described in section 6.1.2.1, “Multicast content streaming with SIP session management.” The SIP-specific information is mapped to the HNI-IGI protocol, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)”. In particular, the OITF creates HTTP headers for an HNI-IGI message by adding “X-OITF-” in front of the necessary SIP header names. In addition, optional parameters may be included as defined in [TS124503].
Certain interactions on the HNI-IGI interface shall be implemented natively, while the remaining applicable interactions may be implemented either natively or as a DAE application. In the following sections, if no qualification is provided, it must be understood that the interaction can be performed natively or as a DAE application.
The HNI-IGI function in the OITF shall follow the following procedure for session initiation:
Step 1: |
The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
If the OITF indicates its support for RET by means of the "a=rtcp-fb:<fmt> nack" and multicast RET is offered as a service as indicated by SD&S, in order for the OITF to connect to the multicast RET stream, the SDP offer shall include an additional m-line for the multicast RET stream (m=<media> <port> <proto> <fmt> ) which shall be set according to the mapping defined in Annex D.1, “Mapping SDP attributes from DVB SD&S information.” | |||
Step 2: | If the request is for a multicast content service session, the IG shall validate that the request includes all the mandatory SIP headers for the process as per Table 5. The IG shall send a SIP INVITE to the network to request the initiation of the multicast content service session, and shall wait for the response to the request. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | On receipt of the response from the network the IG shall return a HTTP 200 OK response (or other appropriate received responses) to the OITF to report the response to the initiation request. The response shall include a list of SIP headers as per Table 6 in addition to the normal HTTP headers as per RFC 2616 [HTTP], and the same SDP answer body that was received by the IG in the SIP message. | ||
Step 4: | When the OITF receives the response to the INVITE, it shall examine the media parameters in the received SDP. The OITF shall
restrict the multicast content services that it joins according to the
parameter (a=bc_service_package attribute) received from the IPTV
Control FE. However, if the OITF retrieved the IPTV user profile prior
to session initiation, then it may ignore the=bc_service_package attribute.
If the OITF receives an error code with an Insufficient Bandwidth indication in the response from the IG, the OITF may perform a new INVITE with a reduced maximum bandwidth for the multicast content service. This procedure may be repeated. If no agreement can be reached, the OITF may display a failure message to the user. | ||
Step 5: | Upon receipt of a 200 OK response, the OITF shall send an HTTP PENDING_IG to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line
The Request-URI in the INVITE request shall be the well known PSI (Public Service Identifier) of the content service: OIPF_IPTV_SC_Service@<domain name>. | RFC 3261 [SIP]
INVITE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To
The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Contact
The URI parameter and the sip.instance feature tag must be included and must match what is sent in the contact header included in the registration request. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP] (application/sdp) |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Supported | RFC 3261 [SIP] set to timer |
X-OITF-Session-Expires | RFC 4028 [SES-TIMR] |
X-OITF-Recv-Info
shall be empty or the list of info packages the OITF is willing to receive | RFC 6086 [INFO-PKG]
TS 26.237 [PSS-MBMS] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP]
SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Session-Expires | RFC 4028 [SES-TIMR] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Recv-Info
shall be empty to stop receiving any SIP INFO including any Info Package Orshall be set to Content-Reporting Info Package to indicate willingness to receive the Info Package. And/Orshall be set to CoD-Bookmark Info Package according to section 12 of [PSS-MBMS] to indicate willingness to receive the Info Package And/Orshall be set to Digital-Purchase Info Package to indicate willingness to receive the Info Package | RFC 6086 [INFO-PKG] TS 26.237 [PSS-MBMS] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line
The Request-URI in the ACK request shall be the contact included in the response to the INVITE message | RFC 3261 [SIP] ACK <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To
The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” of the initial request | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact
The URI parameter must be included, and must match what has been inserted in the INVITE message. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
If the OITF intends to use FCC and/or RET, when the multicast content service is FCC and/or RET enabled, the OITF shall use the procedure defined in section 5.3.2.1.1, “Retrieval of Session Parameters”, with the following modifications:
The returned response shall include total bandwidth of the multicast content service with the highest total bandwidth, including the overhead bandwidth required for the FCC/RET stream. Maximum bandwidth will be signalled by means of the following media level bandwidth modifier:
To join a service outside the set of channels negotiated at session initiation or to perform a bandwidth modification, the OITF shall send a request to the IG for session modification. The OITF shall generate a re-INVITE request, as defined in Table 5.
The OITF shall include an SDP offer in the session modification request. The format of this request shall be the same as for a session initiation.
To terminate a multicast content streaming session, the OITF shall use the following procedure:
Step 1: |
The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.15.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers needed for the message as per Table 8. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. The IG shall send a SIP BYE to the network, to request the termination of the multicast content streaming session, and shall wait for the response. | ||
Step 3: | The IG shall then return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the Termination request. The response shall include, in addition to the normal HTTP headers as per RFC 2616 [HTTP], a list of SIP headers as per Table 9. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the contact returned in the 200 OK for the invite. | RFC 3261 [SIP] BYE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” of the initial request | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
It is the responsibility of the OITF application to refresh the multicast content streaming session before the session expires. The IG shall consider a session terminated if it is not refreshed.
The OITF shall follow the following procedure for reporting a watched scheduled content:
Step 1: |
To report the scheduled content being watched after the IPTV end user
stopped zapping for the configured time, and if the IPTV Control FE
permitted content reporting, the OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)” The content of the HTTP Request shall be as follows:
| ||
The Content-Reporting Info Package shall contain an XML document defined in Annex D of [PSS-MBMS] with MIME type “application/3gpp-ims-pss-mbms-command+xml”. The XML document shall include either one element of a PSS content switch data or one element of MBMS content switch data. The selection of PSS content switch data or MBMS content switch data is determined according to the content delivery mechanism. Scheduled Content delivered to the OITF through a multicast mechanism shall use the MBMS content switch choice. Scheduled Content delivered by unicast streaming mechanism shall use the PSS content switch choice. For either of those elements there shall be at least one defined sequence included. The elements in the XML document shall be populated as follows:
Also note that the SIP INFO including the info-event Watched Content is sent only within the context of a scheduled content session. | |||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the process as per Table 10. The IG shall send a SIP INFO to the network and shall wait for the response to the request. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | On receipt of the response from the network the IG shall return a HTTP 200 OK response (or other appropriate received responses) to the OITF to report the response to the INFO request. The response shall include a list of SIP headers as per Table 11 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
The OITF shall comply with the following when it comes to management of reporting a watched scheduled content:
Step 1: | At any time, the IG can receive a SIP UPDATE, including an empty Recv-Info header or including the Content-Reporting Info Package, from the network to order the OITF to stop or start reporting the watched content. When a SIP UPDATE is received by the IG, the IG shall return an HTTP 200 OK response to the OITF. The response includes a list of SIP headers as per Table 12 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 2: |
Once the OITF accepts the incoming SIP UPDATE, it shall
send to the IG an HTTP HNI-IGI PENDING_IG request to acknowledge the
receipt of the SIP UPDATE. The content of the HTTP request shall be as follows:
| ||
If the SIP UPDATE is for resumption of content reporting, the OITF shall immediately report the currently watched content in accordance with section 5.3.1.1.6.1, “Content Reporting by the OITF” |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the INFO request shall be the well known PSI (Public Service Identifier) of the content service: OIPF_IPTV_SC_Service@<domain name>. | RFC 3261 [SIP] INFO <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Contact
The URI parameter must be included, and must match what was used in the SIP INVITE for the scheduled content session. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
X-OITF-Call-ID must match what was used in the SIP INVITE for the scheduled content session | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF_Info-Package shall be set to Content-Reporting Info Package | RFC 6086 [INFO-PKG] |
X-OITF-Content-Type shall be set to “application/3gpp-ims-mbms-psscommand+xml” that corresponds to Annex D of [PSS-MBMS] | RFC 6086 [INFO-PKG] TS 26.237 [PSS-MBMS] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Content-Disposition | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line
The Request-URI in the INVITE must match the contact URI included in the contact filed of the SIP INVITE for the scheduled content session | RFC 3261 [SIP]
UPDATE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter and the sip.instance feature tag must be included and must match what is sent in the contact header included in the registration request. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 6086 [INFO-PKG] |
X-OITF-Content-Length | RFC 3261 [SIP] |
Recv-Info
shall be set to remove support for the reception of the Content-Reporting Info Package OR shall be set to indicate support for the reception of Content-Reporting Info Package | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
As a prerequisite it is assumed that the user has an established multicast content streaming session as per the procedure defined in section 5.3.1.1.1, “Session Initiation”
The OITF shall follow the following procedure to initiate a time shift for the watched multicast content service:
Step 1: |
The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)” The content of the HTTP Request shall be as follows:
| ||
The second body part shall conform to the OITF-IPTV Service Action command XML schema in section 5.3.1.1.7.3, “XML Schema for OITF-IPTV Commands”, and shall only include the following:
| |||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 5. The IG shall send a SIP re-INVITE to the network to request the initiation of the time shift procedure, and shall wait for the response to the request. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | On receipt of the response from the network the IG shall
return a HTTP 200 OK response (or other appropriate received responses)
to the OITF to report the response to the time shift activation
request. The response shall include a list of SIP headers as per Table 6, in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The SDP answer shall be in accordance with section 6.1.2.2.2.5, “Protocol over NPI-26” in addition to the following:
| ||
Step 4: | When the OITF receives the response to the re-INVITE, it shall examine the media parameters in the received SDP, and shall store the parameters a:fmtp:iptv_rtsp h-session, a=fmtp:iptv_rtsp h-offset, and a=fmtp:iptv_rtsp h-uri for later usage. | ||
Step 5: |
Upon receipt of a 200 OK response, the OITF shall send an HTTP HNI-IGI PENDING_IG request to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
As a prerequisite it is assumed that the user has an activated scheduled content time shift session as per the procedure in section 5.3.1.1.7.1, “User-initiated Activation of multicast content streaming Time Shift”
The OITF shall follow the following procedure to initiate the de-activation of a time shifted multicast content service:
Step 1: |
The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)” The content of the HTTP Request shall be as follows:
| ||
The second body part shall conform to the OIPF-IPTV Service Action command schema in section 5.3.1.1.7.3, “XML Schema for OITF-IPTV Commands”, and shall only include the following:
| |||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 5. The IG shall send a SIP re-INVITE to the network to request the de-activation of the time shift procedure, and shall wait for the response to the request. The IG shall reject a request that is missing any mandatory SIP headers, with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | On receipt of the response from the network the IG shall return a HTTP 200 OK response (or other appropriate received responses) to the OITF to report the response to the time shift de activation request. The response shall include a list of SIP headers as per Table 6, in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | Upon receipt of a 200 OK response, the OITF shall send an HTTP HNI-IGI PENDING_IG request to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:iptv:IPTVAction:2009" xmlns:tns="urn:oipf:iptv:IPTVAction:2009" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:bc ="urn:org:etsi:ngn:params:xml:ns:iptvbcserviceactiondata" xmlns:co ="urn:org:etsi:ngn:params:xml:ns:iptvcodserviceactiondata" xmlns:np ="urn:org:etsi:ngn:params:xml:ns:iptvnpvrserviceactiondata" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:org:etsi:ngn:params:xml:ns:iptvbcserviceactiondata" schemaLocation="imports/iptvbcserviceactiondata.xsd"/> <xs:import namespace="urn:org:etsi:ngn:params:xml:ns:iptvcodserviceactiondata" schemaLocation="imports/iptvcodserviceactiondata.xsd"/> <xs:import namespace="urn:org:etsi:ngn:params:xml:ns:iptvnpvrserviceactiondata" schemaLocation="imports/iptvnpvrserviceactiondata.xsd"/> <xs:element name="IPTVAction" type="tns:IPTVActionType"/> <xs:complexType name="IPTVActionType"> <xs:choice> <xs:element name="Notify" type="tns:NotifyType"/> <xs:element name="Record" type="tns:RecordType"/> <xs:element name="SwitchToTM" type="tns:SwitchToTMType"/> <xs:element name="SwitchToBC" type="tns:SwitchToBCType"/> </xs:choice> </xs:complexType> <xs:complexType name="NotifyType"> <xs:choice> <xs:element ref="bc:IPTVBcActionData" /> <xs:element ref="co:IPTVCoDActionData" /> <xs:element ref="np:IPTVNpvrActionData" /> </xs:choice> </xs:complexType> <xs:complexType name="RecordType"> <xs:choice> <xs:element ref="bc:IPTVBcActionData" /> <xs:element ref="np:IPTVNpvrActionData" /> </xs:choice> </xs:complexType> <xs:complexType name="SwitchToTMType"> <xs:choice> <xs:element ref="bc:IPTVBcActionData" /> </xs:choice> </xs:complexType> <xs:complexType name="SwitchToBCType"> <xs:choice> <xs:element ref="bc:IPTVBcActionData" /> </xs:choice> </xs:complexType> </xs:schema>
If the OITF does not have all the necessary parameters to form the SDP offer the HNI-IGI function in the OITF shall retrieve missing SDP parameters using the following procedure:
Step 1: | The OITF shall send an HTTP POST request to the IG on the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers required for the outgoing message as per Table 14. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response that includes the reason for rejection. | ||
Step 3: | The IG shall send a SIP OPTIONS message to the network, to retrieve missing SDP parameters and shall wait for the response to the request. The IG shall then return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the request for missing SDP parameters. The response includes a list of SIP headers as per Table 15, in addition to the normal HTTP headers as per RFC 2616 [HTTP], as well as an SDP body containing the missing SDP parameters according to section 6.1.2.2.1.2, “Protocol over NPI-4, NPI-19, NPI-26.” |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line
Note: The request URI shall be set to the PSI (Public Service Identifier) of the content service as follows: For CoD: OIPF_IPTV_CoD_Service_*@<domain name> Where:
| RFC 3261 [SIP] OPTIONS <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To shall be set to the value of the request URI in the “X-OITF-Request-Line OPTIONS” header | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Accept | Set to application/sdp as per RFC 3261 [SIP] |
X-OITF-Recv-Info shall be set to remove support for the reception of the CoD-Bookmark Info Package Or shall be set to indicate support for the reception of the CoD-Bookmark Info Package Note: The CoD-Bookmark Info Package is defined in section 12 of [PSS-MBMS] | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
The OITF shall initiate the request for a unicast content streaming session using the following procedure.
Step 1: |
The OITF shall send an HTTP POST request to the IG on the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
The RTSP content control media description shall be carried by TCP and follow [SDP-TCP]. Hence, the SDP parameters for the RTSP content control channel shall be set as follows:
For each media stream controlled by the RTSP content control channel the SDP offer shall include a content delivery channel media description, set as follows:
If a media stream is FEC protected, the OITF may include the following for each FEC protected stream:
In case there are multiple media streams to be FEC protected, or a single media stream protected by multiple FEC streams, grouping line(s) shall be included for the purpose of associating FEC stream(s) with media stream(s), one for each media stream m-line that is associated to a FEC stream. The grouping line uses the “FEC” semantic as defined in RFC 4756 [FEC]:
The original stream id shall reflect the value held by the media description of media stream in the a=mid attribute. This implies that, when a grouping line is included, there shall be an additional media identification attribute within the m-line of the original media stream that is within the grouping line. The format for that attribute is:
The base FEC stream id shall reflect the value held by the media description of the FEC stream (associated to the original stream) in the a=mid attribute. | |||||||||
Step 2: | If the request is for a unicast content streaming session, the IG shall validate that the request includes all the mandatory SIP headers needed for the outgoing message, as per Table 16. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | |||||||||
Step 3: | The IG shall send a SIP INVITE to the network, to request the initiation of a unicast session, and shall wait for the response to the request. The IG shall then return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the initiation request. The response includes a list of SIP headers as per Table 17, in addition to the normal HTTP headers as per RFC 2616 [HTTP], and the same SDP answer body received by the IG, as described in section 6.1.2.2.2.5, “Protocol over NPI-26”. | |||||||||
Step 4: | Upon receipt of a 200 OK response, the OITF shall send an HTTP Pending Request to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
When parsing the b=RR:<bandwidth-value> line by the OITF: if the bandwidth value agreed is non-zero, then the OITF shall send RTCP RRs and shall not send RTSP keep-alive messages. If the bandwidth value received is zero, then the OITF shall not sends RTCP RRs but instead it shall send RTSP keep-alive messages.
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line
Note: The request URI must be set to the PSI (Public Service Identifier) of the content service as follows:
| RFC 3261 [SIP] INVITE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To must be set to the value of the request URI in the “X-OITF-Request-Line INVITE” header | RFC 3261 [SIP] |
X-OITF-Contact
Notes:
| RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Supported | RFC 3261 [SIP] set to timer |
X-OITF-Session-Expires | RFC 4028 [SES-TIMR] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP]
SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter and the sip.instance feature tag must be included and must match what is sent in the contact header included in the registration request. | RFC 3261 [SIP] |
X-OITF-Session-Expires | RFC 4028 [SES-TIMR] |
X-OITF-Recv-Info
To indicate willingness to receive the CoD-Bookmark Info Package, it shall be set to CoD-Bookmark or add CoD Bookmark to the Info Package set; | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the ACK request shall be the contact included in the response to the INVITE message | RFC 3261 [SIP]
ACK <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To
The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” of the initial request | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact
The URI parameter shall be included, and shall match what has been inserted in the INVITE message. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
The OITF shall send the request for a unicast content streaming session termination using the following procedure:
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers required for the outgoing message, as per Table 19. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP BYE to the network, to request the termination of a unicast session, and shall wait for the response. The IG shall then return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the termination request. The response includes a list of SIP headers as per Table 20 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line | RFC 3261 [SIP]
BYE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” of the initial request | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line | RFC 3261 [SIP]
SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
It is the responsibility of the OITF application to refresh the unicast content streaming session before the session expires. The IG shall consider a session terminated if it is not refreshed.
The use of the HTTP protocol on this reference point shall comply with [HTTP]
The Content Delivery Function shall support the Range HTTP header in a GET request from the OITF to reduce unnecessary network usage by allowing partial retrieval for use in cases such as trick play. The OITF may pre-buffer the content in order to sustain play-out even when the HTTP transfer is stalled.
Content Download is a service where IPTV content is downloaded to the optional Internal Storage System in the OITF. The OITF may play-out the content while downloading. Trick play may be performed within the downloaded content depending on the content rights.
The use of the HTTP protocol on this reference point shall comply with [HTTP].
The Content Delivery Function shall support the Range HTTP header in a GET request from the OITF to reduce unnecessary network usage by allowing partial retrieval.
A native application in the OITF may allow purchase of Digital Media related to a content item. Purchase of Digital Media is a service where the users want to buy and download additional Digital Media related to a content item in which they are interested. There are three steps to purchase Digital Media: advertising and retrieving the Digital Media related to the content item, the purchase request for selected Digital Media, and downloading the purchased Digital Media.
The Digital Media related to the content is described through the OIPF RelatedMaterialType metadata which is extended from the TV-Anytime RelatedMaterial schema defined in [TVA-MD]. In order to provide advertising for the related material, the new element “Position_Size” is needed in the schema.
When the user pauses, OITF retrieves the OIPF RelatedMaterialType metadata of the content in order to advertise the related material. The new element “Position_Size” is used to define where promotional messages or media will appear on the user’s screen and in what size.
The element Position_Size in RelatedMaterialType is shown in red in Figure 1.
Position_Size includes 4 numbers (x, y, w, h), where (x, y) means the top-left point of the advertisement, and w and h means the width and height of the advertisement, respectively. The position and size of each advertisement is decided and sent by IPTV Metadata Control FE. The concept of constructing an advertising window using (x, y, w, h) in Position_Size element is shown in Figure 2.
Different resolution support: the Position_Size is set for the default resolution (for example, 800×600). If the OITF use another resolution (for example, 1024×768), the OITF scales the Position_Size to fit in with that resolution.
The OITF advertise Digital Media to user by overlaying the received PromotionalText and/or PromotionalMedia (e.g., a logo) of OIPF defined RelatedMaterialType and the original IPTV content, as shown in Figure 3.
It is assumed that the OITF has an established session and has retrieved the necessary information to perform the purchase procedures as depicted in the steps below. It is also assumed that the network indicated its willingness to receive the Digital-Media-Purchase Info Package.
Step 1: | The OITF sends HTTP request
(with SelectedDigitalMediaURI, UserID) to IG for purchase selected
Digital Media. The content of the HTTP request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory headers as per Table 21. The IG shall reject a request that is missing any mandatory SIP header with a non-200 HTTP OK response including the reason for rejection. Furthermore, it is assumed that the IPTV Control FE indicated its willingness to receive the Digital-Media-Purchase Info Package at session setup time. Otherwise, the IG shall reject the request. The IG shall send a SIP INFO to the network including the Digital-Media-Purchase Info Package and shall wait for the response from the network. | ||
Step 3: |
On receipt of a response message from network, the IG return shall return an HTTP 200 OK with the purchase result to OITF. The content of the HTTP response shall be as follows:
|
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the INFO request shall be the well known PSI (Public Service Identifier) of the Digital Media Purchase Service: OIPF_IPTV_DMPurchase_Service@<domain name>. | RFC 3261 [SIP] INFO <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF_Info-Package shall be set to “Digital Purchase” | RFC 6086 [INFO-PKG] |
X-OITF-Content-Type shall be set to the “application/vnd.oipf.purchase+xml” | RFC 3261 [SIP] |
X-OITF-Content-Disposition | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP]
SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
The OITF shall comply with the following when it comes to network management for purchasing Digital Media:
Step 1: | At any time, the IG can receive a SIP UPDATE from the network, and where the Recv-Info header is set to remove or re-instate support for reception of Digital-Media-Purchase Info Package to order the OITF to stop or start sending digital media purchase requests. When a SIP UPDATE is received by the IG, the IG shall return an HTTP 200 OK response to the OITF. The response includes a list of SIP headers as per Table 23 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
Step 2: | Once the OITF accepts the incoming SIP UPDATE, it shall send an HTTP HNI-IGI PENDING-IG request to acknowledge the receipt of the SIP UPDATE. The HTTP request includes a list of SIP headers as per Table 24 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the INVITE must match the contact URI included in the contact field of the SIP INVITE | RFC 3261 [SIP] UPDATE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 6086 [INFO-PKG] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Recv-Info
To indicate willingness to receive the Digital Media Purchase Info Package, it shall be set to “Digital Media Purchase” or add Digital-Purchase to the capability set; | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
If the OITF desires to retrieve the lists of purchased digital media stored in the network over UNIP-1, it shall send an XCAP GET request to the IPTV Service Profile FE. The IPTV Service Profile FE shall returns all stored purchased digital media records in an HTTP 200 OK response.
Note that the purchased digital media record can only updated by the IPTV Control FE, not the OITF.
Upon receipt of a request to store purchased digital media from the IPTV Control FE, the IPTV Applications FE shall send the XCAP PUT request to IPTV Service Profile FE to store a new purchased digital media record.
After updating the user’s profile, the IPTV Service Profile FE shall return a response to IPTV Applications FE, and then the IPTV Applications FE shall return a response to IPTV Control FE.
Use the following procedures when the OITF wants to retrieve OIPFRelatedMaterial of the content for advertisement.
Note: The network initiated push to the OIPF RelatedMaterial is not specified.
Step 1: | The OITF sends an HTTP request to IPTV Metadata Control FE to retrieving OIPFRelatedMaterial for the content for advertisement.
| ||
Step 2: | The IPTV Metadata Control FE returns the HTTP response to OITF with the OIPFRelatedMaterial for the content.
|
HTTP Header | Source of Information for Coding purposes |
---|---|
Request-Line | RFC 2616 [HTTP] POST <Request URI> HTTP/1.1 |
Content-Length | RFC 2616 [HTTP] |
Content-Type optional. The default value of Content-Type is “text/plain; charset=us-ascii” as defined in RFC 2045 [RFC2045] | RFC 2616 [HTTP] |
Host | RFC 2616 [HTTP] |
HTTP Header | Source of Information for Coding purposes |
---|---|
Request-Line | RFC 2616 [HTTP] HTTP/1.1 <Status-Code> <Reason-Phrase> |
Content-Length | RFC 2616 [HTTP] |
Content-Type shall be set to “application/vnd.oipf.OIPFRelatedMaterial+xml” | RFC 2616 [HTTP] |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:service:RelatedMaterial:2011" xmlns:tns="urn:oipf:service:RelatedMaterial:2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tva="urn:tva:metadata:2011"> <xs:import namespace="urn:tva:metadata:2011" schemaLocation="imports/tva_metadata_3-1_v171.xsd"/> <xs:complexType name="RelatedMaterialType"> <xs:complexContent> <xs:extension base="tva:RelatedMaterialType"> <xs:sequence> <xs:element name="Position_Size" type="tns:PositionSizeType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="PositionSizeType"> <xs:attribute name="x" type="xs:unsignedShort" use="required"/> <xs:attribute name="y" type="xs:unsignedShort" use="required"/> <xs:attribute name="w" type="xs:unsignedShort" use="required"/> <xs:attribute name="h" type="xs:unsignedShort" use="required"/> </xs:complexType> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:service:PurchaseRequest:2010" xmlns:ct="urn:oipf:base:CommonTypes:2011" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:import namespace="urn:oipf:base:CommonTypes:2011" schemaLocation="base-CommonTypes.xsd" /> <!--"SelectedDigitalMediaURI" sets as the content of <MediaUri> in <MediaLocator> of RelatedMaterial --> <!--"UserID" sets as <IMPU> --> <xs:complexType name="PurchaseDigitalMediaRequestType"> <xs:sequence> <xs:element name="SelectedDigitalMediaURI" type="xs:anyURI"/> <xs:element name="UserID" type="ct:UserIdType"/> </xs:sequence> </xs:complexType> </xs:schema>
The SelectedDigitalMediaURI element represents the selected Digital Media that user wants to purchase.
The UserID element represents who made the digital media purchase request.
When the OITF initiates, modifies or terminates a Pay-Per-View multicast content service, the OITF shall send HNI-IGI messages containing the appropriate method, mapped to HNI-IGI as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).”
The SIP-specific information in the related messages is described in section 6.1.2.5, “Pay Per View multicast content service with SIP session management.” The SIP-specific information is mapped to the HNI-IGI protocol, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” In particular, the OITF creates HTTP headers for an HNI-IGI message by adding “X-OITF-” in front of the necessary SIP header names. In addition, optional parameters may be included as defined in [TS124503].
PPV service initiation without an existing multicast content session is similar to the multicast content session initiation described in section 5.3.1.1.1, “Session Initiation”, with the following differences:
The media level of the SDP offer in the HTTP Request Body has the following additional requirements:
When the OITF receives the response to the request, it shall examine the media parameters in the received SDP. The OITF shall restrict the multicast content services that it joins according to the parameter (the a=bc_service_package attribute) received from the IPTV Control FE.
To join a multicast content service outside the set of channels negotiated at session initiation, the OITF shall send a request to the IG for session modification. The OITF shall enforce a multicast content streaming session modification defined in section 5.3.1.1.3, “Session Modification.”
To join a multicast content service inside the set of channels negotiated at session initiation, the OITF shall send an IGMP Leave request to stop watching the PPV service, and send an IGMP Join request to join the multicast content service. When FCC capability is available for the multicast content service, the OITF shall request a fast channel change as defined in Annex M.2, “Fast Channel Change (FCC)”. Further, when multicast RET service is offered, the OITF shall join the RET stream as defined in Annex M.1, “Application Layer Retransmission (RET)”.
The OITF shall send a request to the IG for session modification. The OITF shall generate a re-INVITE request, as defined in section 5.3.6.1.1, “PPV Service initiation without existing multicast content streaming session.”
The OITF shall include an SDP offer in the session modification request. The format of this SDP offer shall be the same as for a session initiation. Note that session modification is only necessary if the PPV service is not included at session startup.
When the OITF wants to terminate the session, the OITF shall generate a HTTP POST request as described in section 5.3.1.1.4, “Session Termination” for an originating OITF.
Note: Parental control relationship establishment, modification or deletion is out of scope of this specification.
An IPTV end user having the parental control authority over another user can initiate subscription to acquire information related to the watched content by the user under his parental control. To initiate the request to receive the information, the OITF shall follow the following procedure:
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 27. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP SUBSCRIBE to the network, to subscribe to the Parental Control Watched Content event, and shall wait for the response to the subscription request. The IG shall return an HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the subscription request. The response shall include a list of SIP headers as per Table 28 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | Following that, the OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”), and shall wait for any response. | ||
Step 5: | When a SIP NOTIFY is received by the IG, the IG shall return an HTTP 200 OK response to the OITF. The response shall include the list of SIP headers as per Table 29 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall include the SIP body received in the incoming NOTIFY (See also section 6.1.3.2.2, “Procedure for User Registration and Authentication in a network relying on IMS on UNIS 8.”) | ||
Step 6: |
Once the OITF accepts the incoming SIP NOTIFY, it shall send an HTTP HNI-IGI PENDING_IG request to the IG to send the SIP 200 OK response to the received SIP NOTIFY. The content of the HTTP Request shall be as follows:
| ||
Step 7: | The IG shall send the SIP 200 OK response to the network and then shall return to Step 5 to handle any subsequent NOTIFY received from the network. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line
Note: The request URI can be set in one of 2 ways:
In either of the above cases, any SUBSCRIBE request to the Parental Control Watched Event shall be configured to be routed to the IPTV Control FE (through iFC). This ensures that unauthorized requests are rejected by the network (unauthorized users may use the public identity of the target user instead of PSI in the Request URI line) |
RFC 3261 [SIP] and RFC 3265 [SIP-EVNT] SUBSCRIBE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To
The To field is typically set to the public identity of the target user under the parental control of the originator of the request. If the To field is set to be identical to the From field, (i.e. the originator of the request) then the subscription is for all IPTV end users under the parental control of the originator of the request. | RFC 3261 [SIP] |
X-OITF-Event
shall be set to the Event Package Parental-Control-Watched-Content | RFC 3265 [SIP-EVNT] and Parental Control Watched Content (section 5.3.7.1.4, “XML Schema for Parental Control Watched Content”) |
X-OITF-Accept
shall be set to “application/vnd.oipf.iptvparentalcontrol.whatsontv+xml” | RFC 3265 [SIP-EVNT] and Parental Control Watched Content (section 5.3.7.1.4, “XML Schema for Parental Control Watched Content”) |
X-OITF-Contact
Notes:
The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The Request URI must match the contact URI included in the contact field of the SIP SUBSCRIBE | RFC 3261 [SIP] NOTIFY <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT] and Parental Control Watched Content (section 5.3.7.1.4, “XML Schema for Parental Control Watched Content”) |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-Subscription-State | RFC 3265 [SIP-EVNT] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.iptvparentalcontrol.whatsontv+xml” | RFC 3265 [SIP-EVNT] and Parental Control Watched Content (section 5.3.7.1.4, “XML Schema for Parental Control Watched Content”) |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
This procedure shall be invoked at any time and/or prior to de-registering the user that created the subscription.
The procedure is the same as the procedure for initiating a subscription to the Parental Control Watched Content event, however in this case the X-OITF-Expires header in Table 27 shall be set to 0.
The IG shall consider a subscription terminated if is not refreshed.
This procedure is the same as the procedure for initiating a subscription.
It is the responsibility of the application initiating the subscription procedure to refresh the subscription according to the refresh subscription timer information received in the response to the subscription request. Refreshing the subscription should be performed before the expiry of the refresh timer. A subscription that is not refreshed before the expiration of the refresh timer shall be terminated.
Note: OITF contact information is mapped to DeviceId; OITF Call-ID is mapped to SessionId
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:iptv:WhatsOnTv:2011" xmlns:tns="urn:oipf:iptv:WhatsOnTv:2011" xmlns:ct="urn:oipf:base:CommonTypes:2011" xmlns:xs=http://www.w3.org/2001/XMLSchema xmlns:pss="urn:org:etsi:ngn:params:xml:ns:PssContentSwitchData" xmlns:mbms="urn:org:etsi:ngn:params:xml:ns:MbmsContentSwitchData" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:oipf:base:CommonTypes:2011" schemaLocation="base-CommonTypes.xsd" /> <xs:import namespace="urn:org:etsi:ngn:params:xml:ns:PssContentSwitchData" schemaLocation="imports/PssSwitchData.xsd"/> <xs:import namespace="urn:org:etsi:ngn:params:xml:ns:MbmsContentSwitchData" schemaLocation="imports/MbmsSwitchData.xsd"/> <xs:element name="WhatsOnTvResponse" type="tns:WhatsOnTvResponseType"/> <xs:complexType name="WhatsOnTvResponseType"> <xs:sequence> <xs:element name="User" type="tns:UserType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="UserType"> <xs:sequence> <xs:element name="name" type="ct:UserIdType"/> <xs:element name="content" type="tns:WatchedContentType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="WatchedContentType"> <xs:choice> <xs:element name="PssWatchedContent" type="tns:PssWatchedContentType"/> <xs:element name="MbmsWatchedContent" type="tns:MbmsWatchedContentType"/> </xs:choice> </xs:complexType> <xs:complexType name="PssWatchedContentType"> <xs:sequence> <xs:element ref="pss:PssSwitchData"/> <xs:element name="DeviceId" type="xs:string"/> <xs:element name="SessionId" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="MbmsWatchedContentType"> <xs:sequence> <xs:element ref="mbms:MbmsSwitchData"/> <xs:element name="DeviceId" type="xs:string"/> <xs:element name="SessionId" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
The user to be controlled is watching content and the controller finds out the information related to the watched content (SC Service ID or content ID, ratings etc.) as described in section 5.3.7.1, “Protocol for What is on TV – OITF initiated – HTTP Option.” When the controller wants to block the content program, the OITF of the controller shall originate a request for Parental Control. The SIP-specific information in the related messages is described in section 6.1.2.6, “Parental Control for Content using SIP.” The SIP-specific information is mapped to the HNI-IGI protocol, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).”
Step 1: |
The OITF shall send an HTTP POST request to the IG using the HNI-IGI functionality, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
The message body shall include the parameters related to Parental Control as follows.
Note: The detailed XML schema refers to section 5.3.7.2.3, “XML Schema for Parental Control.” The Content-Type of the message body shall be set to “application/vnd.oipf.iptvparentalcontrol+xml” as described in Table Table 31 for X-OITF-Content-Type header. | ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the message as per Table 31. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP MESSAGE to the network. When the IG receives the response, the IG shall return a HTTP 200 OK response (or other appropriate response) to the OITF to report the response to the SIP MESSAGE. The response includes a list of SIP headers as per Table 32 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the MESSAGE request shall be set to the public identity of the controlled user. | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From The From in the MESSAGE request shall be set to the identity of the controller. | RFC 3261 [SIP] |
X-OITF-To The To in the MESSAGE request shall be set to the identity of the controlled user. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.iptvparentalcontrol+xml” | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
The following procedure is supported in the OITF of the controlled user for receiving a request for Parental Control.
The incoming message can be handled either by a native application in the OITF, or in a DAE application. The same HNI-IGI message format is used in either case.
Step 1: | The IG receives a SIP MESSAGE for Parental Control. | ||
Step 2: | The IG shall forward the SIP MESSAGE to the OITF as an HTTP response to a PENDING_IG request. The list of SIP headers to be included in the notification forward to the OITF shall be as per Table 33. The body of the SIP MESSAGE shall be included in the HTTP body. | ||
Step 3: | Upon receipt of the message, the OITF shall check the Content-Type in the “X-OITF-Content-Type” to determine that it is a Parental Control request. Then the OITF shall examine the parameters in the body, and initiate a request corresponding to the parameters in PC-Command, PC-ContentControlled. If the value in the PC-Command is Channel Change, the OITF shall leave the channel indicated in PC-ContentControlled and join a new channel which may be pre-configured or indicated in PC-ChannelChangedTo if present, as described in section 8.1.1, “Multicast content streaming service on UNIS-13.” If the value in the PC-Command is Session Teardown, the OITF shall initiate a request to terminate the session of the multicast content indicated in PC-ContentControlled, as described in section 5.3.2.1.3, “Session Termination” | ||
Step 4: | The OITF shall issue an HTTP POST request. The content of the HTTP Request shall be as follows:
| ||
Step 5: | The IG shall forward the SIP 200 OK to the network. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI must be set to the Public identity of the controlled user. | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From The From must be set to the Public identity of the controller. | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request-URI in the “X-OITF-Request-Line”. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.iptvparentalcontrol+xml” | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:iptv:parentalcontrol:2011" xmlns:tns="urn:oipf:itpv:parentalcontrol:2011" xmlns:ct="urn:oipf:base:CommonTypes:2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:annotation> <xs:documentation xml:lang="en"> Defines the command for parental control associated with the controller </xs:documentation> </xs:annotation> <xs:import namespace="urn:oipf:base:CommonTypes:2011" schemaLocation="base-CommonTypes.xsd"/> <xs:element name="IPTVParentalControl" type="tns:tIPTVParentalControl" /> <xs:complexType name="tIPTVParentalControl"> <xs:sequence> <xs:element name="PC-Command" type="tns:tPCCommand" /> <xs:element name="PC-ChannelChangedTo" type="tns:tPCChannelChangedTo" minOccurs="0" /> <xs:element name="PC-ContentControlled" type="ct:ProgramIdType" > <xs:annotation><xs:documentation xml:lang="en"> Identifier of the content being controled by the controller. may be SC service ID or content ID. </xs:documentation></xs:annotation> </xs:element> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:simpleType name="tPCCommand" final="list restriction"> <xs:restriction base="xs:string"> <xs:enumeration value="Channel Change" /> <xs:enumeration value="Session Teardown" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="tPCChannelChangedTo" final="list restriction"> <xs:annotation> <xs:documentation xml:lang="en"> Identifier of a new channel to which the controlled user shall change. </xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:minLength value="0" /> <xs:maxLength value="16" /> </xs:restriction> </xs:simpleType> </xs:schema>
User notification service refers to the family of services that includes a notification being sent to an IPTV end user. The notification can be sent either to an OITF or to a cellular device depending on user preference. There are several types of notification services. This section deals with notification services related to broadcast reminders where the user can subscribe to be reminded, through a notification, before a specific broadcast starts. The actual notification can be sent anytime before the program starts at the IPTV SP discretion. Notification services related to broadcast reminders involve interaction with the EPG for setting up a notification request. The Notification Services AS is an MMS Parlay-X web services AS.
To initiate a request to setup a notification service, the OITF shall follow the following procedure:
Step 1: | As a pre-requisite it is
assumed that the user is interacting with EPG where supported
notification services are depicted to the end user. Once the user makes a
selection, the OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 34. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP MESSAGE to the network, to setup the request and shall wait for the response. The IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the setup request. The response shall include a list of SIP headers as per Table 35 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | Following that, the OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”), and shall wait for any response. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the well-known PSI for the notification service | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.network-based-user-notification+xml” | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter and the sip.instance feature tag must be included and must match what is sent in the contact header included in the registration request. | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
Upon receipt of a notification setup request from the OITF, the IPTV application shall validate the request against the appropriate schema. Upon successful validation, the IPTV application stores the notification request in the user IPTV profile using XCAP PUT request for that purpose.
Update of pending notification requests is achieved through XML re-writing of the IPTV user service profile. It includes three steps; first all the user pending notification requests are retrieved from the user service profile; next the end user performs the necessary deletions/alterations; and finally the updated pending notification request is saved in the user service profile.
The IPTV application issue an XCAP GET to the user service profile and display the result to the user.
Upon receipt of a pending notification update request from the OITF, the IPTV application shall authorize the request, update its internal state, and subsequently shall issue an XCAP PUT to the IPTV service profile to store the updated pending notification requests. The IPTV service profile shall acknowledge the successful storage of the updated pending notification requests in an HTTP 200 OK to the IPTV application which in turn returns the response back to the OITF.
Upon receipt of a pending notification retrieval request from the OITF, the IPTV application shall first authorize the request and subsequently shall issue an XCAP request to the IPTV service profile to retrieve all stored pending notification requests for the subject user. Upon receipt by the IPTV application of the stored information, it shall return to the OITF in an HTTP 200 OK response the requested information.
If the OITF desires to update pending notification requests stored in the network over UNIP-1, it shall send an XCAP GET request to the IPTV service profile. The IPTV service profile shall return all stored pending notification requests in an HTTP 200 OK response. Once the user completes the modification process, the OITF shall send an XCAP PUT request to the IPTV service profile to update pending notification requests.
If the IPTV service profile detects a change in the pending notification requests, it shall inform the IPTV Control FE, which in turn notifies the IPTV Application. The IPTV Control FE shall wait for the response before sending an HTTP 200 OK back to the OITF (or an appropriate error message if applicable).
An OITF that desires to retrieve pending notification requests over UNIP-1, shall send an XCAP GET request to the IPTV service profile. The IPTV service profile shall return all pending notification requests in an HTTP 200 OK response.
Upon receipt of a store request for user notification from the IPTV Control FE, the IPTV application shall validate the request against the appropriate schema.
Upon successful validation, the IPTV application shall update its internal state and shall store the notification request in the user IPTV profile using XCAP PUT request for that purpose prior to returning a response.
Upon receipt of an update (delete request) for a pending user notification request from the IPTV Control FE, the IPTV application shall validate the request against its internal state and shall update its internal state accordingly.
Following that, the IPTV application shall acknowledge the update (deletion) or send an appropriate error response if applicable.
Upon receipt by the Notification Services AS (MMS Parlay X web services AS) for an HTTP POST request for sending a delivery notification using the IMPagerMode, the Notification Services AS shall send a corresponding SIP MESSAGE to the Messaging AS, and shall wait for the SIP 200 OK (or other responses) before returning the corresponding HTTP response.
Upon receipt by the IPTV application of the HTTP 200 OK, it shall proceed to update its internal state and shall update as well the IPTV service profile to reflect the updated list of pending notification requests.
Broadcast reminders related to notification are sent to the end user before a broadcast starts. It typically involves interaction with the EPG.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:iptv:reminder:2011" xmlns:tns="urn:oipf:iptv:reminder:2011" xmlns:tva="urn:tva:metadata:2011" xmlns:xs=http://www.w3.org/2001/XMLSchema elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:oipf:base:CommonTypes:2011" schemaLocation="base-CommonTypes.xsd" /> <xs:import namespace="urn:tva:metadata:2011" schemaLocation="imports/tva_metadata_3-1_v171.xsd"/> <xs:element name="ReminderList"> <xs:complexType> <xs:sequence> <xs:element name="Reminder" type="tns:ReminderType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="ReminderType"> <xs:sequence> <xs:element name="Creator" type="ct:UserIdType"/> <xs:element name="Created" type="xs:dateTime"/> <xs:choice> <xs:element name="ProgramIdentifier" type="ct:ProgramIdType"/> <xs:element name="SeriesIdentifier" type="tva:EpisodeOfType"/> </xs:choice> <xs:element name="AnnouncementTime" type="xs:duration"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> </xs:complexType> </xs:schema>
Content bookmarking is a feature that allows a user to store in the network a point in time for a scheduled content or content on demand session where later it can be retrieved and where viewing can resume from that point on.
For a scheduled content session, bookmarking essentially represents a mark in a file stored in the network for the scheduled content. As such, it is a pre-requisite that the scheduled content be stored in the network for any bookmarking to be available for a scheduled content session. The stored bookmarking hence will be a pointer in a file storing the scheduled content.
The OITF shall follow the following procedure for a content bookmark creation request:
Step 1: | If the OITF decides to
store a content bookmark for watched content during a multicast or
unicast content streaming session, and if it is permitted by the network
to do so, the OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Note that the SIP INFO including the CoD-Bookmark Info Package according to section 12 of [PSS-MBMS] is sent only within the context of a multicast or unicast content streaming session. | |||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the process as per Table 38. The IG shall send a SIP INFO including the CoD-Bookmark Info Package to the network and shall wait for the response to the request. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | On receipt of the response from the network the IG shall return a HTTP 200 OK response (or other appropriate received responses) to the OITF to report the response to the INFO request. The response shall include a list of SIP headers as per Table 39 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
Step 1: | At any time, the IG can receive a SIP UPDATE from the network, and where the Recv-Info header is set to remove or re-instate support for reception of CoD-Bookmark Info Package according to section 12 of [PSS-MBMS] to order the OITF to stop or start sending content bookmark creation requests. When a SIP UPDATE is received by the IG, the IG shall return an HTTP 200 OK response to the OITF. The response includes a list of SIP headers as per Table 40 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 2: | Once the OITF accepts the incoming SIP UPDATE, it shall send an HTTP HNI-IGI PENDING-IG request to acknowledge the receipt of the SIP UPDATE. The content of the HTTP request shall be as follows:
|
The procedure for retrieval of content related bookmarks is similar to the procedure defined in section 5.3.2.1.2, “Session Initiation” with the addition that the OITF has indicated its willingness to receive the CoD-Bookmark Info Package according to section 12 of [PSS-MBMS] at session initiation. Assuming that is the case, the following additional steps are added to the existing procedure:
Step 1: | The IG shall wait for the SIP INFO with the Bookmark list from the network. The IG shall then return a HTTP 200 OK response to the OITF to report the Bookmark list. The response includes a list of SIP headers as per Table 36, in addition to the normal HTTP headers as per RFC 2616 [HTTP], and XML (see section 5.3.9.5, “XML Schema for Content Bookmarking”) in the SIP INFO body received by the IG , as described in section 6.1.2.8.3.1, “Session Initiation over UNIS-8”. The IG then returns a SIP 200 OK to the network. | ||
Step 2: | Upon receipt of a 200 OK response, the OITF shall send an HTTP Pending Request to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
After the OITF retrieves the content-related bookmark lists, the OITF displays the bookmark list to the user, and the user selects the bookmark from which she wishes to start viewing the content.
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line The Request-URI in the SIP INFO request shall be the contact included in the INVITE Request message, that is the user ID (IMPU). | RFC 3261 [SIP] INFO <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/3gpp-ims-pss-mbms-bookmark+xml” that corresponds to Annex J of [PSS-MBMS] | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Recv-Info To indicate willingness to receive the CoD-Bookmark Info Package according to section 12 of [PSS-MBMS], it shall be set to CoD-Bookmark or add CoD-Bookmark to the capability set; | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the ACK request shall be the contact included in the incoming SIP INFO message | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” of the INVITE request | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter shall be included, and shall match what has been inserted in the INVITE message. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
UNIS-6 may be used for the unicast transport of HTML ECMAScript documents between the OITF DAE function and the IPTV Application FE for DAE-based subscription profile management. In this case, the IPTV Application FE acts as a front-end to the IPTV Service Profile FE. When the HTTP request for bookmark management is received from OITF, the IPTV Application FE manipulates the IPTV Service Profile FE.
Upon receipt of an HTTP Request for a content bookmark creation request from the OITF, the bookmark IPTV Application shall authorize the request and shall verify if the bookmark is for scheduled content or CoD.
If the content bookmark is for a scheduled content, the bookmark IPTV application verifies first if the content is available for bookmarking, i.e. stored in the network. If available for bookmarking, the bookmark IPTV application, after performing the necessary adaptation, stores the bookmark information in the IPTV Service Profile using XCAP PUT request for that purpose.
For bookmarks related to CoD, the bookmark information is stored in the user IPTV Service Profile without any additional verification by the IPTV application.
Upon receipt of a content bookmark retrieval request from the OITF, the bookmark IPTV Application shall first authorize the request and subsequently shall issue an XCAP GET request to the IPTV Service Profile to retrieve all stored content bookmarks for the user.
Content Bookmark update is essentially achieved through XML re-writing of the content bookmarks in the IPTV user Service Profile. It includes three steps; first all the content bookmarks are retrieved from the IPTV Service Profile; next the end user performs locally the necessary update (deletions/alterations); and finally the updated content bookmark is saved in the IPTV Service Profile.
The bookmark IPTV Application shall authorize the request and subsequently shall issue an XCAP GET to the IPTV Service Profile and display the results to the user.
Upon receipt of a content bookmark request from the OITF, the bookmark IPTV Application shall authorize the request and subsequently shall issue an XCAP PUT to the IPTV Service Profile to store the updated content bookmarks. The IPTV Service Profile shall acknowledge the successful storage of the updated content bookmarks in an HTTP 200 OK to the bookmark IPTV application which in turn returns the response back to the OITF.
Note that XCAP supports several approaches for retrieving/storing bookmark information within the user profile. It is an implementation issue as to which approach the IPTV application implements.
Upon receipt of a bookmark store request from the IPTV Control FE, the bookmark IPTV Application shall verify if the bookmark is for scheduled content or CoD.
If the content bookmark is for a scheduled content, the bookmark IPTV Application verifies first if the content is available for bookmarking, i.e. stored in the network. If available for bookmarking, the bookmark IPTV Application, after performing the necessary adaptation, stores the content bookmark information in the user IPTV Service Profile using XCAP PUT request for that purpose.
For bookmarks related to CoD, the content bookmark information is stored in the user IPTV Service Profile without any additional verification by the bookmark IPTV Application.
Following the completion of the XCAP transaction, a response is sent to the IPTV control server FE.
If the OITF desirers to retrieve content bookmarks stored in the network over UNIP-1, it shall send an XCAP GET request to the IPTV Service Profile. The IPTV Service Profile shall return all stored bookmarks in an HTTP 200 OK response.
If the OITF desirers to update a content bookmark(s) stored in the network over UNIP-1, it shall send an XCAP GET request to the IPTV Service Profile. The IPTV Service Profile shall return all stored bookmarks in an HTTP 200 OK response. Once the user completes the update process, the OITF shall send an XCAP PUT request to the IPTV Service Profile to update the content bookmarks. The IPTV Service Profile shall acknowledge the successful storage of the updated content bookmarks in an HTTP 200 OK response.
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the INFO request shall be the well-known PSI (Public Service Identifier) of the bookmarked content service. For a Scheduled Service: OIPF_IPTV_SC_Service@<domain name>. For a Content on Demand: OIPF_IPTV_CoD_Service_*@<domain name>. | RFC 3261 [SIP] INFO <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter must be included, and must match what is returned in the Contact header included in the response to the registration process. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Info-Package shall be set to CoD-Bookmark according to section 12 of [PSS-MBMS]. | RFC 6086 [INFO-PKG] |
X-OITF-Content-Type shall be set to “application/3gpp-ims-pss-mbms-bookmark+xml” that corresponds to Annex J of [PSS-MBMS] | RFC 6086 [INFO-PKG], section 5.3.9.5, “XML Schema for Content Bookmarking” |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Content-Disposition | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI in the INVITE must match the contact URI included in the contact filed of the SIP INVITE | RFC 3261 [SIP] UPDATE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 6086 [INFO-PKG] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Recv-Info To indicate willingness to receive the CoD-Bookmark Info Package according to section 12 of [PSS-MBMS], it shall be set to CoD-Bookmark or add CoD-Bookmark to the capability set; | RFC 6086 [INFO-PKG] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:iptv:bookmark:2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:oipf:iptv:bookmark:2011" xmlns:bmk3gpp="urn:3gpp:bookmark:2009:IMS-PSS-MBMS" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:3gpp:bookmark:2009:IMS-PSS-MBMS" schemaLocation="imports/3gpp-bookmark-2009-IMS-PSS-MBMS.xsd"/> <xs:complexType name="BookmarkType"> <xs:complexContent> <xs:extension base="bmk3gpp:BookmarkType"> <xs:sequence> <xs:element name="Location" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:schema>
The following elements shall be provisioned by the entity submitting the content bookmark for storage:
The following elements and attributes shall be provisioned by the service provider before storing the content bookmark in the user service profile:
The following elements shall be conditionally provisioned by the OITF or the service provider as described below:
The OITF initiates the request for PVR Service Capture Request using the following procedure:
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
According to the RequestType, the OITF shall initiate a request for recording order setup, recording order cancel, recording order update, recording order retrieval. The Content-Type of the message body shall be set to “application/vnd.oipf.pvr+xml” as described in Table 42 for X-OITF-Content-Type header. | |||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the process as per Table 42. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP MESSAGE to the network to initiate LPVR as requested by the OITF, and shall wait for the response to the request. The IG shall return HTTP 200 OK response (or other appropriate response) to the OITF to report the response to the PVR Service Capture Request. The response shall include a list of SIP header as per Table 43 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | The OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”) and shall wait for any response. | ||
Step 5: | When a SIP MESSAGE is received by the IG, the IG shall return an HTTP 200 OK response to the OITF. The response shall include the list of SIP header as per Table 45 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall include the SIP body received in the incoming MESSAGE message. The content of the HTTP Response shall be as follows:
| ||
Note that at any time, the IG can receive such a message from the network to perform a new request type on a pending recording request (e.g., recording order cancel, recording order update). The Content-Type of the message body shall be set to “application/vnd.oipf.pvr+xml” as described in Table 42 for X-OITF-Content-Type header. | |||
Step 6: | Once the OITF accepts the incoming request, the OITF shall send an HTTP POST request (refer to section 5.6.1.1, “HNI-IGI Message Types”) to the IG to convey the SIP response. The HTTP request shall include the SIP headers as per Table 43 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 7: | When time to order recording of a requested content is up, the OITF shall initiate the multicast content streaming session setup. The OITF shall follow the steps defined by section 5.3.1.1.1, “Session Initiation.” |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the well-known PSI for the PVR Service. | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.pvr+xml” | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Content-Contact The URI parameter and the sip.instance feature tag must be included and must match what is sent in the contact header included in the registration request. | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the Public identity of the target of the message | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.pvr+xml” | RFC 3261 [SIP] |
X-OITF-Accept-Content | Set to the SIP Instance of the TargetDevice This parameter includes required and explicated as RFC 3841 [RFC3841] |
X-OITF-Content-Length | RFC 3261 [SIP] |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:service:PVR:2011" xmlns:tns="urn:oipf:service:PVR:2011" xmlns:ct="urn:oipf:base:CommonTypes:2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ueprofile="urn:oipf:iptv:UEProfile:2010" xmlns:iptvprofile="urn:oipf:iptv:IPTVProfile:2011" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:oipf:base:CommonTypes:2011" schemaLocation="base-CommonTypes.xsd" /> <xs:import namespace="urn:oipf:iptv:UEProfile:2010" schemaLocation="iptv-UEProfile.xsd"/> <xs:import namespace="urn:oipf:iptv:IPTVProfile:2011" schemaLocation="iptv-IPTVProfile.xsd"/> <xs:element name="PVR"> <xs:complexType> <xs:sequence> <xs:element name="ServiceType" type="tns:ctServiceType"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="ctServiceType"> <xs:choice> <xs:element name="CaptureRequest" type="tns:ctCaptureRequest" maxOccurs="unbounded"/> <xs:element name="LPVRRecordRequest" type="tns:ctLPVRRecordRequest" maxOccurs="unbounded"/> <xs:element name="NPVRRecordRequest" type="tns:ctNPVRRecordRequest" maxOccurs="unbounded"/> </xs:choice> </xs:complexType> <xs:complexType name="ctCaptureRequest"><!-LPVR Capture request/response--> <xs:sequence> <xs:element name="RequestType" type="tns:stRequestType"/> <xs:element name="ProgramID" type="ct:ProgramIdType"/> <xs:element name="BCServiceID" type="iptvprofile:tBCServiceID"/> <xs:element name="ProgramStartTime" type="xs:dateTime"/> <xs:element name="ProgramDuration" type="xs:duration"/> <xs:element name="StorageRecMode" type="tns:stStorageRecMode"/> <xs:element name="TargetDeviceID" type="ueprofile:tUEID"/> </xs:sequence> </xs:complexType> <xs:complexType name="ctLPVRRecordRequest"><!-LPVR Record request/response--> <xs:sequence> <xs:element name="RequestType" type="tns:stRequestType"/> <xs:element name="ProgramID" type="ct:ProgramIdType"/> <xs:element name="BCServiceID" type="iptvprofile:tBCServiceID"/> <xs:element name="ProgramStartTime" type="xs:dateTime"/> <xs:element name="ProgramDuration" type="xs:duration"/> <xs:element name="StorageRequirement" type="tns:ctStorageRequirement" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="ctNPVRRecordRequest"><!-NPVR Record request/response--> <xs:sequence> <xs:element name="RequestType" type="tns:stRequestType"/> <xs:element name="ProgramID" type="ct:ProgramIdType"/> <xs:element name="BCServiceID" type="iptvprofile:tBCServiceID"/> <xs:element name="ProgramStartTime" type="xs:dateTime"/> <xs:element name="ProgramDuration" type="xs:duration"/> <xs:element name="StorageRequirement" type="tns:ctStorageRequirement" minOccurs="0"/> <xs:element name="RequestStatus" type="tns:tRequestStatus" minOccurs="0"/> <xs:element name="CRID" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:simpleType name="stRequestType"> <xs:restriction base="xs:string"> <xs:enumeration value="SetUp"/> <xs:enumeration value="Cancel"/> <xs:enumeration value="Update"/> <xs:enumeration value="Retrieval"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="stStorageRecMode"> <xs:restriction base="xs:string"> <xs:enumeration value="Local"/> <xs:enumeration value="Network"/> </xs:restriction> </xs:simpleType> <xs:complexType name="ctStorageRequirement"> <xs:simpleContent> <xs:extension base="xs:int"> <xs:attribute name="unit" type="xs:string" use="optional" default="KB"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:simpleType name="tRequestStatus"> <xs:restriction base="xs:string"> <xs:enumeration value="Recording Scheduled"/> <xs:enumeration value="Recording Started"/> <xs:enumeration value="Recording Completed"/> <xs:enumeration value="Recording Deleted"/> <xs:enumeration value="Recording Failed"/> </xs:restriction> </xs:simpleType> </xs:schema>
When the OITF initiates the request for network PVR Service Request, the procedure defined in section 5.3.10, “Local PVR Service using SIP” shall apply, with following additional constraints:
Step 5: | When a SIP MESSAGE is
received by the IG due to the failure of a submitted request or to
report the outcome of a pending recording request, the IG shall return an HTTP 200 OK response to the OITF. The response shall include the list of SIP headers as per Table 45. The body of the HTTP response shall include the SIP body received in the incoming SIP MESSAGE. The content of the HTTP Response shall be as follows:
| ||
Step 6: | The OITF shall extract the pertinent information from the body and shall send a SIP 200 OK response to the network in an HTTP POST request |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the Public identity of the target of the message | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.pvrresult+xml” | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:service:PVR:report:2010" xmlns:tns="urn:oipf:service:PVR:report:2010" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tva="urn:tva:metadata:2011" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:tva:metadata:2011" schemaLocation="imports/tva_metadata_3-1_v171.xsd"/> <xs:element name="PVRResult"> <xs:complexType> <xs:sequence> <xs:element name="RecordResult" type="tns:tRecordingResult"/> <xs:element name="NPVRLocation" type="tns:tNPVRLocator"/> <xs:element name="SpareStorage" type="xs:double"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="tRecordingResult"> <xs:sequence> <xs:element name="RecordingStatus" type="tns:tRecordStatus"/> </xs:sequence> <xs:attribute name="ErrorCode" type="xs:string" use="optional"/> </xs:complexType> <xs:simpleType name="tRecordStatus"> <xs:restriction base="xs:string"> <xs:enumeration value="Completed"/> <xs:enumeration value="Partial"/> <xs:enumeration value="Error"/> </xs:restriction> </xs:simpleType> <xs:complexType name="tNPVRLocator"> <xs:choice> <xs:element name="CRID" type="tva:CRIDType"/> <xs:element name="URL" type="xs:anyURI"/> </xs:choice> </xs:complexType> </xs:schema>
If recording is successful, the ErrorCode element attribute shall not be present. If recording failed (i.e., RecordResult element contains “Error”), any information in the NPVRLocator element shall be discarded by the OITF.
These procedures assume that the Personalised Channel content will be served by a single CDF, regardless of where the content is sourced.
When the user wants to create a new Personalised Channel, the OITF of the user shall originate an HTTP GET request towards the IPTV Application via UNIS-6 reference point. The request shall carry the user ID.
When receiving the HTTP GET request for PCh configuration, the IPTV Application shall authorize and verify the request, and then send XCAP GET request to the IPTV Service Profile and retrieve the user’s IPTV service profile. The XCAP GET request shall be delivered on NPI-17 and include the intended user ID.
After the request is authorized, the IPTV Application shall contact the IPTV Metadata Control via NPI-33 for searching and filtering of the content metadata, and generate the personalised content guide based on the user’s personal setting (e.g. preference, location etc). The IPTV Application shall also create a valid Personalised Channel Identifier (PChId) for the generated PCh information.
The IPTV Application then responds 200 OK to the OITF via UNIS-6, carrying the generated PChId and associated PCh information, e.g., PCh item IDs (SC service ID or COD content ID), related time schedule, etc.
If the OITF desires to modify the PCh information that has been created, it shall send an HTTP PUT request through UNIS-6 to the IPTV Application, carrying the intended user ID and the PCh information for updating. The IPTV Application shall updates the PCh information towards the IPTV Service Profile FE through XCAP PUT over NPI-17, and then responds the OITF with a 200 OK.
When the user wants to create a new Personalised Channel, the user’s OITF may originate an HTTP GET request towards the IPTV Application via the UNIS-6 reference point. The request shall carry the user ID.
When receiving the HTTP GET request for PCh configuration, the IPTV Application shall authorize and verify the request, and then send an XCAP GET request to the IPTV Service Profile and retrieve the user’s IPTV service profile. The XCAP GET request shall be delivered on the NPI-17 interface and includes the intended user ID.
The IPTV Application then responds with a 200 OK message to the OITF via UNIS-6, carrying the user profile which can be used for generating the Personalised Channel Guide at the OITF.
The OITF should ensure that the Personalized Channel does not include a time gap. When the OITF detects a time gap between adjacent content items in the PCh schedule, it determines if the length of the time gap is longer than a specified threshold (e.g. user defined), and may insert padding content into the time gap.
The padding content can be obtained from a PCh compatible source, e.g. PVR or other Home Network device as shown in the Figure 30 of [OIPF_PROT_EX2].
When the OITF detects an overlap between adjacent content items in the PCh schedule, the OITF decides the location of the PVR (LPVR or nPVR) used to record the overlapped contents based on either a pre-configured policy or the capability of OITF or network (ex, storage, bandwidth, etc).
The messaging and procedures for recording the overlapped content item on an LPVR shall be as specified in section 5.3.10, “Local PVR Service using SIP.”
The messaging and procedures for recording the overlapped content item on an nPVR shall be as specified in section 5.3.11, “Network PVR (nPVR) using SIP”.
After the overlapped content item has finished recording and the time gap has been filled, the OITF should update the Personalised Channel Guide with the revised content access information.
The OITF sets up the proper session for content delivery or plays the locally stored content according to the already configured Personalized Channel Guide.
The procedures in this section are generic in nature and apply equally to the various modes of session transfer.
For all session transfer modes, it is assumed that the transferee initiates the session associated with a transfer. As a pre-requisite before session initiation, it is assumed that the transferee has accepted a request for a session transfer, and/or has the necessary information to initiate a new session to handle the transferred session.
A transferee shall initiate the request for a unicast content streaming session to setup the content delivery channel and content control channel using the procedure defined in section 5.3.2.1.2, “Session Initiation”, with the following exceptions in Table 16:
Furthermore, the IG handling in step 2 in section 5.3.2.1.2, “Session Initiation” is replaced by the IG handling as depicted in section 5.3.13.1.1.2, “IG handling of Session Initiation Requests related to a session transfer”.
The remaining steps in section 5.3.2.1.2, “Session Initiation” apply.
If the transferor OITF and the transferee OITF are behind the same IG, and given the fact that the transferee must successfully establish the new session before the old session can be torn down, QoS resources, over the last mile, will be doubly booked while the transfer is ongoing.
Indeed, the new session initiated by the transferee to handle the transferred session may not be able to successfully complete due to resources (last mile) unavailability as a result of the old session holding on to the resources, while not being utilized, during the transfer.
In order to avoid this situation, special processing is required in the IG to release the resources associated with the transferred session while the new session is being established, if both the transferor and the transferee are behind the same IG, hence sharing the same last mile.
If for any reason the transfer failed, the IG can reclaim the released resources associated with the transferred session back and the old session can resume.
To that effect, and upon receipt by the IG for an HTTP POST for a SIP INVITE the IG shall perform the following procedure:
Step 1: | The IG shall send to the transferor OITF an HTTP 200 OK response. The response shall include a SIP re-INVITE as per Table 16 with the following exceptions:
| ||
Step 2: | Once the OITF accepts the incoming
SIP re-INVITE after the stream has been successfully paused (the
transferor OITF could have already paused the stream or it would pause
the stream before accepting the re-INVITE), it shall send an HTTP POST PENDING_IG request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 3: | The IG shall send to the transferor OITF an HTTP 200 OK response. The response shall include a SIP ACK as per Table 14 with the following exception:
| ||
Step 4: | The IG shall send a SIP UPDATE (or SIP re-INVITE) to the network, to request the transferor stream to be put on hold and to reduce the requested QoS resources on the transferor OITF last mile down to zero. The SIP UPDATE (or SIP re-INVITE) shall conform to [TS124503] in that regard. The body of the SIP UPDATE (or SIP re-INVITE) shall be identical to the SDP in the INVITE of the content session initiation with the exception described above. The IG shall wait for the response to the request. | ||
Step 5: | Upon receipt of a SIP 200 OK response or any other response, the procedure terminates |
To initiate a session transfer request, the transferor OITF shall follow the following procedure:
Step 1: | As a pre-requisite it is
assumed that the user is watching a unicast content streaming service
and has selected a target device (transferee OITF) for the session. In this step the transferor OITF shall bookmark the content as per section 5.3.9.1.1, “IMS-based Content Bookmark Creation Request”. The bookmark shall be included in the body of the SIP REFER (as shown in step 2) | ||
Step 2: | The transferor OITF shall send an HTTP POST request for the session transfer to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 3: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 46. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 4: | The IG shall send a SIP REFER to the network, to setup the request and shall wait for the response. At some point in time, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the transferor OITF to report the received response from the transferee to the transfer request. The response shall include a list of SIP headers as per Table 47 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 5: | Following that, the transferor OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”), and shall wait for any response reporting the outcome of the session transfer procedure. | ||
Step 6: | At some point in time, the IG shall receive an incoming SIP NOTIFY from the transferee OITF, reporting the outcome of the session transfer and which it shall forward to the transferor OITF in an HTTP 200 OK response. The HTTP response shall include the list of SIP headers as per Table 48 in addition to the normal HTTP headers. The body of the HTTP response shall include the SDP body received in the NOTIFY. | ||
Step 7: | The transferor OITF shall
return the SIP 200 OK response, acknowledging the SIP NOTIFY, to the
IG, in an HTTP POST PENDING_IG request. The content of the HTTP request shall be as follows:
|
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI shall be set to the transferee (target device OITF) contact information received during the device discovery process. | RFC 3261 [SIP] REFER <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Refer-To shall be set to the remote target URI included in the contact header field returned in the SIP 200 OK associated with initial session setup with the transferor and extended with the following URI headers fields:
Refer-To: <sip:remoteuser@home2.net;gr=urn:uuid:f81d4fae-7dec-11d0-a765-333333333333?Replaces=AB03a0s09a2sdfglkj490333%3Bremote-tag=Afgsdfg45%3Blocal-tag=U188gg&Require=replace&P-Preferred-Service=urn:urn-7:3gpp-service.ims.icsi.iptv&Accept-Contact=*%3b+g.3gpp.icsi-ref%3d%22urn%253Aurn-7%253gpp-service.ims.icsi.iptv%22 | RFC 3261 [SIP] [SRVCONT] RFC 3891 [RFC3891] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.session-transfer+xml” corresponding to section 5.3.13.2, “XML Schema for Session Transfer Information included in a session transfer request from the transferor to transferee” | |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
The procedure at an OITF selected to be the target device (transferee OITF) in a push mode is as follows
Step 1: | It is assumed that the OITF has an HTTP PENDING_IG request. At some point in time, when a REFER request targeted for the transferee OITF is received by the IG, the IG shall return a HTTP 200 OK response to the OITF. The response shall include the list of SIP headers as per Table 46, in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall include the XML structure as per section 5.3.13.2, “XML Schema for Session Transfer Information included in a session transfer request from the transferor to transferee”. | ||
Step 2: | The OITF shall examine the incoming REFER request. In particular, the OITF shall extract the body header to use it to later construct its own SDP for the session transfer (see section 5.3.13.1.1.1, “Transferee unicast session streaming Session Initiation associated with a session Transfer”). If the OITF cannot successfully validate the extracted SDP, it shall reject the incoming request. If the OITF successfully validates the extracted SDP it should accept the incoming request. | ||
Step 3: |
Once the OITF accepts the incoming SIP REFER, it shall send an HTTP POST PENDING_IG request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 4: | The OITF shall extract the following information from the incoming REFER request:
| ||
Step 5: | The transferee OITF shall then construct an SDP that it can used to initiate a new session to handle the transfer. The OITF may follow section 5.3.2.1.1, “Retrieval of Session Parameters”, if need be, towards the construction of the SDP. | ||
Step 6: | The transferee OITF shall then invoke the procedure defined in section 5.3.13.1.1.1, “Transferee unicast session streaming Session Initiation associated with a session Transfer”. | ||
Step 7: |
Once the session setup is successfully completed, the OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)”. The content of the HTTP Request shall be as follows:
| ||
Step 8: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 52. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 9: | The IG shall send a SIP NOTIFY to the network, to report the outcome of the session transfer and shall wait for the response. The IG shall return a HTTP 200 OK response (or other appropriate responses) to the transferee OITF to report the received response from the transferor OITF. The response shall include a list of SIP headers as per Table 49 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
Following that, all unicast content streaming procedures apply to the session.
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Notes:
| RFC 3261 [SIP] NOTIFY <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3515 [RFC3515] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-Subscription-State | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “message/sipfrag” | RFC 3515 [RFC3515], RFC 3420 [RFC3420] |
X-OITF-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:iptv:transfer:2011" xmlns:tns="urn:oipf:iptv:transfer:2011" xmlns:ct="urn:oipf:base:CommonTypes:2011" xmlns:bmk="urn:oipf:iptv:bookmark:2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:oipf:base:CommonTypes:2011" schemaLocation="base-CommonTypes.xsd" /> <xs:import namespace="urn:oipf:iptv:bookmark:2011" schemaLocation="iptv-bookmark.xsd"/> <xs:element name="Sessiontransfer"> <xs:annotation> <xs:documentation>This describes information elements needed to support session transfer</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="session-bookmark" type="bmk:BookmarkType"/> <xs:element name="transferee" type="ct:UserIdType" /> <xs:documentation> this element is populated with the same information included in the Request URI of the REFER Request </xs:documentation> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"element name="any" type="any"/> </xs:sequence> </xs:element> </xs:schema>
The procedures in this section shall only be performed in the context of the default user. When the OITF supports native HNI-IGI, it shall follow the following procedure to retrieve Service Provider Discovery Information:
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers required for the outgoing message as per Table 50. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | If the IG has the requested information, it shall respond immediately with HTTP 200 OK. If not, the IG shall send a SIP SUBSCRIBE to the network, to subscribe to the “ua-profile” event, and shall wait for the response to the subscription request. The IG shall then return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the subscription request. The response includes a list of SIP headers as per Table 51 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | The OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”), and shall wait for any incoming messages. | ||
Step 5: | When a SIP NOTIFY is received by the IG for a “ua-profile” event, the IG shall return a HTTP 200 OK response to the OITF. The response includes a list of SIP headers as per Table 52 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall be the SIP body received in the incoming NOTIFY message. The content of the HTTP Response shall be as follows:
| ||
The OITF shall parse the XML document in the body to ensure that it complies with the schema defined in section 3.2.1 of [OIPF_META2]. When parsing the list of parameters, the OITF shall take the following action:
| |||
Step 6: | Once the OITF accepts the HTTP message containing the incoming SIP NOTIFY, it shall send an HTTP HNI-IGI PENDING_IG request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 7: | The IG shall send the SIP 200 OK response to the network and then shall return to Step 5 to handle any subsequent NOTIFY received from the network. |
The procedure for de-registering the IPTV default user must be preceded with a cancellation of subscription.
The procedure is the same as the procedure for initiating a subscription to the “ua-profile”, except that the X-OITF-Expires header in Table 50 shall be set to 0.
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The request URI shall be set to the well known PSI. The PSI shall be composed of the domain name extracted from the public user identity with a user part set to “OIPF_IPTV_SPD”. (e.g., OIPF_IPTV_SPD@<domain_name>) | RFC 3261 [SIP] SUBSCRIBE <Request URI> SIP/2.0 |
X-OITF-From Note: The From user must be set to the IMPU of the default user. | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Event Extend the existing “ua–profile” event package for SIP SUBSCRIBE request The Event header shall be set to the “ua-profile” event package. The Event parameters shall be set as follows:
| RFC 3265 [SIP-EVNT] and as per TS 183 063 [TS183063] section 5.1.2.2.1 |
X-OITF-Contact Notes:
| RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires Note: If absent a default value according to RFC 3261 [SIP] shall be assumed by the IG To cancel the subscription, the X-OITF-Expires shall be set to 0 | RFC 3261 [SIP] |
X-OITF-Accept Set to “application/vnd.oipf.spdiscovery+xml” | RFC 3261 [SIP] |
X-OITF-Content-Type OPTIONALly included when signalling OITF capabilities according schema defined in Annex C.2. shall be set to “application/vnd.oipf.ueprofile+xml” | RFC 3261 [SIP] |
X-OITF-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The Request URI must match the contact URI included in the contact field of the SIP SUBSCRIBE | RFC 3261 [SIP], RFC 3265 [SIP-EVNT] and RFC 6080 [SIP-CFG] NOTIFY <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT] and as per TS 183 063 [TS183063] section 5.2.2.2 |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-Subscription-State | RFC 3265 [SIP-EVNT] and RFC 3856 [SIP-PRES] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/vnd.oipf.spdiscovery+xml” | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
Note: Cancellation of subscription is not required if the X-OITF-Expires header was set to 0 in the initial SUBSCRIBE request.
The procedure for refreshing a subscription is the same as the procedure for initiating a subscription.
The application initiating the subscription procedure shall refresh the subscription based on the refresh subscription timer information received in the response to the subscription. Refreshing a subscription should be performed before the expiry of the refresh timer. A subscription that is not refreshed will be terminated.
The IG shall consider a subscription terminated if is not refreshed.
The OITF retrieves the Service Provider Discovery entry point and uses the entry point to retrieve a list of IPTV service providers using HTTP for that purpose. The IPTV Service Providers list shall be delivered as SD&S records or DAE applications. When an IPTV service provider discovery entry point is selected, Service Provider Discovery information shall be delivered as Service Discovery and Selection (SD&S) records or as DAE applications. This information is provided by the Service Platform Provider.
When SD&S records are used, the HTTP protocol conforming to TS 102 034 [TS102034] section 5.4.2 shall be used for the transport of IPTV Service Provider Discovery Information. The data delivered shall conform to TS 102 034 [TS102034] section 5.2.5, with the extension defined in [OIPF_META2].
When DAE applications are used, the HTTP protocol and data formats shall conform to section 5.3.1.1.6 of [OIPF_DAE2].
The protocol on UNIS-6 shall be HTTP as defined in [OIPF_DAE2] for DAE application based service discovery. This protocol is used for the unicast transport of HTML ECMAScript documents between the OITF DAE function and the IPTV Application Functional Entity.
The protocol used on UNIS-15 for the transport IPTV Service Discovery information shall be HTTP conforming to TS 102 034 [TS102034] section 5.4.2.
The IPTV Service Discovery information delivered via this protocol shall conform to TS 102 034 [TS102034] section 5.2.6 with the extension defined in [OIPF_META2]
UNIS-6 may be used for the unicast transport of HTML ECMAScript documents between the OITF DAE function and the IPTV Application functional entity for DAE application based service access.
See [OIPF_DAE2] for the details of the document format delivered via this protocol.
The use of the HTTP protocol on this reference point shall comply with section 4.1.2.2.2 (container based delivery) or section 4.2 (query mechanism) of the DVB-IP Broadband Content Guide specification [BCG].
The Content Guide metadata delivered via this protocol shall conform to TS 102 539 [BCG] with the extension defined in [OIPF_META2]
The OITF may request user specific information from the Metadata Control FE based on the IPTV Subscription Profile. (See section 5.4.4, “Subscription profile management and usage.”)
The OITF shall be able to obtain a user’s IPTV Subscription Profile. The format of the IPTV Subscription Profile shall conform to Annex C.1, “IPTV Subscription Profile.” The IPTV Subscription Profile may be used for filtering the Broadband Content Guide metadata, i.e. for the provision of a personalised content guide.
The IPTV Service Profile Functional Entity shall expose XCAP Server behaviour (HTTP Server 1.1, XML parser, and data repository) as defined in RFC 4825 [XCAP].
UNIP-1 shall comply with XCAP as defined in RFC 4825 [XCAP].
Profile Management
The XML Configuration Access Protocol (XCAP) defined in RFC 4825 [XCAP] is used for manipulating data stored in the IPTV Service Profile Functional Entity. XCAP allows a client to read, write and modify application configuration data, stored in XML format, on a server. XCAP maps XML document sub-trees and element attributes to HTTP URIs, so that these components can be directly accessed by HTTP. XCAP uses the HTTP methods PUT, GET, and DELETE to operate on documents stored in the Service Profile Functional Entity.
The data stored in the IPTV Service Profile Functional Entity relates to the operation of the IPTV service. This specification defines a new Application Usage to allow a client to manipulate data related to IPTV services.
XCAP requires the definition of XML documents that are compliant with the XML schema and constraints defined for a particular XCAP application usage. The application usage defines the XML schema for the data used by the application, along with other key pieces of information.
Central to XCAP is the construction of the HTTP URI that points to a particular document or certain components of it. A component in an XML document can be an XML element, attribute, or the value of it.
XCAP application usage
XCAP requires application usages to fulfil a number of steps in the definition of such application usage. The remainder of this section specifies the required definitions of the IPTV services XCAP Application Usage.
Application Unique ID (AUID): Each XCAP application usage is
associated with a unique name called the Application Unique ID (AUID).
The AUID defined by this application usage falls into the
vendor-proprietary namespace of XCAP AUID, where Open IPTV Forum is
considered a vendor.
The proposed AUID to be allocated to the Open IPTV Forum IPTV services application usage shall be
XML schema: Implementations in compliance with this specification shall implement the XML schema defined in Annex C.
Default namespace: XCAP requires application usages to declare the default namespace. The default namespace of the IPTV services XCAP application usage shall be
MIME Type: The MIME type of IPTV service XML document shall be
Validation constraints: This specification does not specify any additional constraints beyond those defined by XCAP.
Data Semantics: The XML schema does not accept URIs that could be expressed as a relative URI reference causing a resolution problem. However, each of the supplementary services should consider if relative URIs are allowed in the subdocument tree, and in that case, they should indicate how to resolve relative URI references. In the absence of further indications, relative URI references should be resolved using the document URI as the base of the relative URI reference.
Naming conventions: By default, IPTV Service Profile XML documents are stored in the IPTV Service Profile Functional Entity. In order to facilitate the manipulation of an IPTV Service Profile XML document, the default XML file name shall be:
Resource interdependencies: This specification does not specify additional resource interdependency beyond those specified in the XML schema.
Authorization policies: The authorization policy for access and manipulation of an IPTV Service Profile document shall be defined by the Service Provider.
UNIS-6 may be used for the unicast transport of HTML ECMAScript documents between the OITF DAE function and the IPTV Application FE for DAE-based subscription profile management. In this case, the IPTV Application FE acts as a front-end to the IPTV Service Profile FE. When the HTTP request for profile management is received from OITF, the IPTV Application FE manipulates the IPTV Service Profile FE.
The procedure for subscription to notification of changes in the IPTV service profile shall be invoked from either a DAE application or an embedded application in the OITF. The procedures shall be as follows:
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)”. The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers needed for the outgoing subscription message, as per Table 54. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP SUBSCRIBE to the network, to subscribe to the “xcap-diff” event package, and shall wait for the response to the subscription request. The IG shall return a HTTP 200 OK response to the OITF to report the response to the subscription request. The response shall include a list of SIP Headers as per Table 55 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | The OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “5.6.1.1”), and shall wait for any incoming messages. | ||
Step 5: | When a SIP NOTIFY is received by the IG, the IG shall return a HTTP 200 OK response to the OITF that includes the information carried in the incoming NOTIFY. The response shall include a list of SIP headers as per Table 56 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall include the “xcap-diff+xml” document carried in the NOTIFY body. This document contains the changes in the XCAP document(s) identified in the subscription request in Step 1(b). | ||
Step 6: | When the OITF accepts the incoming SIP NOTIFY, it shall send an HTTP POST PENDING_IG request to the IG to acknowledge the receipt of notification. The content of the HTTP request shall be as follows:
| ||
Step 7: | The IG shall send the SIP 200 OK response to the network and then shall return to Step 5 to handle any subsequent NOTIFY messages that may be received from the network. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the well-known PSI of the IPTV Service Profile FE: | RFC 3261 [SIP], RFC 3265 [SIP-EVNT] and RFC 5875 [XCAP-EVT] SUBSCRIBE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Event The Event header shall be set to the “xcap-diff” event package. | RFC 3265 [SIP-EVNT] and as per TS 183 063 [TS183063] section 5.1.5.1 |
X-OITF-Accept The Accept header shall include the value “application/xcap-diff+xml”. This header indicates the body formats allowed in subsequent NOTIFY requests | RFC 3265 [SIP-EVNT] and as per TS 183 063 [TS183063] section 5.1.5.1 |
X-OITF-Content-Type shall be set to “application/vnd.oipf.userprofile+xml” as the MIME Type of IPTV Subscription Profile schema. | RFC 3265 [SIP-EVNT] |
X-OITF-Contact Notes:
| RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires Note: If absent a default value shall be assumed by the IG | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The Request URI must match the contact URI included in the contact field of the SIP SUBSCRIBE | RFC 3261 [SIP], RFC 3265 [SIP-EVNT] and RFC 6080 [SIP-CFG] NOTIFY <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT] and as per TS 183 063 [TS183063] section 5.1.5.2 |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-Subscription-State | RFC 3265 [SIP-EVNT] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type shall be set to “application/xcap-diff+xml”. | RFC 3265 [SIP-EVNT] and as per TS 183 063 [TS183063] section 5.1.5.2 |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
It is the responsibility of the application initiating the subscription procedure to refresh the subscription according to the “refresh subscription timer” parameter received in the response to the subscription request. Refreshing the subscription should be performed before the expiry of the refresh timer. A subscription that is not refreshed shall be terminated after the expiration of the timer.
The IG shall consider a subscription terminated if is not refreshed.
This procedure may be invoked at any time.
The procedure for de-registering the IPTV end user shall be preceded by the cancellation of any subscription for notification of changes in the user’s IPTV Service Profile.
The procedure for cancellation of the subscription is the same as the procedure for initiating a subscription to the ua-profile event package, except that the X-OITF-Expires header in Table 54 shall be set to 0.
The remote management functions required for managed devices are specified in the general framework document TR069 [TR069] by the Broadband Forum. The framework document is associated with a number of Technical Reports that define the CWMP data models that are specific for each device function.
In addition to TR-069, the following specifications shall apply:
Although the remote management functions are specified in the general framework document TR-069 [TR069] by the Broadband Forum, the protocol to remotely manage OITF retail devices is intended to support limited functions mainly for Performance Monitoring and Diagnostics. Consequently, an OITF device doesn't fulfil all the requirements that are requested in TR-069 [TR069]. The limitations outlined in the following sections shall apply.
OITF RPC Methods Support Requirements
An OITF shall implement the following RPC methods:
Method Name | OITF requirement | ACS requirement |
---|---|---|
CPE methods | Responding | Calling |
GetRPCMethods | required | required |
SetParameterValues | required | required |
GetParameterValues | required | required |
SetParameterAttributes | required | optional |
GetParameterAttributes | required | optional |
ACS methods | Calling | Responding |
Inform | required | required |
As an OITF device doesn't support all the RPC requirements as defined in [TR069], the ACS shall implement the GetRPCMethods to discover the limited set of methods supported by the OITF.
The OITF RPC Methods shall respect the calling arguments and type as defined in [TR069], with the following definition of the DeviceIdStruct that is used for the DeviceId argument of the Inform method:
Name | Type | Description |
---|---|---|
Manufacturer | String(64) | Manufacturer of the device |
OUI | String(6) | In the context of OIPF, this parameter is the hexadecimal value of the first 3 bytes of SHA-1(X) |
ProductClass | String(64) | In the context of OIPF, this parameter is always "OIPF" |
SerialNumber | String(64) | In the context of OIPF, this parameter is the hexadecimal value of the remaining bytes (from 4th on) of SHA-1(X) |
OITF Data Model
In the framework of the Open IPTV Forum, a specific data model for the Remote Management of a retail OITF device has been defined. The data model has been obtained from TR-135 [TR135] and TR-106 [TR106] with a selection of a reduced set of parameters using the same semantics (with a few exceptions) and the same types. The OITF data model is fully described in Annex J, “OITF-specific TR-135 and TR-106 Remote Management Objects.”
CPE WAN Management protocol based on Broadband Forum TR-069 [TR069] shall be used to configure the IPTV application in the IG. An IPTV configuration file shall be used to populate the IG with the list of users with their IMPU, Alias and Passwords and also configure whether user authentication is to be performed by the IG.
If GBA Authentication or HTTP Digest Authentication is supported by the IG, the IG shall be configured with the following information:
The file is downloaded to the IG during the IG power up procedure.
The configuration data shall be defined in XML and shall include the XML schema to be enforced against the configuration data.
There are 2 cases to be considered; the first case is when the remote server requests the IG to download the configuration file at power up of the IG. This requires the IG to contact the remote server. The download request is subsequently used by the server to request the IG to download the configuration file. Alternatively, if the server is configured (by some means) with the address of the IG, it can request the IG to contact it using the Connection Request Notification mechanism, if the remote server supports this mechanism.
The second case is when the process is initiated by the IG if it detects a corrupted file or if for some reason it lost the file due to a reboot or an internal error.
Figure 4 is a call flow depicting the configuration procedure.
The following is a brief description of the flow:
Steps 1-4: | Normal steps as per TR-069. | ||||||||||||||||||
Step 5: | The IG sends an HTTP POST request with no HTTP entity body to the remote server. | ||||||||||||||||||
Step 6: | The server returns an HTTP response that includes a Download request in the HTTP entity body. The arguments are set as follows:
| ||||||||||||||||||
Step 7: | Following that, the IG proceeds to download the configuration file. | ||||||||||||||||||
Steps 8-9: | Once the download is complete,
the IG sends a TransferComplete request to the remote server. The
arguments in the request are set as follows:
|
Note that the above sequence is an example and there are other valid sequences that can achieve the same result.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:config:ig:2009" xmlns:tns="urn:oipf:config:ig:2009" xmlns:enum="urn:ietf:params:xml:ns:enum-token-1.0" xmlns="http://www.w3.org/2001/XMLSchema"> <!—schema filename is config-ig.xsd --> <xs:annotation> <xs:documentation xml:lang="en"> This schema is copyrighted by the Open IPTV Forum ("OIPF") and distributed in conjunction with Release 1 of the IPTV Solution Specification. Disclaimer The Open IPTV Forum members accept no liability whatsoever for any use of this document. This specification provides multiple options for some features. The Open IPTV Forum Profiling specification will complement the Release 1 specifications by defining the Open IPTV Forum implementation and deployment profiles. Any implementation based on Open IPTV Forum specifications that does not follow the Profiling specifications cannot claim Open IPTV Forum compliance. Copyright Notification No part may be reproduced except as authorized by written permission. Any form of reproduction and/or distribution of these works is prohibited. Copyright 2009 © Members of the Open IPTV Forum All rights reserved. </xs:documentation> </xs:annotation> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" /> <xs:import namespace="urn:ietf:params:xml:ns:enum-token-1.0" schemaLocation="imports/enum-token-1.0.xsd /> <xs:element name="IGconfiguration" type="tns:IGconfigurationType" /> <xs:complexType name="IGconfigurationType"> <xs:sequence> <xs:element name="AuthenticationSet" type="tns:AuthenticationSetType" maxOccurs="unbounded" /> <xs:element name="GatewayAuthentication" type="xs:boolean" minOccurs="0" /> <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="AuthenticationSetType"> <xs:sequence> <xs:element name="Identifier" type="tns:IMSPublicIdType" /> <xs:element name="Password" type="xs:string" /> <xs:element name="Alias" type="xs:string" /> <xs:sequence minOccurs="0"> <xs:element name="IMPI" type="xs:string" /> <xs:element name="SIPDigestPassword" type="xs:string" /> </xs:sequence> </xs:sequence> </xs:complexType> <!-- ================== Definition for IMSPublicIdType ====================--> <xs:complexType name="IMSPublicIdType"> <xs:choice> <xs:element name="e164Number" type="enum:e164numberType" /> <xs:element name="SIPURI" type="tns:SIPURIType" /> </xs:choice> </xs:complexType> <xs:simpleType name="SIPURIType"> <xs:annotation> <xs:documentation xml:lang="en"> SIP URI pattern is defined based on the SIP URI description provided in RFC 3261 (Section 2) </xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:pattern value="[sS][iI][pP][sS]?:(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?" /> <xs:restriction> </xs:simpleType> </xs:schema>
The schema establishes a binding between an IMS Public Identity (IMPU), a user alias and a password. If SIP Digest authentication is used for user authentication, the IMPI and SIPDigestPassword shall be included. Otherwise, it is assumed that user authentication is based upon IMS AKA.
The schema also supports a mechanism to instruct the IG if user authentication is mandatory in the Consumer Network.
The schema is extensible.
An example of a configuration file that conforms to the above schema is as follows:
<IGconfiguration> <AuthenticationSet> <Identifier><SIPURI>sip://operator.example.com/MickJ</SIPURI></Identifier> <Password>RollingStones</Password> <Alias>Mick Jagger</Alias> <IMPI>household123@operator.com</IMPI> <SIPDigestPassword>CCXDFGGH</SIPDigestPassword> </AuthenticationSet> <AuthenticationSet> <Identifier><SIPURI>sip://operator.example.com/BruceS</SIPURI></Identifier> <Password>TheBoss</Password> <Alias>BruceSpringstein</Alias> <IMPI>household123@operator.com</IMPI> <SIPDigestPassword>CCXDFGGH</SIPDigestPassword> </AuthenticationSet> <GatewayAuthentication>true</GatewayAuthentication> </IGconfiguration>
See DAE Specification [OIPF_DAE2] section 7.11.
This procedure shall be invoked in following cases:
The IG shall extract the deviceID from the sip instance feature tag.
If the deviceID and the IMPU match another deviceID and IMPU whose state is held in the IG, the IG shall conclude that the OITF has undergone a restart and shall proceed to immediately clear all SIP sessions belonging to the OITF. Following that, the IG shall de-register all users registered from that OITF.
If GRUU is not requested, the IG shall not perform IMS registration when the IMPU is already registered; however, the IG shall maintain a binding between the Alias/IMPU, the OITF device from which the registration is received (extracted from the sip instance feature tag) and the new contact information including the sip instance feature tag, which provides an easy way to guarantee uniqueness within the Address of Record (AOR).
Following the successful registration of the IMPU as per the procedure below, the IG shall maintain a binding between the Alias/IMPU, the OITF device (extracted from the sip instance feature tag described above) from which the registration is received, and the new contact information including the sip instance feature tag, which provides an easy way to guarantee uniqueness within the Address of Record (AOR).
If the identity being registered is the default identity, and if the default identity is not bound to any OITF in the consumer network, then the IG shall deregister its contact address for the default identity at the end of this procedure.
If the identity being registered is not the default identity and if the default identity is not bound to any OITF in the consumer network, then the IG shall deregister the default identity from the IG point of view at the end of this procedure.
Step 1: | The OITF shall send an HTTP POST request to the IG on the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers needed for the outgoing registration message, as per Table 58. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for the rejection. | ||
Step 3: | Once the IG completes the IMS registration process, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF. The response shall include a list of SIP headers as per Table 59 in additional to the normal HTP headers as per RFC 2616 [HTTP]. |
If the OITF does not support native HNI-IGI, user registration shall be done through a DAE application.
This procedure is invoked in the following cases:
Prior to de-registering the IMPU, the IG shall clear all SIP sessions in which the IMPU is engaged on the specific OITF device from which the de-registration occurred and shall subsequently remove all bindings between the IMPU and all SIP sessions on the impacted OIPF. Following successful deregistration of the IMPU, the IG shall remove the binding between the IMPU and the OITF device from which the de-registration has occurred.
If GRUU is not supported for this registration, the IG shall not perform IMS deregistration when an IMPU is already registered on multiple OITFs, but the IG shall remove the binding between the IMPU and the OITF from which the user has deregistered (extracted from the sip instance feature tag) including the contact information (including the sip instance feature tag).
If GRUU is not supported for this registration, the IG shall perform the IMS deregistration procedure if the IMPU was bound to a single OITF.
Following a successful de-registration, the IG shall remove the binding between the Alias/IMPU, the OITF device from which the registration is received (extracted from the sip instance feature tag).
Note that if following the successful de-registration of the IMPU, and if there are no more OITFs still turned on in the consumer network, the IG shall re-register the default identity from the IG point of view.
Step 1: | The OITF shall send to the IG an HTTP POST request containing an X-OITF-Request-Line header on the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers needed for the outgoing de-registration message as per Table 58. The IG shall reject any request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for the rejection. | ||
Step 3: | Once the IG completes the IMS de-registration process, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF. The response shall include a list of SIP headers as per Table 59 in additional to the normal HTP headers as per RFC 2616 [HTTP]. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line The Request-URI is that of the P-CSCF, and is fetched by the OITF as per section 7.1.1 of TS 183 019 [TS183019]. The IG shall be responsible for resolving the domain name. | RFC 3261 [SIP], RFC 3265 [SIP-EVNT] and RFC 6080 [SIP-CFG] NOTIFY <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact
Notes:
IG adds all the other mandatory parameters that are absent in the X-OITF-Contact. Default values are assigned by the IG to optional parameters that are not provided in the X-OITF-Contact.
The sip instance feature tag shall have the following syntax: +sip.instance="<urn:uuid:Unique-Instance>" where Unique-Instance shall be 128 bits and shall conform to the syntax in [RFC4122]. The Node field is a 48 bit field which shall be populated with the first 48 bits from the value employed in <deviceID> used at restart or powerup of an OITF device. The sip instance feature tag must be persistent across power cycles of the device. All OITFs that want to be able to use the session transfer feature shall register the g.3gpp.icsi-ref media feature tag containing the IPTV IMS communication service identifier. In particular the X-OITF-Contact header shall have the following media feature tag included:
| RFC 3261 [SIP] and RFC 3840 [RFC3840] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Supported set to “gruu” if the feature is required | RFC 3261 [SIP] RFC 5627 [RFC5627] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | SIP header field prefixed with X-OITF |
X-OITF-To | SIP header field prefixed with X-OITF |
X-OITF-Expires | SIP header field prefixed with X-OITF |
X-OITF-Contact The returned contact shall include the following 3 elements if the GRUU feature is requested by the OITF: | SIP header field prefixed with X-OITF RFC 5627 [RFC5627] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
If the OITF does not support native HNI-IGI, user deregistration shall be done through a DAE application.
This procedure may be initiated by the OITF at any time before the expiry of the registration refresh timer.
The procedure is the same as the procedure for registering a user. A registration shall be terminated if it is not refreshed before the expiry of the registration refresh timer.
For an OITF-initiated registration, the IG shall consider a registration terminated (that is, the user de-registered) if it is not refreshed. In this case, the IG executed the procedures associated with user deregistration.
This procedure shall be invoked immediately after the successful registration of an IMPU (including the default identity) or an IPTV end-user identity.
Step 1: | The OITF shall send an HTTP POST request to the IG on the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the outgoing subscription request message, as per Table 60. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for the rejection. | ||
Step 3: | The IG shall send a SIP SUBSCRIBE to the network, to subscribe to the Registration event, and shall wait for the response to the subscription request. The IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the subscription request. The response shall include a list of SIP headers as per Table 61 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | Following that, the OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”), and shall wait for any response. | ||
Step 5: | When a SIP NOTIFY is received by the IG, the IG shall return a HTTP 200 OK response to the OITF. The response shall include the list of SIP headers as per Table 62 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall include the SIP body received in the incoming NOTIFY (See also section 6.1.3.2.2, “Procedure for User Registration and Authentication in a network relying on IMS on UNIS 8.)” | ||
Step 6: | Once the OITF accepts the incoming SIP NOTIFY, it shall send an HTTP POST PENDING_IG request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 7: | The IG shall send the SIP 200 OK response to the network and then shall return to Step 5 to handle any subsequent NOTIFY received from the network. |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The request URI shall be set to the Public identity of the IPTV end user who has just registered. | RFC 3261 [SIP] SUBSCRIBE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT] and RFC 3680 (registration event) [SIP-REG] |
X-OITF-Accept | RFC 3265 [SIP-EVNT] and RFC 3680 [SIP-REG] |
X-OITF-Contact
Notes:
The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | SIP header field prefixed with X-OITF |
X-OITF-To | SIP header field prefixed with X-OITF |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Request-Line Note: The Request URI must match the contact URI included in the contact field of the SIP SUBSCRIBE | RFC 3261 [SIP] NOTIFY <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT] and RFC 3680 [SIP-REG] |
X-OITF-Call-ID | RFC 3265 [SIP-EVNT] and RFC 3680 [SIP-REG] |
X-OITF-Subscription-State | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3265 [SIP-EVNT] and RFC 3680 [SIP-REG] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Information for Coding purposes |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | SIP header field prefixed with X-OITF |
X-OITF-To | SIP header field prefixed with X-OITF |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
This procedure shall be invoked prior to de-registering a user.
The procedure is the same as the procedure for initiating a subscription to the Registration event, however in this case the X-OITF-Expires header in Table 60 shall be set to 0.
For an OITF-initiated registration, the IG shall consider a subscription terminated if is not refreshed.
The procedure is the same as the procedure for initiating a subscription.
It is the responsibility of the application initiating the subscription procedure to refresh the subscription according to the refresh subscription timer information received in the response to the subscription request. Refreshing the subscription should be performed before the expiry of the refresh timer. A subscription that is not refreshed before the expiration of the refresh timer shall be terminated.
IMS applications, DAE or embedded, that are initiated in the OITF and expect unsolicited incoming messages shall register with the IMS network the feature tags and/or the appropriate service URN (ICSI) and /or IMS application reference identifier (IARI) for the initiated application where mandated by the specification governing the application [TS183063], [SMPL-IM], [TS124503], [RFC3840], [RFC3841]. This allows unsolicited incoming SIP messages destined for users and targeted for these applications to be delivered to the appropriate application instance in the OITF.
The procedure used by an application for registering the appropriate feature tags and/or service URN (ICSI) and/or IARI is the same procedure used for user registration.
Note that GBA authentication can be achieved using either the GBA Authentication using IMS Gateway procedure, specified in [OIPF_CSP2] section 5.4.5 or the, more general, procedure, HTTP Digest Authentication using IMS Gateway in [OIPF_CSP2] section 5.4.4. The latter; more general procedure allows the use of different authentication mechanism in a way that is transparent to the OITF, including possible future authentication mechanisms, and should preferably be used. It is expected that GBA Authentication using IMS Gateway procedure will be deprecated and removed in future versions of this specification.
This section describes the HNI-IGI message for the GBA Authentication. For the details of the sequence for GBA Authentication, refer to section 5.4.4 of [OIPF_CSP2]. Note that GBA authentication applies only for user registration and authentication based on IMS AKA.
After IMS registration is successfully performed, and if the IG supports GBA Authentication, OITFs supporting native HNI-IGI shall issue following GBA registration request to the IG. OITFs that do not support native HNI-IGI do not support GBA.
Step 1: | The OITF shall send an HTTP POST request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 2: | After the GBA bootstrapping procedure over UNIS-9, the IG returns an HTTP 200 OK response with an empty body. |
The key Ks that is established during the GBA registration may be reused later for user authentication and service access by consumer network applications.
Each time an OITF needs to access a service that is offered by an AS (i.e. NAF) that requires GBA Authentication, a specific key Ks_NAF or Ks_ext_NAF shall be derived respectively by the IG or by the ISIM in the IG and the server side GBA Single Sign-on function (the BSF). This generated key shall be conveyed to the OITF in the consumer network by the IG, and to the AS by the server side GBA Single Sign-on function (the BSF). The key Ks_NAF or Ks_ext_NAF shall then be used for authentication between the OITF and the AS, using HTTP Digest authentication as specified by [UB-UA]. The OITF shall act as the OIPF as specified in [UB-UA].
As a pre-requisite to this procedure, the GBA procedure must have been successfully completed.
The complete procedure for retrieval of credentials by the OITF from the IG is specified in [OIPF_CSP2].
The HNI-IGI procedure for credential retrieval is as follows:
Step 1: | The OITF shall send an HTTP POST request to the IG. The request includes the FQDN of the NAF. The content of the HTTP Request shall be as follows:
| ||
Step 2: |
The IG shall generate Ks_NAF or
Ks_ext_NAF with the ISIM. For clarity this specific key is named in the
rest of the document Ks_(ext)_NAF and will refer to Ks_NAF in case of
GBA_ME and Ks_ext_NAF in case of GBA_U and is computed as follows:
|
Step 1: | The OITF shall send an HTTP POST request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 2: |
The IG shall return an HTTP 200
OK to the OITF that includes the list of supported auth-scheme and
realm. The content of the HTTP 200 OK response shall be as follows:
|
If the OITF has registered to an IG which supports HTTP Digest Authentication using IG, each time the OITF needs to access a service offered by an application server that requires HTTP authentication, the OITF may use credentials retrieved from the IG. The conditions under which an OITF uses HTTP credentials retrieved from the IG are described in [OIPF_CSP2].
The complete procedure for use of HTTP credentials by the OITF retrieved from the IG is specified in [OIPF_CSP2].
The HNI-IGI procedure for HTTP credential retrieval is as follows:
Step 1: | The OITF shall send an HTTP POST request to the IG. The request includes the auth-scheme and realm as defined in RFC 2617 [HTTPAUTH]. The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall
return an HTTP 200 OK to the OITF that includes the user-id and
password for the given auth-scheme and realm. The content of the HTTP
200 OK response is as follows:
|
Step 1: | The OITF shall send an HTTP POST request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG returns a list of user IDs (IMPU and Aliases) as follows:
|
The usage of IMPU and Alias by the OITF is defined by the CSP specification.
Depending on the policy of the IG and service provider, the IG may return the default identity only. In this case, the user of the OITF shall be required to enter a user ID manually.
The OITF supports the following procedure for Caller ID. The incoming message carrying a Caller ID can either be handled by a native application in the OITF, or in a DAE application. The same HNI-IGI message format is used in either case.
Step 1: | The IG receives an incoming SIP MESSAGE from the network. | ||
Step 2: | The IG forwards the information in the SIP MESSAGE to the OITF in the HTTP 200 OK response to a PENDING_IG request that was established when the application started. The list of SIP headers to be included in the message to the OITF shall be as per Table 64. The body of the SIP MESSAGE shall be included in the HTTP response body. | ||
Step 3: | Upon receipt of the message, the OITF shall issue an HTTP POST request. The content of the HTTP request shall be as follows:
| ||
Step 4: | The IG shall send SIP 200 OK to the network. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the IMS Public Identity (IMPU) of the target of the message | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3428 [SIP-IM], Draft OMA-TS-SIMPLE_IM-V1_0-20080820-D [SMPL-IM] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
The following procedure may be supported in the OITF for Caller ID presentation to the OITF user as a result for an incoming IMS voice call to the IG.
The incoming message, carrying information on the IMS voice call, can either be handled by a native application in the OITF, or by a DAE application. The same HNI-IGI message format is used in either case.
Step 1: | The IG receives an incoming SIP INVITE. | ||
Step 2: | The IG forwards the SIP INVITE to the OITF as an HTTP response to a PENDING_IG request. The list of SIP headers to be included in the message to the OITF shall be as per Table 66. The content of the invite message shall also be included. | ||
Step 3: | Upon receipt of the message, the
OITF issues an HTTP POST request indicating that the voice call is not
supported by the OITF by response code 415 Unsupported Media Type. Other
values may be used according to RFC 3261 [SIP]. The content of the HTTP Request is as follows:
| ||
Step 4: | The IG shall forward the SIP response to the network. | ||
Step 5: | When the IG receives the SIP ACK from the network and shall forward it to the OITF as an HTTP response to a PENDING_IG request. The list of SIP headers to be included in the message to the OITF shall be as per Table 68. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the IMS Public User Identity of the target of the message | RFC 3261 [SIP] INVITE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP], ES 283 002 [ES283002] |
X-OITF-P-Called-Party-ID | ES 283 002 [ES283002] |
X-OITF-P-Asserted-Identity | ES 283 002 [ES283002] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Accept | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the IMS Public User Identity of the target of the message | RFC 3261 [SIP] ACK <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Accept | RFC 3261 [SIP] |
Instant Messaging on the OITF uses the HNI-IGI functionality, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).”
There are two cases, messages originating from the OITF, and messages terminating in the OITF.
The following procedure is supported in the OITF to originate instant messages:
An instant message can either originate from a native application in the OITF or from a DAE application. The same HNI-IGI message format is used.
Step 1: | The OITF shall send an HTTP POST request to the IG using the HNI-IGI functionality, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the message as per Table 69. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP MESSAGE to the network. When the IG receives the response, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the SIP MESSAGE. The response includes a list of SIP headers as per Table 70 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the Public identity of the target of the message | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
The following procedure is supported in the OITF for incoming instant messages.
The incoming message can be handled either by a native application in the OITF, or in a DAE application. The same HNI-IGI message format is used in either case.
Step 1: | The IG receives an incoming SIP MESSAGE | ||
Step 2: | The IG shall forward the SIP MESSAGE to the OITF as an HTTP response to a PENDING_IG request. The list of SIP headers to be included in the notification forwarded to the OITF shall be as per Table 71. The body of the SIP MESSAGE shall be included in the HTTP body. | ||
Step 3: | Upon receipt of the message, the OITF shall issue an HTTP POST request. The content of the HTTP Request shall be as follows:
| ||
Step 4: | The IG shall forward the SIP 200 OK to the network. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the Public identity of the target of the message | RFC 3261 [SIP] MESSAGE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP], Draft OMA-TS-SIMPLE_IM-V1_0-20080820-D [SMPL-IM] |
X-OITF-Content-Length | RFC 3261 [SIP] |
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | If the request is for an Instant Messaging MSRP Chat Session, the IG shall validate that the request includes all the mandatory SIP headers as per Table 72. The IG shall
reject a request that is missing any mandatory SIP headers with a
non-200 OK HTTP response, including the reason for rejection. The IG shall generate the INVITE by mapping the X-OITF headers to the appropriate SIP header. As the IG implements MSRP, the IG shall include all the necessary additional SIP headers and the SDP body to initiate the MSRP session as follows:
| ||
NOTE: In this case the IG is not service agnostic. The IG detects that this session is for MSRP by examining the X-OITF-Accept header which shall include message/cpim (See example in Annex B.2.1.2, “Chat.”) | |||
Step 3: | The IG shall send a HTTP 200 OK response to the OITF when the SIP 200 OK is received as a response to the session invitation. The SIP 200 OK headers are mapped as indicated in Table 73, in addition to the normal HTTP 200 OK headers. The IG shall not forward the body of the SIP 200 OK to the OITF. The IG shall establish and maintain the MSRP state information including the binding between the logical entities (indicated in the From and To headers) and the corresponding path (the one initiated by the IG for the OITF and the one indicated by the distant entity for the To:). The IG shall maintain a binding between the SIP dialog and the MRSP state information for the duration of the SIP dialog. | ||
Step 4: | Upon receipt of a 200 OK response, the OITF shall send an HTTP PENDING_IG to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line The request URI shall be set to the IMPU of the subscriber with whom the session is requested. | RFC 3261 [SIP] INVITE <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To must be set to the value of the request URI in the “X-OITF-Request-Line INVITE” header | RFC 3261 [SIP] |
X-OITF-Contact Notes:
| RFC 3261 [SIP] |
X-OITF-Accept-Contact | Set according to [SMPL-IM] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Accept shall be set to: “message/cpim” | [SMPL-IM] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Accept | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line The Request-URI in the ACK request shall be the contact included in the response to the INVITE message | RFC 3261 [SIP] ACK <Request URI> SIP/2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter must be included, and must match what has been inserted in the INVITE message. IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
The OITF shall access MSRP capabilities in the IG using the X-HNI-IGI headers.
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory HNI-IGI headers for the process as per Table 75. The IG shall reject a request that is missing any mandatory HNI-IGI headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall validate the Call-ID and the Message-ID, if present, and subsequently shall send an MSRP SEND message to the network, then wait for the MSRP 200 OK response from the network. The IG shall return a HTTP 200 OK response to the OITF when it receives the MSRP 200 OK (or other responses). The HTTP 200 OK response shall include the HNI-IGI headers as per Table 76 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
X-HNI-IGI HTTP Header | Source of Coding Information |
---|---|
X-HNI-IGI-Request SEND MESSAGE | [SMPL-IM] |
X-HNI-IGI-Message-ID | shall be left blank for the first message. |
X-HNI-IGI-Call-ID | shall be set to the same value for the INVITE transaction that initiated the session |
X-HNI-IGI-From | shall be set to the identity of the originator of the message |
X-HNI-IGI-To | shall be set to the identity of the recipient of the message |
X-HNI-IGI Headers | Source of Coding Information |
---|---|
X-HNI-IGI-Response MSRP <Response> | [SMPL-IM] |
X-HNI-IGI-Message-ID | [SMPL-IM] |
X-HNI-IGI-From | [SMPL-IM] |
X-HNI-IGI-To | [SMPL-IM] |
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory HNI-IGI headers for the process as per Table 77. The IG shall reject a request that is missing any mandatory HNI-IGI headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall validate the Call-ID and the Message-ID, and send an MSRP SEND message to the network after performing the necessary mapping and adding the appropriate tags. The IG shall then wait for the MSRP 200 OK response from the network. The IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF when it receives the MSRP 200 OK (or other responses). The response shall include a list of HNI-IGI headers as per Table 76 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
X-HNI-IGI HTTP Header | Source of Coding Information |
---|---|
X-HNI-IGI-Request MSRP SEND ACTIVITY | OMA-TS-SIMPLE_IM-V1_0-20080820-D [SMPL-IM] |
X-HNI-IGI-Message-ID | shall be set to the appropriate message id |
X-HNI-IGI-Call-ID | shall be set to the same value for the INVITE transaction that initiated the session |
X-HNI-IGI-From | [SMPL-IM] |
X-HNI-IGI-To | [SMPL-IM] |
Step 1: | In response to a PENDING_IG request, the IG shall send an HTTP 200 OK response to the OITF over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The response shall include the HNI-IGI headers listed in Table 78, in addition to the mandatory HTTP headers in RFC 2616 [HTTP]. The body of the HTTP 200 OK response shall include the received text. | ||
Step 2: | The OITF shall respond with an HTTP POST request with its body containing an MSRP 200 OK response. The contents of the HTTP Request shall be as follows:
| ||
Step 3: | The IG shall send the response from the OITF in an MSRP response message to the network after performing the necessary validation. |
X-HNI-IGI HTTP Header | Source of Coding Information |
---|---|
X-HNI-IGI-Request MSRP RECEIVE MESSAGE | [SMPL-IM] |
X-HNI-IGI-Message-ID | shall be set to the appropriate message id |
X-HNI-IGI-Call-ID | shall be set to the same value for the INVITE transaction that initiated the session |
X-HNI-IGI-From | shall be set to the remote user |
X-HNI-IGI-To | shall be set to the recipient of the message |
X-HNI-IGI HTTP Header | Source of Coding Information |
---|---|
X-HNI-IGI-Response MSRP <Response> | Set to the appropriate Response |
X-HNI-IGI-Message-ID | shall be set to the appropriate message id |
Step 1: | In response to a PENDING_IG request, the IG shall send an HTTP 200 OK response to the OITF over the HNI-IGI interface, as described in OITF-IG Interface (HNI-IGI). The response shall include the HNI-IGI headers listed in Table 80 in addition to the mandatory HTTP headers in RFC 2616 [HTTP]. The body of the HTTP 200 OK response shall contain the appropriate XML document as indicated in RFC 3994 [RFC3994] and OMA-TS-SIMPLE-IM_V1_0-20080820-D [SMPL-IM] | ||
Step 2: | The OITF shall respond with an HTTP POST request with its body containing an MSRP 200 OK response. The contents of the HTTP Request shall be as follows:
| ||
Step 3: | The IG shall send the response from the OITF in an MSRP response message to the network after performing the necessary validation. |
X-HNI-IGI HTTP Header | Source of Coding Information |
---|---|
X-HNI-IGI-Request MSRP RECEIVE ACTIVITY | OMA-TS-SIMPLE-IM-V1-0-20080820-D [SMPL-IM] |
X-HNI-IGI-Message-ID | shall be set to the appropriate message id |
X-HNI-IGI-Call-ID | shall be set to the same value for the INVITE transaction that initiated the session |
X-HNI-IGI-From | shall be set to the remote user |
X-HNI-IGI-To | shall be set to the recipient of the message |
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the process as per Table 81. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. The IG shall generate the SIP BYE by mapping the X-OITF headers to the appropriate SIP headers. | ||
Step 3: | The IG shall send a HTTP 200 OK response to the OITF when the SIP 200 OK is received as a response to the Chat session termination request. The SIP 200 OK headers are mapped as indicated in Table 82 in addition to the normal HTTP 200 OK headers. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line | RFC 3261 [SIP] BYE <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact shall be set to the value received in the contact of a 200 OK for session termination or SIP INVITE for session origination | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Length must be set to 0 | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 200 OK |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Content-Length Set to 0 | RFC 3261 [SIP] |
Step 1: | The IG receives a SIP BYE message from the network. | ||
Step 2: | The IG forwards the information in the SIP BYE to the OITF over the HNI-IGI interface in the HTTP 200 OK response to a PENDING_IG request. The response shall include the list of SIP headers listed in Table 83, in addition to the mandatory HTTP headers in RFC 2616 [HTTP]. | ||
Step 3: | The OITF shall respond with an HTTP POST request. The content of the HTTP Request shall be as follows:
| ||
Step 4: | The IG shall send SIP 200 OK to the network. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The Request URI must match the contact URI included in the contact field of the SIP INVITE (for outgoing session) or a 200 OK (for incoming session) | RFC 3261 [SIP] BYE <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Length must be set to 0 | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
Step 1: | The IG receives a SIP INVITE message from the network. | ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 85. This is required since the IG must send all this information to the OITF. The IG shall reject any incoming request that is missing any mandatory parameter. Subsequently, the IG shall perform the following checks:
| ||
Step 3: | Following that, the IG retains and stores information in the SDP, and forwards only the information in the SIP INVITE headers to the OITF over the HNI-IGI interface in the HTTP 200 OK response to a PENDING_IG request that was sent by the OITF to the IG when the application was launched. The response shall include the list of SIP headers listed in Table 85, in addition to the mandatory HTTP headers in RFC 2616 [HTTP]. | ||
Step 4: | The OITF shall respond with an HTTP POST request that includes the OITF response to the incoming INVITE. The content of the HTTP Request shall be as follows:
| ||
Step 5: | The IG shall append the SDP to the SIP 200 OK before sending it to the network. The appended SDP shall include the following information:
| ||
Step 6: | The IG receives a SIP ACK message from the network | ||
Step 7: | Following that, the IG shall
send the information in the incoming ACK message to the OITF in a HTTP
200 OK response. The response includes a list of SIP headers as per
Table 87.
Note: Any SDP information is retained in the IG since the IG handles the MSPP protocol | ||
Step 8: | The OITF shall send an HTTP HNI-IGI PENDING_IG request to the IG and shall wait for any incoming messages. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line The request URI shall be set to the IMPU of the subscriber with whom the session is intended | RFC 3261 [SIP] INVITE <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To must be set to the value of the request URI in the “X-OITF-Request-Line INVITE” header | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Accept-Contact | Set according to [SMPL-IM] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Accept shall be set to: “message/cpim” | [SMPL-IM] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Accept shall be set to “message/cpim” | RFC 3261 [SIP] |
X-OITF-Contact Notes:
| RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line The Request-URI in the ACK request shall be the contact included in the response to the INVITE message | RFC 3261 [SIP] ACK <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter shall be included, and shall match what been received in the incoming INVITE message. | RFC 3261 [SIP] |
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the subscription process as per Table 88. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP SUBSCRIBE to the network, to subscribe to the Presence event, and shall wait for the response to the subscription request. The IG shall then return a HTTP 200 OK response to the OITF to report the response to the subscription request. The response includes a list of SIP headers as per Table 89, in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | The OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”), and shall wait for any incoming messages. | ||
Step 5: | When a SIP NOTIFY is received by the IG, the IG shall return a HTTP 200 OK response to the OITF containing the information in the incoming NOTIFY message. The response includes a list of SIP headers as per Table 90 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall include the SIP body received in the incoming NOTIFY compliant to Annex E of [TS183063]. | ||
Step 6: | Once the OITF accepts the incoming SIP NOTIFY, it shall
send an HTTP POST PENDING_IG request to the IG to acknowledge the
receipt of notification and issue a new pending HTTP request. The
content of the HTTP request shall be as follows:
| ||
Step 7: | The IG shall send the SIP 200 OK response to the network and then shall return to Step 5 to handle any subsequent NOTIFY received from the network. |
This procedure may be invoked at any time.
The OITF shall de-register the IPTV end user before invoking this procedure.
The procedure is essentially the same as the procedure for initiating a subscription to the Presence event, except that the X-OITF-Expires header in Table 88 shall be set to 0.
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI shall be set to the Public identity of the IPTV end user who has just registered | RFC 3261 [SIP] SUBSCRIBE <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT], OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES] |
X-OITF-Accept | RFC 3265 [SIP-EVNT], OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES] |
X-OITF-Contact Notes:
IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires Note: If absent a default value shall be assumed by the IG | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3265 [SIP-EVNT], OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The Request URI must match the contact URI included in the contact field of the SIP SUBSCRIBE | RFC 3261 [SIP] NOTIFY <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT], OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-Subscription-State | RFC 3265 [SIP-EVNT], OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3265 [SIP-EVNT], OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF-Contac | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
It is the responsibility of the application (in the OITF) initiating the subscription procedure to refresh the subscription according to the refresh subscription timer received in the response during the subscription process. Refreshing should be performed before the expiry of the refresh timer. A subscription that is not refreshed before the expiration of the refresh subscription timer shall be terminated by the network.
]The procedure for refreshing the subscription to the Presence event is the same as the procedure for subscribing to Presence.
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the publication process as per Table 92. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 3: | The IG shall send a SIP PUBLISH to the network. When the IG receives the response, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the publish request. The response shall include a list of SIP headers as per Table 93, in addition to the normal HTTP headers as per RFC 2616 [HTTP]. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the IMS Public User Identity of the IPTV end user who has just registered | RFC 3261 [SIP] PUBLISH <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Event | RFC 3265 [SIP-EVNT], OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Expires | RFC 3261 [SIP], RFC 3903 [RFC3903] |
X-OITF-SIP-If-Match | RFC 3903 [RFC3903] |
X-OITF-Content-Type | RFC 3261 [SIP] |
X-OITF-Content-Length | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-ETag | RFC 3261 [SIP], RFC 3903 [RFC3903] |
X-OITF-Expires | RFC 3261 [SIP] |
When the IPTV Presence service is active, the body of the PUBLISH request shall include the extended OMA presence schema compliant to section 5.1.6 of [TS183063] “Procedure for IPTV presence service”.
In the extended OMA presence XML document, each service is described by the “service-description” OMA parameter as specified in OMA-ERP-Presence_SIMPLE-V1_1-20080627-A [SMPL-PRES]. New “service-id” values are defined for IPTV with the following values:
When the user has an active IPTV Presence service, the <tuple> element pertaining to the active service shall contain the corresponding element as defined in the presence schema.
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory HNI-IGI headers for the process as per Table 94. The IG shall reject a request that is missing any mandatory HNI-IGI headers with a non-200 OK HTTP response, including the reason for rejection. The IG shall generate the SIP OPTIONS by mapping the X-OITF headers to the appropriate SIP header. | ||
Step 3: | The IG shall send a SIP OPTIONS to the network. The receiving OITF generates the response base on the black-white list. When the sender is in black list (means the sender has no right to query the receiving OITF’s capability), the receiving OITF must reject the request with a non-200 OK response, including the reason for rejection. When the sender is in white list (means the sender has right to query the receiving OITF’s capability), the receiving OITF must response the request with a 200 OK, including the information set of the receiving OITF which the sender has right to query. | ||
Step 4: |
When the IG receives the response, the IG shall
return a HTTP 200 OK response (or other appropriate responses) to the
OITF to report the response to the SIP OPTIONS. The content of the HTTP
Response shall be:
The response body includes the SDP offer generated by the OITF. SDP shall be used as specified in [TS124503]
]The 200 OK body includes the SDP generated by the OITF which is the recipient of the OPTIONS to indicate supports for Content Share service. SDP shall be used as specified in [TS124503]. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line The request URI shall be set to the Public identity of the IPTV target end user | RFC 3261 [SIP] PUBLISH <OPTIONS URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To must be set to the value of the request URI in the “X-OITF-Request-Line OPTIONS” header | RFC 3261 [SIP] |
X-OITF-Contact
Notes:
| RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Accept Accept: application/sdp | RFC 3261 [SIP], RFC 3903 [RFC3903] |
X-OITF-Accept-Contact shall be set to +g.3gpp.icsi-ref="urn%3Aurn-7%3A 3gpp-service.ims.icsi.mmtel " and +g.3gpp.iari-ref=" urn%3Aurn-7%3A 3gpp-application.ims.iari.gsma-vs". | [VIDEOSHARE] |
X-OITF-Content-Length Set to 0 | RFC 3261 [SIP] |
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
The request body includes the SDP offer generated by the OITF. SDP shall be used as specified in [TS124503].
| ||
Step 2: | The IG shall validate that the request includes all the mandatory HNI-IGI headers for the process as per Table 95. The IG shall reject a request that is missing any mandatory HNI-IGI headers with a non-200 OK HTTP response, including the reason for rejection. The IG shall generate the SIP INVITE by mapping the X-OITF headers to the appropriate SIP header. | ||
Step 3: | The IG shall send a SIP INVIE to the network. When the IG receives the response, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the SIP INVITE. The response includes a list of SIP headers as per Table 96 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | Upon receipt of a 200 OK response, the OITF shall send an HTTP PENDING_IG to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line The request URI shall be set to the IMPU of the subscriber with whom the session is requested. | RFC 3261 [SIP] INVITE <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To must be set to the value of the request URI in the “X-OITF-Request-Line INVITE” header | RFC 3261 [SIP] |
X-OITF-Contact
Notes:
| RFC 3261 [SIP] |
X-OITF-Accept-Contact shall be set to +g.3gpp.icsi-ref="urn%3Aurn-7%3A 3gpp-service.ims.icsi.mmtel " and +g.3gpp.iari-ref=" urn%3Aurn-7%3A 3gpp-application.ims.iari.gsma-vs". | [VIDEOSHARE] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 <response> |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP], RFC 3903 [RFC3903] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line The Request-URI in the ACK request shall be the contact included in the response to the INVITE message | RFC 3261 [SIP] ACK <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Contact The URI parameter must be included, and must match what has been inserted in the INVITE message. IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
X-OITF-Accept-Contact shall be set to +g.3gpp.icsi-ref="urn%3Aurn-7%3A 3gpp-service.ims.icsi.mmtel " and +g.3gpp.iari-ref=" urn%3Aurn-7%3A 3gpp-application.ims.iari.gsma-vs". | [VIDEOSHARE] |
To perform session modification during an ongoing Content Sharing session, the OITF shall generate a re-INVITE request as defined in Table 95. The OITF shall include a new SDP offer in the session modification request reflecting the purpose of the session modification request.
Examples of events that can lead to session modification include bandwidth changes, putting the ongoing session on hold, sharing of a new content by any peer, etc.
An OITF that wants to locate a target OITF for session transfer purposes shall perform the procedures described in section 5.4.6.1.4, “Procedure for Subscription to the Registration Event Package”.
Subsequently a target OITF can be selected from the returned information.
The following procedure shall be supported for the receiving OITF to select the appropriate OITF for consumption of the content.
A transferor shall initiate the request for a Content sharing session to transfer to an appropriate OITF. Upon successful transfer of the session, Content Sharing service will be streamed to the target device.
To initiate a session transfer request, the transferor OITF shall follow the following procedure:
Step 1: | As a pre-requisite it is
assumed that the transferor OITF user is receiving a Content sharing
session and has selected a target device (transferee OITF) for the
session. In this step the transferor OITF shall include the transferee identifier; IMS service identifier and SDP in the SIP REFER (as shown in step 2) message. | ||
Step 2: | The transferor OITF shall send an HTTP POST request for the session transfer to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)”. The content of the HTTP Request shall be as follows:
| ||
Step 3: | The IG shall validate that the request includes all the mandatory SIP headers as per Table 98 and send SIP REFER to the network, The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. | ||
Step 4: | The IG shall send a SIP REFER to the network, to setup the request and shall wait for the response. At some point in time, the IG shall return a HTTP 202 Accept response (or other appropriate responses) to the transferor OITF to report the received response from the transferee to the transfer request. The response shall include a list of SIP headers as per Table 47 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 5: | Following that, the transferor OITF shall send an HTTP HNI-IGI PENDING_IG request (refer to section 5.6.1.1, “HNI-IGI Message Types”), and shall wait for any response reporting the outcome of the session transfer procedure. | ||
Step 6: | At some point in time, the IG shall receive an incoming SIP NOTIFY from the remote OITF, reporting the outcome of the session transfer and which it shall forward to the transferor OITF in an HTTP 200 OK response. The HTTP response shall include the list of SIP headers as per Table 99 in addition to the normal HTTP headers. The body of the HTTP response shall include the SDP body received in the NOTIFY. | ||
Step 7: | The transferor OITF shall
return the SIP 200 OK response, acknowledging the SIP NOTIFY, to the
IG, in an HTTP POST PENDING_IG request. The content of the HTTP request shall be as follows:
|
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI shall be set to the identifier of the transferee (target OITF). | RFC 3261 [SIP] REFER <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To The URI part of X-OITF-To shall be set to the value of the Request URI in the “X-OITF-Request-Line” | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Refer-To
shall be set to the remote target URI included in the contact header field returned in the SIP 200 OK associated with initial session setup with the transferor and extended with the following URI headers fields:
| RFC 3261 [SIP] [RFC3515] [RFC3891] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The Request URI must match the contact URI included in the contact field of the SIP REFER | RFC 3261 [SIP] REFER <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Event | RFC 3515 [RFC3515] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-Subscription-State | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Length | RFC 3261 [SIP] |
Step 1: | It is assumed that the remote OITF has an HTTP PENDING_IG request. At some point in time, when a REFER request targeted for the transferee OITF is received by the IG, the IG shall return a HTTP 200 OK response to the OITF. The response shall include the list of SIP headers as per Table 98, in addition to the normal HTTP headers as per RFC 2616 [HTTP]. The body of the HTTP response shall include the XML structure as per section 5.3.13.2, “XML Schema for Session Transfer Information included in a session transfer request from the transferor to transferee”. | ||
Step 2: | The remote OITF shall examine the incoming REFER request including the security checking and IMS Content Sharing service identifying. In particular, the OITF shall extract the body header to use it to later construct its own SDP for the session transfer. If the OITF cannot successfully validate the extracted SDP, it shall reject the incoming request. If the OITF successfully validates the extracted SDP it should accept the incoming request. | ||
Step 3: | Once the remote OITF accepts the incoming SIP REFER, it shall send an HTTP POST PENDING_IG request to the IG. The content of the HTTP Request shall be as follows:
| ||
Step 4: | The remote OITF shall extract the following information from the incoming REFER request:
| ||
Step 5: | At some point in time, the remote OITF shall then construct an SDP that it can used to initiate a new session to the transferee OITF. The remote OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI)”. | ||
Step 6: | The IG shall validate that the request includes all the mandatory HNI-IGI headers. The IG shall reject a request that is missing any mandatory HNI-IGI headers with a non-200 OK HTTP response, including the reason for rejection. The IG shall generate the SIP INVITE by mapping the X-OITF headers to the appropriate SIP header as per Table 95, requesting set up a new session with transferee OITF. | ||
Step 7: | The IG shall send a SIP INVIE to the network. When the IG receives the response, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the OITF to report the response to the SIP INVITE. The response includes a list of SIP headers as per Table 96 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 8: | Upon receipt of a 200 OK response, the remote OITF shall send an HTTP PENDING_IG to acknowledge the final response. The content of the HTTP Request shall be as follows:
| ||
Step 9: | At some point in time, the IG shall receive an incoming SIP NOTIFY from the remote OITF, reporting the outcome of the session transfer and which it shall forward to the transferor OITF in an HTTP 200 OK response. The HTTP response shall include the list of SIP headers as per Table 99 in addition to the normal HTTP headers. The body of the HTTP response shall include the SDP body received in the NOTIFY. | ||
Step 10: | At some point in time, IG shall
receiving the SIP 200 OK response from the transferor OITF indicating
the acknowledgement of the SIP NOTIFY, in an HTTP POST PENDING_IG
request. The content of the HTTP request shall be as follows:
|
Step 1: | It is assumed that the transferee OITF has an HTTP PENDING_IG request. At some point in time, when a INVITE request targeted for the transferee OITF is received by the IG, the IG shall return a HTTP 200 OK response to the transferee OITF. The response shall include the list of SIP headers as per Table 95 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 2: | The transferee OITF shall examine the incoming INVITE request including the security checking and IMS Content Sharing service identifying. In particular, the transferee OITF shall extract the body header for the session transfer. If the OITF cannot successfully validate the extracted SDP, it shall reject the incoming request. If the OITF successfully validates the extracted SDP it should accept the incoming request. | ||
Step 3: | When the IG receives the response, the IG shall return a HTTP 200 OK response (or other appropriate responses) to the remote OITF to report the response to the SIP INVITE. The response includes a list of SIP headers as per Table 96 in addition to the normal HTTP headers as per RFC 2616 [HTTP]. | ||
Step 4: | Upon receipt of a 200 OK response, the remote OITF shall send an HTTP PENDING_IG to acknowledge the final response. The content of the HTTP Request shall be as follows:
|
Step 1: | The OITF shall send an HTTP POST request to the IG over the HNI-IGI interface, as described in section 5.6.1, “OITF-IG Interface (HNI-IGI).” The content of the HTTP Request shall be as follows:
| ||
Step 2: | The IG shall validate that the request includes all the mandatory SIP headers for the message as per Table 100. The IG shall reject a request that is missing any mandatory SIP headers with a non-200 OK HTTP response, including the reason for rejection. The IG shall generate the SIP BYE by mapping the X-OITF headers to the appropriate SIP headers. | ||
Step 3: | The IG shall send a HTTP 200 OK response to the OITF when the SIP 200 OK is received as a response to the content sharing session termination request. The SIP 200 OK headers are mapped as indicated in Table 101 in addition to the normal HTTP 200 OK headers. |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Request-Line Note: The request URI must be set to the contact return in the 200 OK for the invite. | RFC 3261 [SIP] BYE <Request URI> SIP/ 2.0 |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Contact | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
X-OITF-Length must be set to 0 | RFC 3261 [SIP] |
X-OITF HTTP Header | Source of Coding Information |
---|---|
X-OITF-Response-Line | RFC 3261 [SIP] SIP/2.0 200 OK |
X-OITF-From | RFC 3261 [SIP] |
X-OITF-To | RFC 3261 [SIP] |
X-OITF-Call-ID | RFC 3261 [SIP] |
X-OITF-CSeq | RFC 3261 [SIP] |
The HTTP protocol is used to exchange information between the IG and the OITF. The IG behaves as an HTTP server and the OITF behaves as an HTTP client. The OITF part may be implemented either in native code or in DAE applications.
There are several aspects of information on the HNI-IGI interface.
The general format of an HNI-IGI HTTP request is
HTTP POST <IG URI>/<HNI-IGI message type>
<HTTP headers>
<X-OITF extension headers> or <X-HNI-IGI extension headers>
Content-Type: <...>
Content-Length: <Number>
<Message body>
The general format of an HNI-IGI HTTP response is
HTTP/1.1 <HTTP response>
<HTTP headers>
<X-OITF extension headers> or <X-HNI-IGI extension headers>
Content-Type: <...>
Content-Length: <Number>
<Message body>
The following table lists the HNI-IGI message types
HNI-IGI message type | Meaning |
---|---|
PENDING_IG | The message is a pending HTTP request, that shall only be responded to by the IG when it needs to contact the OITF as a result of an incoming request from the network (e.g. an incoming MESSAGE) |
SIP | The message is an HNI-IGI message corresponding to a SIP message. The IG must translate this into a corresponding SIP message by adding and changing the relevant headers. |
AUX | The message is an HNI-IGI message that does not translate to a SIP message. The IG processes this message and responds accordingly. |
Messages over the HNI-IGI interface can be sent in both directions.
An example of SIP header that is mapped to an HTTP extension header is: “From: david@oiptv.org” that becomes “X-OITF-From:david@oiptv.org”
Note that only AUX HNI-IGI message types are used by the HNI-IGI SIP option (see section 5.6.1.6, “HNI-IGI Auxiliary Message”.)
When the IG receives an HNI-IGI message, it shall add or change all SIP headers that are not specific to the application (Tags, Call ID, via, request URI etc.) while translating from HTTP to SIP.
The following table lists header values for the HNI-IGI protocol that the IG and OITF shall support and lists the IG action on those headers.
HNI-IGI Header | Description | IG Action |
---|---|---|
X-OITF-Request-Line | This is a special header which contains the SIP method and request URI for the corresponding SIP message, when the SIP message is a request, e.g. X-OITF-Request-Line PUBLISH sip:david@oiptv.org SIP/2.0 | The IG shall map this field to the SIP request line. |
X-OITF-Response-Line | This is a special header which contains the response line of the corresponding SIP message, when the SIP message is a response, e.g. 200 OK | The IG shall map this field to construct the SIP response line. |
X-OITF-Call-ID | Keeps track of sessions and dialogs. | The IG shall use this field internally between an OITF and the IG to keep track of sessions. The IG replaces it with a value maintained in SIP state machine on the SIP side. |
X-OITF-Contact | Each method has its own use of the Contact field. | The IG shall map to the corresponding SIP header. The IG may add other parameters. |
X-OITF-CSeq | Used to keep track of requests and responses. | IG shall use this field internally between an OITF and the IG to keep track of requests and responses, and replace it with a value maintained by the IG on the SIP side. The IG shall include the same value in subsequent responses to the OITF. The OITF shall respond with an error code if the value is incorrect. |
X-OITF-From | The IG shall map to the corresponding SIP header. The IG may add information in sub-fields. | |
X-OITF-Event | The IG shall map to the corresponding SIP header. | |
X-OITF-Expires | The IG shall map to the corresponding SIP header. | |
X-OITF-To | The IG shall map to the corresponding SIP header. | |
X-OITF-Content-Type | The IG shall map to the corresponding SIP header, and shall match it with the actual body included in the HTTP request. | |
X-OITF-Content-Length | The IG shall verify the length of the message and insert the value in the SIP message. | |
X-HNI-IGI-Request | This header specifies the request type of the HNI-IGI message. | See appropriate sections. |
The above headers are not present in all HNI-IGI messages, and are not the only headers that can be present.
The OITF shall use an IMPU in X-OITF headers where an IMPU is required in the SIP header.
The OITF may include other headers that are application specific (e.g. X-OITF-Accept-Contact) in which case the IG shall include them transparently in the SIP method as long as they comply with the appropriate syntax for the header. Reference should be made to the various services using the HNI-IGI interface for a list of the headers that must be present.
When the IG translates a SIP message to an HNI-IGI HTTP message, it shall remove SIP Headers that should not be transmitted on the HNI-IGI interface, while translating from SIP to HTTP.
The following table lists header values in the SIP protocol that the IG and OITF shall support and the action the IG undertakes when mapping to the HNI-IGI protocol.
SIP Header | Description | IG Action |
---|---|---|
Request Line (first line of SIP request message) | The Request Line contains the method and a SIP URI. | The IG shall use this field to construct the X-OITF-Request-Line |
Response Line (first line of SIP response message) | The Response Line contains the response code and SIP version information. | The IG shall use this field to construct the X-OITF-Response-Line |
Call-ID | Keeps track of sessions and dialogs. | The IG shall replace this with value used between IG and OITF in the X-OITF-Call-ID. |
Contact | The IG shall map to the corresponding HNI-IGI header. | |
CSeq | The IG shall use this field to keep track of requests and responses on the HNI interface. The IG shall and replace it with a value maintained in the IG. The IG shall include the same value in subsequent responses to the OITF. The OITF shall respond with an error code if the value is smaller than the previous one. | |
From | The IG shall map to corresponding HNI-IGI header. The IG may add information in sub-fields. | |
Event | The IG shall map to the corresponding HNI-IGI header. | |
Expires | The IG shall map to the corresponding HNI-IGI header. | |
To | The IG shall map to the corresponding HNI-IGI header. | |
Content-Type | The IG shall map to the corresponding HNI-IGI header. | |
Content-Length | The IG shall verify the length of the message and insert value in the HNI-IGI message. |
The above headers may not be present in all HNI-IGI messages.
The IG shall map any other received SIP headers by adding X-OITF- to the specific SIP header. Reference should be made to the various services using the HNI-IGI interface for a list of the headers that must be present.
The IG handles the SIP state machines.
HNI-IGI PENDING_IG messages are sent by DAE and embedded applications in the OITF whenever these applications are ready to receive any incoming message from the network.
PENDING_IG messages may include a SIP Request or a SIP response. In this case, there is typically an ongoing SIP dialog between the OITF application and a peer SIP end-point in the IMS network.
HTTP headers included in a PENDING_IG message that includes a SIP request or a SIP response are the <X-OITF extension headers> that are pertinent to the application. The content of such a message shall be as follows:
HTTP Request Header: In includes the following:
|
HTTP Request Body: <SIP Message Body if applicable> |
PENDING_IG messages that don’t include a SIP request or a SIP response are typically sent by applications in the OITF that don’t have any ongoing communication with a SIP peer but are prepared to handle incoming requests for the IPTV user associated with any active application running in the OITF, or applications that have an ongoing SIP dialog with a SIP peer and are prepared to receive any SIP messages within that dialog. The content of PENDING_IG messages that don't include a SIP request or a SIP response shall be as follows:
HTTP Request Header: In includes the following:
|
HTTP Request Body: Empty |
Note that once the target OITF application accepts an incoming request, the Call-ID in the outgoing response shall be set to the value used by the IG in its request to the OITF.
The content of the HTTP response to either of the above requests shall be as follows:
HTTP Response Header: In includes the following:
|
HTTP Response Body: <Appropriate Message Body if applicable> |
HNI-IGI PENDING _IG messages shall have to be refreshed periodically by the OITF. The refresh time shall be maintained in the IG and shall not exceed a SIP Session Expiry timer, or a SIP subscription Refresh timer for the SIP session under consideration.
To enable an OITF to refresh an HNI-IGI PENDING_IG request, the IG shall, upon timer expiry, send an HTTP 200 OK response that does not include any X-OITF-<Extension headers>.
Upon receipt of such a response, the OITF may decide to resend a new HNI-IGI PENDING_IG request or simply gracefully terminate the session.
The IG considers an HNI-IGI PENDING_IG Request cancelled should it encounter one of the following events:
For the last 2 cases, the IG shall send an HTTP 200 OK response that does not include any X-OITF-<Extension-headers> as a response to the PENDING-IG request. OPTIONALly, the IG may empty its internal buffers that may include in-transit messages destined for the applications.
HNI-IGI SIP messages are sent by DAE and embedded applications in the OITF whenever these applications are ready to send a SIP Request or a SIP response. The content of such a message shall be as follows:
HTTP Request Header: In includes the following:
|
HTTP Request Body: <SIP Message Body if applicable> |
The content of the HTTP response shall be as follows:
HTTP Response Header: In includes the following:
|
HTTP Response Body: <SIP Message Body if applicable> |
HNI-IGI auxiliary messages are sent by DAE and embedded applications in the OITF whenever these applications are ready to send messages that are neither SIP type nor PENDING_IG type (for example fetching GBA credentials).
The content of such a message shall be as follows:
HTTP Request Header: In includes the following:
|
HTTP Request Body: <Application Message Body if applicable> |
The content of the HTTP response shall be as follows:
HTTP Response Header: In includes the following:
|
HTTP Response Body: <Application Message Body if applicable> |
Note that only one auxiliary message, GBA-Registration, applies to both the HTTP and SIP options. All other auxiliary messages apply only to HTTP option.
This section lists some guidelines that apply to DAE application and OITF applications that use the HNI-IGI interface. Both types of application are referred to as Application here:
This section covers the handling in the IG for encountered error-cases:
In order to cater to the scenario of transient TCP link disconnects, and to allow incoming messages that are received by the IG during the time it takes the OITF to re-establish a TCP link following a disconnection, it is recommended that the IG waits no more than 1 second before it responds to the network with a 487 or a 481 error message.
If the IG does not have access to the DHCP information exchanged between the OITF and the WANGW, refer to section 5.4.6, “User Registration and Network Authentication” in case the OITF undergoes a restart.
For a transition period following an IG restart, active SIP sessions in the network (that will eventually timeout and be cleared) that are no longer active in the IG, will continue to send SIP messages to the IG, to which the IG shall respond with error message 481 Call Leg/Transaction Does Not Exist.
The reference points specified here are introduced in [OIPF_ARCH2].
This section describes the reference points NPI-45 and NPI-46 between CoD or Scheduled Content Encryption Functions and Key Management Function. Encryption Functions call this interface when managing keys and DRM signaling for CoD and unicast Scheduled Content. For the case of multicast Scheduled Content the appropriate interface is the ECMG ⇔ SCS interface defined in [DVB-SC].
The interface described in this section is exposed by the Key Management Function which is in charge of:
These interfaces apply in particular when content is used in a multi-DRM mode where the content is encrypted once and the corresponding keys are shared by all the DRM. Signaling specific to every DRM may be inserted in the content.
This interface specification is also applicable to the reference points NPI-CSPT3 and NPI-CSPG3. In this case the interface described in this section is exposed by the CSP-T Server or CSP-G Server, which are in charge of:
The interface is implemented as a WEB service. The associated Classification Scheme is provided in section 5.7.2.
Each reference point identifies a calling entity and a called entity:
Reference Point | Calling entity | Called entity |
---|---|---|
NPI-45 | CoD Encryption Function | Key Management Function |
NPI-46 | Scheduled Content Encryption Function | Key Management Function |
NPI-CSPT3 | Key Management Function | CSP-T Server |
NPI-CSPG3 | Key Management Function | CSP-G Server |
Three operations are defined. They are intended to be used according to the role of the functional entities as shown through Table 106.
Key rotation handled by: | Called Entity | Calling Entity | |
---|---|---|---|
Key generation handled by: | Called Entity | getKeyScheduleSignaling | setScheduleAndGetKeySignaling |
Calling Entity | This case is not supported. | setKeyScheduleAndGetSignaling |
Operation Name | Description | |
---|---|---|
getKeyScheduleSignaling | Operation name | |
Field Name | Field Type | Description |
GetKeyScheduleSignalingRequest | GetKeyScheduleSignalingRequestType | Input parameter |
GetKeyScheduleSignalingResponse | GetKeyScheduleSignalingResponseType | Output parameter |
Hereunder is the XML schema of the GetKeyScheduleSignalingRequest message:
Field name | Field type | Multiplicity | Description | Reference |
---|---|---|---|---|
contentId | xs:string | 1 | Identifier
for a content, a content being either a scheduled content service, an
event on a scheduled content service (i.e. with access criteria specific
to the event) or a CoD asset. It is provided by the Scheduling Function (for Scheduled content) or the Content Management Function (for CoD). | |
encryptionProfile | EncryptionProfileType | 1 | Set of properties for the management of the content key and the signaling. | 5.7.1.2.5.6 |
drmInfo | DrmInfoType | 0..N | Information for addressed DRM systems. This allows the calling entity to provide a set of DRM systems for which the drmSignaling shall be provided. An empty list means that the called entity manages a DRM list from its own configuration. | 5.7.1.2.5.2 |
pregenerationWindow | PregenerationWindowType | 1 | The time information for the Key Management Function to know the period it is expected to generate keys for. | 5.7.1.2.5.8 |
Hereunder is the XML schema of the GetKeyScheduleSignalingResponse message:
Field name | Field type | Multiplicity | Description | Reference |
---|---|---|---|---|
status | StatusType | 1 | The global status of the request. | 5.7.1.2.4.2 |
errorCode | xs:unsignedInt | 0..1 | The code of the error in case the status is not OK. Values are specific to the implementation of the called entity. It is omitted in case the request succeeds. | |
errorMessage | xs:string | 0..1 | Any additional information related to the status in case of errors. It is omitted in case the request succeeds. | |
timeReference | TimeReferenceType | 0..N | The dates and times for which keys have been generated. It is omitted in case the request failed. | 5.7.1.2.5.12 |
contentKey | ContentKeyType | 0..1 | The content key to be used to protect the content. It is omitted in case the request failed. | 5.7.1.2.5.1 |
drmSignaling | DrmSignalingType | 0..N | The
signaling information according to every provided streaming mode. This
information allows the CSP client to find the key materials required to
decrypt a given content, either locally when the key has already been
retrieved or remotely when requested for the first time. Each DRM will provide signaling information for a given [content/content key] pair, such as URL of the CSP server or DRM. The DRM information is DRM specific. It is omitted in case the request failed. | 5.7.1.2.5.4 |
The called entity generates the keys based on its schedule and provides:
One drmSignaling element is provided for every provided streamingMode. For each streamingMode either a dashSignaling or a privateSignaling element is provided for every addressed DRM. This element holds the drmSystemId and the signaling information (defined by the encryptionProfile). For DASH and CENC, either a manifestHeader (XML fragment) or a PSSH box data or both can be provided. The manifestHeader is to be inserted in the MPD, the psshBox is to be inserted in the content.
In case an error occurs, then no contentKey, no timeReference, and no drmSignaling elements will be provided.
Operation Name | Description | |
---|---|---|
setScheduleAndGetKeySignaling | Operation name | |
Field Name | Field Type | Description |
SetScheduleAndGetKeySignalingRequest | SetScheduleAndGetKeySignalingRequestType | Input parameter |
SetScheduleAndGetKeySignalingResponse | SetScheduleAndGetKeySignalingResponseType | Output parameter |
Field name | Field type | Multiplicity | Description | Reference |
---|---|---|---|---|
encryptionProfile | EncryptionProfileType | 1 | Set of properties for the management of the content key and the signaling. | 5.7.1.2.5.6 |
drmInfo | DrmInfoType | 0..N | Information for addressed DRM systems. This allows the calling entity to provide a set of DRM systems for which the drmSignaling shall be provided. An empty list means that the called entity manages a DRM list from its own configuration. | 5.7.1.2.5.2 |
schedule | ScheduleType | 1..N | The times provided by the Encryption Function for which the Key Management Function has to generate keys. | 5.7.1.2.5.11 |
Field name | Field type | Multiplicity | Description | Reference |
---|---|---|---|---|
status | StatusType | 1 | The global status of the request. | 5.7.1.2.4.2 |
errorCode | xs:unsignedInt | 0..1 | The code of the error in case the status is not OK. Values are specific to the implementation of the called entity. It is omitted in case the request succeeds. | |
errorMessage | xs:string | 0..1 | Any additional information related to the status in case of errors. It is omitted in case the request succeeds. | |
contentKey | ContentKeyType | 0..1 | The content key to be used to protect the content. It is omitted in case the request failed. | 5.7.1.2.5.1 |
drmSignaling | DrmSignalingType | 0..N | The
signaling information according to every provided streaming mode. This
information allows the CSP client to find the key materials required to
decrypt a given content, either locally when the key has already been
retrieved or remotely when requested for the first time. Each DRM will provide signaling information for a given [content/content key] pair, such as URL of the CSP server or DRM. The DRM information is DRM specific. It is omitted in case the request failed. | 5.7.1.2.5.4 |
keyIdSchedule | KeyIdScheduleType | 0..N | The dates and times for which keys have been generated, and the keyId of these keys. It is omitted in case the request failed. | 5.7.1.2.5.7 |
The called entity generates new keys based on the times provided by the calling entity and provides:
One drmSignaling element is provided for every provided streamingMode. For each streamingMode either a dashSignaling or a privateSignaling element is provided for every addressed DRM. This element holds the drmSystemId and the signaling information (defined by the encryptionProfile). For DASH and CENC, either a manifestHeader (XML fragment) or a PSSH box data or both can be provided. The manifestHeader is to be inserted in the MPD, the psshBox is to be inserted in the content.
In case an error occurs, then no contentKey, no keyIdSchedule, and no drmSignaling elements will be provided.
Operation Name | Description | |
---|---|---|
setKeyScheduleAndGetSignaling | Operation name | |
Field Name | Field Type | Description |
SetKeyScheduleAndGetSignalingRequest | SetKeyScheduleAndGetSignalingRequestType | Input parameter |
SetKeyScheduleAndGetSignalingResponse | SetKeyScheduleAndGetSignalingResponseType | Output parameter |
Field name | Field type | Multiplicity | Description | Reference |
---|---|---|---|---|
encryptionProfile | EncryptionProfileType | 1 | Set of properties for the management of the content key and the signaling. | 5.7.1.2.5.6 |
drmInfo | DrmInfoType | 0..N | Information for addressed DRM systems. This allows the calling entity to provide a set of DRM systems for which the drmSignaling shall be provided. An empty list means that the called entity manages a DRM list from its own configuration. | 5.7.1.2.5.2 |
scheduledKey | ScheduledKeyType | 1..N | The keys provided by the Encryption Function. | 5.7.1.2.5.10 |
Field name | Field type | Multiplicity | Description | Reference |
---|---|---|---|---|
status | StatusType | 1 | The global status of the request. | 5.7.1.2.4.2 |
errorCode | xs:unsignedInt | 0..1 | The code of the error in case the status is not OK. Values are specific to the implementation of the called entity. It is omitted in case the request succeeds. | |
errorMessage | xs:string | 0..1 | Any additional information related to the status in case of errors. It is omitted in case the request succeeds. | |
drmSignaling | DrmSignalingType | 0..N | The
signaling information according to every provided streaming mode. This
information allows the CSP client to find the key materials required to
decrypt a given content, either locally when the key has already been
retrieved or remotely when requested for the first time. Each DRM will provide signaling information for a given [content/content key] pair, such as URL of the CSP server or DRM. The DRM information is DRM specific. It is omitted in case the request failed. | 5.7.1.2.5.4 |
The calling entity provides both the keys and the times to use them. The called entity stores them and provides the signaling (i.e. list of drmSignaling elements) to be inserted by the Encryption Function when using the current key (i.e. scheduleKey element with isCurrentKey set to true).
One drmSignaling element is provided for every provided streamingMode. For each streamingMode either a dashSignaling or a privateSignaling element is provided for every addressed DRM. This element holds the drmSystemId and the signaling information (defined by the encryptionProfile). For DASH and CENC, either a manifestHeader (XML fragment) or a PSSH box data or both can be provided. The manifestHeader is to be inserted in the MPD, the psshBox is to be inserted in the content.
In case an error occurs, then no drmSignaling element will be provided.
This type is used for identifiers that need to be unique in time and space; it refers to [RFC4122].
Its main advantage is to not depend on centralized data storage.
Base type | Pattern Restriction |
---|---|
xs:token | [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12} |
Base type | Enumeration | Description |
---|---|---|
xs:token | OK | The request succeeded. |
ERROR | An occurred at server level. The type of error is provided by the errorCode in the response. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
keyId | UUIDType (see 5.7.1.2.4.1) | 1 | The unique identifier of the content key, provided as a normalized UUID. |
key | xs:base64binary | 1 | The content key used to encrypt content (or part of content in the case of key changes). |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
drmSystemId | xs:anyURI | 1 | The unique identifier of the DRM system, typically a DVB URI or an UUID URI. |
drmName | xs:token | 0..1 | The informative readable name for the DRM system. |
drmMetadata | DrmMetadataType (see 5.7.1.2.5.3) | 0..N | The DRM specific metadata embedding the content related metadata. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
contentMetadata | xs:base64binary | 1 | The content related part of the drmMetadata. |
contentId | xs:string | 1 | Content associated with the metadata. |
Either one of DASH or HAS field will be provided for a given DRM system.
Field name | Field type | Multiplicity | Description |
---|---|---|---|
streamingMode | xs:token | 1 | Provides the way the content is streamed for the actual drmSignaling element:
|
dashSignaling | DashSignalingType (see 5.7.1.2.5.5) | 0..N | DASH signaling as a MPD content protection XML section and/or a PSSH box data. |
privateSignaling | PrivateSignalingType (see 5.7.1.2.5.9) | 0..N | Other signaling, e.g. OIPF HAS. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
drmSystemid | xs:anyURI | 1 | The DRM system id for which the below signaling information applies, typically a DVB URI or an UUID URI. |
drmName | xs:token | 0..1 | Optional readable name of the DRM system. |
manifestHeader | xs:string | 0..1 | The content protection section to be inserted in the MPD. |
psshBox | xs:base64binary | 0..1 | Pssh signaling information. DRM specific full pssh box binary block. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
distributionMode | xs:token | 0..1 | Either VOD or LIVE, informative:
|
streamingMode | xs:token | 0..N | Provides the way or ways the content is streamed, helps building the signaling:
|
encryptionMode | xs:token | 0..1 | Encryption method indicator:
|
Field name | Field type | Multiplicity | Description |
---|---|---|---|
timeReference | TimeReferenceType (see 5.7.1.2.5.12) | 1 | The date and time for which a key has been generated. |
keyId | UUIDType (see 5.7.1.2.4.1) | 1 | The unique identifier of the generated key, provided as a normalized UUID. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
timeReference | TimeReferenceType (see 5.7.1.2.5.12) | 1 | The date and time at which the requested key and drmSignaling shall apply. |
windowDuration_s | xs:unsignedInt | 0..1 | The width of the time window for which the called entity has to generate keys. If it is not provided then a default value from the system configuration is assumed. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
drmSystemid | xs:anyURI | 1 | The DRM system id for which the below signaling information applies, typically a DVB URI or an UUID URI. |
drmName | xs:token | 0..1 | Optional readable name of the DRM system. |
privateData | xs:any | 0..N | Proprietary data block. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
contentId | xs:string | 1 | Identifier
for content, a content being either a scheduled content service, an
event on a scheduled content service (i.e. with access criteria specific
to the event) or a CoD asset. It is provided by the Scheduling Function (for Scheduled content) or the Content Management Function (for CoD). |
isCurrentKey | xs:boolean | 1 | Flag to indicate that the requested drmSignaling applies to the period starting according to timeReference. Within a list of elements of type ScheduledKeyType, one and only one occurrence shall have this flag set to true. |
timeReference | TimeReferenceType (see 5.7.1.2.5.12) | 1 | The time at which the key will start being used. |
contentKey | ContentKeyType (see 5.7.1.2.5.1) | 1 | Content key value and identifier. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
contentId | xs:string | 1 | Identifier
for content, a content being either a scheduled content service, an
event on a scheduled content service (i.e. with access criteria specific
to the event) or a CoD asset. It is provided by the Scheduling Function (for Scheduled content) or the Content Management Function (for CoD). |
isCurrentKey | xs:boolean | 1 | Flag to indicate that the requested drmSignaling applies to the period starting according to timeReference. Within a list of elements of type ScheduleType, one and only one occurrence shall have this flag set to true. |
timeReference | TimeReferenceType (see 5.7.1.2.5.12) | 1 | The date and time at which the requested key and drmSignaling shall apply. |
keyId | UUIDType (see 5.7.1.2.4.1) | 0..1 | Optionally, the unique identifier of an already generated content key to be reused at the time specified, provided as a normalized UUID. If not provided, the called entity decides which key to use based on its schedule and generated keys. |
Field name | Field type | Multiplicity | Description |
---|---|---|---|
startTime | xs:dateTime | 0..1 | For scheduled content, the date and time is an absolute value. |
offset_ms | xs:unsignedInt | 0..1 | For CoD, the time is relative to the beginning of the content. It is in milliseconds. |
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:oipf:iptv:KeyAndSignaling:2013" targetNamespace="urn:oipf:iptv:KeyAndSignaling:2013" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:simpleType name="StatusType"> <xs:restriction base="xs:token"> <xs:enumeration value="OK"/> <xs:enumeration value="ERROR"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="UUIDType"> <xs:restriction base="xs:token"> <xs:pattern value= "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}"/> </xs:restriction> </xs:simpleType> <xs:complexType name="ContentKeyType"> <xs:sequence> <xs:element name="keyId" type="tns:UUIDType"/> <xs:element name="key" type="xs:base64Binary"/> </xs:sequence> </xs:complexType> <xs:complexType name="DrmType"> <xs:sequence> <xs:element name="drmSystemId" type="xs:anyURI"/> <xs:element name="drmName" type="tns:DrmNameType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="DrmSignalingType"> <xs:sequence> <xs:element name="streamingMode" type="xs:token"/> <xs:choice> <xs:element name="dashSignaling" type="tns:DashSignalingType" maxOccurs="unbounded"/> <xs:element name="privateSignaling" type="tns:PrivateSignalingType" maxOccurs="unbounded"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:complexType name="EncryptionProfileType"> <xs:sequence> <xs:element name="distributionMode" type="xs:token" minOccurs="0"/> <xs:element name="streamingMode" type="xs:token" maxOccurs="unbounded"/> <xs:element name="encryptionMode" type="xs:token" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="DashSignalingType"> <xs:complexContent> <xs:extension base="tns:DrmType"> <xs:sequence> <xs:element name="manifestHeader" type="xs:string" minOccurs="0"/> <xs:element name="psshBox" type="xs:base64Binary" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="DrmInfoType"> <xs:complexContent> <xs:extension base="tns:DrmType"> <xs:sequence> <xs:element name="drmMetadata" type="tns:DrmMetadataType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:simpleType name="ContentIdType"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:complexType name="PrivateSignalingType"> <xs:complexContent> <xs:extension base="tns:DrmType"> <xs:sequence> <xs:element name="privateData"> <xs:complexType> <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:simpleType name="DrmNameType"> <xs:restriction base="xs:token"/> </xs:simpleType> <xs:complexType name="DrmMetadataType"> <xs:sequence> <xs:element name="contentMetadata" type="xs:base64Binary"/> <xs:element name="contentId" type="tns:ContentIdType"/> </xs:sequence> </xs:complexType> <xs:complexType name="ScheduledKeyType"> <xs:sequence> <xs:element name="contentId" type="tns:ContentIdType"/> <xs:element name="timeReference" type="tns:TimeReferenceType"/> <xs:element name="contentKey" type="tns:ContentKeyType"/> <xs:element name="isCurrentKey" type="xs:boolean"/> </xs:sequence> </xs:complexType> <xs:complexType name="GetKeyScheduleSignalingRequestType"> <xs:sequence> <xs:element name="contentId" type="tns:ContentIdType"/> <xs:element name="encryptionProfile" type="tns:EncryptionProfileType"/> <xs:element name="drmInfo" type="tns:DrmInfoType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="pregenerationWindow" type="tns:PregenerationWindowType"/> </xs:sequence> </xs:complexType> <xs:complexType name="SetKeyScheduleAndGetSignalingRequestType"> <xs:sequence> <xs:element name="scheduledKey" type="tns:ScheduledKeyType" maxOccurs="unbounded"/> <xs:element name="encryptionProfile" type="tns:EncryptionProfileType"/> <xs:element name="drmInfo" type="tns:DrmInfoType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="SetScheduleAndGetKeySignalingRequestType"> <xs:sequence> <xs:element name="schedule" type="tns:ScheduleType" maxOccurs="unbounded"/> <xs:element name="encryptionProfile" type="tns:EncryptionProfileType"/> <xs:element name="drmInfo" type="tns:DrmInfoType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="TimeReferenceType"> <xs:choice> <xs:element name="startTime" type="xs:dateTime"/> <xs:element name="offset_ms" type="xs:unsignedInt"/> </xs:choice> </xs:complexType> <xs:complexType name="ScheduleType"> <xs:sequence> <xs:element name="contentId" type="tns:ContentIdType"/> <xs:element name="isCurrentKey" type="xs:boolean"/> <xs:element name="timeReference" type="tns:TimeReferenceType"/> <xs:element name="keyId" type="tns:UUIDType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="SetKeyScheduleAndGetSignalingResponseType"> <xs:sequence> <xs:element name="status" type="tns:StatusType"/> <xs:element name="errorCode" type="xs:unsignedInt" minOccurs="0"/> <xs:element name="errorMessage" type="xs:string" minOccurs="0"/> <xs:element name="drmSignaling" type="tns:DrmSignalingType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="SetScheduleAndGetKeySignalingResponseType"> <xs:sequence> <xs:element name="status" type="tns:StatusType"/> <xs:element name="errorCode" type="xs:unsignedInt" minOccurs="0"/> <xs:element name="errorMessage" type="xs:string" minOccurs="0"/> <xs:element name="drmSignaling" type="tns:DrmSignalingType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="contentKey" type="tns:ContentKeyType" minOccurs="0"/> <xs:element name="keyIdSchedule" type="tns:KeyIdScheduleType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="GetKeyScheduleSignalingResponseType"> <xs:sequence> <xs:element name="status" type="tns:StatusType"/> <xs:element name="errorCode" type="xs:unsignedInt" minOccurs="0"/> <xs:element name="errorMessage" type="xs:string" minOccurs="0"/> <xs:element name="drmSignaling" type="tns:DrmSignalingType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="contentKey" type="tns:ContentKeyType" minOccurs="0"/> <xs:element name="timeReference" type="tns:TimeReferenceType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="KeyIdScheduleType"> <xs:sequence> <xs:element name="timeReference" type="tns:TimeReferenceType"/> <xs:element name="keyId" type="tns:UUIDType"/> </xs:sequence> </xs:complexType> <xs:complexType name="PregenerationWindowType"> <xs:sequence> <xs:element name="timeReference" type="tns:TimeReferenceType"/> <xs:element name="windowDuration_s" type="xs:unsignedInt" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:element name="GetKeyScheduleSignalingRequest" type="tns:GetKeyScheduleSignalingRequestType"/> <xs:element name="SetKeyScheduleAndGetSignalingRequest" type="tns:SetKeyScheduleAndGetSignalingRequestType"/> <xs:element name="SetScheduleAndGetKeySignalingRequest" type="tns:SetScheduleAndGetKeySignalingRequestType"/> <xs:element name="SetKeyScheduleAndGetSignalingResponse" type="tns:SetKeyScheduleAndGetSignalingResponseType"/> <xs:element name="SetScheduleAndGetKeySignalingResponse" type="tns:SetScheduleAndGetKeySignalingResponseType"/> <xs:element name="GetKeyScheduleSignalingResponse" type="tns:GetKeyScheduleSignalingResponseType"/> </xs:schema>
The following WEB Service is introduced according to the protocols defined in section 5.7.1.2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <wsdl:definitions name="IKeyAndSignaling" targetNamespace="urn:oipf:iptv:KeyAndSignaling:2013" xmlns:tns="urn:oipf:iptv:KeyAndSignaling:2013" xmlns:defs="urn:oipf:iptv:KeyAndSignaling:2013" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <wsdl:import namespace="urn:oipf:iptv:KeyAndSignaling:2013" location="KeyAndSignaling.wsdl" /> <wsdl:binding name="KeyAndSignalingSoapBinding" type="defs:KeyAndSignalingPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getKeyScheduleSignaling"> <soap:operation soapAction="ws-keyAndSignaling"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="setKeyScheduleAndGetSignaling"> <soap:operation soapAction="ws-keyAndSignaling"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="setScheduleAndGetKeySignaling"> <soap:operation soapAction="ws-keyAndSignaling"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="KeyAndSignalingService"> <wsdl:port name="KeyAndSignalingSoapPort" binding="tns:KeyAndSignalingSoapBinding"> <soap:address location="ws-keyAndSignaling" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <wsdl:definitions name="KeyAndSignaling" targetNamespace="urn:oipf:iptv:KeyAndSignaling:2013" xmlns:tns="urn:oipf:iptv:KeyAndSignaling:2013" xmlns:kas="urn:oipf:iptv:KeyAndSignaling:2013" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xs:schema > <xs:import namespace="urn:oipf:iptv:KeyAndSignaling:2013" schemaLocation="iptv-KeyAndSignaling.xsd"/> </xs:schema> </wsdl:types> <wsdl:message name="GetKeyScheduleSignalingRequest"> <wsdl:part name="body" element="kas:GetKeyScheduleSignalingRequest"/> </wsdl:message> <wsdl:message name="GetKeyScheduleSignalingResponse"> <wsdl:part name="body" element="kas:GetKeyScheduleSignalingResponse"/> </wsdl:message> <wsdl:message name="SetKeyScheduleAndGetSignalingRequest"> <wsdl:part name="body" element="kas:SetKeyScheduleAndGetSignalingRequest"/> </wsdl:message> <wsdl:message name="SetKeyScheduleAndGetSignalingResponse"> <wsdl:part name="body" element="kas:SetKeyScheduleAndGetSignalingResponse"/> </wsdl:message> <wsdl:message name="SetScheduleAndGetKeySignalingRequest"> <wsdl:part name="body" element="kas:SetScheduleAndGetKeySignalingRequest"/> </wsdl:message> <wsdl:message name="SetScheduleAndGetKeySignalingResponse"> <wsdl:part name="body" element="kas:SetScheduleAndGetKeySignalingResponse"/> </wsdl:message> <wsdl:portType name="KeyAndSignalingPortType"> <wsdl:operation name="getKeyScheduleSignaling"> <wsdl:input message="tns:GetKeyScheduleSignalingRequest" name="GetKeyScheduleSignalingInput"/> <wsdl:output message="tns:GetKeyScheduleSignalingResponse" name="GetKeyScheduleSignalingOutput"/> </wsdl:operation> <wsdl:operation name="setKeyScheduleAndGetSignaling"> <wsdl:input message="tns:SetKeyScheduleAndGetSignalingRequest" name="SetKeyScheduleAndGetSignalingInput"/> <wsdl:output message="tns:SetKeyScheduleAndGetSignalingResponse" name="SetKeyScheduleAndGetSignalingOutput"/> </wsdl:operation> <wsdl:operation name="setScheduleAndGetKeySignaling"> <wsdl:input message="tns:SetScheduleAndGetKeySignalingRequest" name="SetScheduleAndGetKeySignalingInput"/> <wsdl:output message="tns:SetScheduleAndGetKeySignalingResponse" name="SetScheduleAndGetKeySignalingOutput"/> </wsdl:operation> </wsdl:portType> </wsdl:definitions>
Within the architecture there are several interfaces that support the SIP/SDP protocol. They can be functionally grouped as follows:
The next sections discuss these interfaces in more detail. The specification is structured in 2 sub-sections; one sub section covers the SIP/SDP interface in the residential LAN (bullet 1 above), while the other sub-section covers the SIP/SDP interfaces within the managed network relying on SIP (last 3 bullets above). Within each sub-section, the interface details are specified on a per service basis.
This section defines the protocol for the use of SIP and SIP/SDP within managed networks relying on IMS over the following reference points:
The usage of SIP/SDP for all reference points apart from UNIS-8 is applicable to both the SIP option and the HTTP option for the HNI-IGI interface.
The usage of SIP/SDP for the UNIS-8 interface is described in section 6.2.
For all incoming SIP requests to the IG, that are standalone or dialog initiating the IG shall compare the information in the Accept-Contact header in the incoming SIP request, if available, against stored feature tags for the user to select the appropriate OITF device.
The IG shall support the procedures specified in [TS124503] for originating and terminating sessions.
When a request to send SIP OPTIONS is received from the OITF, the IG shall use the mapping specified in section 5.3.1.1.2, “Retrieval of bandwidth parameter for FCC and/or RET enabled multicast content service”.
When the final response to the SIP OPTIONS message is received from the network as a SIP 200 OK including the SDP, the IG shall forward this information to the OITF.
The information required in the returned SDP to complete the missing parameters in the SDP offer is:
Upon receiving a request from the OITF for the initiation of a multicast content service session (see section 5.3.1.1.1, “Retrieval of bandwidth parameter for FCC and/or RET enabled multicast content service”), the IG shall generate an initial INVITE request as specified in [TS124503] for originating sessions.
The IG shall forward any received SIP response to the OITF including the information in the SDP.
If the IG receives a 488 error code with warning 370 Insufficient Bandwidth, the IG shall send an error message to the OITF.
Session modification procedure is handled by the IG in the same way as a session initiation. See section 5.3.1.1.3, “Session Modification.”
On receiving a request from the OITF for the termination of a multicast content service session (see section 5.3.1.1.4, “Session Termination”), the IG shall generate a BYE request as specified in [TS124503] for originating sessions.
Alternatively, on receipt of a BYE request from the IPTV Control FE, the IG shall forward the request to the OITF as a response to a PENDING_IG request (see section 5.6.1, “OITF-IG Interface (HNI-IGI)”). The behaviour of the UNIS-8 part of the IG shall comply with the procedure specified in [TS124503] for terminating UA.
Upon receiving a request from the OITF for reporting the watched content for a multicast content service session (see section 5.3.1.1.6.1, “Content Reporting by the OITF”), the IG shall generate a SIP INFO including the Content Reporting Info Package [INFO-PKG].
The IG shall forward any received SIP response to the OITF.
Upon receipt of a SIP UPDATE by the IG with an empty Recv-Info header or the unwillingness to receive the Content Reporting Info Package from the IPTV Control FEIPTV Control FE, to stop reporting watched content, the IG shall forward the SIP UPDATE to the OITF in an HTTP 200 OK response. The IG shall wait for the response from the OITF to forward it to the IPTV Control FEIPTV Control FE.
Upon receipt of a SIP UPDATE, including the Recv-Info header set to Content Reporting Info Package, by the IG from the IPTV Control FE, to start reporting watched content, the IG shall forward the SIP UPDATE to the OITF in an HTTP 200 OK response. The IG shall wait for the response from the OITF to forward it to the IPTV Control FE.
The following procedure is supported in the IG on UNIS-8 in support of user initiated Activation/de-activation of multicast content service time shift:
The IG shall generate SIP ACK when requested by the OITF.
The SIP OPTIONS message shall conform to [TS124503] and shall be forwarded through the ASM, to the IPTV Control FE. If the Request URI in the incoming SIP OPTIONS request is set to the PSI for the multicast content service, the IPTV Control FE shall after validating the SIP OPTIONS perform the following:
The IPTV Control FE shall support the procedures specified in [TS183063] section 5.3.1.1.
The IPTV Control FE shall support the procedures specified in [TS124503] that are applicable to an AS acting as a terminating SIP UA.
Upon receipt of a SIP INVITE request, the IPTV Control FE shall examine the request-URI to determine that it is a multicast content service session initiation request. The IPTV Control FE shall use the IPTV Subscription Profile to check the service rights for the requested broadcast service packages and multicast addresses. The IPTV Control FE shall examine the SDP offer parameters, as defined in [TS183063] section 5.3.1.1.
If the SDP parameters are validated successfully, the IPTV Control FE shall respond as defined in [TS183063] section 5.3.1.1.
If the SDP also contains m lines for Network Generated Notification stream, the IPTV Control FE shall further check the service rights for the requested notification service, using the IPTV Subscription.
If no bc_service_package attributes are included in the SDP offer, the IPTV Control FE shall include in the SDP answer one or more a=bc_service_package attributes, except if it knows that the RACS is or shall be pre provisioned with the list of subscribed channels and if all the subscribed channels are allowed for the session. In this case, the inclusion of a=bc_service_package is optional.
The service packages shall be populated according to the IPTV Subscription Profile to indicate the service packages and scheduled content services.
The IPTV Control FE shall support the procedures specified in [TS183063] section 5.3.1.2. Network initiated session modification does not apply.
The IPTV Control FE shall support the procedures specified in [TS183063] section 5.3.1.4.
Upon receipt of SIP INFO including the Info Package Content Reporting for reporting the watched content for a multicast content service session, the IPTV Control FE shall examine the body.
If the body is successfully validated as compliant to Annex D of [PSS-MBMS], then the IPTV Control FE shall respond to the request with a SIP 200 OK, otherwise an appropriate error message shall be returned.
If the IPTV Control FE desires to instruct the OITF to stop reporting watched content, it shall send a SIP UPDATE to the IG and where the Recv-Info header is set to remove support for the reception of the Content Reporting Info Package and shall wait for the response.
If the IPTV Control FE desires to instruct the OITF to start reporting watched content, it shall send a SIP UPDATE to the IG and where the Recv-Info header is set to indicate support for the reception of Content Reporting Info Package and shall wait for the response.
Upon receipt of a SIP re-INVITE related to an activation/de-activation of a time shift session, the IPTV Control FE shall verify that it does hold a state for the session to be modified.
If the IPTV Control FE does not hold a state for the session, or if the multiparts of the message body including, both, the SDP parameters, and the XML schema for the OITF-IPTV Commands per section 5.3.1.1.7.3, “XML Schema for OITF-IPTV Commands” are not successfully validated, the IPTV Control FE shall reject the request with a 403 error code.
If the request is for the activation of time shift, the IPTV Control FE shall perform the procedure defined in section 6.1.2.2.2, “Procedure for Unicast Service Session Initiation,” and shall return to the IG the appropriate response including all mandatory parameters as per the said procedure (note that if the multicast content stream is not stored in the network, the procedure in section 6.1.2.2.2, “Procedure for Unicast Service Session Initiation” shall fail and an appropriate error message shall be returned to the user).
If the request is for de-activation of time shift, the IPTV Control FE shall perform the procedure defined in section 6.1.2.2.3, “Session Termination.” Following the successful completion of the said procedure, the IPTV Control FE shall return a SIP 200 OK to the IG.
When a request to send a SIP OPTIONS is received from the OITF, the IG shall use the mapping specified in section 5.3.2.1.1, “Retrieval of Session Parameters.”
When the final response to the SIP OPTIONS message is received from the network as a SIP 200 OK including the RTSP SDP, the IG shall forward this information to the OITF.
The information required in the returned SDP to complete the missing parameters in the SDP offer is:
The SIP OPTIONS message shall conform to [TS124503] and shall be forwarded through the ASM to the IPTV Control. If, the Request URI in the incoming SIP OPTIONS request is set to the PSI for the unicast content streaming service, the IPTV Control shall, after validating the request, forward the SIP OPTIONS to the CDN Controller FE and to the appropriate Cluster Controller, in the same way as for the INVITE message.
In certain cases, the CDN Controller may forward the SIP OPTIONS message to a default Cluster Controller.
On receiving the SIP OPTIONS message, the Cluster Controller shall issue an RTSP DESCRIBE to the CDF. In certain cases, the Cluster Controller may issue an RTSP DESCRIBE to a default CDF.
The DESCRIBE message shall conform to the format defined by TS 102 034 [TS102034].
The XML description that complies to TS 102 034 [TS102034] included in the RTSP 200 OK response received from the CDF shall be converted by the Cluster Controller to the SDP body in a SIP 200 OK response to the OPTIONS message. The SIP 200 OK message shall be forwarded all the way back to the IG.
The explicit mapping between the XML description and the SDP is not subject for formal specification.
This is the only case for which an OPTIONS message will be sent to a Cluster Controller.
Note: If, in a future release, other reasons warrant that the Cluster Controller receive the OPTIONS message, then support for discrimination between the various reasons for sending the OPTION will be required.
The IG shall support the procedures specified in [TS124503] for initiating unicast sessions.
On receiving a request for a unicast session initiation from the OITF, the IG shall generate an initial INVITE request as specified in [TS124503] (for an originating UA). See section 5.3.2.1.2, “Session Initiation”.
See example messages in Annex B.1.1, “Example Messages for unicast content streaming session setup with SIP session management.”
The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA.
When receiving any SIP request, the IPTV Control FE shall examine the request to see if it is compatible with the user's subscription profile (e.g. parental control level). If the user is not allowed to initiate a session for the requested content, the IPTV Control FE shall reply with an appropriate SIP error response. If the user is allowed to initiate the session, the IPTV Control FE shall forward the SIP INVITE to a default CDN Controller.
The IPTV Control Function shall not change the user-part of the To header in order to retain the content-id in the INVITE request.
Note: this does not apply for the case when the session is related to a user-activated time shift. In case of user-activated time shift, the IPTV Control FE shall change the To field to include the requested content ID that corresponds to the shifted multicast content. When the final response is received, the IPTV Control FE shall restore the TO field to its original value. In that respect, the IPTV Control FE maintains this information in the session state as long as the session is alive.
The CDN Controller FE shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA.
When receiving the SIP INVITE from the IPTV Control FE via the Authentication and Session Management FE through the NPI-19 reference point, the CDN Controller shall check the content id in the user part of the “To:” header as well as the “From:” and “Via:” fields to determine the most appropriate Cluster Controller FE to serve the User's request.
Once the appropriate Cluster Controller FE is selected, the Content Delivery Network Controller FE shall forward the SIP INVITE to it by changing the “Request-URI” accordingly.
The CDN Controller shall not forward 301 or 302 responses from the Cluster Controller to the IPTV Control Function. The CDN Controller shall take one of the following actions on receiving a 301 or 302 response from the Cluster Controller:
On receiving the request from the IPTV Control Function, the CDN Controller may decide to forward the request to another CDN Controller. In this case it changes the “Request-URI” accordingly.
The Cluster Controller FE shall support the procedures specified in [TS124503] as applicable to a terminating UA.
When receiving a unicast content streaming session initiation SIP request from the CDN Controller, the Cluster Controller shall examine the content identifier present in the user-part of the “To:” header and the media parameters in the received SDP offer and then choose the CDF.
If the requested content is not managed by this Cluster Controller, the Cluster Controller shall return a 301 response, or a 302 response for any other reasons (e.g. load-balancing) The Cluster Controller may indicate one or more Cluster Controller addresses in the contact header as indicated in RFC 3261 [SIP].
If the request is not acceptable to the Cluster Controller, it shall reply with an appropriate SIP error response.
The Cluster Controller shall reply with an appropriate SIP error response if the request is acceptable to the Cluster Controller but none of the Content Delivery Functions can handle the offer.
If the request is acceptable to the Cluster Controller and a CDF can handle the request, the Cluster Controller shall initiate an RTSP session using the RTSP SETUP message to the chosen CDF to determine its server ports and the RTSP session ID.
Following the successful conclusion of the RTSP session setup, the Cluster Controller allocates an RTSP server port, binds it to the CDF RTSP server port and answers with a SIP 200 OK, including the SDP answer.
The SDP parameters for the RTSP channel shall be set as follows:
m=application 554 tcp iptv_rtsp
)
c=IN IP4 <RTSP IP address>
)
a=setup:passive
)
a=connection:new
)
An absolute URI shall have precedence over a c-line if the latter is provided.
a=fmtp:iptv_rtsp h-session=<rtsp-session>[; timeout=<timeout>]
)
Note that if both RTP and RTCP are used in the session, the RTSP server (CDF) can use the received RTCP messages as an indication that the OITF is still connected to the session. This avoids requiring explicit RTSP keep-alive signalling. The RTSP server can easily associate the RTCP messages to the RTSP Session-ID using the RTCP message transport address and the SSRC of the media source. If this method is used and no RTCP messages are received after the default timeout period, the RTSP server may tear down the session. Details of this methodology are explained below in the b=RR:<bandwidth-value> line.
c=IN IP4 <IP_ADDRESS>
)
b=AS:64, indicating 64kbps
)
a=sendonly
)
Session termination for unicast content streaming shall follows the same SIP procedures as session termination for the multicast content streaming service. See section 6.1.2.1.1.3, “Session Termination.”
Note: Client-based play out control is described in [OIPF_MEDIA2] sections 4.1 and 4.2, and in [OIPF_CSP2] section 6. The concept there is applicable to downloaded, streamed or stored content where navigation constraints are embedded into the content, i.e. into MP4 files or MPEG-2 transport streams. The [OIPF_DAE2] specification contains language that allows a DAE application to capture navigation input and programmatically decide to honour or ignore the navigation commands, thus providing another way to restrict navigation when content is consumed in a DAE application.
Forced Play Out Control session initiation over UNIS-8 is the same procedure as described in section 6.1.2.2.2.1, “Session Initiation”.
The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA.
When receiving any SIP request, the IPTV Control FE shall examine the request to see if it is compatible with the user's subscription profile (e.g. parental control level). If the user is not allowed to initiate a session for the requested content, the IPTV Control FE shall reply with an appropriate SIP error response. If the user is allowed to initiate the session, the IPTV Control FE shall interact with the IPTV Application to acquire the Forced Play Out control policy per the content identity and/or user’s subscription information.
The IPTV Control FE shall add the policy to the SIP INVITE received, and forward the updated SIP INVITE to a default CDN Controller. The IPTV Control Function shall not change the user-part of the To header in order to retain the content-id in the INVITE request.
The IPTV Control Function shall not change the existing SDP parameters for the RTSP content control channel and content delivery channel which specified in section 5.3.2.1.2, “Session Initiation”. Moreover, an additional SDP parameter for the RTSP content control channel to describe Forced Play Out control policy shall be included as follows:
Note: this does not apply for the case when the session is related to a user-activated time shift. In case of user-activated time shift, the IPTV Control FE shall change the To field to include the requested content ID that corresponds to the shifted multicast content. When the final response is received, the IPTV Control FE shall restore the TO field to its original value. In that respect, the IPTV Control FE maintains this information in the session state as long as the session is alive.
Protocol for Forced Play Out Control over NPI-19 is the same as described in section 6.1.2.2.2.3, “Protocol over NPI-19”.
On receiving the request from the IPTV Control Function, the CDN Controller may decide to forward the request to another CDN Controller. In this case, the IPTV Control Function changes the “Request-URI” accordingly.
The protocol for Forced Play Out Control over NPI-26 is similar to that described in section 6.1.2.2.2.5, “Protocol over NPI-26.” After receiving the session initiation request, if the policy is presented in the request, the Cluster Controller shall also store the Forced Play Out Control policy and then choose the CDF.
The format of the “a=unsupport” attribute is as follows:
a=unsupport: < RTSP_Operation > < Restriction_Rule > where <RTSP_Operation> ::= is the RTSP operation that is not permitted by the policy, e.g. fast forward. <Restriction_Rule> ::= <time-range-list> | <ContentID-list> <ContentID-list> ::= ContentID_list: <contentID> {"|" <contentID>} <ContentID > ::= is the identifier of the media content <time-range-list> ::= <npt-range-list> | < utc-range-list> | <smpte-range-list> <npt-range-list> ::= npt_range_list: <npt-range> {"|" <npt-range>} <utc-range-list> ::= utc_range_list: <utc-range> {"|" <utc-range>} <smpte-range-list> ::= smpte_range_list: <smpte-range> {"|" <smpte-range>}
Upon receiving a purchase request from the OITF, the IG shall send a SIP INFO Request, including the Digital Purchase info package, IPTV Control FE (via the ASM FE).
The IG shall forwards any received response to the OITF.
Upon receipt of a SIP UPDATE by the IG with an empty Recv-Info header or unwillingness to receive the Digital Purchase info package from the IPTV Control FE, to stop sending digital media purchase request, the IG shall forward the SIP UPDATE to the OITF in an HTTP 200 OK response. The IG shall wait for the response from the OITF to forward it to the IPTV Control FE.
Upon receipt of a SIP UPDATE, including the Recv-Info header set to support the Digital-Purchase Info Package, by the IG from the IPTV Control FE, to start sending digital media purchase request, the IG shall forward the SIP UPDATE to the OITF in an HTTP 200 OK response. The IG shall wait for the response from the OITF to forward it to the IPTV Control FE.
Note that the IG shall be stateful to the SIP UPDATE messages so that it does comply to IPTV Control FE in case an OITF makes an illegal request.
Upon receipt of SIP INFO request from the IG including the Digital-Purchase info package, the IPTV Control FE shall examine the body. If the body is not successfully validated as compliant to section 5.3.5.8, “XML Schema for Purchase Request of Digital Media”, the IPTV Control FE shall issue an appropriate error message. Otherwise, the IPTV Control FE shall initiate a purchase request with the Charging FE.
Following the successful completion of the purchase transaction, the IPTV Control FE shall inform the IPTV Applications FE so it can update the user profile, and shall wait for a response from the IPTV Applications FE before returning a response to the IG.
If the IPTV Control FE desires to instruct the OITF to start sending digital media purchase request, it shall send a SIP UPDATE to the IG and where the Recv-Info is set to indicate support for the reception of Digital-Purchase Info Package and shall wait for the response.
If the IPTV Control FE desires to instruct the OITF to stop sending digital media purchase request, it shall send a SIP UPDATE to the IG and where the Recv-Info is empty or removes support for the reception of the Digital-Purchase Info Package and shall wait for the response.
The IPTV Control FE shall support the procedures specified in [TS183063] section 5.3.1.5.1.
The IPTV Control FE shall support the procedures specified in [TS124503] that are applicable to an AS acting as a terminating SIP UA.
Starting watching the PPV service directly shall use multicast content session initiation as described in section 6.1.2.1.2.2, “Session Initiation”, with the following differences:
Upon receipt of a PPV session modification request, the IPTV Control FE shall follow the procedures defined in ES 283 003 [ES283003] concerning the AS acting as a terminating UA or a B2BUA.
When receiving an SDP offer, the IPTV Control FE may modify the SDP answer in accordance with the user subscription as defined in section 6.1.2.5.2.1, “PPV service initiation without existing multicast content streaming session.” If the IPTV Control FE finds a media line not compatible with the user's subscription, it shall set the port of this media line to 0. If none of the media lines are acceptable, it shall reply with a 403 error response.
Upon receipt of a PPV session termination request, the IPTV Control FE shall follow the procedures defined in [TS124503] concerning the AS acting as a terminating UA, which is the same as multicast content streaming session termination as described in section 6.1.2.1.2.4, “Session Termination.”
Upon receipt of an internal indication that a PPV session shall be terminated, the IPTV Control FE shall generate a BYE request and follow the procedures defined in [TS124503] for an originating OIPF, which is the same as multicast content streaming session termination as described in section 6.1.2.1.2.4, “Session Termination.”
The following shall be supported by the IG for subscription to acquire information related to content streamed at an OITF:
The IPTV Control FE can OPTIONALly use the presence server to support the “What is on TV” feature. In that respect, the IPTV Control FE acts as a publisher for the content being watched on the OITF. The usage of presence server for parental control purposes is distinguished from the usage of presence server for sharing information between users for presence purposes. The later depends on information published directly by presence agents on behalf of users and is under user control, and reflects what the user wants to declare as far as presence information, including what he is currently watching. Information published by the IPTV Control FE is information derived during the session establishment procedures, and is considered as state information.
If the IPTV Control FE uses the presence server to provide parental control service, it shall support the SIP PUBLISH request for publishing watched content. The event in this case shall be Parental Control Watched Content event as per section 5.3.7.1.4, “XML Schema for Parental Control Watched Content”.
When receiving a request for Parental Control from the OITF as described in section 5.3.7.2.1, “Protocol for OITF Originating a Request for Parental Control,” the IG shall generate an initial MESSAGE request as specified in RFC 3428 [SIP-IM].
When receiving a request for Parental Control from the network as a SIP MESSAGE as described in section 5.3.7.2.2, “Protocol for OITF Receiving a Request for Parental Control,” the IG shall forward this information to the OITF including the information in the body.
When the final response to the SIP MESSAGE for Parental Control is received from the network as a SIP 200 OK, the IG shall forward this information to the OITF. The IG shall forward the final received response from the OITF to the network.
The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA.
Upon receipt of a SIP MESSAGE request for Parental Control from the IG via the Authorization and Session Management FE, the IPTV Control FE shall identify the Content-Type associated with the MESSAGE request to determine that it is a Parental Control request. The IPTV Control FE shall check the controlled user in the “To:” header as well as the controller in the “From:” fields to determine whether the controller has the rights to perform Parental Control on the controlled user.
If the controller has the rights to perform Parental Control on the controlled user, the IPTV Control FE shall forward the SIP MESSAGE to the controlled user.
Upon receipt of a SIP 200 OK response to the SIP MESSAGE for Parental Control from the OITF via the Authorization and Session Management FE, the IPTV Control FE shall forward the SIP 200 OK to the controller.
Upon receipt by the IG for an HTTP POST to send a SIP MESSAGE, as described in section 5.3.8.1.1, “Native HNI-IGI (IMS-based) Notification Request Setup Procedure”, the IG shall initiate a SIP MESSAGE which shall conform to [SMPL-IM]. The response to the SIP MESSAGE shall comply with [SMPL-IM]. The IG shall not retain any state information once the transaction is completed.
Upon receipt by the IPTV Control Server FE of a SIP MESSAGE, the IPTV Control FE shall first validate that the user is authorized to initiate the request. Following successful validation, the IPTV Control FE shall issue a store request to the appropriate IPTV application and shall wait for the response.
Upon receipt of a response from the IPTV application, the IPTV Control FE shall return a SIP 200 OK response to the IG, or an appropriate error response.
Upon receiving a request from the OITF for storing a scheduled content bookmark or a CoD bookmark, (see section 5.3.9.1.1, “IMS-based Content Bookmark Creation Request”), the IG shall generate a SIP INFO including the CoD-Bookmark Info Package according to section 2 of [PSS-MBMS].
The IG shall forward any received SIP response to the OITF.
Upon receipt of a SIP UPDATE by the IG with an empty Recv-Info header or unwillingness to receive the CoD Bookmark Info Package from the IPTV Control FE, to stop sending content bookmarks for storage, the IG shall forward the SIP UPDATE to the OITF in an HTTP 200 OK response. The IG shall wait for the response from the OITF to forward it to the IPTV Control FE.
Upon receipt of a SIP UPDATE, including the Recv-Info header set to support the CoD-Bookmark Info Package, by the IG from the IPTV Control FE, to start storing content bookmarks, the IG shall forward the SIP UPDATE to the OITF in an HTTP 200 OK response. The IG shall wait for the response from the OITF to forward it to the IPTV Control FE.
Upon receipt of SIP INFO from the IG including the CoD-Bookmark Info Package according to section 2 of [PSS-MBMS] for storing a content bookmark, the IPTV Control FE shall examine the body.
If the body is not successfully validated as compliant to section 5.3.9.5, “XML Schema for Content Bookmarking”, the IPTV Control FE shall issue an appropriate error message. Otherwise, the IPTV Control FE shall issue a bookmark store request to the IPTV application responsible for handling bookmarks and shall wait for the response before returning a response to the IG. The treatment of the different elements in the body is specified in section 5.3.9.5, “XML Schema for Content Bookmarking”.
If the IPTV Control FE desires to instruct the OITF to stop sending content bookmarks for storage, it shall send a SIP UPDATE to the IG where the Recv-Info is empty or removes support for the reception of the CoD-Bookmark Info Package and shall wait for the response.
If the IPTV Control FE desires to instruct the OITF to start sending content bookmark for storage, it shall send a SIP UPDATE to the IG and where the Recv-Info is set to indicate support for the reception of CoD-Bookmark Info Package and shall wait for the response.
The IG shall support the procedures specified in [TS124503] for initiating unicast sessions.
On receiving a request for a unicast session initiation from the OITF, the IG shall generate an initial INVITE request as specified in [TS124503] (for an originating UA). See section 5.3.2.1.2, “Session Initiation”.
When the final response to the SIP INVITE request is received from the network as a SIP 200 OK including the SDP (for content delivery and content control channel) , the IG shall forward this information to the OITF.
When the SIP INFO request with the XML body (for content-related bookmark list) is received from the network, the IG shall forward this information to the OITF. The IG shall forward the received response from the OITF to the network.
The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA.
When receiving the SIP INVITE request, the IPTV Control FE shall send an XCAP GET request to the IPTV Service Profile to get the user’s profile and content-related bookmark list with the user ID and content ID which are retrieved from the INVITE request. and then examine whether the user has the right to initiate a unicast session for the content. If the user is not allowed to initiate a session for the requested content, the IPTV Control FE shall replies with an appropriate SIP error response. If the user is allowed to initiate the session, the IPTV Control FE shall forward the SIP INVITE to a default CDN Controller.
The IPTV Control Function shall not change the user-part of the To header in order to retain the content-id in the INVITE request and maintains the SDP received from the IG.
When receiving the SIP 200 OK response for the INVITE request, the IPTV Control forwards the SIP 200 OK response to the OITF, and then sends the SIP INFO to the OITF with the XML body for the content-related bookmark list (see section 5.3.9.5, “XML Schema for Content Bookmarking”).
Note: this does not apply for the case when the session is related to a user-activated time shift. In case of user-activated time shift, the IPTV Control FE shall change the To field to include the requested content ID that corresponds to the shifted multicast content. When the final response is received, the IPTV Control FE shall restore the TO field to its original value. In that respect, the IPTV Control FE maintains this information in the session state as long as the session is alive.
The procedure is the same as that defined in section 6.1.2.2.2.3, “Protocol over NPI-19”.
The procedure is the same as that defined in section 6.1.2.2.2.4, “Protocol over NPI-25”.
The procedure is the same as that defined in section 6.1.2.2.2.5, “Protocol over NPI-26”.
Upon receiving a request from the OITF for the PVR Service Capture Request (see section 5.3.10, “Local PVR Service using SIP”), the IG shall generate a SIP MESSAGE as specified in [TS124503].
Upon receiving a request from the OITF for the PVR Service Capture Request (see section 5.3.10, “Local PVR Service using SIP”), the IG shall generate a SIP MESSAGE as specified in [TS124503].
The IG shall forward any received SIP response to the OITF including the information.
If the IG receives PVR Record Request initiated from an OITF different than the one used for recording, the IG shall forward PVR Record Request to relevant OITF.
The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA.
When receiving SIP MESSAGE for PVR Service Capture from the IG, the IPTV Control Function shall perform the following:
The IPTV Control Function shall forwards an appropriate SIP response based on the outcome of the verification process.
When the IPTV Control Function initiates a SIP MESSAGE request for PVR recording, the Request-URI shall be set to the Public Identity of the target user (IMPU). The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA. The content of the SIP MESSAGE shall conform to Table 44 as per step 5 in section 5.3.10.1.
The IPTV Control Function shall wait for the received response.
Upon receiving a request from the OITF for the PVR Service Request (see section 5.3.11, “Network PVR (nPVR) using SIP”), the IG shall generate a SIP MESSAGE message as specified in [TS124503]. The IG shall forward any received SIP response to the OITF.
The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a terminating SIP UA.
When receiving any NPVR request, the IPTV Control Function shall examine the request to see:
If the record request is successful, the IPTV Control Function shall create a context for the order, register relevant information and update the user’s profile status for PVR to “Order Captured”, meaning that a recording order is pending execution.
If the record request is not valid, the IPTV Control Function shall respond with a non-2XX SIP response and shall subsequently issue a SIP MESSAGE compliant to the OITF to report the reason for rejection.
The body of the SIP MESSAGE shall include the MIME type “application/vnd.oipf.pvrresult+xml” based upon the XML schema defined in section 5.3.11.2, “XML schema for nPVR recording result”.
At the start of the scheduled program or the start time of the immediate NPVR request, the IPTV Control Function shall find the appropriate CDNC/CC/CDF to setup the content delivery channel for the content recording. It is done by issuing an SIP INVITE to the selected Content Delivery Network Control Function, and shall wait for 200 OK response.
Based on the local policy, the following should apply to avoid duplicated recording:
The content of the SIP INVITE message shall be as follows:
SIP Header | Source of Coding Information |
---|---|
Request-Line Note: The request URI must be set to the SIP URI of the selected CDNC | RFC 3261 [SIP] INVITE <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To The URI part of To shall be set to the value of the Request URI in the “Request-Line” | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Content-Type It shall be set to “multipart/related” | RFC 3261 [SIP] |
Content-Length | RFC 3261 [SIP] |
Upon receiving 200 OK response from the CDNC, the IPTV Control FE shall update status of the NPVR request in the users’ profile with “Recording”.
Upon receiving a SIP UPDATE message from the CDNC, the IPTV Control FE shall extract the program identifier and the status information, then update the user profiles of all the users whom requested to record the program in the network. Then the IPTV Control FE shall generate a BYE request as specified in [TS124503] for originating sessions.
The CDN Controller FE shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP proxy or B2BUA.
When receiving the SIP INVITE from the IPTV Control FE via the Authentication and Session Management FE through the NPI-19 reference point, the CDN Controller shall check the request type and the program id of the NPVR request, and determine the most appropriate Cluster Controller FE to serve the NPVR request.
Once the appropriate Cluster Controller FE is selected, the Content Delivery Network Controller FE shall forward the SIP INVITE to it by changing the “Request-URI” accordingly.
The CDN Controller shall not forward 301 or 302 responses from the Cluster Controller to the IPTV Control Function. The CDN Controller shall take one of the following actions on receiving a 301 or 302 response from the Cluster Controller:
Upon receiving a SIP UPDATE message from the Cluster Controller, the CDNC shall forward the message to the IPTV Control FE.
On receiving the request from the IPTV Control Function, the CDN Controller may decide to forward the request to another CDN Controller. In this case it changes the “Request-URI” accordingly.
The Cluster Controller FE shall support the procedures specified in [TS124503] as applicable to a terminating UA.
Upon receiving a NPVR Request from the CDN Controller, the Cluster Controller shall examine the program identifier present in NPVR request XML document, and the media parameters in the received SDP offer and then choose a CDF.
If all the CDFs lack of storage, the Cluster Controller shall return a 301 response, or a 302 response for any other reasons (e.g. load-balancing) The Cluster Controller may indicate one or more Cluster Controller addresses in the contact header as indicated in RFC 3261 [SIP].
If the request is not acceptable to the Cluster Controller, it shall reply with an appropriate SIP error response.
The Cluster Controller shall reply with an appropriate SIP error response if the request is acceptable to the Cluster Controller but none of the Content Delivery Functions can handle the offer.
If the request is acceptable to the Cluster Controller and a CDF can handle the request, the Cluster Controller shall initiate an RTSP session using the RTSP SETUP message to the chosen CDF. the CDF then shall join the multicast group, and return 200 OK with the server port and RTSP Session ID to setup the content delivery channel between the CDF and the content source. Then CC sends a RTSP Recording to the CDF to record the content as defined in section 7.1.3.1, “RTSP Session Setup”.
Following the successful conclusion of the RTSP session setup, the Cluster Controller allocates an RTSP server port, binds it to the CDF RTSP server port and answers with a SIP 200 OK, including the SDP answer and the record status report conforming to section 5.3.11.2, “XML schema for nPVR recording result”.
When completing the record of the requested program, the Cluster Controller shall issue a SIP UPDATE message to the IPTV Control FE with appropriate record status (i.e. “Recording Completed”).
The content of the above two messages shall be as follows:
SIP Header | Source of Coding Information |
---|---|
Request-Line Note: The request URI must be set to well-known PSI for NPVR | RFC 3261 [SIP] UPDATE <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To The URI part of To shall be set to the value of the Request URI in the “Request-Line” | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Content-Type It shall be set to “application/vnd.oipf.pvr+xml” | RFC 3261 [SIP] |
Content-Length | RFC 3261 [SIP] |
nPVR service can also be initiated by non-OITF based user equipments so that the IPTV user can consume the multicast content later with an OITF. In this case, the user will send nPVR request to the IPTV Application (or other specific FE in the service provider domain) by means like web browser through internet /SMS through mobile network etc.
Upon receiving such nPVR request, the IPTV application shall validate the user and then, on behalf of the user, send the nPVR request to the IPTV Control FE. The IPTV Control FE shall validate the request, do recording and update the user profile as defined in section 6.1.2.10.1, “OITF-initiated nPVR”.
The protocol used in NPI-19 for Non-OITF initiate NPVR service shall be the same as for OITF Initiated Network PVR service, as defined in section 6.1.2.10.1.3, “Protocol over NPI-19”.
The protocol used in NPI-25 for Non-OITF initiate NPVR service shall be the same as for OITF Initiated Network PVR service, as defined in section 6.1.2.10.1.4, “Protocol over NPI-25”.
The protocol used in NPI-26 for Non-OITF initiate NPVR service shall be the same as for OITF Initiated Network PVR service, as defined in section 6.1.2.10.1.5, “Protocol over NPI-26”.
The procedures over UNIS-8, NPI-19, NPI-25 and NPI-26 for PCh service shall follow those described in section 6.1.2.2, “Unicast content streaming with SIP session management”, with the difference that the request URI and the To header in the INVITE request from the OITF shall include the indicated Personalised Channel identifier.
The IPTV Control Function shall support the procedures specified in [TS124503] as applicable to an AS acting as a SIP B2BUA.
When receiving any SIP request, the IPTV Control FE shall examine the request to see if it is compatible with the user's subscription profile (e.g. parental control level). If the user is not allowed to initiate a session for the requested Personalised Channel, the IPTV Control FE shall reply with an appropriate SIP error response.
If the user is allowed to initiate the session, the IPTV Control FE shall first retrieve the detailed PCh information for the user from the IPTV Application FE via NPI-2 reference point, then it shall forward the SIP INVITE to a default CDN Controller with the following modifications:
The request body includes the SDP identical to the incoming INVITE request, i.e. it shall contain the unicast content delivery description for the OITF regardless whether the next PCh item is scheduled content or on-demand content.
When it is time for the next PCh content to be played, the IPTV Control FE shall initiate SIP INFO based upon the configuration of the retrieved PCh information. The IPTV Control FE shall construct the out-going SIP INFO request to the selected CDNC/CC/CDF, as described below:
Note: The detailed XML schema refers to section 6.1.2.11.1.3, “XML schema for PCh content switch”.
When the CC receives the SIP MESSAGE, it shall respond a SIP 200 OK, and then parse the message body for content switch, i.e. use the ContentId and SwitchTime to initiate the RTSP PLAY towards the CDF for delivery of the next PCh content item as described in section 7.1.4.2, “RTSP PLAY for PCh content switch.”
Session termination for PCh shall follow the same SIP procedures as session termination for the COD service. See section 6.1.2.2.3, “Session Termination”.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:oipf:iptv:pchcontentswitch:2011" xmlns:tns="urn:oipf:itpv:pchcontentswitch:2011" xmlns:ct="urn:oipf:base:CommonTypes:2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:oipf:base:CommonTypes:2011" schemaLocation="base-CommonTypes.xsd" /> <xs:element name="PChContentSwitchControl"> <xs:complexType> <xs:sequence> <xs:element name="PChContentItem" type="tPChContentItem" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="PChId" type="xs:anyURI" use="required"/> </xs:complexType> </xs:element> <xs:complexType name="tPChContentItem"> <xs:sequence> <xs:element name="ProgramIdentifier" type="ct:ProgramIdType" /> <xs:element name="SwitchTime" type="xs:dateTime" /> </xs:sequence> </xs:complexType> </xs:schema>
When recording overlapped content, the LPVR or nPVR procedures will be used.
The messaging and procedures for recording the overlapped content on a LPVR shall be as specified in section 6.1.2.8.3, “Content-related bookmark retrieval.”
The messaging and procedures for recording the overlapped content on a nPVR shall be as specified in section 6.1.2.10, “Network PVR (nPVR) using SIP”.
When a time gap between adjacent content items is detected, the OITF may perform the procedures specified in section 5.3.12.2, “OITF-centric Personalised Channel”.
The IG shall support the procedures specified in [SRVCONT] for initiating unicast sessions associated with session transfer.
On receiving a request for a unicast session initiation from the transferee OITF, the IG shall generate an initial INVITE request as specified in [SRVCONT].
The IG shall support the procedures specified in [TS124503] for putting media subject to transfer, on hold (setting the port to 0 in the m-line in the SDP) and reducing the QoS resources for the transferor OITF down to zero, when it detects that the transferor and the transferee are behind the same IG.
The following shall be supported by the IG:
When receiving a SIP INVITE request associated with a session transfer, the IPTV Control FE shall first authorize the request. If the user is not authorized or the INVITE is not successfully validated, in accordance with [SRVCONT] the IPTV Control FE shall respond with an appropriate SIP error message. If the user is authorized and the INVITE is successfully validated, then the IPTV Control FE behaviour depends on the SDP in the incoming INVITE:
When receiving a SIP UPDATE (or re-INVITE) request associated with a session transfer, and related to an ongoing session, the IPTV Control FE shall first validate the request. If the SIP UPDATE (or re-INVITE) is successfully validated, then the IPTV Control FE behaviour shall release the resources based on the incoming SIP UPDATE (or re-INVITE), shall put the media on hold, and shall return the received response to the IG.
When receiving a SIP REFER request, the IPTV Control FE shall authorize the request. If the user is not authorized to perform session transfer, an appropriate SIP error response is returned. If the user is authorized, the IPTV Control FE shall forward the SIP REFER to the ASM for delivery to its destination (transferee OITF). The IPTV Control FE shall be stateful to the session transfer procedure.
When receiving a SIP NOTIFY associated with a SIP REFER request, the IPTV Control FE shall validate the SIP NOTIFY as per [SRVCONT]. If not successfully validated, an appropriate SIP response shall be returned. If successfully validated, the IPTV Control FE shall forward the SIP NOTIFY to the ASM for delivery to the destination (transferor OITF).
The IPTV Service Provider Discovery FE shall generate and/or provide the Service Provider Discovery information.
The IG shall follow the following procedure to retrieve Service Provider Discovery information:
Step 1: | The IG shall send a SIP SUBSCRIBE to the network, to subscribe to the “ua-profile” event, and shall wait for the response to the subscription request. |
Step 2: | When a SIP NOTIFY is received by the IG for a “ua-profile” event, the IG shall store the body of the SIP NOTIFY. |
Step 3a: | If the IG receives a HTTP GET for the Service Provider information, it shall return the body of the SIP NOTIFY (from step 2) in the HTTP response body. |
Step 3b: | If the IG receives a HTTP POST on the HNI-IGI interface from the OITF which includes a SIP SUBSCRIBE with a message body associated with the appid “urn:oipf:application:iptv-SP-discovery”, the IG shall send a SUBSCRIBE to the network with the following capabilities: |
The message body shall include what was received from the OITF, which are the capabilities of the OITF which are sent to the Service Provider Discovery FE. The details of the SIP SUBSCRIBE are as specified in [TS183063] section 5.1.2.2.1. To wit:
When the Service Provider Discovery FE receives a SUBSCRIBE request, it may check the user’s IPTV subscription profile and provide a personalized Service Provider Discovery information to the OITF. Filtering may also be performed if device capabilities are available to the SDF.
If the Service Provider Discovery FE receives a SIP SUBSCRIBE message body from the IG carrying OIPF capabilities, the Service Provider Discovery FE shall process the SIP request as specified below.
On successful subscription, the Service Provider Discovery FE shall generate a 200 OK response. The Service Provider Discovery FE shall then send a NOTIFY request to the OITF in accordance with RFC 3265 [SIP-EVNT].
The contents of the SIP NOTIFY request shall be as follows:
The Service Provider Discovery Information shall be delivered in the message body and shall conform to the schema defined in [OIPF_META2].
Note: If the above extension is not accepted by the IETF, then the use of a new method (New Event package) should be re examined. (See Annex K)
When the IPTV Service Provider Discovery FE knows of a change to the Service Discovery, Service Provider or Selection Information, the IPTV Service Provider Discovery FE shall inform the OITF of this change by sending a SIP NOTIFY message.
Every IMS Subscription shall be allocated a single unique default IMS Pubic Identity by the Service Platform Provider. This shall be the identity that is registered in the IMS domain when an OITF is turned on.
Every IPTV end-user in an IMS Subscription may be associated with an IMS Public User Identity by the Service Platform Provider.
This release complies with option 1 in Annex D.4 in [OIPF_ARCH2].
The following shall be supported by the IG on the UNIS-8 interface for user registration:
Furthermore if the incoming registration request from the OITF includes a request for a GRUU, the IG shall allocate a new user name to the username (IMPU) portion of the URI (username@host) in the contact header information (see Annex N why the IG needs to do that). The new username will replace the existing username (IMPU) in the URI contact header information before the IG registers the user with the network.
The IG shall maintain a binding between the IMPU included by the OITF in the incoming HNI-IGI request, the new username created by the IG, and the actual OITF device (extracted from the sip instance feature tag) from which the request came.
The following shall be supported by the IG on the UNIS-8 interface for user de-registration:
The following shall be supported in the IG on UNIS-8 for subscription to the Registration event:
The appropriate procedure (SIP Digest or IMS AKA) shall be followed by the IG for user registration and authentication.
If subscription to notification of changes is requested by the OITF, the IG shall send a SUBSCRIBE request to the IPTV Service Profile FE in accordance with RFC 5875 [XCAP-EVT] and RFC 5874 [XCAP-DFF].
The IG will process the request from the OITF and will generate a SUBSCRIBE request, that shall be as specified in [TS183063] section 5.1.5.1.
A well-known PSI mechanism shall be used in the request URI of the SUBSCRIBE request.
Note: For changes that apply to a very large number of subscribers, it is up to Service Provider to set up proper rules in the ‘notifier function’ to make the notification procedure scalable.
Refer to [TS183063] section 5.1.5.2
Instant Message based Caller ID is identical to Instant Messaging where the incoming message includes the caller id. For further details reference should be made to section 6.1.4.2.1, “Procedure for Instant Messaging on UNIS-8.”
IMS telephony service based caller identification is based on the reception of the regular SIP session INVITE request. The incoming session request message includes the caller identification.
Support of this feature by the IG is optional.
Instant Messaging complies with the page mode of operation. The following shall be supported by the IG:
The following shall be supported by the IG for subscription to Presence:
When requested by the OITF, the IG shall support the SIP PUBLISH request and response in accordance with [SMPL-PRES] for publishing presence information.
The IG shall conform to the Client Procedure as described in OMA-TS-SIMPLE_IM-V1_0-20080820-D [SMPL-IM].
The IG shall perform path mapping between Chatting peers as indicated in section 5.5.3, “IM Session (Chat using MSRP).”
The IG shall handle translation of Chat session initiation and teardown procedures when requested by the OITF as per section 5.4.5, “Remote Management.”
The IG shall handle translation of outgoing and incoming MSRP chat message as per section 5.5.3, “IM Session (Chat using MSRP).”
The P2P Chatting communication enablers FE shall confirm to the IM Server procedures described in OMA TS SIMPLE_IM-V1_0-20080820-D [SMPL-IM].
Incoming SIP OPTIONS be acceptable for processing by the IG. Non-conformant SIP OPTIONS shall be rejected in with the appropriate response code.
When requested by the OITF, the IG shall support the SIP OPTIONS request and response in accordance with [SIP] for Capability querying.
Incoming SIP INVITE be acceptable for processing by the IG. Non-conformant SIP INVITE shall be rejected in with the appropriate response code.
Content Sharing is based on the reception of the regular SIP session INVITE request. The incoming session request message includes the SDP body.
Incoming SIP REFER be acceptable for processing by the IG. Non-conformant SIP REFER shall be rejected in with the appropriate response code.
Incoming SIP UPDATE be acceptable for processing by the IG. Non-conformant SIP UPDATE shall be rejected in with the appropriate response code.
The IG acts as a transparent B2BUA. The following defines the behaviour of the B2BUA of the IG:
The IG shall be service aware as well for all incoming sessions from the network. Services supported by the IG shall be identical to the ones supported for OITF-initiated sessions
The IG shall support the procedures specified in [TS124503] for originating sessions.
To initiate a multicast content streaming session, the OITF shall initiate a SIP INVITE to the IG that includes all the SIP headers in Table 5 and any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards). The OITF shall also include an SDP offer conformant to step 1 in section 5.3.1.1.1, “Session Initiation”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INVITE includes all the mandatory headers as per [SIP] and the headers listed in Table 5. Following a successful validation, the IG shall generate an initial SIP INVITE request as specified in [TS124503] for originating sessions.
The IG shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 6 and all mandatory headers as per [SIP].
When the OITF receives the response to the SIP INVITE, it shall examine the media parameters in the received SDP. The OITF shall restrict the multicast content services that it joins according to the parameter (the a=bc_service_package attribute). received from the IPTV Control FE. However, if the OITF retrieved the IPTV user profile prior to session initiation, then it may ignore the=bc_service_package attribute.
If the OITF receives an error code with an Insufficient Bandwidth indication in the response from the IG, the OITF may perform a new SIP INVITE with a reduced maximum bandwidth for the multicast content service. This procedure may be repeated. If no agreement can be reached, the OITF may display a failure message to the user.
Finally to complete the SIP INVITE transaction, the OITF shall send a SIP ACK to the IG. The SIP ACK shall include the SIP headers defined in Table 7 and all mandatory headers as per [SIP].
To join a service outside the set of channels negotiated at session initiation, or to perform a bandwidth modification, the OITF shall generate a SIP re-INVITE request that includes all the mandatory headers as per [SIP] and the headers listed in Table 5.
The OITF shall include an SDP offer in the session modification request. The format of this request shall be the same as for a session initiation.
The IG shall handle session modification similar to session initiation.
To terminate a session, the OITF shall send a SIP BYE request to the IG that includes all headers listed in Table 8 and any other mandatory headers as per [SIP].
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP BYE includes all the mandatory headers as per [SIP] and the headers listed in Table 8. Following a successful validation, the IG shall generate a SIP BYE as specified in [TS124503] for originating sessions. The IG shall forward the received response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 9 and all mandatory headers as per [SIP].
Alternatively, on receipt of a SIP BYE request from the IPTV Control FE, the IG, after validating the request, shall forward the request to the OITF. The OITF shall respond with a SIP 200 OK response, which the IG forwards to the IPTV Control FE.
It is the responsibility of the OITF to refresh the multicast content streaming session, as per [SES-TIMR] before the session expires. The IG shall consider a session terminated if it is not refreshed.
To report watched content, the OITF shall send a SIP INFO request to the IG based one the SIP INFO framework, The SIP INFO request shall include all headers listed in Table 10 and all mandatory headers as per [SIP].
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INFO includes all mandatory headers as per [SIP] and the headers listed in Table 10. Following a successful validation, the IG shall generate a SIP INFO as specified in [TS124503] for originating sessions. The IG shall forward the received response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 11 and all mandatory headers as per [SIP].
At any time, the IG can receive a SIP UPDATE to order the OITF to stop or start the reporting of watched multicast content.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP UPDATE includes all mandatory headers as per [SIP] headers listed in Table 12. Following a successful validation, the IG shall forward the SIP UPDATE to the OITF. The IG shall forward the received response to the network. A SIP 200 OK response shall include the SIP headers defined in Table 13 and all mandatory headers as per [SIP].
To activate time shift for a watched multicast content service, the OITF shall initiate a SIP re-INVITE to the IG that includes all the SIP headers in Table 5 and any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards). The OITF shall also include an SDP offer conformant to step 1 in section 5.3.1.1.7.1, “User-initiated Activation of multicast content streaming Time Shift”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INVITE includes all the mandatory headers as per [SIP] and the headers listed in Table 5. Following a successful validation, the IG shall generate an initial SIP INVITE request as specified in [TS124503] for originating sessions.
The IG shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 6 and all mandatory headers as per [SIP].
When the OITF receives the response to the SIP re-INVITE, it shall examine the media parameters in the received SDP. The OITF shall conform to step 3 in section 5.3.1.1.7.1, “User-initiated Activation of multicast content streaming Time Shift.” The OITF shall store the parameters a:fmtp:iptv rtsp h-session, a:fmtp:iptv rtsp h-offset, and a:fmtp:iptv rtsp h-uri for later usage.
Finally to complete the SIP INVITE transaction, the OITF shall send a SIP ACK to the IG. The SIP ACK shall include the SIP headers defined in Table 7 and all mandatory headers as per [SIP].
To de-activate a time shift for a watched multicast content service, the OITF shall initiate a SIP re-INVITE to the IG that includes all the SIP headers in Table 5 and any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards). The OITF shall also include an SDP offer conformant to step 1 in section 5.3.1.1.7.2, “User Initiated De-activation of multicast content steaming Time Shift”. The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INVITE includes all the mandatory headers as per [SIP] and the headers listed in Table 5. Following a successful validation, the IG shall generate an initial SIP INVITE request as specified in [TS124503] for originating sessions. The IG shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 6 and all mandatory headers as per [SIP]. Finally to complete the SIP INVITE transaction, the OITF shall send a SIP ACK to the IG. The SIP ACK shall include the SIP headers defined in Table 7 and all mandatory headers as per [SIP].
If the OITF intends to use FCC and/or RET, when the multicast content service is FCC and/or RET enabled, the OITF shall use the procedure defined in section 5.3.2.1.1 “Retrieval of Session Parameters” with the following modifications:
The returned response shall include total bandwidth of the multicast content service with the highest bandwidth and the overhead bandwidth required for FCC and/or RET.
If the OITF does not have all the necessary parameters, namely the FEC information including bandwidth for FEC streams and the transport protocol, to form the SDP for a unicast content streaming session, the OITF shall retrieve missing SDP parameters using the following procedure:
The OITF shall initiate a SIP OPTIONS request to the IG that includes all the SIP headers in Table 14 and any other mandatory headers as per [SIP].
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP OPTIONS includes all the mandatory headers as per [SIP] and the headers listed in Table 14. Following a successful validation, the IG shall generate an initial SIP OPTIONS request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 15 and all mandatory headers as per [SIP]. The SDP included in the SIP 200 OK response shall include the missing parameters according to section 6.1.2.2.1.2, “Protocol over NPI-4, NPI-19, NPI-26”.
To initiate a unicast content streaming session, the OITF shall initiate a SIP INVITE to the IG that includes all the SIP headers in Table 16 and any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards). The OITF shall also include an SDP offer conformant to step 1 in section 5.3.2.1.2, “Session Initiation”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INVITE includes all the mandatory headers as per [SIP] and the headers listed in Table 16. Following a successful validation, the IG shall generate an initial SIP INVITE request as specified in [TS124503] for originating sessions.
The IG shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 17 and all mandatory headers as per [SIP]. For a description of the received SDP answer, refer to section 5.3.2.1.2, “Session Initiation”.
When parsing the b=RR:<bandwidth-value> line in the received SDP answer: if the bandwidth value agreed is non-zero, then the OITF shall send RTCP RRs and shall not send RTSP keep-alive messages. If the bandwidth value received is zero, then the OITF shall not send RTCP RRs but instead it shall send RTSP keep-alive messages.
If the OITF receives an error code with an Insufficient Bandwidth indication in the response from the IG, the OITF may perform a new SIP INVITE with a reduced maximum bandwidth for the content. This procedure may be repeated. If no agreement can be reached, the OITF may display a failure message to the user.
Finally to complete the SIP INVITE transaction, the OITF shall send a SIP ACK to the IG. The SIP ACK shall include the SIP headers defined in Table 18 and all mandatory headers as per [SIP].
To terminate a session, the OITF shall send a SIP BYE request to the IG that includes all headers listed in Table 19 and any other mandatory headers as per [SIP].
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP BYE includes all the mandatory headers as per [SIP] and the headers listed in Table 19. Following a successful validation, the IG shall generate a SIP BYE as specified in [TS124503] for originating sessions. The IG shall forward the received response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 20 and all mandatory headers as per [SIP].
Alternatively, on receipt of a SIP BYE request from the IPTV Control FE, the IG, after validating the request, shall forward the request to the OITF. The OITF shall respond with a SIP 200 OK response, which the IG forwards to the IPTV Control FE.
It is the responsibility of the OITF to refresh the unicast content streaming session, as per [SES-TIMR] before the session expires. The IG shall consider a session terminated if it is not refreshed.
To join a multicact content service outside the set of negotiated channels for the ongoing scheduled session, the OITF shall request session modification as per section 6.2.2.1.2, “Session Modification.”
If the channel the OITF intends to joins is already negotiated, the OITF shall follow the normal procedures for leaving and joining multicast channels.
If the PPV service the OITF intends to join is outside the set of channels negotiated within the ongoing scheduled session, the OITF shall request session modification as per section 6.2.2.1.2, “Session Modification.”
If the channel the OITF intends to joins is already negotiated, the OITF shall follow the normal procedures for leaving and joining multicast channels.
To subscribe to the event package related to parental control watched content for a registered IMPU, the OITF with the appropriate parental control authority over the user shall issue a SIP SUBSCRIBE request to the IG that includes the SIP headers as per Table 27. In addition, the OITF shall include all mandatory SIP headers as per [SIP] and that are missing from the table (e.g. Via, Max-Forwards).
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP SUBSCRIBE request includes all mandatory SIP headers as per [SIP] and the headers listed in Table 27. Following successful validation, the IG shall support the 3GPP IMS subscription to the event package as per [TS124503]. This includes inserting any additional mandatory SIP headers as required by [TS124503].
The IG shall return to the OITF the response received from the network.
The IG shall ensure that the OITF is synchronized with the timer for refreshing the subscription as desired by the network.
When a SIP NOTIFY is received by the IG, the IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the body of the incoming SIP NOTIFY is compliant to XML schema associated with the event package before sending it to the OITF. The incoming NOTIFY shall include the SIP headers depicted in Table 29 and any other mandatory SIP headers as per [SIP].
The OITF shall validate that the body of SIP NOTIFY is compliant to the XML schema associated with the parental control watched content event package. Following a successful validation, the OITF shall send a SIP 200 OK response to the IG. The SIP 200 OK response shall include the SIP headers depicted in Table 30 and any other mandatory SIP headers as per [SIP].
The IG acting as a B2BUA in accordance with section 6.2.1 shall first validate the SIP 200 OK response (or any other received response) before sending it to the network.
For all subsequent SIP NOTIFY requests received using the same SIP dialog, the IG acting as a B2BUA in accordance with section 6.2.1 shall perform the same processing. The IG shall consider a subscription terminated if it is not renewed by the OITF.
An OITF with proper parental control authority that desires to block a watched content for an IPTV end user under its authority shall initiate an instant message for that purpose by sending to the IG a SIP MESSAGE that includes all the SIP headers in Table 31 and any other mandatory SIP headers as per [SIP]. The content of the SIP MESSAGE shall include the body associated with “urn:oipf:application:iptv-parental-control”.
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP MESSAGE includes all the mandatory headers as per [SIP] and the headers listed in Table 31. Following a successful validation, the IG shall generate a SIP MESSAGE request to the network conformant to [SIP-IM] and [TS124503].
The IG acting as a B2BUA in accordance with section 6.2.1 shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 32 and any other mandatory SIP headers as per [SIP].
When the IG receives any SIP MESSAGE related to parental control, as indicated by the content type (being set to “urn:oipf:application:iptv-parental-control”) and destined for a user, the IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the incoming SIP MESSAGE is conformant to [SIP-IM] and [TS124503] and includes all the mandatory headers as per [SIP], [TS124503] and all the headers listed in Table 33. Following the successful validation, the IG shall forward the SIP MESSAGE to the appropriate OITF.
The OITF shall act on the incoming SIP MESSAGE in accordance with section 5.3.7.2.2, “” before it sends a response back to the IG.
When the SIP response is received from the OITF, the IG acting as a B2BUA in accordance with section 6.2.1 shall forward it to the network. The response shall include the SIP headers as per [SIP] and shall be validated by the IG before being sent to the network.
To initiate a notification request, the OITF shall initiate a SIP MESSAGE to the IG that includes all the SIP headers in Table 34 and any other mandatory SIP headers as per [SIP] (e.g. Via, Max-Forwards). The body of the SIP MESSAGE shall include the MIME type defined in section 5.3.8.6, “XML Schema for Notification Request for Broadcast Reminder”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP MESSAGE includes all the mandatory headers as per [SIP] and the headers listed in Table 34. Following a successful validation, the IG shall generate a SIP MESSAGE request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 35 and any other mandatory SIP headers as per [SIP].
If the OITF decides to store a content bookmark for watched content during a multicast of unicast content streaming session, and if permitted by the network to do so, the OITF shall initiate a SIP INFO request to the IG based on the SIP INFO framework. The SIP INFO request shall include all the SIP headers in Table 38 and any other mandatory SIP headers as per [SIP] (e.g. Via, Max-Forwards). The body of the SIP INFO message shall include the MIME type defined in section 5.3.9.5, “XML Schema for Content Bookmarking”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INFO includes all the mandatory headers as per [SIP] and the headers listed in Table 38. Following a successful validation, the IG shall generate a SIP INFO request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 39 and any other mandatory SIP headers as per [SIP].
At any time, the IG can receive a SIP UPDATE request from the network to remove or re-instate support for the reception of the CoD-Bookmark Info Package, according to section 12 of [PSS-MBMS] from an OITF.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP UPDATE request includes all the mandatory headers as per [SIP] and the headers listed in Table 40. Following a successful validation, the IG shall forward the SIP UPDATE request to the OITF. The IG shall forward the received response to the network. A SIP 200 OK response shall include the SIP headers defined in Table 41 and any other mandatory SIP headers as per [SIP].
The OITF shall follow the procedure defined in section 6.2.2.2.2, “Session Initiation” for establishing a unicact streaming session. Following that, the IG shall receive a SIP INFO request from the network, based on the SIP INFO framework, and that includes the bookmarks list related to the requested content. The body of the SIP INFO request shall include the XML schema depicted in section 5.3.9.5, “XML Schema for Content Bookmarking” and related to the CoD-Bookmark Info Package.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INFO request includes all the mandatory headers as per [SIP] and the headers listed in Table 36. Following a successful validation, the IG shall forward the SIP INFO request to the OITF. The IG shall forward the received response to the network.
To initiate a local PVR capture request, the OITF shall initiate a SIP MESSAGE to the IG that includes all the SIP headers in Table 42 and any other mandatory SIP headers as per [SIP] (e.g. Via, Max-Forwards). The body of the SIP MESSAGE shall include the MIME type defined in section 5.3.10.2, “XML Schema for PVR Service”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP MESSAGE includes all the mandatory headers as per [SIP] and the headers listed in Table 42. Following a successful validation, the IG shall generate a SIP MESSAGE request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 43 and any other mandatory SIP headers as per [SIP].
At any time, the IG can receive a SIP MESSAGE request from the network related to an outstanding local PVR request.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP MESSAGE request includes all the mandatory headers as per [SIP] and the headers listed in Table 44. The body of the SIP MESSAGE request shall include the XML schema defined in section 5.3.10.2, “XML Schema for PVR Service”. Following a successful validation, the IG shall forward the SIP INFO request to the OITF. The IG shall forward the received response to the network.
To initiate a network PVR capture request, the OITF shall initiate a SIP MESSAGE to the IG that includes all the SIP headers in Table 42 and any other mandatory SIP headers as per [SIP] (e.g. Via, Max-Forwards). The body of the SIP MESSAGE shall include the MIME type defined in section 5.3.10.2, “XML Schema for PVR Service” with the qualifications listed in section 5.3.11.1, “Protocol over HNI-IGI – HTTP Option”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP MESSAGE includes all the mandatory headers as per [SIP] and the headers listed in Table 42. Following a successful validation, the IG shall generate a SIP MESSAGE request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 43 and any other mandatory SIP headers as per [SIP].
At any time, the IG can receive a SIP MESSAGE request from the network reporting the outcome of a network PVR. The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP MESSAGE request includes all the mandatory headers as per [SIP] and the headers listed in Table 44. The body of the SIP MESSAGE request shall include the XML schema defined in section 5.3.11.2, “XML schema for nPVR recording result”. Following a successful validation, the IG shall forward the SIP MESSAGE request to the OITF. The IG shall forward the received response to the network.
To initiate a session related to a transferred session, the transferee OITF shall initiate a SIP INVITE to the IG that includes all the headers as per Table 16 and other mandatory headers as per [SIP] with the following additions:
The OITF shall also include an SDP conformant to step 1 as defined in section 5.3.2.1.2, “Session Initiation”. The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the request includes all the mandatory SIP headers as per [SIP] and headers listed in Table 16. Furthermore, the IG perform the steps depicted in section 6.2.2.9.1.2, “IG handling of session transfers when the transferor and transferee are behind the same IG”.
Following that, the IG acting as a B2BUA in accordance with section 6.2.1 shall generate an initial SIP INVITE request to the network as specified in [TS124503] for originating sessions.
The IG acting as a B2BUA in accordance with section 6.2.1 shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 17 and all mandatory headers as per [SIP]. For a description of the received SDP answer, refer to section 5.3.2.1.2, “Session Initiation”.
When parsing the b=RR:<bandwidth-value> line in the received SDP answer: if the bandwidth value agreed is non-zero, then the transferee OITF shall send RTCP RRs and shall not send RTSP keep-alive messages. If the bandwidth value received is zero, then the transferee OITF shall not send RTCP RRs but instead it shall send RTSP keep-alive messages.
If the transferee OITF receives an error code with an Insufficient Bandwidth indication in the response from the IG, the OITF may perform a new SIP INVITE with a reduced maximum bandwidth for the content. This procedure may be repeated. If no agreement can be reached, the OITF may display a failure message to the user.
Finally to complete the SIP INVITE transaction, the transferee OITF shall send a SIP ACK to the IG. The SIP ACK shall include the SIP headers defined in Table 18 and all mandatory headers as per [SIP].
Upon receipt by the IG acting as a B2BUA in accordance with section 6.2.1 of a SIP INVITE related to a session transfer (as indicated by the presence of the Replace header), if the transferor and the transferee are behind the same IG, then during the session transfer procedure, the transferor OITF shall receive a SIP re-INVITE request from the IG and where the SIP headers are conformant to Table 16 with the qualification in step 1 in section 5.3.13.1.1.2, “IG handling of Session Initiation Requests related to a session transfer”. The SDP shall conform to step 1 in section 5.3.13.1.1.2, “IG handling of Session Initiation Requests related to a session transfer” as well.
The OITF shall conform to step 2 in section 5.3.13.1.1.2, “IG handling of Session Initiation Requests related to a session transfer” and subsequently shall send a SIP 200 OK response, and where the SIP headers are set according to Table 17 with the qualification in step 2 in section 5.3.13.1.1.2, “IG handling of Session Initiation Requests related to a session transfer”.
Subsequently, the transferor OITF shall receive a SIP ACK form the IG acting as a B2BUA in accordance with section 6.2.1 conforming to Table 14 with the exception that the SIP headers are populated appropriately given that the ACK is sent from the IG to the OITF.
Following that, the IG shall perform steps 4 and 5 as depicted in section 5.3.13.1.1.2, “IG handling of Session Initiation Requests related to a session transfer”.
Note that this entire procedure is bypassed if the transferor and transferee are not behind the same IG.
An OITF that wants to locate a target OITF for session transfer purposes shall perform the procedures described in section 6.2.3.2.4, “Procedure for Subscription to the Registration-State Event Package”.
Subsequently a target OITF (transferee OITF) can be selected from the returned information.
A transferor OITF that desires to transfer a session to a transferee OITF shall initiate a SIP REFER request to the IG that includes all the SIP headers in Table 46 and any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards). The body of the SIP REFER message shall include the MIME type defined in section 5.3.13.2, “XML Schema for Session Transfer Information included in a session transfer request from the transferor to transferee”.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP REFER includes all the mandatory headers as per [SIP] and the headers listed in Table 46. Following a successful validation, the IG shall generate a SIP REFER request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the OITF. A SIP 202 OK response shall include the SIP headers defined in Table 47 and any other mandatory SIP headers as per [SIP].
Later at some point in time, the IG the shall receive a SIP NOTIFY request that reports the outcome of the session transfer request.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP NOTIFY request includes all the mandatory headers as per [SIP] and the headers listed in Table 48. Following a successful validation, the IG shall forward the SIP NOTIFY request to the OITF. The IG shall forward the received response to the network. The SIP 200 OK response shall include the SIP headers in Table 49.
At some point in time, during a session transfer, the IG the shall receive a SIP REFER request destined for a transferee OITF.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP REFER includes all the mandatory headers as per [SIP] and the headers listed in Table 46. The body of the SIP MESSAGE request shall include the XML schema defined in section 5.3.13.2, “XML Schema for Session Transfer Information included in a session transfer request from the transferor to transferee”. Following a successful validation, the IG shall forward the SIP REFER request to the transferee OITF.
The transferee OITF shall examine the incoming SIP REFER request as per step 2 in section 5.3.13.1.2.3, “Transferee OITF Receiving an Incoming Session Transfer Request – Push Mode”.
Once the transferee OITF accepts the incoming SIP REFER request, it shall send a SIP 202 OK response to the IG. The SIP 202 OK response shall include the SIP headers defined in Table 47 and all mandatory headers as per [SIP]. The IG shall validate the SIP 202 OK response before forwarding it to the network for delivery to the transferor OITF.
The transferee OITF shall then follow step 4 in section 5.3.13.1.2.3, “Transferee OITF Receiving an Incoming Session Transfer Request – Push Mode”, and proceed to initiate a new session according to the procedure in section 6.2.2.9.1.1, “Transferee Session Initiation Procedures Related to a Transferred Session”.
Once the session setup outcome is determined, the transferee OITF shall initiate a SIP NOTIFY request to the IG that includes all the SIP headers in Table 48 and any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards).
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP NOTIFY includes all the mandatory headers as per [SIP] and the headers listed in Table 48. Following a successful validation, the IG shall generate a SIP NOTIFY request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the transferee OITF. A SIP 200 OK response shall include the SIP headers defined in Table 49 and all mandatory headers as per [SIP].
To initiate a request to purchase digital media selected by an end-user within a unicast content streaming session, the OITF shall initiate a SIP INFO request to the IG, based on SIP INFO framework, that includes all the SIP headers in Table 21 and any other mandatory SIP headers as per [SIP] (e.g. Via, Max-Forwards). The SIP INFO request body shall include an XML document as defined in section 5.3.5.8, “XML Schema for Purchase Request of Digital Media”, which is associated with the Digital-Media-Purchase Info Package. The initiation of the SIP INFO request assumes that the IPTV Control FE indicated its willingness to receive the Digital-Media-Purchase Info Package.
The IG, acting as a B2BUA shall validate that the SIP INFO request includes all the mandatory headers as per [SIP] and the headers listed in Table 21. Following a successful validation, the IG shall generate a SIP INFO request as specified in [TS124503] for originating UA.
The IG shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 22 and any other mandatory SIP headers as per [SIP].
At any time, the IG can receive a SIP UPDATE request from the network to remove or re-instate support for the reception of the Digital-Media-Purchase Info package from an OITF.
The IG, acting as a B2B UA shall validate that the SIP UPDATE request includes all the mandatory headers as per [SIP] and the headers listed in Table 23. Following a successful validation, the IG shall forward the SIP UPDATE request to the OITF. The IG shall forward the received response to the network. A SIP 200 OK response shall include the SIP headers defined in Table 24 and any other mandatory SIP headers as per [SIP].
To initiate a session for a personalized channel, the OITF shall follow section 6.2.2.2.2, “Session Initiation” with the difference that the content identifier in this case for both the Request-URI and the To fields is set to the personalized channel identifier.
The IG, acting as a B2BUA in accordance with section 6.2.1 shall follows as well the same steps in section 6.2.2.2.2.
To retrieve the list of Service Providers, the OITF shall issue a SIP SUBSCRIBE request to the IG that includes the SIP headers as per Table 50. In addition, the OITF shall include all mandatory SIP headers as per [SIP] and that are missing from the table (e.g., Via, Max-Forwards).
The OITF shall include a message body associated with the appid “urn:oipf:application:iptv-SP-discovery” representing the capabilities of the OITF.
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP SUBSCRIBE request includes all the mandatory headers as per [SIP] and the headers listed in Table 50. Following a successful validation, the IG shall follow the procedure in section 6.1.3.1, “Service Provider Discovery”, when it comes to initiating a SIP SUBSCRIBE towards the Service Provider.
The IG acting as a B2BUA in accordance with section 6.2.1 shall return to the OITF the response received from the network as per step 3b in section 6.1.3.1, “Service Provider Discovery”.
The IG shall ensure that the OITF is synchronized with the timer for refreshing the subscription as desired by the network.
The OITF is responsible for refreshing the subscription based on the received timer from the network. The IG shall consider a subscription terminated if it is not refreshed by the OITF before expiry.
The procedure for refreshing a subscription is the same as the procedure for initiating a subscription.
This procedure shall be invoked in the following cases:
The IG shall extract the deviceID from the sip instance feature tag.
If the deviceID and the IMPU match another deviceID and IMPU whose state is held in the IG, the IG shall conclude that the OITF has undergone a restart and shall proceed to immediately clear all SIP sessions belonging to the OITF. Following that, the IG shall de-register all users registered from that OITF.
If GRUU is not requested, the IG shall not perform IMS registration when the IMPU is already registered; however, the IG shall maintain a binding between the Alias/IMPU, the OITF device from which the registration is received (extracted from the sip instance feature tag), and the new contact information including the sip instance feature tag, which provides an easy way to guarantee uniqueness within the Address of Record (AOR).
If the identity being registered is not the default identity and if the default identity is not bound to any OITF in the consumer network, then the IG shall deregister the default identity at the end of this procedure.
If the identity being registered is the default identity, and if the default identity is not bound to any OITF in the consumer network, then the IG shall deregister its contact address for the default identity at the end of this procedure.
To register an identity, the OITF shall issue a SIP REGISTER request to the IG that includes the SIP headers as per Table 58. In addition, the OITF shall include all mandatory SIP headers as per [SIP] and that are missing from the table (e.g., Via, Max-Forwards).
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP REGISTER request includes all the mandatory headers as per [SIP] and the headers listed in Table 58. Following a successful validation, the IG shall support the 3GPP IMS registration procedure as per TS 124 503 [TS124503]. This includes handling of user authentication and authorization., and including any additional SIP headers that are mandatory based on TS 124 503 [TS124503].
Once the IG completes the IMS registration procedure, it shall return a SIP 200 OK to the OITF that includes the SIP headers listed in Table 59.
Following a successful registration, the IG shall maintain a binding between the Alias/IMPU, the OITF device from which the registration is received (extracted from the sip instance feature tag), and the new contact information including the sip instance feature tag for the duration of the registration.
This procedure is invoked in the following cases:
If GRUU is not supported for this registration, the IG shall not perform IMS deregistration when an IMPU is already registered on multiple OITFs, but the IG shall remove the binding between the IMPU and the OITF from which the user has deregistered (extracted from the sip instance feature tag) including the contact information (including the sip instance feature tag).
If GRUU is not supported for this registration, the IG shall perform the IMS deregistration procedure if the IMPU was bound to a single OITF.
Note that if following the successful de-registration of the IMPU, and if there are no more OITFs still turned on in the consumer network, the IG shall re-register the default identity from the IG point of view.
To de-register an identity, the OITF shall issue a SIP REGISTER request to the IG that includes the SIP headers as per Table 58. The OITF shall set the expires parameter to 0 for the contact to be de-registered. In addition, the OITF shall include all mandatory SIP headers as per [SIP] and that are missing from the table (e.g., Via, Max-Forwards).
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP REGISTER request includes all the mandatory headers as per [SIP] and the headers listed in Table 58. Following a successful validation, the IG shall support the 3GPP IMS de-registration procedure as per TS 124 503 [TS124503]. Once the IG completes the IMS de-registration procedure, it shall return a SIP 200 OK to the OITF that includes the SIP headers listed in Table 59.
Note that the OITF shall tear down and release all SIP sessions involving the contact to be de-registered prior to de-registering that contact. If the OITF does not tear down those SIP sessions before initiating the de-registration request to the IG, the IG shall tear down those sessions before performing the deregistration procedure described above.
Following a successful de-registration, the IG shall remove the binding between the Alias/IMPU, the OITF device from which the registration is received (extracted from the sip instance feature tag).
This procedure shall be initiated by the OITF at any time before the expiry of the registration refresh timer.
The procedure is the same as the procedure for registering a user. A registration shall be terminated if it is not refreshed before the expiry of the registration refresh timer.
For an OITF-initiated registration, the IG shall consider a registration terminated (that is the user de-registered) if it is not refreshed. In this case, the IG executes the procedures associated with user deregistration.
This procedure shall be invoked by the OITF immediately after the successful registration of an IMPU.
To subscribe to the registration-state event package for the successfully registered IMPU, the OITF shall issue a SIP SUBSCRIBE request to the IG that includes the SIP headers as per Table 60. In addition, the OITF shall include all mandatory SIP headers as per [SIP] and that are missing from the table (e.g., Via, Max-Forwards).
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP SUBSCRIBE request includes all the mandatory headers as per [SIP] and the headers listed in Table 60. Following a successful validation, the IG shall support the 3GPP IMS subscription to registration-event package as per TS 124 503 [TS124503]. This includes inserting any additional SIP headers that are mandatory based on TS 124 503 [TS124503].
The IG acting as a B2BUA in accordance with section 6.2.1 shall return to the OITF the response received from the network.
The IG shall ensure that the OITF is synchronized with the timer for refreshing the subscription as desired by the network.
When a SIP NOTIFY request is received by the IG, the IG acting as a B2BUA in accordance with section 6.2.1 shall validate the incoming NOTIFY request before sending it to the OITF. The incoming NOTIFY request shall include the SIP headers depicted in Table 62 and any other mandatory headers as per [SIP].
The OITF shall validate that the SIP body is compliant to the XML schema associated with the registration-state event package. Following a successful validation, the OITF shall send a SIP 200 OK response to the IG. The SIP 200 OK response shall include the SIP headers depicted in Table 63. The IG acting as a B2BUA in accordance with section 6.2.1 shall first validate the SIP 200 OK response (or any other received response) before sending it to the network.
For all subsequent SIP NOTIFY requests using the same SIP dialog, the IG acting as a B2BUA in accordance with section 6.2.1 shall perform the same processing.
The OITF is responsible for refreshing the subscription based on the received timer from the network. The IG shall consider a subscription terminated if it is not refreshed by the OITF before expiry.
The procedure for refreshing a subscription is the same as the procedure for initiating a subscription.
To subscribe for the purpose of receiving notification of changes in a service profile, the OITF shall issue a SIP SUBSCRIBE request to the IG that includes the SIP headers as per Table 54. In addition, the OITF shall include all mandatory SIP headers as per [SIP] and that are missing from the table (e.g., Via, Max-Forwards). The body of the SIP SUBSCRIBE request shall include the list of the requested URIs associated with the XCAP resources for which the subscription is issued. The MIME Type of the document inserted in the body will be signalled by the Content-Type header set to “application/vnd.oipf.userprofile+xml”.
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP SUBSCRIBE request includes all the mandatory headers as per [SIP] and the headers listed in Table 54. Following successful validation, the IG shall support the 3GPP IMS subscription to event packages and shall send a SUBSCRIBE request to the IPTV Service Profile FE in accordance with [TS124503], [SIP-EVNT] and [XCAP-EVT].
The IG acting as a B2BUA in accordance with section 6.2.1 shall return to the OITF the response received from the network.
The IG shall ensure that the OITF is synchronized with the timer for refreshing the subscription as desired by the network.
When a SIP NOTIFY request is received by the IG, the IG acting as a B2BUA in accordance with section 6.2.1 shall validate the incoming NOTIFY request includes the SIP headers depicted in Table 56 and any other mandatory headers as per [SIP].
The OITF shall validate that the SIP body is compliant to the XML schema associated with application/XCAP-diff+xml as defined in [XCAP-EVT] and [XCAP-DFF]. Following a successful validation, the OITF shall send a SIP 200 OK response to the IG. The SIP 200 OK response shall include the SIP headers depicted in Table 57. The IG acting as a B2BUA in accordance with section 6.2.1 shall first validate the SIP 200 OK response (or any other received response) before sending it to the network.
For all subsequent SIP NOTIFY requests received using the same SIP dialog, the IG acting as a B2BUA in accordance with section 6.2.1 shall perform the same processing. The IG shall consider a subscription terminated if it is not renewed by the OITF.
To initiate an instant message, the OITF shall send a SIP MESSAGE to the IG that includes all the SIP headers in Table 69 and any other mandatory headers as per [SIP]. The content of the SIP MESSAGE shall be conformant to RFC 3428 [SIP-IM].
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP MESSAGE includes all the mandatory headers as per [SIP] and the headers listed in Table 69. Following a successful validation, the IG shall generate a SIP MESSAGE request to the network conformant to [SMPL-PRES].
The IG shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 70 and all mandatory headers as per [SIP].
When the IG receives any SIP MESSAGE destined for a user, the IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the incoming SIP MESSAGE is conformant to [SMPL-PRES] and includes all the mandatory headers as per [SIP] and all the headers listed in Table 71. Following the successful validation, the IG shall forward the SIP MESSAGE to the appropriate OITF.
When the SIP response is received from the OITF, the IG acting as a B2BUA in accordance with section 6.2.1 shall forward it to the network. The response shall include the SIP headers in Table 70 and shall be validated by the IG before being sent to the network.
To subscribe to the presence event package for any registered IMPU, the OITF shall issue a SIP SUBSCRIBE request to the IG that includes the SIP headers as per Table 88. In addition, the OITF shall include all mandatory SIP headers as per [SIP] and that are missing from the table (e.g. Via, Max-Forwards).
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP SUBSCRIBE request includes all the mandatory headers as per [SIP] and the headers listed in Table 88. Following successful validation, the IG shall support the 3GPP IMS subscription to presence event package as per [SMPL-PRES]. This includes inserting any additional SIP headers that are mandatory.
The IG shall return to the OITF the response received from the network.
The IG shall ensure that the OITF is synchronized with the timer for refreshing the subscription as desired by the network.
When a SIP NOTIFY request is received by the IG, the IG shall validate the incoming NOTIFY request being compliant to [SMPL-PRES] before sending it to the OITF. The incoming NOTIFY request shall include the SIP headers depicted in Table 90 and any other mandatory headers as per [SIP].
The OITF shall validate that the SIP body is compliant to the XML schema associated with the presence event package. Following a successful validation, the OITF shall send a SIP 200 OK response to the IG. The SIP 200 OK response shall include the SIP headers depicted in Table 91. The IG shall first validate the SIP 200 OK response (or any other received response) before sending it to the network.
For all subsequent SIP NOTIFY requests received using the same SIP dialog, the IG acting as a B2BUA in accordance with section 6.2.1 shall perform the same processing. The IG shall consider a subscription terminated if it is not renewed by the OITF.
To publish presence information, the OITF shall send a SIP PUBLISH request to the IG that includes all the SIP headers in Table 92 and other mandatory headers as per [SIP]. The content of the SIP PUBLSIH shall be based on section 5.5.4.6, “Presence Notification and Publish Schema”.
The IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP PUBLISH request includes all the mandatory headers as per [SIP] and the headers listed in Table 92. Following a successful validation, the IG shall generate a SIP PUBLISH request to the network conformant to [SMPL-PRES].
The IG shall forward any received SIP response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 93 and all mandatory headers as per [SIP].
To initiate an IM session, the OITF shall initiate a SIP INVITE request to the IG that includes all the SIP headers in Table 72. However, the body of the SIP INVITE shall be populated with the following information to initiate the MSRP session:
The OITF shall also include any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards).
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INVITE request includes all the mandatory headers as per [SIP] and the headers listed in Table 72. Following a successful validation, the IG shall generate an initial INVITE request as specified in [SMPL-IM].
The IG acting as a B2BUA in accordance with section 6.2.1 shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 73 and all mandatory headers as per [SIP].
The OITF shall save the information returned in the SDP for the purpose of MSRP.
Finally to complete the INVITE transaction, the OITF shall then send a SIP ACK to the IG. The SIP ACK shall include the SIP headers defined in Table 74 and all mandatory headers as per [SIP].
When the IG receives a SIP INVITE request related to an IM session and destined for a user, the IG acting as a B2BUA in accordance with section 6.2.1 shall validate that the incoming SIP INVITE is conformant to [SMPL-IM] and includes all the mandatory headers as per [SIP] and all the headers listed in Table 85. Following the successful validation, the IG shall forward the SIP INVITE to the appropriate OITF including the received SDP.
The OITF shall validate that the SDP includes all the necessary and mandatory parameters per [RFC4975]. The OITF shall store the necessary information and shall send its response to the IG. The SDP included in the response shall include the following information:
When the SIP response is received from the OITF, the IG acting as a B2BUA in accordance with section 6.2.1 shall forward it to the network. The response shall include the SIP headers in Table 86 and shall be validated by the IG before being sent to the network.
Finally to complete the INVITE transaction, the IG shall forward the received SIP ACK from the network to the OITF. The SIP ACK shall include the SIP headers defined in Table 87 and all mandatory headers as per [SIP].
To terminate a session, the OITF shall send a SIP BYE request to the IG that includes all headers listed in Table 81 and any other mandatory headers as per [SIP].
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP BYE request includes all the mandatory headers as per [SIP] and the headers listed in Table 81. Following a successful validation, the IG shall generate a SIP BYE request as specified in [SMPL-IM]. The IG shall forward the received response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 82 and all mandatory headers as per [SIP].
Alternatively, on receipt of a SIP BYE request from the IPTV Control FE, the IG acting as a B2BUA in accordance with section 6.2.1, after validating the request, to include all headers listed in Table 83 and any other mandatory headers as per [SIP], shall forward the request to the OITF. The OITF shall respond with a SIP 200 OK response, which the IG forward to the IPTV Control FE.
The OITF can initiate a content sharing session and can initiate a change request to transfer the session to other OITF or to maintain an existing session between two sides.
To initiate a content sharing session, the OITF shall send a SIP INVIVE to the IG that includes all the SIP headers and any other mandatory headers as per [SIP]. SDP shall be used as specified in [TS124503].
The IG shall validate that the SIP INVITE includes all the mandatory headers as per [SIP]. Following a successful validation, the IG shall generate a SIP INVITE request to the network conformant to [SIP].
A REFER message associated with transferor OITF shall be sent to the IG that includes all the SIP headers and any other mandatory headers as per [SIP].
When receiving a SIP REFER request, the IPTV Control FE shall authorize the request. If the user is not authorized to perform session transfer, an appropriate SIP error response is returned. If the user is authorized, the IPTV Control FE shall forward the SIP REFER to the ASM for delivery to its destination (transferee OITF). The IPTV Control FE shall be stateful to the session transfer procedure.
When receiving a SIP NOTIFY associated with a SIP REFER request, the IPTV Control FE shall validate the SIP NOTIFY. If not successfully validated, an appropriate SIP response shall be returned. If successfully validated, the IPTV Control FE shall forward the SIP NOTIFY to the ASM for delivery to the destination (transferor OITF).
When the IG receives a SIP INVITE request related to a content sharing session and destined for a user, the IG shall validate that the incoming SIP INVITE is conformant to [SMPL-IM] and includes all the mandatory headers as per [SIP]. Following the successful validation, the IG shall forward the SIP INVITE to the appropriate OITF including the received SDP
When the SIP response is received from the OITF, the IG shall forward it to the network.
To terminate a session, the OITF shall send a SIP BYE request to the IG that includes all the mandatory headers as per [SIP].
The IG, acting as a B2B UA shall validate that the SIP BYE request includes all the mandatory headers as per [SIP]. Following a successful validation, the IG shall generate a SIP BYE request as specified in [SIP].The IG shall forward the received response to the OITF. A SIP 200 OK response shall include all the mandatory headers as per [SIP].
Alternatively, on receipt of a SIP BYE request from the IPTV Control FE, the IG, after validating the request, to include all the mandatory headers as per [SIP], shall forward the request to the OITF. The OITF shall respond with a SIP 200 OK response, which the IG forward to the IPTV Control FE.
To initiate a MM telephony session, the OITF shall initiate a SIP INVITE request to the IG that includes all the SIP headers in Table 132. The body of the SIP INVITE shall be populated in accordance with [SDP] reflecting the appropriate description for each media, and corresponding codecs for MM session. Section 6.2.4.6.8 entitled “SDP Media Type parameters for media description” details the SDP representation for codecs that can be used by the OITF.
The OITF shall also include any other mandatory headers as per [SIP] (e.g. Via, Max-Forwards).
The IG, being service aware, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP INVITE request includes all the mandatory headers as per [SIP] and the headers listed in Table 132. From the included codecs and requested media, the IG shall be able to conclude that the requested session is for MMTEL. Following a successful validation, and detection of the implied MMTEL service for the incoming session, the IG shall generate an initial INVITE request towards the ASM as specified in [TS124503] and [TS181005] and shall include all mandatory headers.
The IG acting as a B2BUA in accordance with section 6.2.1 shall forward any received SIP response to the OITF including the information in the SDP. A SIP 200 OK response shall include the SIP headers defined in Table 133 and all mandatory headers as per [SIP].
Finally to complete the INVITE transaction, the OITF shall then send a SIP ACK to the IG. The SIP ACK shall include the SIP headers defined in Table 134 and all mandatory headers as per [SIP]. The IG acting as a B2BUA, in accordance with section 6.2.1, shall forward the SIP ACK to the ASM.
When the IG receives a SIP INVITE request related to an MMTEL session and destined for a user, the IG shall validate that the incoming SIP INVITE is conformant to [TS124503] and [TS181005] and includes all the mandatory headers as per [SIP] and all the headers listed in Table 135. Following the successful validation, the IG acting as a B2BUA in accordance with section 6.2.1 shall forward the SIP INVITE to the appropriate OITF including the received SDP.
The OITF shall validate that the SDP includes all the necessary and mandatory parameters per [TS124503] and [TS181005] and the mandatory information pertinent to the chosen codecs in accordance with section 6.2.4.6.8 entitled “SDP Media Type parameters for media description”. The OITF shall store the necessary information and shall send its response to the IG. The SDP included in the response shall include what is acceptable to the OITF based on the received SDP per [TS124503] and [TS181005].
When the SIP response is received from the OITF, the IG acting as a B2BUA in accordance with section 6.2.1, shall forward it to the network. The response shall include the SIP headers in Table 136 and shall be validated by the IG before being sent to the network.
Finally to complete the INVITE transaction, the IG acting as a B2BUA in accordance with section 6.2.1 shall forward the received SIP ACK from the network to the OITF. The SIP ACK shall include the SIP headers defined in Table 137 and all mandatory headers as per [SIP].
To terminate a session, the OITF shall send a SIP BYE request to the IG that includes all headers listed in Table 138 and any other mandatory headers as per [SIP].
The IG, acting as a B2BUA in accordance with section 6.2.1 shall validate that the SIP BYE request includes all the mandatory headers as per [SIP] and the headers listed in Table 138. Following a successful validation, the IG shall generate a SIP BYE request as specified in [TS124503] and [TS181005] towards the ASM. The IG acting as a B2BUA in accordance with section 6.2.1 shall forward the received response to the OITF. A SIP 200 OK response shall include the SIP headers defined in Table 139 and all mandatory headers as per [SIP].
Upon receipt of a SIP BYE request from the network, the IG, after validating the request to include all headers listed in Table 140 and any other mandatory headers as per [SIP], and acting as a B2BUA in accordance with section 6.2.1 shall forward the request to the OITF.
The OITF shall respond with a SIP 200 OK response. The SIP 200 OK response shall include the headers in Table 141, and which the IG, acting as a B2BUA in accordance with section 6.2.1 shall forward to the network.
SIP Header | Source of Information for Coding purposes |
---|---|
Request Line The Request-URI in the INVITE request shall be set to the called identity | RFC 3261 [SIP] INVITE <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To The URI part of To shall be set to the value of the Request URI in the “Request-Line” | RFC 3261 [SIP] |
Contact If GRUU has not been requested at registration, then the URI parameter and the sip.instance feature tag must be included and must match what is sent in the contact header included in the registration request. If GRUU has been requested at registration, then the OITF shall include in the contact header the returned GRUU during the registration process. The IG includes all other mandatory parameters that are absent. Expires parameter should be included | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Content-Type | RFC 3261 [SIP] (application/sdp) |
Content-Length | RFC 3261 [SIP] |
Supported If GRUU is used, Supported shall also be set to “gruu” | RFC 3261 [SIP] set to timer |
Session-Expires | RFC 4028 [SES-TIMR] |
SIP Header | Source of Information for Coding purposes |
---|---|
Response Line | RFC 3261 [SIP] SIP/2.0 <response> |
From | RFC 3261 [SIP] |
To | RFC 3261 [SIP] |
Contact | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Session-Expires | RFC 4028 [SES-TIMR] |
Content-Type | RFC 3261 [SIP] |
Content-Length | RFC 3261 [SIP] |
SIP Header | Source of Information for Coding purposes |
---|---|
Request Line The Request-URI in the ACK request shall be the contact included in the response to the INVITE message | RFC 3261 [SIP] ACK <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To The URI part of To shall be set to the value of the Request URI in the “Request-Line” of the initial request | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Contact The URI parameter must be included, and must match what has been inserted in the INVITE message. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
Content-Type | RFC 3261 [SIP] (application/sdp) |
Content-Length | RFC 3261 [SIP] |
Supported If GRUU is used, Supported shall also be set to “gruu” | RFC 3261 [SIP] set to timer |
Session-Expires | RFC 4028 [SES-TIMR] |
SIP Header | Source of Information for Coding purposes |
---|---|
Request Line The Request-URI in the INVITE request shall be set to the called identity (the user logged in user IMPU on an OITF) | RFC 3261 [SIP] INVITE <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To The URI part of To shall be set to the value of the Request URI in the “Request-Line” | RFC 3261 [SIP] |
Contact | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Content-Type | RFC 3261 [SIP] (application/sdp) |
Content-Length | RFC 3261 [SIP] |
Supported | RFC 3261 [SIP] set to timer, and/or GRUU if supported by remote user |
Session-Expires | RFC 4028 [SES-TIMR] |
SIP Header | Source of Information for Coding purposes |
---|---|
Response Line | RFC 3261 [SIP] SIP/2.0 <response> |
From | RFC 3261 [SIP] |
To | RFC 3261 [SIP] |
Contact If GRUU has not been requested at registration, then the URI parameter and the sip.instance feature tag must be included and must match what is sent in the contact header included in the registration request. If GRUU has been requested at registration, then the OITF shall include in the contact header the returned GRUU during the registration process. Expires parameter should be included. The IG includes all other mandatory parameters that are absent. | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Session-Expires | RFC 4028 [SES-TIMR] |
Content-Type | RFC 3261 [SIP] |
Content-Length | RFC 3261 [SIP] |
SIP Header | Source of Information for Coding purposes |
---|---|
Request Line The Request-URI in the ACK request shall be the contact included in the response to the INVITE message | RFC 3261 [SIP] ACK <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To The URI part of To shall be set to the value of the Request URI in the “Request-Line” of the initial request | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Contact The URI parameter must be included, and must match what has been included in the initial INVITE message. | RFC 3261 [SIP] |
SIP Header | Source of Information for Coding purposes |
---|---|
Request Line Note: The Request URI must match the contact URI included in the contact field of the SIP INVITE (for outgoing session) or a 200 OK (for incoming session) | RFC 3261 [SIP] BYE <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Content-Length must be set to 0 | RFC 3261 [SIP] |
Contact | RFC 3261 [SIP] |
SIP Header | Source of Information for Coding purposes |
---|---|
Response Line | RFC 3261 [SIP] SIP/2.0 <response> |
From | RFC 3261 [SIP] |
To | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
SIP Header | Source of Information for Coding purposes |
---|---|
Request Line Note: The Request URI must match the contact URI included in the contact field of the SIP INVITE (for outgoing session) or a 200 OK (for incoming session) | RFC 3261 [SIP] BYE <Request URI> SIP/2.0 |
From | RFC 3261 [SIP] |
To | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
Content-Length must be set to 0 | RFC 3261 [SIP] |
Contact | RFC 3261 [SIP] |
SIP Header | Source of Information for Coding purposes |
---|---|
Response Line | RFC 3261 [SIP] SIP/2.0 <response> |
From | RFC 3261 [SIP] |
To | RFC 3261 [SIP] |
Call-ID | RFC 3261 [SIP] |
CSeq | RFC 3261 [SIP] |
This section describes the media configuration in SDP for all audio and video codecs defined in [OIPF_MEDIA2] for multimedia telephony services.
Note: RFC 3640 [RFC3640] defines transport and signalling for all MPEG-4 media types. To use it for MPEG-4 AAC-LD/ELD audio the “streamType” is set to “5” to signal an audio stream and the “mode“ is either set to “aac-hbr” or “aac-lbr”. The hexadecimal value of the “config” parameter is the AudioSpecificConfig(), as defined in [AAC]. The AudioSpecificConfig() contains the audioObjectType, that shall be set to “39” for AACELD and “23” for AACLD.
Example SDP for AACLD, stereo 48kHz:
m=audio 49230 RTP/AVP 96
a=rtpmap:96 mpeg4-generic/48000/2
a=fmtp:96 streamtype=5; profile-level-id=52; mode=AAC-hbr; config=11B0; sizeLength=13;
indexLength=3; indexDeltaLength=3; constantDuration=1024
Example SDP for G.719, stereo 48kHz:
m=audio 49230 RTP/AVP 96
a=rtpmap:96 G719/48000/2
The RTSP protocol shall be used on UNIS-11 and NPI-10 for unicast service setup and delivery. The OITF shall obtain an RTSP request URL from the content guide, prior to delivery of the media from a Cluster Controller. The use of RTSP shall comply with RFC 2326 [RTSP] and with the following profile.
The following describes the RTSP Profile for this Release. The functionalities not identified in this section are out of scope of OIPF:
The RTSP client shall understand the class of each status code, i.e., 1xx Information, 2xx Success, 3xx Redirection, 4xx Client Error, and 5xx Server Error. Additionally, a client shall understand the following status codes:
Servers shall not use interleaved RTP and RTSP over TCP, as per section 10.12, “Embedded (Interleaved) Binary Data” of [RTSP].
Clients shall not use PLAY messages in the PLAY state as keep-alives (section 10.5 of [RTSP]).
Servers shall not use RTSP over UDP, see Appendix G of [RTSP] and related functionality like the rtspu URI scheme in section 22.14.3 of [RTSP].
Regarding the RTSP Header definitions, the client shall support the following headers:
Additionally, the following clarifications and best practices are added:
Regarding keep-alive mechanisms, the following mechanisms are recommended in this order:
Finally, the RTSP OPTIONS Method should be used.
Regarding section 12.17, “CSeq” of [RTSP], the current best practice rules and clarifications are added were not clear in RTSP, in particular:
Regarding non-seekable streams, Annex C.1.5 of [RTSP], these are indicated by using open-ended time intervals via a=range attribute in SDP. E.g., a=range:npt=0-
Regarding Content-Length, an RTSP message with a message body shall include the Content-Length header. This can be misinterpreted from sections 4.3 and 12.14 of [RTSP], because section 4.3 of [RTSP] refers to HTTP/1.1 (which only recommends it) while section 12.14 of [RTSP] clearly says that it must be included.
Regarding RTP-Info, section 12.33 of [RTSP]:
When performing RTSP session setup, the OITF shall use the request URL to send a DESCRIBE message to the Cluster Controller to obtain a media SDP. The DESCRIBE message shall include the Accept header with the application/sdp content type. The Cluster Controller or CDF shall return a Content-Type header with application/sdp and the format of the body shall be according to RFC 4566 [SDP] unless there is redirection of DESCRIBE or SETUP. The OITF shall then issue a SETUP request to the Cluster Controller.
If the Cluster Controller can handle the request, the DESCRIBE and SETUP messages shall be forwarded to the most appropriate CDF.
If the Cluster Controller cannot handle the request, the Cluster Controller shall reply with a redirect response (Moved) message containing a URL of another Cluster Controller. The redirection may occur when receiving either a DESCRIBE or a SETUP.
If the Cluster Controller sends a redirect response to the SETUP request, the OITF may send a new DESCRIBE request.
If the setup is successful the CDF shall reply with a 200 OK message that shall be proxied by the Cluster Controller to the OITF. After receiving the setup response the OITF may send PLAY and PAUSE messages to the Cluster Controller.
The Cluster Controller shall modify the RTSP URL to forward the RTSP messages to the chosen CDF function, when the messages are initiated from the OITF.
When receiving error messages from the CDF, the Cluster Controller shall either forward them to the OITF or try another CDF.
When the OITF receives an error message, it may display appropriate messages to the end user. The error messages may also be handled by the downloaded DAE or native application before being displayed to the user.
On receiving a request from the user to start playback, the OITF shall send an RTSP PLAY message to the Cluster Controller.
The RTSP fields in the RTSP PLAY message shall be filled as follows:
The Scale header shall be set as follows:
If the request is to pause the playback, the OITF shall send an RTSP PAUSE message.
On receipt of a RTSP PLAY or PAUSE request, the Cluster Controller shall forward the message to the chosen CDF.
The CDF shall respond with a 200 OK message. The contents of the 200 OK response shall be as follows:
For OITF devices that require retrieving the position and the duration parameter from the server for operational reasons, the OITF shall support the method GET_PAREMETER message for that purpose.
All OITF devices shall support the retrieval from the server of the scales parameter through the GET_PARAMETER message.
Any other parameter not supported by the Cluster Controller used in the GET_PARAMETER request shall be rejected by the Cluster Controller with an appropriate error code. An empty body shall be allowed for the RTSP keep-alive message.
If RTSP is used as a keep-alive, then the timeout for sending the request is based on the timeout parameter specified in the session header in the RTSP SETUP response. If timeout parameter is not specified then a default value of 60 seconds shall be used.
On receipt of the RTSP GET_PARAMETER request, the Cluster Controller shall forward the message to the chosen CDF.
The CDF shall respond with a 200 OK message with the requested values or empty in the case of a keep-alive message. The message shall be forwarded to the OITF.
On receipt of the beginning-of-stream or end-of-stream indication from the CDF, the Cluster Controller may send an RTSP ANNOUNCE to the OITF with an indication that the beginning-of-stream or end-of-stream has been reached. The Notice header shall be included with the notice code value set to “2104 Start-of-Stream Reached” or “2101 End of Stream Reached”.
Note: The header and code is based on [RTSP2-AN].
On receipt of the RTSP ANNOUNCE with an end-of-stream or beginning-of-stream indication, the OITF may take relevant actions to handle the event (e.g. terminating the session, rewinding the media stream, etc.). The OITF shall respond with a RTSP 200 OK.
The CDF shall not queue successive PLAY messages for processing while in a play state. An incoming new PLAY message shall result in an immediate termination by the CDF of the processing associated with a previous pending PLAY message if applicable.
If the CFD detects an event that leads it to have to terminate a user session, the CDF shall send an RTSP ANNOUNCE to the cluster controller with an indication that the session shall be terminated. The Notice header shall be included with the notice code value set to “5402 Client Session Terminated”. The cluster controller shall forward the message to the OITF, and return an RTSP 200 OK to the CDF.
Note: The header and code is based on [RTSP2-AN].
On receipt of the RTSP ANNOUNCE with a client session terminate indication, the OITF shall return an RTSP 200 OK then proceed to terminate the session in accordance with section 7.1.1.1.3, “RTSP Session Teardown”.
If the Cluster controller detects an event that leads it to have to terminate a user session, the cluster controller shall send an RTSP ANNOUNCE to the OITF with an indication that the session shall be terminated. The Notice header shall be included with the notice code value set to “5402 Client Session Terminated”.
Note: The header and code is based on [RTSP2-AN].
On receipt of the RTSP ANNOUNCE with a client session terminate indication, the OITF shall return an RTSP 200 OK then proceed to terminate the session in accordance with section 7.1.1.1.3, “RTSP Session Teardown”.
To tear down a unicast session, the OITF shall use a RTSP TEARDOWN message and shall wait for a 200 OK response from the Cluster Controller. The Cluster Controller shall relay the RTSP TEARDOWN message to the CDF and relay the 200 OK message to the OITF.
The OITF acting as an RTSP Client and the Cluster Controller acting as an RTSP Server shall support at least the following messages: RTSP SETUP, RTSP TEARDOWN, RTSP DESCRIBE, RTSP PLAY, RTSP PAUSE, RTSP GET_PARAMETER, RTSP ANNOUNCE, and RTSP OPTIONS.
The CDF as an RTSP server shall support at least the following messages: RTSP SETUP, RTSP TEARDOWN, RTSP DESCRIBE, RTSP PLAY, RTSP PAUSE, RTSP OPTIONS, and RTSP GET_PARAMETER.
The RTSP protocol shall be used on NPI-10 for unicast content streaming session setup and UNIS-11 and NPI-10 for unicast content streaming service delivery.
The OITF shall obtain the appropriate RTSP request URI, RTSP session ID, and the RTP media parameters, prior to content delivery from the assigned Cluster Controller.
If the OITF supports RTSP/RTCP monitoring, it shall also include the a=OIPF-QoS-Metrics line, the a=rtcp-xr line and the b=RR line prior to content delivery from the assigned CC, where:
The use of RTSP shall comply with RFC 2326 [RTSP] with modifications defined by this specification.
Guidelines for specifying cumulative metrics to be conveyed using the RTSP Headers defined in [OIPF_PROT_EX2]. Similarly to the RTCP case, “OIPF-BasicPerfMonCumulSubset1” is used in this specification as a placeholder and for illustrative purposes.
When the Cluster controller receives a SIP OPTIONS message to retrieve missing parameters, it shall send an RTSP DESCRIBE message to an appropriate CDF. The “Accept” header shall be set to “application/sdp”.
The CDF shall reply with a RTSP 200 OK message with the Content-type header set to “application/sdp”.
If the CDF replied with a redirection response, the Cluster Controller shall send a new RTSP DESCRIBE to the new CDF.
If the Cluster Controller failed to successfully complete the RTSP DESCRIBE transaction, it shall return an appropriate error message to the SIP OPTIONS message.
The OITF shall not use the RTSP SETUP message. The RTSP session setup is initiated with a SIP INVITE.
When receiving a COD session initiation SIP request from the CDN Controller, the Cluster Controller shall choose the appropriate CDF and issue an RTSP SETUP message with the following parameters:
If the Cluster Controller receives an error message from the CDF, it may try another CDF. It may also reply with the appropriate SIP error message to the CDN Controller (see section 6.1.2.1.3, “Content Reporting and Management of Content Reporting.”)
The Cluster Controller shall issue a SETUP request for each media line (if the content is FEC protected).
If the new CDF sends a redirect response to the SETUP request, the Cluster Controller shall send a new SETUP request to the new CDF.
If the Cluster Controller failed to successfully complete the RTSP SETUP transaction, it shall return an appropriate error message to the SIP INVITE.
On receiving a request from the user to start playback, the OITF shall follow the procedures defined in [TS183063] section 7.1.1.2 with the OITF acting as a UE and the Cluster Controller acting as a MCF.
On receiving a request from the user to modify playback, the OITF shall follow the procedures defined in [TS183063] section 7.1.1.3 with the OITF acting as a UE and the Cluster Controller acting as a MCF.
On receipt of a RTSP PLAY or PAUSE request, the Cluster Controller shall forward the message to the chosen CDF.
The CDF shall respond with a 200 OK message. The contents of the 200 OK response shall be as follows:
On receiving a request from the user to retrieve playback information, the OITF may send an RTSP GET_PARAMETER message. The OITF may retrieve the following information:
The total duration in seconds of the media to be played.
Any other parameter not supported by the Cluster Controller used in the RTSP GET_PARAMETER request shall be rejected by the Cluster Controller with an appropriate error code. An empty body shall be allowed for the RTSP keep alive message.
On receipt of the RTSP GET_PARAMETER request, the Cluster Controller shall forward the message to the chosen CDF.
The CDF shall respond with a 200 OK message with the requested values. The message shall be forwarded to the OITF.
On receipt of the beginning-of-stream or end-of-stream indication from the CDF, the Cluster Controller may send an RTSP ANNOUNCE to the OITF with an indication that the beginning-of-stream or end-of-stream has been reached. The “Notice” header shall be included with the notice code value set to “2104 Start-of-Stream-Reached” or “2101 End-of-Stream Reached”.
Note: The header and code is based on [RTSP2-AN]. Note that the RTSP version used in this specification is “1.0” and not “2.0” as in the examples in [RTSP2-AN].
On receipt of the RTSP ANNOUNCE with a beginning of stream or an end-of-stream indication, the OITF may take relevant actions to handle the end of stream event (e.g. terminating the session, rewinding the media stream, etc.). The OITF shall respond with a RTSP 200 OK.
If the CDF detects an event that leads it to have to terminate a user session, the CDF shall send an RTSP ANNOUNCE to the cluster controller with an indication that the session shall be terminated. The Notice header shall be included with the notice code value set to “5402 Client Session Terminated”. The cluster controller shall perform the following:
If the Cluster controller detects an event that leads it to have to terminate a user session, the Cluster controller shall perform the following:
The OITF shall not use the RTSP TEARDOWN message. The RTSP session teardown is initiated via SIP.
When the Cluster Controller receives a SIP BYE message to teardown a SIP unicast content streaming session, the Cluster Controller shall send a RTSP TEARDOWN message to the CDF. The CDF shall reply with a 200 OK.
The Cluster Controller shall issue an RTSP TEARDOWN request for each media line (if the content is FEC protected).
The OITF acting as an RTSP Client shall support RTSP PLAY, RTSP PAUSE, RTSP GET_PARAMETER, RTSP ANNOUNCE, and RTSP OPTIONS.
The Cluster Controller acting as an RTSP Proxy and RTSP Client shall support at least the following messages: RTSP SETUP, RTSP TEARDOWN, RTSP DESCRIBE, RTSP PLAY, RTSP PAUSE, RTSP OPTIONS, and RTSP GET_PARAMETER.
The CDF acting as an RTSP server shall support at least the following messages: RTSP SETUP, RTSP TEARDOWN, RTSP DESCRIBE, RTSP PLAY, RTSP PAUSE, RTSP OPTIONS, and RTSP GET_PARAMETER.
The RTSP/RTCP monitoring, RTSP session setup and teardown procedures are unchanged by Forced Play Out and shall follow the description in section 7.1.1, “Use of RTSP for unicast content streaming services”.
On receiving a request from the user to control the playback (e.g. RTSP PLAY, PAUSE, etc), the OITF shall follow the procedures specified in section 7.1.1.2.3, “RTSP Control for media delivery.”
On receiving a request from the user to control the playback (e.g. RTSP PLAY, PAUSE, etc), the Cluster Controller shall examine the request to see whether the playback operation is permitted based on the Forced Play Out Control policy. If the requested playback operation is forbidden by the policy -- for example, the user tries to fast forward when an advertisement is showing -- the Cluster Controller shall disable the request and respond with a RTSP 405 message. If the playback is permitted, the Cluster Controller shall forward the request to the selected CDF.
The CDF shall respond with a 200 OK message. The contents of the 200 OK response shall be as follows:
Handling of Media Control for Retrieving Playback Information is the same as specified in section 7.1.1.2.3, “RTSP Control for media delivery.”
Handling of End of Stream is not affected by Forced Play Out and is the same as specified in section 7.1.1.2.3, “RTSP Control for media delivery.”
When performing recording, the Cluster Controller shall first retrieve from the incoming request the SDP of the scheduled content program and then issue a DESCRIBE messages to the most appropriate CDF. The DESCRIBE message shall include the Accept header with the application/sdp content type. The CDF shall return a Content-Type header with application/sdp and the format of the body shall be according to RFC 4566 [SDP]. The Cluster Controller shall then issue a SETUP request to CDF. The CDF then shall join the multicast group as defined in section 8.1.3.1, “Protocol over NPI-40”.
If the setup is successful the CDF shall reply with a 200 OK message to the Cluster Controller.
After receiving the setup response, the Cluster Controller shall send RECORD message to the CDF. Then the CDF start recording the content. When receiving error messages from the CDF, the Cluster Controller shall try another CDF.
When finishing the recording, the CDF shall issue a RTSP ANNOUNCE message to the Cluster Controller to report the record result.
Within the message body, the CDF shall include a body associated with the appid “urn:oipf:npvr:report:2009”. The parameters shall be set:
When the Cluster Controller receives a SIP BYE message to tear down a SIP nPVR session, the Cluster Controller shall issue a RTSP TEARDOWN message to the CDF. The CDF shall reply with a 200 OK.
When receiving a PCh session initiation SIP INVITE from the CDN Controller, the Cluster Controller shall choose the appropriate CDF and shall issue an RTSP SETUP message with the following parameters:
On reception of RTSP SETUP message, the CDF shall reply with an RTSP 200 OK message to the Cluster Controller.
If the requested PCh item is a multicast content service and the CDF doesn’t cache the content, the CDF may fetch the content, e.g., join the associated multicast group and fetch the content using IGMPv3 as described in RFC 3376 [IGMP3].
When receiving a PCh content switch request SIP MESSAGE from the CDN Controller, the Cluster Controller shall issue an RTSP PLAY message to the same CDF as selected in the PCh session initiation, with the following parameters:
On reception of RTSP PLAY message, the CDF shall reply with an RTSP 200 OK message to the Cluster Controller.
If the requested PCh item is multicast content service and the CDF doesn’t cache the content, the CDF may fetch the content, e.g., join the associated multicast group and fetch the content using IGMPv3 as described in RFC 3376 [IGMP3].
The following procedure shall be undertaken by a transferee OITF to view the unicast content service, once it has successfully established the unicast content service session to handle the transfer:
Step 1: | If the transferee OITF has the content bookmark, it shall send the RTSP PLAY to the CC/CDF and the bookmark shall be added in the Range header to indicate the content start time to be played. The CC/CDF shall send the related content through the content delivery channel established in the unicast content service session to the transferee OITF. The procedures in sections 7.1.1.2.3, “RTSP Control for media delivery” and 7.1.1.2.4, “RTSP Session Teardown” for media control purposes can be reused and this procedure terminates. |
Step 2: | If the transferee OITF does not have the content bookmark, it can use the procedure defined in section 5.3.9.4.1, “Protocol for Retrieving Stored Content Bookmarks” to retrieve the content bookmark, and subsequently it can use the procedure defined in Step 1. |
QoS metrics can be classified as those that need to be reported regularly, i.e. ‘sample metrics’, and those that are typically required when the service ends, i.e., ‘cumulative metrics’. Periodic RTCP reports are more appropriate for transport of sample metrics (see section 9.2.1, “Performance Monitoring over UNIT-18”), while on-demand or scheduled RTSP reports are especially suitable for transport of cumulative metrics. In general, an IPTV service might need a combination of both.
This section specifies the optional RTSP mechanisms for performance monitoring of unicast content streaming services.
If the OITF supports QoS metrics and has been suitably configured to use them, then the unicast content streamign session initiation request over HNI-IGI interface shall include the selected (i.e. accepted by client) or modified (for re-negotiation) QoS metrics for either the session level or media level.
The QoS metrics negotiation shall start at the Cluster Controller (CC) on reception of a response to an RTSP DESCRIBE including metrics information embedded in the session description. The RTSP DESCRIBE at the CC is triggered by a SIP OPTIONS request for missing parameters from the CDN Controller, as per section 7.1.1.2.2, “RTSP Session Setup.”
On receiving this SETUP request, the Content Delivery Function (CDF) shall return the RTSP 200 OK response with the “accepted” QoS metrics (i.e. metrics and reporting values which are identical to the ones in the client’s request and accepted by the CDF) and the “re-negotiation” QoS metrics (i.e. metrics and reporting values which are not identical to the ones in the client’s request and modified for re-negotiation by the CDF). The echoing of the “accepted” QoS metrics is for re-acknowledging the client’s request.
The CDF may also reject the changes made by the client, i.e. reject the “re-negotiation” of QoS metrics. If the CDF rejects the changes, it shall either set new values and resend the modified metrics back to the client, or it shall ignore the “re-negotiation” metrics and not re-acknowledge them. Any QoS metric that has been acknowledged as “accepted” by the CDF shall not be re-negotiated, i.e., it shall not be resent in the “OIPF-QoS-Metrics” header in the next RTSP request and shall not be re-acknowledged in the next RTSP response.
If the CDF does not approve the modifications made by the client, they should continue to re-negotiate. However, negotiations should not exceed 4 round trips, in order to minimize the potential delay of the negotiation process. The negotiation process may delay the start-up of the service and it may be avoided by carefully selecting the value of the Metrics-Set parameter in the service information. It must be noted that each time the “QoS-Metrics” header field is sent in an RTSP request, it shall also be present in the response corresponding to that particular request. Otherwise, the receiver of the response shall assume that the other end does not support QoS metrics.
If there is no DESCRIBE request-response pair sending at the beginning of the RTSP session between the CC and the CDF, it means that the session description is received by other means. If such a description contains the “OIPF QoS Metrics” attribute, the negotiation starts at the CC with a SETUP request containing the “OIPF QoS Metrics” header.
If the session description does not contain the “OIPF-QoS-Metrics” attribute and the CDF would still like to check whether the client supports the QoS Protocol or not, the CDF shall include the “OIPF-QoS-Metrics” header containing the initial QoS metrics in the SETUP response. If the OITF sends the QoS metrics information in the next request (indicating that it supports the QoS Protocol), the negotiation shall continue until a mutual agreement is reached or the negotiation limit of 4 round-trips is reached.
To inform the client of the CDF’s desire to receive reports for the session, a new SDP attribute is specified to convey the QoS metrics. This attribute is defined inline with section 5.3.3.6 of TS26.234v750 [PSS].
The ABNF definition (See RFC 4234 [ABNF]) is as follows:
OIPF-QoS-Metrics-Att = “a=” “OIPF-QoS-Metrics” “:” Measure-Spec *(“,” Measure-Spec) CRLF Measure-Spec = ”Metrics “;” Sending-rate [”;” Measure-Range] *([”;” Parameter-Ext]) Metrics = “cumul-metrics” “=” Metrics-Set / (“{” Metrics-Name *(“|” Metrics-Name) “}”) Metrics-Name = 1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7e) ;VCHAR except “;”, “,”, “{“ or ”}” Metrics-Set = 1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7e) ;VCHAR except “;”, “,”, “{“ or ”}” Sending-Rate = “rate” “=” 1*DIGIT / “End” Measure-Range = “range” “:” Ranges-Specifier Parameter-Ext = “On”/”Off”/ (1*DIGIT [“.” 1*DIGIT]) / (1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7c / 0x7e)) Ranges-Specifier = as defined in RFC 2326 [RTSP] CRLF = %d13.10
This specification defines two new RTSP Headers to negotiate and report the ‘cumulative metrics’ during session setup. These new RTSP headers follow the semantics of [PSS], and are accordingly called OIPF-QoS-Metrics and OIPF-QoS-Feedback. They shall be used as follows:
The ABNF [ABNF] definition is as follows:
QoS-Header = “OIPF-QoS-Metrics” “:” (“Off” / Measure-Spec *(“,” Measure-Spec)) CRLF Measure-Spec = Stream-URL ”;” ((Metrics “;” Sending-rate [”;” Measure-Range] *([”;” Parameter-Ext])) / “Off”) Stream-URL = “url” “=” <”>Rtsp-URL<”> Metrics = “cumul-metrics” “=” Metrics-Set / (“{” Metrics-Name *(“|” Metrics-Name) “}”) Metrics-Set = 1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7e) ;VCHAR except “;”, “,”, “{“ or ”}” Metrics-Name = 1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7e) ;VCHAR except “;”, “,”, “{“ or ”}” Sending-Rate = “rate” “=” 1*DIGIT / “End” Measure-Range = “range” “:” Ranges-Specifier Parameter-Ext = “On”/”Off”/ (1*DIGIT [“.” 1*DIGIT]) / (1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7c / 0x7e)) Ranges-Specifier = as defined in RFC 2326 [RTSP] Rtsp-URL = as defined in RFC 2326 [RTSP] CRLF = %d13.10
The ABNF [ABNF] definition is as follows:
Feedback-Header = “OIPF-QoS-Feedback” “:” Feedback-Spec *(“,” Feedback-Spec) CRLF Feedback-Spec = Stream-URL “;” 1*(“;” Parameters) [”;” Measure-Range] Stream-URL = “url” “=” <”>Rtsp-URL<”> Metrics-Set = 1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7e) ;VCHAR except “;”, “,”, “{“ or ”}” Parameters = Metrics-Name “=” “{” SP / (Measure *(“|” Measure)) “}” Metrics-Name = “1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7e) ;VCHAR except “;”, “,”, “{“ or ”}” Rtsp-URL = as defined in RFC 2326 [RTSP] Measure-Range = “range” “:” Ranges-Specifier Ranges-Specifier = as defined in RFC 2326 [RTSP] Measure = Value [SP Timestamp] Value = ([”-“]1*DIGIT [”.” *DIGIT]) / 1*((0x21..0x2b) / (0x2d..0x3a) / (0x3c..0x7a) / 0x7e) ; VCHAR except “;”, “,”, “{“ or ”}” Timestamp = NPT-Time NPT-Time = as defined in RFC 2326 [RTSP] CRLF = %d13.10
The OITF shall use the SET_PARAMETER method for cumulative QoS metrics reporting, using the OIPF-QoS-Feedback Header defined in this specification. However, in some cases, the RTSP method may also be used:
The reporting CDF shall use the GET_PARAMETER method for retrieving cumulative QoS metrics from the OITF on-demand, using the OIPF-QoS-Feedback Header defined in this specification.
The RTSP header and attribute definitions above are almost identical to those in [PSS]. The semantics shall comply with section 5.3.2.3 except for the differences in naming and the following Open IPTV Forum specific changes:
Note the commonalities between the definition of the RTSP Header OIPF-QoS-Metrics and the SDP attribute above. Note also, that the Stream-URL is not present in the SDP attribute; this is because the value of the Stream-URL is present in the session description and is thus known by the CC at the time of issuing the RTSP SETUP for each media line.
This section defines the protocol for the use of IGMP and Multicast over the following reference points:
The OITF shall support IGMPv3 as described in RFC 3376 [IGMP3]. If the Transport Processing Function supports a lower IGMP version, the backward compatibility rules between the OITF and the Transport Processing Function shall conform to [IGMP3] section 7.
The use of IGMP on UNIS-13 with SIP session management shall be as defined in [TS183063] sections 8.1.2 and 8.2, where the OITF replaces the UE, the Transport Processing Function replaces the Transport Functions, the BTF replaces the ECF/EFF and the Service Discovery FE/IPTV Metadata Control FE replaces the SSF.
The use of IGMP on UNIS-13 without session initiation shall be as defined in section 8.1.1.1, “Procedure for multicast content streaming with SIP session management”. In the case there is no session initiation, the procedures described in section 8.1.2 of [TS183063] to set the Group/Multicast Address Records will not retrieve any channel or source address information from the session initiation step.
The use of IGMP on UNIS-13 shall be defined as in section 8.1.1.1, “Procedure for multicast content streaming with SIP session management” or as defined in section 8.1.1.2, “Procedure for multicast content streaming”.
In this context, the IP Multicast group and source address are not related to a “channel” but to an associated RET IP Multicast, as defined in Annex F of TS 102 034 [TS102034] and Annex M.1.3, “Multicast RET for multicast content service” in this specification.
PPV multicast content service session initiation over UNIS-13 shall be same as multicast content streaming session initiation as described in section 8.1.1, “Multicast content streaming service on UNIS-13.”
The controlling protocol of CDN for nPVR is IGMP. The use of IGMP on NPI-40 shall be as defined in section 8.1.1.1, “Procedure for multicast content streaming with SIP session management”. In this case, the CDF in the CDN acts as an OITF for the multicast content service.
When the CDF receives the request to record a program, it shall send an IGMP Join to the Transport Processing Functions.
Whenever the network generated notification event was detected, the IPTV Application shall send the notification message as well as the destination multicast group identifier to the MCDF over NPI-42. The destination multicast group identifier indicates the multicast group used for the network generated notification service which differs from the related multicast content service.
Upon receiving the notification message, the MCDF shall distribute the notification message to the multicast group identified by destination multicast group identifier, as defined in section 9.1.3, “nPVR”.
For the OITF, Network Generated Notification session initiation over UNIS-13 shall be the same as multicast content streaming session initiation as described in section 8.1.1, “Multicast content streaming service on UNIS-13”.
Upon receiving an emergency notification from Emergency Services, the Notification Services shall send the emergency notification message as well as the destination multicast group identifier to the MCDF over NPI-38.
Upon receiving the notification message, the MCDF shall distribute the emergency notification message to the multicast group identified by destination multicast group identifier, as defined in section 9.1.3, “nPVR”.
Emergency Notifications are delivered to an OITF over UNIS-13, when the OITF joins the corresponding multicast group with the access parameters derived from SD&S as defined in [OIPF_META2].