Diameter Messages

Capability Exchange: When two peers established transport connection, they must exchange the capability exchange message. this message allows the discovery of peer's identity and its capabilities.

Once transport layer is established, CER and CEA exchanged to determine the capability of peer endpoint followed by DWR/DWA. In below example DiameterNodeA start diameter connection with DiameterNodeB after transport layer connection established. In case of TCP (Syn/Syn-Ack) and  SCTP (Init/Init-Ack/Coockie Echo) exchanged. In case of SCTP Connection establishment(CER, CEA, DWR, and DWA) are exchanged with setting out-of-order delivery false to avoid race-condition and for connection termination (DPR/DPA) set the timer to receive out-of-order message before terminating the connection.


              DiameterNodeA                     DiameterNodeB

                                   <------Transport Layer Established--------->
               ---------------------- CER ---------------->
               <--------------------- CEA ----------------
               ---------------------- DWR ---------------->
               <--------------------- DWA ----------------
                           
                             Diameter message exchange
                              ......................

                --------------------- DPR ---------------->
                <-------------------- DPA -----------------




Capability-Exchange-Request (CER): R-bit is set. Upon transport failure, it must not sent on alternate route.

{} - Mandatory Messages
[] - Optional Messages

 Message Format

         <CER> ::= < Diameter Header: 257, REQ >
                   { Origin-Host }
                   { Origin-Realm }
                1* { Host-IP-Address }
                   { Vendor-Id }
                   { Product-Name }
                   [ Origin-State-Id ]
                 * [ Supported-Vendor-Id ]
                 * [ Auth-Application-Id ]
                 * [ Inband-Security-Id ]
                 * [ Acct-Application-Id ]
                 * [ Vendor-Specific-Application-Id ]
                   [ Firmware-Revision ]
                 * [ AVP ]

Capability-Exchange-Answer(CEA): R-bit is cleared.

Message Format

         <CEA> ::= < Diameter Header: 257 >
                   { Result-Code }
                   { Origin-Host }
                   { Origin-Realm }
                1* { Host-IP-Address }
                   { Vendor-Id }
                   { Product-Name }
                   [ Origin-State-Id ]
                   [ Error-Message ]
                   [ Failed-AVP ]
                 * [ Supported-Vendor-Id ]
                 * [ Auth-Application-Id ]
                 * [ Inband-Security-Id ]
                 * [ Acct-Application-Id ]
                 * [ Vendor-Specific-Application-Id ]
                   [ Firmware-Revision ]
                 * [ AVP ]

AVPs related CER/CEA are as follows::

Origin-Host AVP: contains host name of sender.
Origin-Realm AVP: contains the domain name of sender or realm address.

Vendor-Id AVP: set 0 for CER/CEA.
Host-IP-Address AVP: Contains IP address of sender.
Supported-Vendor-ID AVP: contains supported vendor-specific AVP.
Product-Name AVP: contains vendor specific name.

Disconnect-Peer-Request (DPR): R- Bit set, sent to a peer to inform it of its intentions to shut down the transport connection.

 Message Format

         <DPR>  ::= < Diameter Header: 282, REQ >
                    { Origin-Host }
                    { Origin-Realm }
                    { Disconnect-Cause }
                  * [ AVP ]

Disconnect-Peer-Answer (DPA): R-bit Cleared. 

 Message Format

         <DPA>  ::= < Diameter Header: 282 >
                    { Result-Code }
                    { Origin-Host }
                    { Origin-Realm }
                    [ Error-Message ]
                    [ Failed-AVP ]

                  * [ AVP ]
Disconnect-Cause AVP:  REDIRECT, BUSY, DO_NOT_WANT_TALK_TO_YOU


Device-Watchdog-Request (DWR): R-bit set, is sent to a peer when no traffic has been exchanged between two peers.

 Message Format

              <DWR>  ::= < Diameter Header: 280, REQ >
                    { Origin-Host }
                    { Origin-Realm }
                    [ Origin-State-Id ]
                  * [ AVP ]

Device-Watchdog-Answer (DWA): R-bit Cleared.

   Message Format

         <DWA>  ::= < Diameter Header: 280 >
                    { Result-Code }
                    { Origin-Host }
                    { Origin-Realm }
                    [ Error-Message ]
                    [ Failed-AVP ]
                    [ Origin-State-Id ]
                  * [ AVP ]

Re-Auth-Request (RAR): R-bit set,  may be sent by any server to the access device that is providing session service, to request that the user be re-authenticated and/or re-authorized.


    Message Format

         <RAR>  ::= < Diameter Header: 258, REQ, PXY >
                    < Session-Id >
                    { Origin-Host }
                    { Origin-Realm }
                    { Destination-Realm }
                    { Destination-Host }
                    { Auth-Application-Id }
                    { Re-Auth-Request-Type }
                    [ User-Name ]
                    [ Origin-State-Id ]
                  * [ Proxy-Info ]
                  * [ Route-Record ]
                  * [ AVP ]

