Difference between revisions of "Diameter Commands"
From ss7api.null.ro
(→Parameters) |
|||
(3 intermediate revisions by one user not shown) | |||
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. See [[S6a/Sad|S6a/S6d interface]]. |
Non-base protocol Diameter AVPs must have '''vendor''' identifier set. For 3GPP AVPs this is 10415. | 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 & Diameter -> TCP): | ||
+ | <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> |
Latest revision as of 11:57, 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>
[edit] 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. See S6a/S6d interface.
Non-base protocol Diameter AVPs must have vendor identifier set. For 3GPP AVPs this is 10415.
[edit] 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 & Diameter -> TCP):
<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>