首页>>CT技术培训>>智能网   问题解答 Q&A

第九课 用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.

 

 

 

首页>>CT技术培训>>智能网   问题解答 Q&A