Re-Auth-Answer (RAA): R-bit clear.


    Message Format

         <RAA>  ::= < Diameter Header: 258, PXY >
                    < Session-Id >
                    { Result-Code }
                    { Origin-Host }
                    { Origin-Realm }
                    [ User-Name ]
                    [ Origin-State-Id ]
                    [ Error-Message ]
                    [ Error-Reporting-Host ]
                    [ Failed-AVP ]
                  * [ Redirect-Host ]
                    [ Redirect-Host-Usage ]
                    [ Redirect-Max-Cache-Time ]
                  * [ Proxy-Info ]
                  * [ AVP ]

Session-Termination-Request (STR): R-bit set,  is sent by a Diameter client or by a Diameter proxy to inform the Diameter server that an authenticated and/or authorized session is being terminated.

    Message Format

        <STR>  ::= < Diameter Header: 275, REQ, PXY >
                   < Session-Id >
                   { Origin-Host }
                   { Origin-Realm }
                   { Destination-Realm }
                   { Auth-Application-Id }
                   { Termination-Cause }
                   [ User-Name ]
                   [ Destination-Host ]
                 * [ Class ]
                   [ Origin-State-Id ]
                 * [ Proxy-Info ]
                 * [ Route-Record ]
                 * [ AVP ]

Session-Termination-Answer (STA): R-bit Clear.


    Message Format

         <STA> ::= < Diameter Header: 275, PXY >
                    < Session-Id >
                    { Result-Code }
                    { Origin-Host }
                    { Origin-Realm }
                    [ User-Name ]
                  * [ Class ]
                    [ Error-Message ]
                    [ Error-Reporting-Host ]
                    [ Failed-AVP ]
                    [ Origin-State-Id ]
                  * [ Redirect-Host ]
                    [ Redirect-Host-Usage ]
                    [ Redirect-Max-Cache-Time ]
                  * [ Proxy-Info ]
                  * [ AVP ]

Abort-Session-Request (ASR): R-bit Set,  may be sent by any Diameter server or any Diameter proxy to the access device that is providing session service, to request that the session identified by the Session-Id be stopped.

    Message Format

         <ASR>  ::= < Diameter Header: 274, REQ, PXY >
                    < Session-Id >
                    { Origin-Host }
                    { Origin-Realm }
                    { Destination-Realm }
                    { Destination-Host }
                    { Auth-Application-Id }
                    [ User-Name ]
                    [ Origin-State-Id ]
                  * [ Proxy-Info ]
                  * [ Route-Record ]
                  * [ AVP ]

Abort-Session-Answer (ASA): R-bit clear. 

 Message Format

         <ASA>  ::= < Diameter Header: 274, PXY >
                    < Session-Id >
                    { Result-Code }
                    { Origin-Host }
                    { Origin-Realm }
                    [ User-Name ]
                    [ Origin-State-Id ]
                    [ Error-Message ]
                    [ Error-Reporting-Host ]
                    [ Failed-AVP ]
                  * [ Redirect-Host ]
                    [ Redirect-Host-Usage ]
                    [ Redirect-Max-Cache-Time ]
                  * [ Proxy-Info ]
                  * [ AVP ]

Accounting-Request (ACR) : R-bit set, is sent by a Diameter node, acting as a client, in order to exchange accounting   information with a peer.

  Message Format

         <ACR> ::= < Diameter Header: 271, REQ, PXY >
                   < Session-Id >
                   { Origin-Host }
                   { Origin-Realm }
                   { Destination-Realm }
                   { Accounting-Record-Type }
                   { Accounting-Record-Number }
                   [ Acct-Application-Id ]
                   [ Vendor-Specific-Application-Id ]
                   [ User-Name ]
                   [ Destination-Host ]
                   [ Accounting-Sub-Session-Id ]
                   [ Acct-Session-Id ]
                   [ Acct-Multi-Session-Id ]
                   [ Acct-Interim-Interval ]
                   [ Accounting-Realtime-Required ]
                   [ Origin-State-Id ]
                   [ Event-Timestamp ]
                 * [ Proxy-Info ]
                 * [ Route-Record ]
                 * [ AVP ]

Accounting-Answer(ACA) : R-bit clear. 

  Message Format

         <ACA> ::= < Diameter Header: 271, PXY >
                   < Session-Id >
                   { Result-Code }
                   { Origin-Host }
                   { Origin-Realm }
                   { Accounting-Record-Type }
                   { Accounting-Record-Number }
                   [ Acct-Application-Id ]
                   [ Vendor-Specific-Application-Id ]
                   [ User-Name ]
                   [ Accounting-Sub-Session-Id ]
                   [ Acct-Session-Id ]
                   [ Acct-Multi-Session-Id ]
                   [ Error-Message ]
                   [ Error-Reporting-Host ]
                   [ Failed-AVP ]
                   [ Acct-Interim-Interval ]
                   [ Accounting-Realtime-Required ]
                   [ Origin-State-Id ]
                   [ Event-Timestamp ]
                 * [ Proxy-Info ]
                 * [ AVP ]

