Difference between revisions of "Diameter Commands"

From ss7api.null.ro
Jump to: navigation, search
(<)
(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
+
* '''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.
+
* ''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-hp identifier. Present in messages received by an application server. When an application sends a request, the Diameter translator automatically adds it
+
* ''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''
+
* ''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>
Personal tools
Namespaces

Variants
Actions
MAP & CAMEL XML Interface
Diameter XML Interface
MAP and CAMEL operations
Diameter interfaces
Examples
Resources
Navigation
Toolbox