中国移动scp和ip之间uiscript协议规范.docx
《中国移动scp和ip之间uiscript协议规范.docx》由会员分享,可在线阅读,更多相关《中国移动scp和ip之间uiscript协议规范.docx(22页珍藏版)》请在冰豆网上搜索。
中国移动scp和ip之间uiscript协议规范
中国移动通信企业标准
中国移动通信集团公司发布
╳╳╳╳-╳╳-╳╳实施
╳╳╳╳-╳╳-╳╳发布
QB-╳╳-╳╳╳-╳╳╳╳
SCP和IP之间UISCRIPT协议规范
征求意见稿
版本号:
1.1.0
目次
前言2
1范围1
2引用标准1
3术语和定义1
4符号和缩略语1
5概述2
6UISCRIPT的功能2
7UISCRIPT的机制2
8UISCRIPT对脚本的要求3
8.1脚本的要求3
8.2脚本的描述方式3
9UISCRIPT操作3
9.1综述3
9.2ScriptRun4
9.2.1操作描述4
9.2.2参数结构4
9.2.3编码规则5
9.3ScriptInformation6
9.3.1操作描述6
9.3.2参数结构6
9.3.3编码规则7
9.4ScriptEvent8
9.4.1操作描述8
9.4.2参数结构8
9.4.3编码规则9
9.5ScriptClose10
9.5.2参数结构10
9.5.3编码规则10
9.6UIScriptSpecificInformation/UIScriptResult的定义11
9.6.1SCRIPTRUN操作中的UIScriptSpecificInformation定义12
9.6.2SCRIPTEVENT操作中的uIScriptResult定义12
9.6.3SCRIPTINFO操作中的UIScriptSpecificInformation定义15
9.6.3SCRIPTCLOSE操作中的UIScriptSpecificInformation定义15
9.7UIScriptID的定义16
附件:
编制历史17
前言
随着基于内容业务的不断发展和梦网模式的不断普及,移动用户对内容的需求也逐步增大。
目前,运营商主要通过数据业务(短消息、GPRS等)向用户提供内容。
话音内容服务系统是通过话音为主的方式向用户提供内容服务。
该系统由SCP(语音网关)、增强IP、SP等几个部分组成。
本规范主要对SCP(语音网关)和增强IP之间的接口进行描述和定义。
本标准由中国移动通信集团公司技术部提出并归口。
本标准由标准提出并归口部门负责解释。
本标准起草单位:
中国移动通信集团公司研发中心。
本标准主要起草人:
魏冰、赵毓毅。
1范围
本标准主要对话音内容服务系统中的SCP(语音网关)和增强IP设备之间的接口进行了规范。
本标准适用于SCP(语音网关)和增强IP设备之间接口的研制、开发、测试。
2引用标准
本标准引用了以下标准或规范:
[1]话音内容服务业务总体技术要求
[2]Q.1228
3术语和定义
UI-SCRIPTCS2中定义的脚本形式,用于SCP对IP上脚本的调用
NO.77号信息
定购指用户选择业务的过程
4符号和缩略语
IVR交互式语音应答系统
SCP业务控制点
IP智能外设
SSP业务交换点
SCE业务生成环境
CAPCAMEL应用部分
API应用编程接口
XML可扩展标识语言
VXML语音可扩展标识语言
DSMP数据业务管理平台
5概述
UIScript(UserInteractionScript)接口是在CS2中定义的一种用于SCF与SRF之间标准INAP信令,包括四种主要操作原语ScriptRun、ScriptInformation、ScriptEvent、ScriptClose,分别在一次完整的SCF/SRF交互过程的不同阶段应用。
独立IP作为一种重要的智能外设在智能网中执行SRF的职能,在SCP与IP的交互中使用UIscript机制不仅可以有效减少大量PA和P&C操作,减轻信令交互的负担,同时也可以将一部分业务逻辑功能从SCP转移到独立IP执行,使业务分别更加合理。
在话音内容服务系统中,UIScript接口主要用于SCP和增强IP之间的交互。
6UISCRIPT的功能
6.1智能业务处理的负荷得到了分担:
智能网中的业务的控制在分布平面上进行了划分,在某些业务中SCF负责业务中路由,计费部分的控制,而SRF负责业务中用户交互部分的控制。
6.2用户交互控制在业务间得到共享:
一些有意义的用户交互过程可以被不同的业务使用。
6.3提高用户交互的响应速度:
和用户交互过程中SCF与SRF的交互减少,缩短了用户交互处理的时间。
6.4提供了一种向第三方开发业务逻辑修改、编写的方式。
使得第三方可以控制IP上的业务逻辑。
7UISCRIPT的机制
SCP和增强IP之间对话的建立方式:
标准的CAMEL方式;
SCP和增强IP之间对话的结束方式:
SCP通过TC-END结束对话,或者增强IP在脚本运行完毕出于空闲状态时通过TC-END结束对话;
UISCRIPT操作以脚本ID为标识,组成一组相关操作;
每组相关操作必须以RUN操作开始;
SCP可以主动向增强IP发送RUN、INFO、CLOSE等操作;
增强IP可以向SCP发送EVENT操作,SCP需要按照顺序以INFO或者CLOSE操作反馈。
脚本有两种结束方式:
隐式结束和显式结束;
隐式结束中,当UIScript脚本结束后,增强IP会主动结束脚本,释放脚本资源;
显式结束中,当UIScript脚本结束后,SRF保持在“UserInteration”状态,即不结束脚本,等待SCF发送uIScriptClose操作来通知IP结束脚本,释放脚本资源。
一旦发送了CLOSE操作,所有和该CLOSE操作包含的脚本ID相同的操作全部失效。
8UISCRIPT对脚本的要求
8.1脚本的要求
对脚本的描述方式主要需要考虑的有这么几点:
⏹脚本的执行效率;
⏹脚本描述的方便性;
⏹脚本能力的可扩展性;
⏹脚本描述方式的标准性;
8.2脚本的描述方式
对脚本的描述方式主要可以有这么几种:
⏹面向过程的描述语言来描述;
⏹面向对象的描述语言来描述;
⏹标记语言来描述;
在话音内容服务业务中,我们建议采用VXML作为脚本描述语言,具体的规范参见《VXML规范》的要求。
9UISCRIPT操作
9.1综述
根据INAPCS2Q.1228中的描述,UISCRIPT的各个操作属于INAP层,由TCAP承载,适用于SCP和SRP之间的交互。
UIScript是SLP视角中的SRF资源功能,SLP通过SCF向SRF申请UIScript的执行。
UIScript描述了对SRF各个资源基本功能的、以有逻辑方式组合的使用过程。
对应于一个呼叫,某个UIScript会被激活执行,这样的一个执行称为一个UIScript实例。
增强的SRF是UIScript执行的场所,它能够根据对基本资源功能的某种组合的描述(UIScript),有逻辑地激活不同的资源功能。
通过这种方法,SRF除了提供基本的资源功能服务外,还提供组合的资源功能服务(UIScript),因此表现出服务的多样性和灵活性。
UIScript包括以下4个操作:
ScriptRun(SCF->SRF):
用于激活脚本,占用资源;
参数有UIScriptId,UIScriptSpecificInformation,callSegmentIdentifier,disconnectFromIPForbidden;
ScriptEvent(SRF->SCF):
用于传递脚本执行结果;
参数有UIScriptId,UIScriptSpecificInformation,callSegmentIdentifier,lastEventIndicator;
ScriptInformation(SCF->SRF):
用于向脚本传递参数;
参数有UIScriptId,UIScriptSpecificInformation,callSegmentIdentifier;
ScriptClose(SCF->SRF):
用于关闭脚本,释放资源;
参数有UIScriptId,UIScriptSpecificInformation,callSegmentIdentifier;
9.2ScriptRun
9.2.1操作描述
方向:
SCF->增强IP
功能:
此操作用于分配执行用户交互脚本实例所必需的资源,并且激活该脚本实例。
9.2.2参数结构
scriptRun{PARAMETERS-BOUND:
bound}OPERATION:
:
={
ARGUMENTScriptRunArg{bound}
RETURNRESULTFALSE
ERRORS{
systemFailure|
missingParameter|
taskRefused|
unavailableResource|
unexpectedComponentSequence|
unexpectedDataValue|
unexpectedParameter
}
CODEopcode-scriptRun
}
ScriptRunArg{PARAMETERS-BOUND:
bound}:
:
=SEQUENCE{
uIScriptIdUISCRIPT.&id({SupportedUIScripts{bound}}),
uIScriptSpecificInfo[0]UISCRIPT.&SpecificInfo({SupportedUIScripts{bound}}{@uIScriptId})
OPTIONAL,
extensions[1]SEQUENCESIZE(1..bound.&numOfExtensions)OF
ExtensionField{bound}OPTIONAL,
disconnectFromIPForbidden[2]BOOLEANDEFAULTTRUE,
callSegmentID[3]CallSegmentID{bound}OPTIONAL,
...
}
9.2.3编码规则
●ScriptRun操作标识:
opcode-scriptRunCode:
:
=local:
110
●uIScritpID
用于唯一标识脚本;
定义:
uIScriptID:
:
=Integer4
uIScriptID参数有4个字节,编码时按照号段分配给各业务使用,以避免各业务所使用的uIScriptID交叉。
每一种业务中又可以根据脚本类型和适用流程再进行分段,分段规则可以固定长度分配,具体的规则参见9.7节中的描述。
●uIScriptSpecificInfo
用于向IP发送被调用的脚本所需要的信息;
定义:
UIScriptSpecificInfo:
:
=OCTETSTRING(SIZE(127))
编码:
符合ASNOCTETSTRING类型编码,内部采用ASN.1的编码方式,格式如下:
“TAG+长度+值+…”。
ASN.1只支持普通类基本数据类型编码方式,TAG的定义如下:
类型
TAG
BOOLEAN
0x01
INTEGER
0x02
STRING
0x04
NULL
0x05
ENUMERATE
0x0A
uIScriptSpecificInfo中包含的各段参数中的第一个参数(METHODID)固定用于标识本次ScriptRun操作中uIScriptSpecificInfo参数组的含义。
具体参见9.6节中的定义。
●disconnectFromIPForbidden
指示IP在脚本执行完后是否应该主动与用户(SSP)断开连接;
定义:
disconnectFromIPForbidden:
:
=BOOLEAN
编码:
长度为一个字节,TRUE表示不允许IP自动拆线;FALSE表示允许IP自动拆线;
●extensions、callSegmentID
可选参数,目前暂不使用;
9.3ScriptInformation
9.3.1操作描述
方向:
SCF->增强IP
功能:
此操作用于SCP在IP端脚本执行过程中IP发送附加信息,或者在收到SCRIPTEVENT操作后反馈一定的信息。
9.3.2参数结构
scriptInformation{PARAMETERS-BOUND:
bound}OPERATION:
:
={
ARGUMENTScriptInformationArg{bound}
RETURNRESULTFALSE
ERRORS{
systemFailure|
missingParameter|
taskRefused|
unavailableResource|
unexpectedComponentSequence|
unexpectedDataValue
unexpectedParameter
}
CODEopcode-scriptInformation
}
ScriptInformationArg{PARAMETERS-BOUND:
bound}:
:
=SEQUENCE{
uIScriptIdUISCRIPT.&id({SupportedUIScripts{bound}}),
uIScriptSpecificInfo[0]UISCRIPT.&SpecificInfo({SupportedUIScripts{bound}}{@uIScriptId})
OPTIONAL,
extensions[1]SEQUENCESIZE(0..bound.&numOfExtensions)OF
ExtensionField{bound}OPTIONAL,
callSegmentID[2]CallSegmentID{bound}OPTIONAL,
...
}
9.3.3编码规则
●ScriptInformation操作标识:
opcode-scriptInformationCode:
:
=local:
108
●uIScritpID
用于唯一标识脚本;
定义:
uIScriptID:
:
=Integer4
具体编码方案与ScriptRun操作中的uIScriptID参数编码方案同。
●uIScriptSpecificInfo
用于向IP发送被调用的脚本所需要的信息;
定义:
uIScriptSpecificInfo:
:
=OCTETSTRING(SIZE(127))
编码:
符合ASNOCTETSTRING类型编码,内部采用ASN.1的编码方式,格式如下:
“TAG+长度+值+…”ASN.1只支持普通类基本数据类型编码方式,TAG的定义如下:
类型
TAG
BOOLEAN
0x01
INTEGER
0x02
STRING
0x04
NULL
0x05
ENUMERATE
0x0A
uIScriptSpecificInfo中包含的各段参数中的第一个参数(METHORID)固定用于标识本次ScriptInformation操作中uIScriptSpecificInfo参数组的含义。
具体参见9.6节中的定义。
●extensions、callSegmentID
可选参数,目前暂不使用;
9.4ScriptEvent
9.4.1操作描述
方向:
SRF(IIP)->SCF
功能:
此操作用于IP向SCP返回脚本执行结果或收集到的信息。
9.4.2参数结构
scriptEvent{PARAMETERS-BOUND:
bound}OPERATION:
:
={
ARGUMENTScriptEventArg{bound}
RETURNRESULTFALSE
ALWAYSRESPONDSFALSE
CODEopcode-scriptEvent
}
ScriptEventArg{PARAMETERS-BOUND:
bound}:
:
=SEQUENCE{
uIScriptIdUISCRIPT.&id({SupportedUIScripts{bound}}),
uIScriptResult[0]UISCRIPT.&Result({SupportedUIScripts{bound}}{@uIScriptId})
OPTIONAL,
extensions[1]SEQUENCESIZE(1..bound.&numOfExtensions)OF
ExtensionField{bound}OPTIONAL,
callSegmentID[2]CallSegmentID{bound}OPTIONAL,
lastEventIndicator[3]BOOLEANDEFAULTFALSE,
...
}
9.4.3编码规则
●ScriptEvent操作标识:
opcode-scriptEventCode:
:
=local:
109
●uIScritpID
用于唯一标识脚本;
定义:
uIScriptID:
:
=Integer4
具体编码方案与ScriptRun操作中的uIScriptID参数编码方案同。
●uIScriptResult
用于IP向SCP返回脚本执行结果;
定义:
uIScriptResult:
:
=OCTETSTRING(SIZE(127))
编码:
符合ASNOCTETSTRING类型编码,内部采用ASN.1的编码方式,格式如下:
“TAG+长度+值+…”ASN.1只支持普通类基本数据类型编码方式,TAG的定义如下:
类型
TAG
BOOLEAN
0x01
INTEGER
0x02
STRING
0x04
NULL
0x05
ENUMERATE
0x0A
uIScriptResult中包含的各段参数中的第一个参数(METHORID)固定用于标识本次ScriptEvent操作中uIScriptResult参数组的含义。
具体参见9.6节中的定义。
●lastEventIndicator
此参数表明当前ScriptEvent中包含了本次Script脚本操作最终的结果,如果当前ScriptEvent是当前被调用脚本的最后一次返回结果,则此参数值必须设置为TRUE
●extensions、callSegmentID
可选参数,目前暂不使用;
9.5ScriptClose
9.5.1操作描述
方向:
SCF->SRF(IIP)
功能:
此操作用于释放调用脚本时分配的资源,结束本次脚本实例调用。
9.5.2参数结构
scriptClose{PARAMETERS-BOUND:
bound}OPERATION:
:
={
ARGUMENTScriptCloseArg{bound}
RETURNRESULTFALSE
ERRORS{
systemFailure|
missingParameter|
taskRefused|
unavailableResource|
unexpectedComponentSequence|
unexpectedDataValue|
unexpectedParameter
}
CODEopcode-scriptClose
}
ScriptCloseArg{PARAMETERS-BOUND:
bound}:
:
=SEQUENCE{
uIScriptIdUISCRIPT.&id({SupportedUIScripts{bound}}),
uIScriptSpecificInfo[0]UISCRIPT.&SpecificInfo({SupportedUIScripts{bound}}{@uIScriptId})
OPTIONAL,
extensions[1]SEQUENCESIZE(1..bound.&numOfExtensions)
OFExtensionField{bound}OPTIONAL,
callSegmentID[2]CallSegmentID{bound}OPTIONAL,
...
}
9.5.3编码规则
●ScriptClose操作标识:
opcode-scriptCloseCode:
:
=local:
111
●uIScritpID
用于唯一标识脚本;
定义:
UIScriptID:
:
=Integer4
具体编码方案与ScriptRun操作中的uIScriptID参数编码方案同。
●uIScriptSpecificInfo
用于向IP发送被调用的脚本所需要的信息;
定义:
uIScriptSpecificInfo:
:
=OCTETSTRING(SIZE(127))
编码:
符合ASNOCTETSTRING类型编码,内部采用ASN.1的编码方式,格式如下:
“TAG+长度+值+…”ASN.1只支持普通类基本数据类型编码方式,TAG的定义如下:
类型
TAG
BOOLEAN
0x01
INTEGER
0x02
STRING
0x04
NULL
0x05
ENUMERATE
0x0A
uIScriptSpecificInfo中包含的各段参数中的第一个参数(METHORID)固定用于标识本次ScriptClose操作中uIScriptSpecificInfo参数组的含义。
具体参见9.6节中的定义。
●extensions、callSegmentID
可选参数,目前暂不使用;
9.6UIScriptSpecificInformation/UIScriptResult的定义
定义:
uIScriptResult:
:
=OCTETSTRING(SIZE(0…127))
tag的类型包括INTEGER
(2)、STRING(4)、NULL(5)、BOOLEAN
(1)、ENUMERATE(A);
在SCP主控逻辑中,主要调用的是“注册脚本”和“分业务脚本”(如都市情缘,疯狂大拍卖,会议电话预约等),因此这里着重说明UIScriptSpecificInformation(SRP返回结果时为uIScriptResult参数)的定义。
为了区分该参数组特定流程的含义,需要有METHODID来标识,参数组内其他参数按照字节数来截取(如果消息长度足够,也可以考虑ASN.1的TLV格式)。
9.6.1SCRIPTRUN操作中的UIScriptSpecificInformation定义
参数名
数据类型
说明
METHODID
INTEGER4
RUN操作中只有一种方式,取值为0
主叫号码
STRING20
接入该业务的主叫用户号码
被叫号码
STRING20
用户拨打的号码
呼叫时长限制
INTEGER4