Comments

  1. I appreciate the Post and I would like to read more good stuff keep it up! This is very nice article and have great information.

    ReplyDelete
  2. Hivelance is one of the pioneer NFT Game development company, we create the game as per your aspects with cutting edge technology with the help of our developer team, who have an years of experience in NFT game development. In Hivelance we create and develop your game with perfect simulation and reliability. For details visit NFT Gaming Platform Development Services

    ReplyDelete
  3. Manual testing is a traditional method of testing. Software testers have to write test cases and then execute them manually. Manual tests are very useful in finding basic functional issues in the software being tested, for example in finding out what can be done on each screen, or even in the application being used by the user. Lasts long enough or not. Click to read this article : Manual Testing and software testing

    ReplyDelete
  4. Thank you for this important information it contains very good knowledge keep doing this work also check out this Best advanced colorectal Surgeon in Delhi NCR

    ReplyDelete
  5. Thanks a lot for giving us such a helpful information. You can also visit our website for mba solved project

    ReplyDelete
  6. What a wonderful blog it has everything I was looking for thank you for this informative post also check out this laparoscopic surgeon in Faridabad

    ReplyDelete
  7. Thank you for this important information this blog contains interesting topics and helps me a lot to understand new things keep doing this work also have a look on this Heart Specialist in Faridabad

    ReplyDelete
  8. Such a nice blog and I appreciate your all efforts about your thoughts. It’s really good work. well done!

    Ford 9” differential holding fixture

    ReplyDelete
  9. The Products Unlimited Store in Cedar Park, TX offers a wide range of rubber gloves for different environments. Get Rubber gloves in Cedar Park TX They have rubber gloves for those who are at home, as well as those who are on the go.

    ReplyDelete
  10. Nice. Keep it up! If you are looking for Application Design Agency then no look further than HAStech Solution. HAStech is one of the Best Best Mobile Application Design Agency in Ontario Canada

    ReplyDelete
  11. Thanks For Sharing Infomative Article! If you are looking for Toll Free Number for your Busines then your search ends there. you can directly contact CloudShope Technologies at 9649643643.

    ReplyDelete
  12. This comment has been removed by the author.

    ReplyDelete
  13. If you want to call QuickBooks customer service just dial
    QuickBooks customer service +18777555046 to speak with a live representative QuickBooks customer service

    ReplyDelete
  14. To get more and more answers on your QuickBooks , Dialing the
    QuickBooks Customer Service Phone Number +18556753194 will connect you with a QuickBooks specialist who will help you in any case.

    ReplyDelete
  15. QuickBooks has been a trusted accounting used for running business .If you are Suffering QuickBooks issue then You can also call
    QuickBooks Customer Support Phone Number +17735165910 nd talk to someone about your Software

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete
  17. if you are looking for a reliable and affordable QuickBooks accounting software, then dial QuickBooks Customer Support Phone Number +1 855-941-1563 to get your questions answered by their team of highly experienced professionals.

    ReplyDelete
  18. If you're having QuickBooks Problems like QuickBooks error 15106 , simply dial
    QuickBooks Support Phone Number +1 757-751-0347 and get answers to all your questions.

    ReplyDelete
  19. By dialing QuickBooks Customer Support Phone Number +1 773-516-5910 and you need to dial that number for your queries and errors issues.

    ReplyDelete
  20. If you need help with your accountants or want an effective way of keeping track of your finances. call us at QuickBooks Customer Support +1 717-844-9353 and talk to an expert.

    ReplyDelete
  21. If you are experiencing issues on your desktop application , dial
    QuickBooks Customer Support 1 866-448-6293 and talk to a support agent

    ReplyDelete
  22. If you want to Quick help about your Software or contact their customer care service at QuickBooks Customer Support +1 866-306-2642 related to their product

    ReplyDelete
  23. This is amazing post for QuickBooks user. Get answers to all of your QuickBooks questions by dialing QuickBooks Customer Service +17577510347 Hampton, VA 23666, United States and get help

    ReplyDelete
  24. Nice & Informative Blog ! If you want to Fix QuickBooks issue and want to help then you can dial on QuickBooks customer Service +17735165910

    ReplyDelete
  25. very informative blog !! if you are looking help regarding QuickBooks issue then you should connect our expert at
    QuickBooks Customer Service +1 855-624-1268 to get immediate Solutions

    ReplyDelete
  26. This comment has been removed by the author.

    ReplyDelete
  27. very technical information get from your blog if you also looking any help regarding about your QuickBooks software then you can just one ring
    quickbooks customer support New Orleans, LA 70130

    ReplyDelete

Post a Comment

Popular posts from this blog

Intelligent Networks (IN) and CAMEL

SCCP (Signalling Connection Control Part)