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 ]
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 ]
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.
ReplyDeleteHivelance 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
ReplyDeleteManual 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
ReplyDeleteThank 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
ReplyDeleteThanks a lot for giving us such a helpful information. You can also visit our website for mba solved project
ReplyDeleteWhat a wonderful blog it has everything I was looking for thank you for this informative post also check out this laparoscopic surgeon in Faridabad
ReplyDeleteThank 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
ReplyDeleteSuch a nice blog and I appreciate your all efforts about your thoughts. It’s really good work. well done!
ReplyDeleteFord 9” differential holding fixture
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.
ReplyDeleteThank you
ReplyDeleteit course in Chennai
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
ReplyDeleteThanks 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.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteIf you want to call QuickBooks customer service just dial
ReplyDeleteQuickBooks customer service +18777555046 to speak with a live representative QuickBooks customer service
To get more and more answers on your QuickBooks , Dialing the
ReplyDeleteQuickBooks Customer Service Phone Number +18556753194 will connect you with a QuickBooks specialist who will help you in any case.
QuickBooks has been a trusted accounting used for running business .If you are Suffering QuickBooks issue then You can also call
ReplyDeleteQuickBooks Customer Support Phone Number +17735165910 nd talk to someone about your Software
This comment has been removed by the author.
ReplyDeleteif 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.
ReplyDeleteIf you're having QuickBooks Problems like QuickBooks error 15106 , simply dial
ReplyDeleteQuickBooks Support Phone Number +1 757-751-0347 and get answers to all your questions.
By dialing QuickBooks Customer Support Phone Number +1 773-516-5910 and you need to dial that number for your queries and errors issues.
ReplyDeleteIf 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.
ReplyDeleteIf you are experiencing issues on your desktop application , dial
ReplyDeleteQuickBooks Customer Support 1 866-448-6293 and talk to a support agent
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
ReplyDeleteThis 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
ReplyDeleteNice & Informative Blog ! If you want to Fix QuickBooks issue and want to help then you can dial on QuickBooks customer Service +17735165910
ReplyDeletevery informative blog !! if you are looking help regarding QuickBooks issue then you should connect our expert at
ReplyDeleteQuickBooks Customer Service +1 855-624-1268 to get immediate Solutions
This comment has been removed by the author.
ReplyDeletevery technical information get from your blog if you also looking any help regarding about your QuickBooks software then you can just one ring
ReplyDeletequickbooks customer support New Orleans, LA 70130
Cool and that i have a neat provide: What Does A Full House Renovation Cost house renovation software
ReplyDelete