央视国际
节目定价发布接口规范
V2.7.2
央视国际IP电视事业部
2011年3月
Revision History
Revision # | Author | Reviewed By | A. Description Of Change B. Summary of Review | Issued by / Date |
1.0 |
|
| 第1版 | 2008-05-05 |
2.0 |
|
| 第2版 Program和Series增加属性:Kpeople,Director,ScriptWriter,Compere,Guest,Reporter 删除Cast和CastRoleMap对象 Mapping的Sequence属性扩长到4位 | 2010-05-09 |
|
|
| 3.1节增加了一些规则描述 XML修订 | 2010-5-21 |
|
|
| Mapping关系增加update操作 | 2010-8-9 |
|
|
| 修订Program和Series的OrgAirDate, Description的长度 | 2010-8-11 |
|
|
| 修订Category的ParentID,由ATT改为PN | 2010-8-23 |
|
|
| 3.5 Movie定义 FileURL最大长度改为1024 3.7 PhysicalChannel定义 ChannelID改为可选 | 2010-9-30 |
2.5 |
|
| 3.4 扩展Program的SourceType,增加图文节目 3.6 增加HTMLContent 3.9 Schedule增加StorageDuration 3.14 增加Program与HTMLContent的Mapping | 2010-10-13 |
2.6 |
|
| 3.4 修改SortName为时间排序索引,LicensingWindowStart和LicensingWindowEnd为必填字段 3.8 组播地址和端口号为必填字段 对于2.5版本增加的对象,根据业务需要开发实现
| 2010-12-06 |
2.7 |
|
| 3.4 SortName不限定格式 3.12 Series增加SeriesType属性 3.14 增加Series和Movie的Mapping,Series删除时,关联Movie应自动删除。 | 2011-1-28 |
2.7.2 |
|
| 3.9 Schedule增加Genre属性 | 2011-3-14 |
目录
1.
介绍
本文为央视国际与电信运营商(网通/厂商IPTV系统)之间的IPTV内容及业务定价发布接口规范。本规范用于内容运营商(以下用缩写CSP-content service provider代替)向电信运营商(以下用缩写LSP-Local sevice provider代替)下发内容的节目包定价、业务套餐定义、业务套餐定价、元数据、和媒体文件。
2. 内容下发机制
2.1 流程描述
内容分发接口采用SOAP协议+XML指令文档的方式。其中,SOAP消息是与具体指令内容无关的通用消息,仅仅用于表达命令请求。而具体的命令及参数利用独立的XML文档来描述。采用与具体指令无关的通用SOAP消息有利于指令扩展及在异步环境中实现通用的可靠消息传递机制。
CSP以SOAP协议 + XML指令文档的方式主动向LSP发布内容,LSP根据SOAP消息中的文件URL获取XML并解析执行。
2.2 SOAP消息定义
执行指令请求:ExecCmdReq
消息方向:CSPàLSP
名称 | 说明 | 数据类型 | 是否必选 |
CSPID | 互相约定的上层标识 | String(32) | M |
LSPID | 互相约定的下层标识 | String(32) | M |
CorrelateID | 相关性标识,用于关联指令执行请求消息和结果通知消息。对于重发的指令,该字段值保持一致,对于不同的指令,该字段在同层内具有唯一性。 | String(32) | M |
CmdFileURL | XML指令文件的URL | URL | M |
执行指令响应:ExecCmdRes
消息方向:CSPßLSP
名称 | 说明 | 数据类型 | 是否必选 |
Result | 接收消息结果: 0:成功 -1:失败 | Int | M |
ErrorDescription | 错误信息详细描述 | String | O |
结果通知请求:ResultNotifyReq
消息方向:CSPßLSP
名称 | 说明 | 数据类型 | 是否必选 |
CSPID | 互相约定的上层标识 | String(32) | M |
LSPID | 互相约定的下层标识 | String(32) | M |
CorrelateID | 相关性标识,用于关联指令执行请求消息和结果通知消息。 | String(32) | M |
CmdResult | 命令执行结果: 0:成功 -1:通常失败 其他结果待定义 | Int | M |
ResultFileURL | 查询结果XML文件的URL,该字段仅针对查询结果通知消息出现。 | URL | O |
结果通知响应:ResultNotifyRes
消息方向:CSPàLSP
名称 | 说明 | 数据类型 | 是否必选 |
Result | 接收消息结果: 0:成功 -1:失败 | Int | M |
ErrorDescription | 错误信息详细描述 | String | O |
3. XML文件规范
3.1 概述
XML文件的结构如下图所示:
以下是一个XML定义的通用格式例子:
<?xml version="1.0" encoding="UTF-8"?>
<ADI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Objects>
<Object ElementType="object_type" ID="object_id" Action="REGIST">
<Property Name="property_name1">property_value1</Property>
<Property Name="property_name2">property_value2</Property>
<Property Name="property_name3">property_value3</Property>
</Object>
</Objects>
<Mappings>
<Mapping ID=”mapping_id” ParentType="parent_type" ParentID="parent_id" ElementType=”element_type” ElementID=”element_id” Action="REGIST">
<Property name="property_name1">property_value1</Property>
<Property name="property_name2">property_value2</Property>
</Mapping>
</Mappings>
</ADI>
ADI/Objects/Mappings是接口XML的通用基础框架,基于该通用框架定义不同的Object.ElementType和不同的Property.Name来满足对不同对象的定义需求。请注意本规范的描述中应用以下规则:
1) Object.ElementType与Object.ID联合起来在接口中唯一定位一个对象实例,它们是一个接口中针对对象进行任何操作的唯一索引。当对象之间有父子关系或多对多关系的时候,Object.ID也被用做关联引用标识。
2) 部分对象的Property属性中定义了Code属性,表示跨系统的全局唯一标识,LSP应保留备用。
3) 对于任何符合Schema(见附件)的XML文件,LSP应该忽略那些不能识别的Property或XML Tag或属性。
4) 以下对象中标识为”必填项”的属性,仅仅是针对REGIST操作。而UPDATE操作进行的是增量修改,缺少某必填项,仅为表示不需要对此项进行修改,而不能修改此项为空。DELETE操作只出现ElementType、ID、Code属性,其他属性不需要。
5) 接收方若收到某对象的REGIST操作,若系统中该对象已经存在,则应当作UPDATE操作处理。该需求包括Mapping对象。
6) 接收方若收到Program、Movie、Series、Category、Package、Channel、Schedule对象的DELETE操作,应自动删除该对象关联的Picture、Movie、及该对象与其他对象的Mapping关系。
7) XML文件内容的编码全部采用UTF-8格式。
8) 当Program包含在Series下时,LicensingWindowStart和LicensingWindowEnd两个字段以Series的定义为准,Program的两个字段为非必填。
以下章节描述了XML的详细定义。在其中att表示XML属性, el表示XML元素, pn表示Property节点的Name)。
3.2 ADI定义
ADI是XML的根元素。
No | Tag名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | ADI |
| 根元素 |
|
|
| |
2 |
| Objects | el | 操作对象 |
|
|
|
3 | Mappings | el | 映射对象 |
|
|
| |
4 | Reply | el | 应答对象 |
|
| 应答文件包含 |
3.3 Objects定义
Objects是操作对象。操作类型REGIST表示增加新对象,UPDATE表示修改对象内容,DELETE表示删除对象。
Objects.ElementType定义:
序号 | ElementType取值 | 说明 |
基本内容管理 | ||
1 | Program | 节目信息 |
2 | Movie | 媒体内容信息 |
3 | HTMLContent | 图文内容信息 |
4 | Channel | TV频道信息 |
5 | PhysicalChannel | 频道物理参数信息 |
6 | Schedule | TV时刻表信息 |
7 | Picture | 图片信息 |
8 | Category | 编排目录信息 |
9 | Series | 连续剧 |
业务套餐管理 | ||
9 | Package | 包信息 |
3.4 Program定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Program |
|
|
|
|
| |
2 |
| ElementType | att | “Program” | Y |
|
|
3 | ID | att | 接口中的唯一标识 | Y | 32 |
| |
4 | Action | att | 操作类型 注册-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | Name | pn | 节目名称 | Y | 128 |
| |
7 | OrderNumber | pn | 节目订购编号 |
| 10 |
| |
8 | OriginalName | pn | 原名 |
| 128 |
| |
9 | SortName | pn | 索引发布时间供界面排序 |
| 128 |
| |
10 | SearchName | pn | 搜索名称供界面搜索 |
| 128 |
| |
11 | ActorDisplay | pn | 演员列表(只供显示) |
| 256 |
| |
12 | WriterDisplay | pn | 作者列表(只供显示) |
| 256 |
| |
13 | OriginalCountry | pn | 国家地区 |
| 64 |
| |
14 | Language | pn | 语言 |
| 64 |
| |
15 | ReleaseYear | pn | 上映年份 |
| 4 |
| |
16 | OrgAirDate | pn | 首播时间 |
| 20 |
| |
17 | LicensingWindowStart | pn | 有效开始时间 (YYYYMMDDHH24MiSS) | Y | 14 |
| |
18 | LicensingWindowEnd | pn | 有效结束时间 (YYYYMMDDHH24MiSS) | Y | 14 |
| |
19 | DisplayAsNew | pn | 新到天数 |
| 3 |
| |
20 | DisplayAsLastChance | pn | 剩余天数 |
| 3 |
| |
21 | Macrovision | pn | 拷贝保护标志 0:无拷贝保护 1:有拷贝保护 |
| 1 |
| |
22 | Description | pn | 节目描述 |
| 4000 |
| |
23 | PriceTaxIn | pn | 列表定价 |
| 12,2 |
| |
24 | Status | pn | 状态标志 0:失效 1:生效 |
| 1 |
| |
25 | SourceType | pn | 1: 视频类节目 2: 图文类节目 |
| 1 |
| |
26 | SeriesFlag | pn | 0: 影片 1: 单集 |
| 1 |
| |
27 | Kpeople | pn | 主要人物 |
| 150 |
| |
28 | Director | pn | 导演 |
| 50 |
| |
29 | ScriptWriter | pn | 编剧 |
| 50 |
| |
30 | Compere | pn | 节目主持人 |
| 50 |
| |
31 | Guest | pn | 受访者 |
| 50 |
| |
32 | Reporter | pn | 记者 |
| 50 |
| |
33 | OPIncharge | pn | 其他责任人 |
| 50 |
| |
34 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
35 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 | |
36 |
| Type | pn | 资产类型 |
|
|
|
3.5 Movie定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Movie |
|
|
|
|
| |
2 |
| ElementType | att | “Movie” | Y |
|
|
3 | ID | att | 接口中的唯一标识 | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | Type | pn | 媒体类型1:正片 2:预览片 | Y | 1 |
| |
7 | FileURL | pn | 媒体文件URL ftp://username:password@ip:port/... 标准FTP协议 | Y | 1024 |
| |
8 | SourceDRMType | pn | 0: No DRM 1: BES DRM |
| 1 |
| |
9 | DestDRMType | pn | 0: No DRM 1: BES DRM |
| 1 |
| |
10 | AudioType | pn | 0: 其他 1: Monaural 单声道 2: Stereo 多声道 3: Two-nation monaural 双单声道 4: Two-nation stereo 双多声道 5: AC3(5:1 channel) AC3声道 |
| 2 |
| |
11 | ScreenFormat | pn | 0: 4x3 1: 16x9(Wide) |
| 1 |
| |
12 | ClosedCaptioning | pn | 字幕标志 0:无字幕 1:有字幕 |
| 1 |
| |
13 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
14 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 | |
15 |
| BitRateType | pn | 码流 |
|
|
|
3.6 HTMLContent定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | HTMLContent |
|
|
|
|
| |
2 |
| ElementType | att | “HTMLContent” | Y |
|
|
3 | ID | att | 接口中的唯一标识 | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | FileURL | pn | 图文节目的HTML TAR包文件URL ftp://username:password@ip:port/... 标准FTP协议 | Y | 1024 | 下平台从此URL获取图文节目包 | |
7 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
8 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
3.7 Channel定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Channel |
|
|
|
|
| |
2 |
| ElementType | att | “Channel” | Y |
|
|
3 | ID | att | 接口中的唯一标识 | Y |
|
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | ChannelNumber | pn | 建议频道号 |
| 3 |
| |
7 | Name | pn | 频道名称 | Y | 64 |
| |
8 | CallSign | pn | 台标名称 |
| 10 |
| |
9 | TimeShift | pn | 时移标志 0:不生效 1:生效 |
| 1 |
| |
10 | StorageDuration | pn | 存储时长,单位小时 |
| 9 | 该频道的录制节目保存时长,可用于时移和回看。 | |
11 | TimeShiftDuration |
| 默认时移时长, 单位分钟 (Reserved) |
|
| 仅仅对Timeshift有效 | |
12 | Description | pn | 描述信息 |
| 1024 |
| |
13 | Country | pn | 国家 |
| 10 |
| |
13 | State | pn | 州/省 |
| 10 |
| |
14 | City | pn | 城市 |
| 10 |
| |
15 | ZipCode | pn | 邮编 |
| 10 |
| |
16 | Type | pn | 频道类型 1:直播频道 | Y | 1 |
| |
17 | SubType | pn | 当Type为1(直播频道) 1: 信号源来自live 2: 信号源来自virtual |
| 1 |
| |
19 | Language | pn | 语言 |
| 128 |
| |
19 | Status | pn | 状态标志 0:失效 1:生效 | Y | 1 |
| |
20 | StartTime | pn | 播放开始时间(HH24MI) |
| 4 |
| |
21 | EndTime | pn | 播放结束时间(HH24MI) |
| 4 |
| |
22 | Macrovision | pn | 拷贝保护标志 0:无拷贝保护 1:有拷贝保护 |
| 1 |
| |
23 | VideoType | pn | 视频参数(参考4.1) |
| 10 |
| |
24 | AudioType | pn | 音频参数(参考4.1) |
| 10 |
| |
25 | StreamType | pn | 码流标志(参考4.1) |
| 1 |
| |
26 | Bilingual | pn | 双语标志(0/1) |
| 1 |
| |
27 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
28 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
3.8 PhysicalChannel定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | PhysicalChannel |
|
|
|
|
| |
2 |
| ElementType | att | “PhysicalChannel” | Y |
|
|
3 | ID | att | 唯一ID | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | ChannelCode | pn | 频道Code | Y | 32 |
| |
7 | ChannelID | pn | 频道ID | N | 32 |
| |
8 | BitRateType | pn | 码流 2: 2M 4: 4M |
| 1 |
| |
9 | MultiCastIP | pn | 组播IP | Y | 64 |
| |
10 | MultiCastPort | pn | 组播端口 | Y | 5 |
| |
11 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
12 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
3.9 Schedule定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Schedule |
|
|
|
|
| |
2 |
| ElementType | att | “Schedule” | Y |
|
|
3 | ID | att | 接口中的唯一标识 | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | ChannelCode | pn | 逻辑频道Code | Y | 32 |
| |
7 | ChannelID | pn | 逻辑频道ID |
| 32 |
| |
8 | ProgramName | pn | 节目名称 |
| 128 |
| |
9 | StartDate | pn | 节目开播日期(YYYYMMDD) | Y | 8 |
| |
10 | StartTime | pn | 节目开播时间(HH24MISS) | Y | 6 |
| |
11 | Duration | pn | 节目时长(HH24MISS) | Y | 6 |
| |
12 | StorageDuration | pn | TVOD保存时长(小时) 缺省为空 |
|
| 该时间段的TVOD保存时长,如果该字段为空或小于Channel.StorageDuration,则应以Channel.StorageDuration为准。 | |
13 | Status | pn | 状态标志 0:失效 1:生效 | Y | 1 |
| |
14 | Description | pn | 描述信息 |
| 1024 |
| |
15 | Genre | pn | 节目的分类标签,如“体育”,多个标签用空格或“;”区分 |
| 128 |
| |
16 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
17 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
说明:对于REGIST/UPDATE操作的Schedule,如果和原有Schedule有时间重叠,接受方应自动删除原有的Schedule以自动覆盖。
3.10 Picture定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Picture |
|
|
|
|
| |
2 |
| ElementType | att | “Picture” | Y |
|
|
3 | ID | att | 接口中的唯一标识 | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
5 | FileURL | pn | 图片文件URL |
| 1024 |
| |
6 | Description | pn | 描述 |
| 1024 |
| |
7 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
8 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
3.11 Category定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Category |
|
|
|
|
| |
2 |
| ElementType | att | “Category” | Y |
|
|
3 | ID | att | 唯一ID | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | ParentCode | att | 父节点Code(全局唯一标识) 若是根节点,ParentCode为0或为空 | Y | 32 |
| |
7 | ParentID | pn | 父节点ID |
| 32 |
| |
8 | Name | pn | 分类名称 | Y | 64 |
| |
9 | Sequence | pn | 显示顺序号 |
| 3 |
| |
10 | Status | pn | 状态标志 0:失效 1:生效 | Y | 1 |
| |
11 | Description | pn | 描述信息 |
| 1024 |
| |
12 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
13 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
3.12 Series定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Series |
|
|
|
|
| |
2 |
| ElementType | att | “Series” | Y |
|
|
3 | ID | att | 唯一ID | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | Name | pn | 连续剧名称 | Y | 128 |
| |
7 | OrderNumber | pn | 订购编号 |
| 10 |
| |
8 | OriginalName | pn | 原名 |
| 128 |
| |
9 | SortName | pn | 排序名称 |
| 128 |
| |
10 | SearchName | pn | 索引名称 |
| 160 |
| |
11 | OrgAirDate | pn | 首播日期 |
| 20 |
| |
12 | LicensingWindowStart | pn | 有效定购开始时间 (YYYYMMDDHH24MiSS) |
| 14 |
| |
13 | LicensingWindowEnd | pn | 有效定购结束时间 (YYYYMMDDHH24MiSS) |
| 14 |
| |
14 | DisplayAsNew | pn | 新到天数 |
| 3 |
| |
15 | DisplayAsLastChance | pn | 剩余天数 |
| 3 |
| |
16 | Macrovision | pn | 拷贝保护标志(0/1) |
| 1 |
| |
17 | Price | pn | 含税定价 |
|
|
| |
18 | VolumnCount | pn | 总集数 |
|
|
| |
19 | Status | pn | 状态标志 0:失效 1:生效 |
| 1 |
| |
20 | Description | pn | 描述信息 |
| 4000 |
| |
21 | Kpeople | pn | 主要人物 |
| 150 |
| |
22 | Director | pn | 导演 |
| 50 |
| |
23 | ScriptWriter | pn | 编剧 |
| 50 |
| |
24 | Compere | pn | 节目主持人 |
| 50 |
| |
25 | Guest | pn | 受访者 |
| 50 |
| |
26 | Reporter | pn | 记者 |
| 50 |
| |
27 | OPIncharge | pn | 其他责任人 |
| 50 |
| |
28 | SeriesType | pn | 1:连续剧,2:系列片 |
| 1 | 缺省为连续剧 | |
29 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
30 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
3.13 Package定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | |
1 | Package |
|
|
|
|
| |
2 |
| ElementType | att | “Package” | Y |
|
|
3 | ID | att | 唯一ID | Y | 32 |
| |
4 | Action | att | 操作类型 发布-REGIST 更新-UPDATE 删除-DELETE | Y |
|
| |
5 | Code | att | 全局唯一标识 | Y | 32 |
| |
6 | Name | pn | Package名称 | Y | 64 |
| |
7 | Type | pn | Package类型 0: VOD包 2: Channel包 4: SVOD 99: Mix(待定义) |
| 1 |
| |
8 | SortName | pn | 索引名称供界面排序 |
| 80 |
| |
9 | SearchName | pn | 搜索名称供界面搜索 |
| 80 |
| |
10 | RentalPeriod | pn | 租用有效期(小时) |
| 9 |
| |
11 | OrderNumber | pn | 定购编号 |
| 32 |
| |
12 | LicensingWindowStart | pn | 有效定购开始时间 (YYYYMMDDHH24MiSS) |
| 14 |
| |
13 | LicensingWindowEnd | pn | 有效定购结束时间 (YYYYMMDDHH24MiSS) |
| 14 |
| |
14 | Price | pn | 定价 |
| 12,2 |
| |
15 | Status | pn | 状态标志 0:失效 1:生效 | Y | 1 |
| |
16 | Description | pn | 描述信息 |
| 1024 |
| |
17 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | |
18 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
3.14 Mappings定义
No | Property名/属性 |
| 描述 | 必填(Y/N) | 长度 | 注释 | ||
1 | Mappings |
|
|
|
|
| ||
2 |
| Mapping |
|
|
|
|
| |
3 |
| ID | att | 唯一ID |
|
| 此ID为可选 | |
4 | Action | att | 操作类型 (REGIST/DELETE/UPDATE) | Y |
| UPDATE操作用于更新关联关系的属性,如type, sequence等 | ||
5 | ParentType | att | 父元素类型(支持的类型请参考下表) | Y |
|
| ||
6 | ElementType | att | 元素类型(支持的类型请参考下表) | Y |
|
| ||
7 | ParentID | att | 父元素ID | Y | 32 | 根据ParentType的不同,填被关联的Parent对象的ID | ||
8 | ElementID | att | 元素ID | Y | 32 | 根据ElementType的不同, 填被关联的Element对象的ID | ||
9 | ParentCode | att | 父元素Code(全局唯一) | Y | 32 |
| ||
10 | ElementCode | att | 元素Code(全局唯一) | Y | 32 |
| ||
11 | Type | pn | 映射时的类型 当Mapping的ParentType为Picture时: 0: 缩略图 1: 海报 2: 剧照 3: 图标 4: 标题图 5: 广告图 6: 草图 7: 背景图 9: 频道图片 10: 频道黑白图片 11: 频道Logo 12: 频道名字图片 99: 其他 |
| 2 |
| ||
12 | ValidStart | pn | 当Mapping的ParentType为Package(SVOD)时, 标识SVOD节目的服务起始时间 (YYYYMMDDHH24MiSS) |
| 14 |
| ||
13 | ValidEnd | pn | 当Mapping的ParentType为Package(SVOD)时, 标识SVOD节目的服务终止时间 (YYYYMMDDHH24MiSS) |
| 14 |
| ||
14 | Sequence | pn | 序列号 |
| 4 |
| ||
15 | Result | pn | 0: 成功 其他: 错误代码 |
| 1 | 应答文件包含 | ||
16 | ErrorDescription | pn | 错误描述 |
| 1024 | 应答文件包含 |
ParentType <=> ElementType 支持以下组合:
ParentType ó ElementType 支持的各种组合:
ParentType | ElementType | 支持的Property | 描述 |
Category | Channel |
| 在分类下增加频道 |
Category | Program |
| 在分类下增加节目 |
Category | Schedule |
| 在分类下增加TV Schedule |
Category | Package |
| 在分类下增加Package |
Category | Series |
| 在分类下增加连续剧 |
Package | Program |
| 为PVOD分配Program |
Package | Series |
| 为PVOD分配连续剧 |
Package | PhysicalChannel |
|
|
Picture | Channel | Type, Sequence | 把图片分配给Channel |
Picture | Category | Type, Sequence | 把图片分配给Category |
Picture | Program | Type, Sequence | 把图片分配给Program |
Picture | Package | Type, Sequence | 把图片分配给Package |
Picture | Series | Type, Sequence | 把图片分配给连续剧 |
Program | Movie |
| 为Program分配Movie |
Program | HTMLContent |
| 为Program分配HTMLContent |
Series | Program |
| 为连续剧/音乐专集添加单集 |
Series | Movie |
| 为连续剧剧头分配Movie |
3.15 Reply定义
No | Property名/属性 |
| 描述 | 类型 | 长度 | 注释 | |
1 | Reply |
|
|
|
|
| |
2 |
| Result | el | 0: 成功 1: 部分成功 其他: 错误代码 | String | 5 |
|
3 | Description | el | 描述 | Enum | 1024 |
|
3.16 XML例子
以下是XML的例子。请注意,红色部分为主外键。
<?xml version="1.0" encoding="UTF-8"?>
<ADI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Objects>
<Object ElementType="Program" ID="1001" Code="1001" Action="REGIST">
<Property Name="Code">umai:vod/1001@beijing.cctv</Property>
<Property Name="Name">大长今</Property>
<Property Name="Language">韩语</Property>
</Object>
<Object ElementType="Movie" ID="2001" Code="2001" Action="REGIST">
<Property Name="Code">umai:movie/2001@beijing.cctv</Property>
<Property Name="Type">1</Property>
<Property Name="FileURL">ftp://cctv:cctv@202.11.12.56:21/content/1.mpg</Property>
</Object>
<Object ElementType="Movie" ID="2002" Code="2002" Action="REGIST">
<Property Name="Code">umai:movie/2002@beijing.cctv</Property>
<Property Name="Type">2</Property>
<Property Name="FileURL">ftp://cctv:cctv@202.11.12.56:21/content/2.mpg</Property>
</Object>
<Object ElementType="Picture" ID="3001" Code="3001" Action="REGIST">
<Property Name="FileURL">ftp://cctv:cctv@202.11.12.56:21/image/1.jpg</Property>
</Object>
</Objects>
<Mappings>
<Mapping ParentType="Program" ParentID="1001" ParentCode=”1001” ElementType=”Movie” ElementID=”2001” ElementCode=”2001” Action="REGIST">
</Mapping>
<Mapping ParentType="Program" ParentID="1001" ParentCode=”1001” ElementType=”Movie” ElementID=”2002” ElementCode=”2002” Action="REGIST">
</Mapping>
<Mapping ParentType="Picture" ParentID="3001" ParentCode=”3001” ElementType=”Program” ElementID=”1001” ElementCode=”1001” Action="REGIST">
<Property Name="Type">2</Property>
</Mapping>
</Mappings>
</ADI>
<?xml version="1.0" encoding="UTF-8"?>
<ADI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Objects>
<Object ElementType="Package" ID="5001" Code="5001" Action="REGIST">
<Property Name="Code">umai:svod/5001@beijing.cctv</Property>
<Property Name="Type">4</Property>
<Property Name="Name">经典包月</Property>
<Property Name="LicensingWindowStart">20060601000000</Property>
<Property Name="LicensingWindowEnd">20070601000000</Property>
<Property Name="Price">15</Property>
<Property Name="Status">1</Property>
</Object>
</Objects>
<Mappings>
<Mapping ParentType="Package" ParentID="5001" ParentCode=”5001” ElementType=”Program” ElementID=”2001” ElementCode=”2001” Action="REGIST">
<Property Name="ValidStart">20060601000000</Property>
<Property Name="ValidEnd">20060701000000</Property>
</Mapping>
<Mapping ParentType="Package" ParentID="5001" ParentCode=”5001” ElementType=”Program” ElementID=”2002” ElementCode=”2002” Action="REGIST">
<Property Name="ValidStart">20060601000000</Property>
<Property Name="ValidEnd">20060701000000</Property>
</Mapping>
<Mapping ParentType="Package" ParentID="5001" ParentCode=”5001” ElementType=”Program” ElementID=”2003” ElementCode=”2003” Action="REGIST">
<Property Name="ValidStart">20060701000000</Property>
<Property Name="ValidEnd">20060701000000</Property>
</Mapping>
</Mappings>
</ADI>
4. 附录
4.1 视音频参数定义
video_type(4 bytes) = (video_codec_type << 16) || (video_level << 8) || video_profile_type;
audio_type(4 bytes) = (audio_codec_type << 16) ||(audio_level << 8) || audio_profile_type;
video_type = (video_codec_type << 16) || (video_level << 8) || video_profile_type; | |||
video_type | Video_codec_type | Video_profile_type | Video_level |
| 1-MPEG2, | 1 Simple, | 1--Low, |
2--Main, | 2--Main, | ||
3--SNR, | 3--High1440 | ||
4--Scalable | 4--High | ||
5--High |
| ||
| 2--MPEG4, | 1—Simple profile | 1—L1_V, |
2—Advanced Simple profile | 2—L2_V, | ||
3--Core, | 3—L3_V | ||
4--Main, | 4—L4_V | ||
5--N-Bit | 5—L5_V | ||
| 3--WMV9, | 0 | 0 |
| 4--VC1 |
|
|
|
| 1.simple |
|
|
|
| 1.Low |
|
|
| 2. Medium |
|
|
|
|
|
| 2.main |
|
|
|
| 1. Low |
|
|
| 2. Medium |
|
|
| 3. High |
|
| 3. Advanced |
|
|
|
| 0.L0 |
|
|
| 1.L1 |
|
|
| 2.L2 |
|
|
| 3.L3 |
|
|
| 4.L4 |
|
|
| 5.L5 |
|
|
|
|
| 5--H.264 |
|
|
|
| 1.Baseline |
|
|
|
| 1.L1(L1,L1.1,L1.2,L1.3) |
|
|
| 2.L2 |
|
|
| 3.L3 |
|
| 2.Main |
|
|
|
| 1.L1 |
|
|
| 2.L2 |
|
|
| 3.L3 |
|
|
| 4.L4 |
|
|
| 5.L5 |
|
| 3.Extended |
|
|
|
| 1.L1 |
|
|
| 2.L2 |
|
|
| 3.L3 |
|
|
| 4.L4 |
|
|
| 5.L5 |
audio_type = (audio_codec_type << 16) ||(audio_level << 8) || audio_profile_type; | |||
Audio_type | Audio_codec_type | Audio_profile_type | Audio_level |
| 9--MPEG2_AUDIO, (13818-3) | 0 | 1--L1_A, |
0 | 2--L2_A, | ||
0 | 3--L3_A, | ||
| 4--MPEG4_AUDIO, (14496-3) | 0 | 1--L1_A, |
0 | 2--L2_A, | ||
0 | 3--L3_A, | ||
| 5--AC3, | 0 | 0 |
| 6--WMA9, | 0 | 0 |
| 7—MPEG2-AAC (13818-7) | 1—AAC LC | 0 |
2—AAC LTP | 0 | ||
3—AAC Scalable | 0 | ||
4—AAC LD | 0 | ||
| 8—MPEG4 AAC | 1--AAC LC | 0 |
| 2--AAC LTP | 0 | |
| 3--AAC Scalable | 0 | |
| 4--AAC LD | 0 | |
| 3—MPEP1 (11172-3)
| 0 | 1—L1 |
0 | 2—L2 | ||
0 | 3—L3 | ||
| 0A—G.711 | 0 | 0 |
| 0B—G.722 | 0 | 0 |
| 0C—G.722.1 | 0 | 0 |
| 0D—G.723 | 0 | 0 |
| 0E—G.726 | 0 | 0 |
| 0F—G.728 | 0 | 0 |
| 10—G.729 | 0 | 0 |
| |||
Stream_type | |||
1--PS, | |||
2--TS, | |||
3--MP4_FILE, | |||
4--WM9, | |||
NOTE:. The value is hex |
4.2 XML Schema
以下文件是分发接口定义的XML的Schema
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="ADI">
<xs:complexType>
<xs:sequence>
<xs:element name="Objects" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Object" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" type="PropertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="ElementType" type="xs:string" use="required"/>
<xs:attribute name="ID" type="xs:string" use="required"/>
<xs:attribute name="Action" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Mappings" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Mapping" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" type="PropertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="ID" type="xs:string" use="optional"/>
<xs:attribute name="ParentType" type="xs:string" use="required"/>
<xs:attribute name="ParentID" type="xs:string" use="required"/>
<xs:attribute name="ElementType" type="xs:string" use="required"/>
<xs:attribute name="ElementID" type="xs:string" use="required"/>
<xs:attribute name="Action" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Reply" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Result" type="xs:string"/>
<xs:element name="Description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="SPCode" type="xs:string" use="optional"/>
<xs:attribute name="SubsidiaryID" type="xs:string" use="optional"/>
<xs:attribute name="StaffID" type="xs:string" use="optional"/>
<xs:attribute name="CheckFlag" type="xs:string" use="optional"/>
<xs:attribute name="SyncFlag" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:complexType name="PropertyType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
4.3 WSDL
以下文件是soap接口中上层主动分发接口的WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="iptv" xmlns:impl="iptv" xmlns:intf="iptv" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="iptv">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="CSPResult">
<sequence>
<element name="Result" type="xsd:int"/>
<element name="ErrorDescription" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="ExecCmdRequest">
<wsdl:part name="CSPID" type="soapenc:string"/>
<wsdl:part name="LSPID" type="soapenc:string"/>
<wsdl:part name="CorrelateID" type="soapenc:string"/>
<wsdl:part name="CmdFileURL" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="ExecCmdResponse">
<wsdl:part name="ExecCmdReturn" type="impl:CSPResult"/>
</wsdl:message>
<wsdl:portType name="CSPRequest">
<wsdl:operation name="ExecCmd" parameterOrder="CSPID LSPID CorrelateID CmdFileURL">
<wsdl:input name="ExecCmdRequest" message="impl:ExecCmdRequest"/>
<wsdl:output name="ExecCmdResponse" message="impl:ExecCmdResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ctmsSoapBinding" type="impl:CSPRequest">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ExecCmd">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="ExecCmdRequest">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv"/>
</wsdl:input>
<wsdl:output name="ExecCmdResponse">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CSPRequestService">
<wsdl:port name="ctms" binding="impl:ctmsSoapBinding">
<wsdlsoap:address location="http://127.0.0.1"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
以下文件是soap接口中下层通知相应接口的WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="iptv" xmlns:impl="iptv" xmlns:intf="iptv" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="iptv">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="CSPResult">
<sequence>
<element name="Result" type="xsd:int"/>
<element name="ErrorDescription" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="ResultNotifyResponse">
<wsdl:part name="ResultNotifyReturn" type="impl:CSPResult"/>
</wsdl:message>
<wsdl:message name="ResultNotifyRequest">
<wsdl:part name="CSPID" type="soapenc:string"/>
<wsdl:part name="LSPID" type="soapenc:string"/>
<wsdl:part name="CorrelateID" type="soapenc:string"/>
<wsdl:part name="CmdResult" type="xsd:int"/>
<wsdl:part name="ResultFileURL" type="soapenc:string"/>
</wsdl:message>
<wsdl:portType name="CSPResponse">
<wsdl:operation name="ResultNotify" parameterOrder="CSPID LSPID CorrelateID CmdResult ResultFileURL">
<wsdl:input name="ResultNotifyRequest" message="impl:ResultNotifyRequest"/>
<wsdl:output name="ResultNotifyResponse" message="impl:ResultNotifyResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ctmsSoapBinding" type="impl:CSPResponse">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ResultNotify">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="ResultNotifyRequest">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv"/>
</wsdl:input>
<wsdl:output name="ResultNotifyResponse">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CSPResponseService">
<wsdl:port name="ctms" binding="impl:ctmsSoapBinding">
<wsdlsoap:address location="http://127.0.0.1"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>