Difference between revisions of "Diameter Commands"
From ss7api.null.ro
(Created page with "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...") |
(→Parameters) |
||
(4 intermediate revisions by one user not shown) | |||
Line 18: | Line 18: | ||
</InsertSubscriberDataRequest> | </InsertSubscriberDataRequest> | ||
</operation> | </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. See [[S6a/Sad|S6a/S6d interface]]. | ||
+ | |||
+ | 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> | </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>