NOTE - The component may be repeated any number of times within the remote operations parameter. In case of multiple service requests, the receiving entity shall treat the repetition of Invoke components identical to the case where multiple Remote Operations parameters are received in a single message.SS7-ISUP (3.48/Q.763 (09/97)
8 7 6 5 4 3 2 1 ext1 0 0 1 0 0 0 1 - Remote operations protocol - - components - -
The Components are based on the Remote Operations Service Element (ROSE) of Rec. X.229. The description is divided into two forms:
Component types:
Component type tag | |
---|---|
Invoke | |
Return Result | |
Return Error | |
Reject |
Component types in ASN.1:
Component ::= CHOICE { invoke [1] IMPLICIT Invoke, returnResult [2] IMPLICIT ReturnResult, returnError [3] IMPLICIT ReturnError, reject [4] IMPLICIT Reject }The full specification of SS7-ISUP components in ASN.1:
ISUPRemoteOperations {CCITT Recommendation q763 moduleA(0)} DEFINITIONS ::= BEGIN EXPORTS OPERATION, ERROR Component ::= CHOICE { invoke [1] IMPLICIT Invoke, returnResult [2] IMPLICIT ReturnResult, returnError [3] IMPLICIT ReturnError, reject [4] IMPLICIT Reject } -- The Components are sequences of data elements. Invoke ::= SEQUENCE {invokeID, InvokeID Type, linkedID [0] IMPLICIT InvokeID Type OPTIONAL, operationCode OPERATION, parameter ANY DEFINED BY operationCode OPTIONAL } -- ANY is filled by the single ASN.1 data -- type following the key word PARAMETER in -- the type definition of a particular -- operation. ReturnResult ::= SEQUENCE {invokeID InvokeID Type, SEQUENCE {operationCode OPERATION, parameters ANY DEFINED BY operationCode}OPTIONAL} -- ANY is filled by the single ASN.1 data -- type following the key word PARAMETER in -- the type definition of a particular -- operation. ReturnError ::= SEQUENCE {invokeID InvokeID Type errorCode ERROR, parameter ANY DEFINED BY errorCode OPTIONAL } -- ANY is filled by the single ASN.1 data -- type following the key word PARAMETER in -- the type definition of a particular -- error. Reject ::= SEQUENCE {invokeID CHOICE {InvokeID Type, NULL }, problem CHOICE { generalProblem [0] IMPLICIT GeneralProblem, invokeProblem [1] IMPLICIT InvokeProblem, returnResultProblem [2] IMPLICIT ReturnResultProblem, returnErrorProblem [3] IMPLICIT ReturnErrorProblem }} InvokeIDType ::= INTEGER (-128 ... 127).-- OPERATIONS
OPERATION MACRO BEGIN ::= TYPE NOTATION ::= Parameter Result Errors LinkedOperations VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER }) Parameter ::= "PARAMETER" NamedType | empty Result ::= "RESULT" ResultType | empty Errors ::= "ERRORS" "{"ErrorNames"}" | empty LinkedOperations ::= "LINKED" {LinkedOperationNames"}" | empty ResultType ::= NamedTyped | empty Error Names ::= ErrorList | empty Error List ::= Error | ErrorList", "Error Error ::= value (ERROR) -- shall reference an error value |type -- shall reference an error type if no error value is specified LinkedOperationNames ::= OperationList | empty OperationList ::= Operation | OperationList", "Operation Operation ::= value (OPERATION) -- shall reference an Operation Value |type -- shall reference an Operation type if no Operation value is specified NamedType ::= identifiertype | type END -- end of Operation Macro-- ERRORS
ERROR MACRO ::= BEGIN TYPE NOTATION ::= Parameter VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER} ) Parameter ::= "PARAMETER"NamedType | empty NamedType ::= identifier type | type END -- end of Error Macro -- PROBLEMS GeneralProblem ::= INTEGER { unrecognizedComponent (0) mistypedComponent (1) badlyStructuredComponent (2) } InvokeProblem ::= INTEGER { duplicateInvokeID (0) unrecognizedOperation (1) mistypedParameter (2) resourceLimitation (3) initiatingRelease (4) unrecognizedLinkedID (5) linkedResponseUnexpected (6) unexpectedLinkedOperation (7) } ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0) returnResultUnexpected (1) mistypedParameter (2) } ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0) returnErrorUnexpected (1) unrecognizedError (2) unexpectedError (3) mistypedParameter (4) } END -- end of ISUPRemoteOperation Module.The full specification of DSS1 components in ASN.1:
Facility-Information-Element-Component { ccitt recommendation q 932 facility-information-element-component (3) } DEFINITIONS ::= BEGIN EXPORTS Component, InvokeComponent, InvokeIdentifierType; IMPORTS OPERATION, ERROR FROM-Remote-Operations-Notation { joint iso-ccitt x 219 remote-operation(4) notation(0) } -- Component definitions: -- Types and values of operations and errors are defined in the -- Q.95x-series -- Recommendations or elsewhere using -- Remote Operations notation -- Operation values and error values are either of integer type -- or of object identifier -- type. If integer types are used, they shall be -- distinct within that abstract syntax adopted in the Q.95x-series -- Recommendations. Component ::= CHOICE { invokeComp [1] IMPLICIT InvokeComponent, retResultComp[2] IMPLICIT ReturnResultComponent, retErrorComp [3] IMPLICIT ReturnErrorComponent, rejectComp [4] IMPLICIT RejectComponent } InvokeComponent ::= SEQUENCE { invokeIdentifier InvokeIdentifierType, linkedIdentifier [0] IMPLICIT invokeIdentifierType OPTIONAL, operationValue OPERATION, argument ANY DEFINED BY operationValue OPTIONAL } -- ANY is filled by the single ASN.1 -- data type following the keyword -- ARGUMENT in the type -- definition of a particular operation ReturnResultComponent ::= SEQUENCE { invokeid invokeIdentifierType, SEQUENCE { operationValue OPERATION, result ANY DEFINED BY operationValue OPTIONAL } } -- ANY is filled by the single ASN.1 -- data type following the keyword -- RESULT in the type definition -- of a particular operation ReturnErrorComponent ::= SEQUENCE { invokeld InvokeldentifierType, errorValue ERROR, parameter ANY DEFINED BY errorValue OPTIONAL } -- ANY is filled by the single ASN.1 data type -- following the keyword PARAMETER -- in the type definition of a -- particular error RejectComponent ::= SEQUENCE { InvokeId CHOICE { InvokeIdentifierType, NULL }, problemCHOICE { [0] IMPLICIT GeneralProblem, [1] IMPLICIT InvokeProblem, [2] IMPLICIT ReturnResultProblem, [3] IMPLICIT ReturnErrorProblem } } InvokeldentifierType ::= INTEGER (-32768 .. 32767) GeneralProblem ::= INTEGER { -- detected by the Q.932 protocol entity unrecognizedComponent (0), mistypedComponent (1), badlyStructuredComponent (2) } InvokeProblem ::= INTEGER { -- detected by particular supplementary -- service entity duplicatelnvocation (0), unrecognizedOperation (1), mistypedArgument (2), resourceLimitation (3), initiatorReleasing (4), unrecognizedLinkedld (5), linkedResponseUnexpected (6), unexpectedChildOperation (7) } ReturnResuItProblem ::= INTEGER { -- detected by particular supplementary -- service entity unrecognizedlnvocation (0), resultResponseUnexpected (1), mistypedResult (2) } ReturnErrorProblem ::= INTEGER { -- detected by particular supplementary -- service entity unrecognizedInvocation (0), errorResponseUnexpected (1), unrecognizedError (2), unexpectedError (3), mistypedParameter (4) } END -- of Q.932 Facility Information Element Component -- definitions
Facility information element component coding
ss7 Remote operations parameter
Invoke identifier tags
An invoke identifier is used to identify an operation invocation and is reflected in the return result, return error or reject component sent in response to it. Invoke identifiers used within the Facility information element have significance only within the call reference, including the dummy call reference, in which they are sent. Procedures need to be provided to resolve possible conflicts in the case of use of the dummy Call reference value in the broadcast CEI and a specific CEI simultaneously. Proce dures may need to be provided to ensure that invoke identifiers are not prematurely reused during the lifetime of an operation which may result in a return error (Class 3) or a reject (Classes 3 and 5). Procedures may also need to be provided to avoid the case of two invoke components with the same Invoke Identifier being simultaneously sent in opposite directions. In the absence of such procedures, component exchanges resulting in ambiguous reject compo nents can occur as shown in Figure 8-3.inv, id = x -------------------------------------> inv, id = x <------------------------------------- rr, id = x -------------------------------------> rej, id = x, prob. tag = general <------------------------------------- 8.2.3.1.3 Treatment of existing Q.931 information elements as parameters Supplementary service protocol specifications are expected to require new parameters to be defined and to require the use of existing Q.931 information elements. New parameters shall be defined using X.209 coding if they do not appear elsewhere in Q.931 messages. Supplementary service protocol specifiers may elect to encapsulate one or more existing Q.931 information elements within an X.209 data element, thereby retaining the Q.931 coding for these information elements. When this option is chosen, all the Q.931 i nformation elements should be grouped together as the content following the Q.931 information elements tag. This is illustrated in Figure 8-4. The tag is defined in Table 8-8. This data element may appear by itself or as a member of a sequence or set as i ndicated in IV.6. NOTE - Encapsulation of the Facility information element within Facility information elements shall not be used. Figure 8-4/Q.932 - Encapsulation of Q.931 information elements Table 8-8/Q.932 - Q.931 information elements tag Bits 8 7 6 5 4 3 2 1 0 1 0 0 0 0 0 0 Q.931 information elements NOTE - All other values are reserved but this approach may also be applied in the future to coding structures from other Recommendations by defining other tags as required. Table 8-9 provides a formal definition of the Q.931 information element type. Table 8-9/Q.932 Embedded-Q931-Types { ccitt recommendation q 932 embedded-q931-types (5) } DEFINITIONS EXPLICIT TAGS ::= BEGIN EXPORTS Q931 InformationElement; Q931InformationElement ::= [APPLICATION 0] IMPLICIT OCTET STRING END -- of Embedded-Q931-Types