Difference between revisions of "Diameter Commands"
From ss7api.null.ro
(<) |
(→Parameters) |
||
Line 23: | Line 23: | ||
For the XML child containing the command, the following parameters appear as attributes (bold - mandatory, italic - optional) | For the XML child containing the command, the following parameters appear as attributes (bold - mandatory, italic - optional) | ||
− | + | * '''appid''': Numeric identifier of the interface to which this message belongs to | |
− | + | * ''flags'' : Diameter flags for the message. For messages on direction TCP aplication -> Diameter translator, flags are optional in requests/answers(they will be added automatically by Diameter), but if they are added, they must be correctly correlated with the tag. An error answer must set flags to error. | |
− | + | * ''hhident'': Hop-to-hop identifier. Present in messages received by an application server. When an application sends a request, the Diameter translator automatically adds it | |
− | + | * ''eeident'': End-to-End identifier. Present in messages received by an application server. When an application sends a request, the Diameter translator automatically adds it | |
For S6a messages, the application ID is 16777251. | For S6a messages, the application ID is 16777251. |
Revision as of 11:51, 12 September 2016
This is the main part of the message holding the data specific to each Diameter interface.
The Diameter command is wrapped in a XML element marked by <operation/> to make it easy to find the information in the XML. The child of the <operation/> is an XML describing the Diameter command decoded/to be encoded. The tag of the child element is the name of the command.
Each message can only contain a single Diameter command message.
<m> .... <operation> <InsertSubscriberDataRequest appid="16777251"> <DestinationHost>mme.example.com</DestinationHost> <DestinationRealm>example.com</DestinationRealm> <Username>004100123456789</Username> <SubscriptionData vendor="10415"> <MSISDN vendor="10415">40700100100</MSISDN> </SubscriptionData> <IDRFlags vendor="10415">eps-user-state-req,eps-loc-info-req,local-tz-req,rat-type-req</IDRFlags> </InsertSubscriberDataRequest> </operation> </m>
Parameters
For the XML child containing the command, the following parameters appear as attributes (bold - mandatory, italic - optional)
- appid: Numeric identifier of the interface to which this message belongs to
- flags : Diameter flags for the message. For messages on direction TCP aplication -> Diameter translator, flags are optional in requests/answers(they will be added automatically by Diameter), but if they are added, they must be correctly correlated with the tag. An error answer must set flags to error.
- hhident: Hop-to-hop identifier. Present in messages received by an application server. When an application sends a request, the Diameter translator automatically adds it
- eeident: End-to-End identifier. Present in messages received by an application server. When an application sends a request, the Diameter translator automatically adds it
For S6a messages, the application ID is 16777251.
Non-base protocol Diameter AVPs must have vendor identifier set. For 3GPP AVPs this is 10415.
Examples
- Request (HSS -> MME & TCP -> Diameter):
<m> <timestamp-recv>1470663005862835</timestamp-recv> <diameter> <timeout>60000</timeout> <local_node>example.com/hss.example.com</local_node> <trans_id>hss/123456</trans_id> </diameter> <operation> <InsertSubscriberDataRequest appid="16777251" flags="request,proxiable"> <DestinationHost>mme.example.com</DestinationHost> <DestinationRealm>example.com</DestinationRealm> <Username>004100123456789</Username> <SubscriptionData vendor="10415"> <MSISDN vendor="10415">40700100100</MSISDN> </SubscriptionData> <IDRFlags vendor="10415">eps-user-state-req,eps-loc-info-req,local-tz-req,rat-type-req</IDRFlags> </InsertSubscriberDataRequest> </operation> </m>
- Answer (MME -> HSS):
<m> <timestamp-send>1470663005862835</timestamp-send> <diameter> <trans_id>hss/123456</trans_id> </diameter> <operation> <InsertSubscriberDataAnswer appid="16777251" flags="proxiable" hhident="${hhident}" eeident="${eeident}"> <SessionId>${session_id}</SessionId> <AuthSessionState>1</AuthSessionState> <IMSVOPSSS vendor="10415">yes</IMSVOPSSS> <LastUEActivityTime vendor="10415">12345678</LastUEActivityTime> <RATType vendor="10415">e-utran</RATType> <IDAFlags vendor="10415">network-node-area-restricted</IDAFlags> <EpsUserState vendor="10415"> <MmeUserState vendor="10415"> <UserState vendor="10415">attached-reachable-for-paging</UserState> </MmeUserState> </EpsUserState> <EpsLocationInfo vendor="10415"> <MmeLocationInfo vendor="10415"> <EutranCellGlobalIdentity vendor="10415"> <PlmnIdentity>123456</PlmnIdentity> <CellIdentity>1234567</CellIdentity> </EutranCellGlobalIdentity> <GeographicalInfo vendor="10415">0001020304050607</GeographicalInfo> <GeodeticInfo vendor="10415">00010203040506070809</GeodeticInfo> <CurrentLocationRetrieved vendor="10415">active-loc-retrieval</CurrentLocationRetrieved> <AgeOfLocationInfo vendor="10415">7</AgeOfLocationInfo> <UserCsgInfo vendor="10415"> <CsgId vendor="10415">345</CsgId> <CsgAccessMode vendor="10415">closed</CsgAccessMode> <CsgMembershipInd vendor="10415">yes</CsgMembershipInd> </UserCsgInfo> </MmeLocationInfo> <SgsnLocationInfo vendor="10415"> <SAI vendor="10415"> <PlmnIdentity>12345</PlmnIdentity> <LAC>1122</LAC> <SAC>99</SAC> </SAI> </SgsnLocationInfo> </EpsLocationInfo> <LocalTimeZone vendor="10415"> <TimeZone vendor="10415">+2</TimeZone> <DaylightSavingTime vendor="10415">1</DaylightSavingTime> </LocalTimeZone> <IDAFlags vendor="10415">network-node-area-restricted</IDAFlags> </InsertSubscriberDataAnswer> </operation> </m>
- Error (local host -> TCP application)
<m> <timestamp-send>1470663005862835</timestamp-send> <diameter> <trans_id>hss/123456</trans_id> </diameter> <operation> <InsertSubscriberDataAnswer appid="16777251" flags="error" hhident="${hhident}" eeident="${eeident}> <OriginHost>hss.example.com</OriginHost> <OriginRealm>example.com</OriginRealm> <ResultCode>3002</ResultCode> <ErrorMessage>timeout</ErrorMessage> </InsertSubscriberDataAnswer> </operation> </m>
- Request (MME -> HSS & Diameter -> TCP)
<m> <timestamp-send>1470663005862835</timestamp-send> <diameter> <trans_id>diam/456789</trans_id> </diameter> <operation> <AuthenticationInfoRequest appid="16777251" flags="request,proxiable" hhident="${hhident}" eeident="${eeident}> <DestinationRealm>example.com</DestinationRealm> <Username>004100123456789</Username> <SupportedFeatures vendor="10415"> <value id="2">sms-in-mme</value> </SupportedFeatures> <RequestedEutranAuthInfo vendor="10415"> <NumberOfRequestedVectors vendor="10415">5</NumberOfRequestedVectors> <ImmediateResponsePreferred vendor="10415"/> <ReSynchronisationInfo vendor="10415">001122</ReSynchronisationInfo> </RequestedEutranAuthInfo> <RequestedUtranGeranAuthInfo vendor="10415"> <NumberOfRequestedVectors vendor="10415">3</NumberOfRequestedVectors> <ReSynchronisationInfo vendor="10415">001122</ReSynchronisationInfo> </RequestedUtranGeranAuthInfo> <VisitedPlmnId vendor="10415">040100</VisitedPlmnId> </AuthenticationInfoRequest> </operation> </m>
- Answer (HSS -> MME & TCP -> Diameter):
<m> <timestamp-recv>1470663005862835</timestamp-recv> <diameter> <trans_id>diam/456789</trans_id> </diameter> <operation> <AuthenticationInfoAnswer appid="16777251" hhident="${hhident}" eeident="${eeident}"> <SessionId>${session_id}</SessionId> <AuthSessionState>1</AuthSessionState> <VendorSpecificApplicationId> <value vendor="10415" auth="true">16777251</value> </VendorSpecificApplicationId> <ResultCode>2001</ResultCode> <ErrorDiagnostic vendor="10415">odb-HPLMN-APN</ErrorDiagnostic> <SupportedFeatures vendor="10415"> <value vendor="10415" id="1">baoc,boic</value> </SupportedFeatures> <AuthenticationInfo vendor="10415"> <EutranVector vendor="10415"> <ItemNumber vendor="10415">1</ItemNumber> <RAND vendor="10415">01020304111213142122232441424344</RAND> <XRES vendor="10415">12345678</XRES> <AUTN vendor="10415">12345678</AUTN> <KASME vendor="10415">12345678</KASME> </EutranVector> <EutranVector vendor="10415"> <ItemNumber vendor="10415">2</ItemNumber> <RAND vendor="10415">01020304111213142122232441424344</RAND> <XRES vendor="10415">00345678</XRES> <AUTN vendor="10415">00345678</AUTN> <KASME vendor="10415">00345678</KASME> </EutranVector> <UtranVector vendor="10415"> <RAND vendor="10415">01020304111213142122232441424344</RAND> <XRES vendor="10415">22345678</XRES> <AUTN vendor="10415">22345678</AUTN> <ConfidentialityKey vendor="10415">22345678</ConfidentialityKey> <IntegrityKey vendor="10415">22345678</IntegrityKey> </UtranVector> <GeranVector vendor="10415"> <RAND vendor="10415">01020304111213142122232441424344</RAND> <SRES vendor="10415">34567811</SRES> <Kc vendor="10415">34567811</Kc> </GeranVector> </AuthenticationInfo> </AuthenticationInfoAnswer> </operation> </m>
- Error (HSS -> MME & TCP -> Diameter, failure, auth data not found):
<m> <timestamp-recv>1470663005862835</timestamp-recv> <diameter> <trans_id>diam/456789</trans_id> </diameter> <operation> <AuthenticationInfoAnswer appid="16777251" hhident="${hhident}" eeident="${eeident}"> <SessionId>${session_id}</SessionId> <AuthSessionState>1</AuthSessionState> <ExperimentalResult> <value vendor="10415">auth-data-unavailable</value> </ExperimentalResult> </AuthenticationInfoAnswer> </operation> </m>