第九课 用NMS通信公司产品实现SCF和SRF功能
NMS通信公司提供的SS7产品已经实现了MTP1、MTP2、MTP3、SCCP、TCAP、ISUP、TUP等各层的功能,开发人员只要在此基础上开发一些INAP函数就可以实现相应的智能网业务。下面以实现SCF和SRF功能为例,说明软硬件环境、实现业务的功能框图、INAP函数的描述。
硬件需求:
软件需求:
功能框图:
图中所示的智能业务流程:
SSF中一个带有业务号或拨号前缀的呼入触发了智能业务的开始,SSF向SCF发出触发消息(InitialDP),SCF内有业务的控制流程(GSL),根据业务的控制流程SCF向SSF发出命令ConnectToResource,该命令要求SSF把呼入接通到SRF,由SRF向终端用户播放录音提示。
SSF收到从SCF发来的ConnectToResource命令,用ISUP协议和SRF通信,把呼叫接通到SRF的提示音播放设备。(粉红色虚线)
SCF同时向SRF发出PromptAndCollectUserInformation指令(红色虚线)让SRF播放录音提示并收集终端用户的输入信息(个人标识和被叫号码)。
SRF收集终端用户的输入信息后把信息返回SCF(绿色虚线),SCF向SSF发出DisconnectForwardConnection指令,要求SSF拆除到SRF的连接。
以上是SCF对SSF控制的一个完整循环,之后的呼叫过程图中没有画出,应该是:SCF向SSF发出指示要求SSF把呼叫接通至被叫,然后SCF向SSF发出RequestReportBCSMEvent ,要求SSF报告呼叫状态;当被叫挂机后,SCF会再向SSF发出ConnectToResource命令,重复上面SCF对SSF的控制循环,直到主叫用户挂机。
给出用ASN.1语言描述的业务流程中各操作:
initialDP {PARAMETERS-BOUND : bound} OPERATION ::= {
ARGUMENT InitialDPArg {bound}
RETURN RESULT FALSE
ERRORS {missingCustomerRecord |
missingParameter |
parameterOutOfRange |
systemFailure |
taskRefused |
unexpectedComponentSequence |
unexpectedDataValue |
unexpectedParameter}
CODE opcode-initialDP
}
--方向:SSF -> SCF, 定时器:T idp
--这一操作发生在TDP触发之后,用于指示业务请求。
InitialDPArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
serviceKey [0] ServiceKey ,
calledPartyNumber [2] CalledPartyNumber {bound} OPTIONAL,
callingPartyNumber [3] CallingPartyNumber {bound} OPTIONAL,
callingPartyBusinessGroupID [4] CallingPartyBusinessGroupID OPTIONAL,
callingPartysCategory [5] CallingPartysCategory OPTIONAL,
cGEncountered [7] CGEncountered OPTIONAL,
iPSSPCapabilities [8] IPSSPCapabilities {bound} OPTIONAL,
iPAvailable [9] IPAvailable {bound} OPTIONAL,
locationNumber [10] LocationNumber {bound} OPTIONAL,
originalCalledPartyID [12] OriginalCalledPartyID {bound} OPTIONAL,
terminalType [14] TerminalType OPTIONAL,
extensions [15] SEQUENCE SIZE(1..bound.&numOfExtensions) OF
ExtensionField {bound} OPTIONAL,
highLayerCompatibility [23] HighLayerCompatibility OPTIONAL,
serviceInteractionIndicators [24] ServiceInteractionIndicators {bound} OPTIONAL,
additionalCallingPartyNumber [25] AdditionalCallingPartyNumber {bound} OPTIONAL,
forwardCallIndicators [26] ForwardCallIndicators OPTIONAL,
bearerCapability [27] BearerCapability {bound} OPTIONAL,
eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
redirectingPartyID [29] RedirectingPartyID {bound} OPTIONAL,
redirectionInformation [30] RedirectionInformation OPTIONAL,
cause [17] Cause {bound} OPTIONAL,
iSDNAccessRelatedInformation [21] ISDNAccessRelatedInformation OPTIONAL,
iNServiceCompatibilityIndication [22] INServiceCompatibilityIndication {bound} OPTIONAL,
genericNumbers [31] GenericNumbers {bound} OPTIONAL,
serviceInteractionIndicatorsTwo [32] ServiceInteractionIndicatorsTwo OPTIONAL,
forwardGVNS [33] ForwardGVNS {bound} OPTIONAL,
createdCallSegmentAssociation [34] CSAID {bound} OPTIONAL,
uSIServiceIndicator [35] USIServiceIndicator {bound} OPTIONAL,
uSIInformation [36] USIInformation {bound} OPTIONAL,
carrier [37] Carrier OPTIONAL,
iMSI [50] IMSI OPTIONAL,
subscriberState [51] SubscriberState OPTIONAL,
locationInformation [52] LocationInformation OPTIONAL,
ext-basicServiceCode [53] Ext-BasicServiceCode OPTIONAL,
callReferenceNumber [54] CallReferenceNumber OPTIONAL,
mscAddress [55] ISDN-AddressString OPTIONAL,
calledPartyBCDNumber [56] CalledPartyBCDNumber OPTIONAL,
...
}
-- OPTIONAL for iPSSPCapabilities, iPAvailable, cGEncountered, and miscCallInfo denotes network
-- operator specific use.
-- OPTIONAL for callingPartyNumber, and callingPartysCategory refer to clause 18 for the trigger
-- detection point processing rules to specify when these parameters are included in the message.
connectToResource {PARAMETERS-BOUND : bound} OPERATION ::= {
ARGUMENT ConnectToResourceArg {bound}
RETURN RESULT FALSE
ERRORS {missingParameter |
systemFailure |
taskRefused |
unexpectedComponentSequence |
unexpectedDataValue |
unexpectedParameter|
unknownLegID}
CODE opcode-connectToResource
}
-- Direction: SCF Æ SSF, Timer: T ctr
-- This operation is used to connect a call from the SSP to the physical entity containing the SRF.
-- Refer to clause 18 for a description of the procedures associated with this operation.
ConnectToResourceArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
resourceAddress CHOICE {
ipRoutingAddress [0] IPRoutingAddress {bound},
legID [1] LegID,
ipAddressAndLegID [2] SEQUENCE {
ipRoutingAddress [0] IPRoutingAddress {bound},
legID [1] LegID,
...
},
none [3] NULL,
callSegmentID [5] CallSegmentID {bound},
ipAddressAndCallSegment [6] SEQUENCE {
ipRoutingAddress [0] IPRoutingAddress {bound},
callSegmentID [1] CallSegmentID {bound},
...
}
},
extensions [4] SEQUENCE SIZE(1..bound.&numOfExtensions) OF
ExtensionField {bound} OPTIONAL,
serviceInteractionIndicators [30] ServiceInteractionIndicators {bound} OPTIONAL,
serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
...
}
disconnectForwardConnection OPERATION ::= {
RETURN RESULT FALSE
ERRORS {systemFailure |
taskRefused |
unexpectedComponentSequence}
CODE opcode-disconnectForwardConnection
}
-- Direction: SCF Æ SSF, Timer: T dfc
-- This operation is used to disconnect a forward temporary connection or a
-- connection to a resource. Refer to clause 18 for a description of the procedures
-- associated with this operation.
-- This operation is not valid for a multi call segment CSA.
connect {PARAMETERS-BOUND : bound} OPERATION ::= {
ARGUMENT ConnectArg {bound}
RETURN RESULT FALSE
ERRORS {missingParameter |
parameterOutOfRange |
systemFailure |
taskRefused |
unexpectedComponentSequence |
unexpectedDataValue |
unexpectedParameter}
CODE opcode-connect
}
-- Direction: SCF ? SSF, Timer: T con
-- This operation is used to request the SSF to perform the call processing actions to route or
-- forward a call to a specified destination. To do so, the SSF may or may not use destination
-- information from the calling party (e.g. dialed digits) and existing call setup information
-- (e.g. route index to a list of trunk groups), depending on the information provided by the SCF.
-- - When address information is only included in the Connect operation, call processing resumes at
-- the Analyzed_Information PIC in the O-BCSM.
-- - When address information and routing information is included, call processing resumes at the
-- Select_Route PIC.
ConnectArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
destinationRoutingAddress [0] DestinationRoutingAddress {bound},
alertingPattern [1] AlertingPattern OPTIONAL,
correlationID [2] CorrelationID {bound} OPTIONAL,
cutAndPaste [3] CutAndPaste OPTIONAL,
iSDNAccessRelatedInformation [5] ISDNAccessRelatedInformation{bound} OPTIONAL,
originalCalledPartyID [6] OriginalCalledPartyID {bound} OPTIONAL,
routeList [7] RouteList {bound} OPTIONAL,
scfID [8] ScfID {bound} OPTIONAL,
extensions [10] SEQUENCE SIZE(1..bound.&numOfExtensions) OF
ExtensionField {bound} OPTIONAL,
carrier [11] Carrier{bound} OPTIONAL,
serviceInteractionIndicators [26] ServiceInteractionIndicators {bound} OPTIONAL,
callingPartyNumber [27] CallingPartyNumber {bound} OPTIONAL,
callingPartysCategory [28] CallingPartysCategory OPTIONAL,
redirectingPartyID [29] RedirectingPartyID {bound} OPTIONAL,
redirectionInformation [30] RedirectionInformation OPTIONAL,
displayInformation [12] DisplayInformation {bound} OPTIONAL,
forwardCallIndicators [13] ForwardCallIndicators OPTIONAL,
genericNumbers [14] GenericNumbers {bound} OPTIONAL,
serviceInteractionIndicatorsTwo [15] ServiceInteractionIndicatorsTwo OPTIONAL
iNServiceCompatibilityResponse [16] INServiceCompatibilityResponse OPTIONAL,
forwardGVNS [17] ForwardGVNS {bound} OPTIONAL,
backwardGVNS [18] BackwardGVNS {bound} OPTIONAL,
callSegmentID [20] CallSegmentID {bound} OPTIONAL,
legToBeCreated [21] LegID OPTIONAL,
locationNumber [50] LocationNumber {bound} OPTIONAL,
bearerCapability [51] BearerCapability {bound} OPTIONAL,
suppressionOfAnnouncement [55] SuppressionOfAnnouncement OPTIONAL,
oCSIApplicable [56] OCSIApplicable OPTIONAL,
...
}
releaseCall {PARAMETERS-BOUND : bound} OPERATION ::= {
ARGUMENT ReleaseCallArg {bound}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE opcode-releaseCall
}
-- Direction: SCF Æ SSF, Timer: T rc
-- This operation is used to tear down an existing call at any phase of the call
-- for all parties involved in the call.