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 10: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>