<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://ss7api.null.ro/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://ss7api.null.ro/index.php?action=history&amp;feed=atom&amp;title=Diameter_Connection</id>
		<title>Diameter Connection - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://ss7api.null.ro/index.php?action=history&amp;feed=atom&amp;title=Diameter_Connection"/>
		<link rel="alternate" type="text/html" href="https://ss7api.null.ro/index.php?title=Diameter_Connection&amp;action=history"/>
		<updated>2026-04-27T17:51:26Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>https://ss7api.null.ro/index.php?title=Diameter_Connection&amp;diff=562&amp;oldid=prev</id>
		<title>Oana: /* Announcing capabilities */</title>
		<link rel="alternate" type="text/html" href="https://ss7api.null.ro/index.php?title=Diameter_Connection&amp;diff=562&amp;oldid=prev"/>
				<updated>2016-09-12T08:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Announcing capabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:30, 12 September 2016&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;lt;/m&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;lt;/m&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For S6a interface, the capabilities are organized by &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;whom &lt;/del&gt;can handle the requests. Capability - operations &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;associationsare&lt;/del&gt;: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For S6a interface, the capabilities are organized by &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the entity that &lt;/ins&gt;can handle the requests. Capability - operations &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;associations are&lt;/ins&gt;: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* HSSMobility : UpdateLocationRequest, UpdateLocationAnswer, PurgeUERequest, PurgeUEAnswer, NotifyRequest, NotifyAnswer&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* HSSMobility : UpdateLocationRequest, UpdateLocationAnswer, PurgeUERequest, PurgeUEAnswer, NotifyRequest, NotifyAnswer&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* MMEMobility :CancelLocationRequest, CancelLocationAnswer, InsertSubscriberDataRequest, InsertSubscriberDataAnswer, DeleteSubscriberDataRequest, DeleteSubscriberDataAnswer, ResetRequest, ResetAnswer&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* MMEMobility :CancelLocationRequest, CancelLocationAnswer, InsertSubscriberDataRequest, InsertSubscriberDataAnswer, DeleteSubscriberDataRequest, DeleteSubscriberDataAnswer, ResetRequest, ResetAnswer&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* HSSAuthentication : AuthenticationInfoRequest, AuthenticationInfoAnswer &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* HSSAuthentication : AuthenticationInfoRequest, AuthenticationInfoAnswer&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Generating and processing Diameter messages==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Generating and processing Diameter messages==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oana</name></author>	</entry>

	<entry>
		<id>https://ss7api.null.ro/index.php?title=Diameter_Connection&amp;diff=551&amp;oldid=prev</id>
		<title>Oana: Created page with &quot;The connection used for exchange of XML formatted messages is a TCP socket. As an option TLS can be used to protect the information. In that case the information on this page ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ss7api.null.ro/index.php?title=Diameter_Connection&amp;diff=551&amp;oldid=prev"/>
				<updated>2016-09-09T10:43:36Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;The connection used for exchange of XML formatted messages is a TCP socket. As an option TLS can be used to protect the information. In that case the information on this page ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The connection used for exchange of XML formatted messages is a TCP socket. As an option TLS can be used to protect the information. In that case the information on this page applies only to the unencrypted data, the certificate check and establishment of encryption are outside the scope of this page.&lt;br /&gt;
&lt;br /&gt;
==Establishing the connection==&lt;br /&gt;
&lt;br /&gt;
A connection is established from the application to the Diameter translator. Each translator is associated with a TCP listener. Each TCP listener is associated with a certain Diameter interface. An application can establish multiple connections to the Diameter translator. Each connection is independent from the others. To establish the connection a TCP socket must be connected to the agreed listening port of the translator. Upon a successful connection XML messages exchange can start.&lt;br /&gt;
&lt;br /&gt;
The XML declaration &amp;lt;?xml … ?&amp;gt; must be present in the first exchanged message. On further messages the declaration may be omitted.&lt;br /&gt;
&lt;br /&gt;
All messages must have a root &amp;lt;m&amp;gt; element. The optional xmlns attribute must be &amp;quot;http://yate.null.ro/xml/diameter/v1&amp;quot; (note that the URL doesn't point to a valid location).&lt;br /&gt;
&lt;br /&gt;
The closing tag &amp;lt;/m&amp;gt; can be used to look up for the end of XML in the stream.&lt;br /&gt;
&lt;br /&gt;
==Announcing capabilities==&lt;br /&gt;
&lt;br /&gt;
After connection on the TCP socket, the application will announce its capabilities. Otherwise, it will not be considered a valid connection for Diameter messages and it will be ignored.&lt;br /&gt;
&lt;br /&gt;
This initial XML message must have both an XML declaration and an xmlns in the root element indicating the correct version of the protocol is being spoken.&lt;br /&gt;
&lt;br /&gt;
Each supported capability will be announced in a &amp;lt;c&amp;gt; element placed in the root element.&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;m xmlns=&amp;quot;http://yate.null.ro/xml/diameter/v1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;c&amp;gt;HSSMobility&amp;lt;/c&amp;gt;&lt;br /&gt;
     &amp;lt;c&amp;gt;MMEMobility&amp;lt;/c&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
 &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On success the translator will confirm and indicate the application is active (receives messages):&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;m xmlns=&amp;quot;http://yate.null.ro/xml/diameter/v1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;state&amp;gt;active&amp;lt;/state&amp;gt;&lt;br /&gt;
 &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On failure the converter may return an error text and will close the socket after that. In case of XML error or xmlns mismatch no error is returned.&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;m xmlns=&amp;quot;http://yate.null.ro/xml/tcap/v1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;state&amp;gt;inactive&amp;lt;/state&amp;gt;&lt;br /&gt;
     &amp;lt;error&amp;gt;Unsupported: Charging&amp;lt;/error&amp;gt;&lt;br /&gt;
 &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For S6a interface, the capabilities are organized by whom can handle the requests. Capability - operations associationsare: &lt;br /&gt;
* HSSMobility : UpdateLocationRequest, UpdateLocationAnswer, PurgeUERequest, PurgeUEAnswer, NotifyRequest, NotifyAnswer&lt;br /&gt;
* MMEMobility :CancelLocationRequest, CancelLocationAnswer, InsertSubscriberDataRequest, InsertSubscriberDataAnswer, DeleteSubscriberDataRequest, DeleteSubscriberDataAnswer, ResetRequest, ResetAnswer&lt;br /&gt;
* HSSAuthentication : AuthenticationInfoRequest, AuthenticationInfoAnswer &lt;br /&gt;
&lt;br /&gt;
==Generating and processing Diameter messages==&lt;br /&gt;
&lt;br /&gt;
While in active state, the application will receive XML Diameter-specific formatted messages for handling. It can also send messages, either as an answer to a previous incoming request or to generate a new outbound request.&lt;br /&gt;
&lt;br /&gt;
==Preparing shutdown==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When an application wishes to stop processing it should indicate to the translator to stop delivering messages for new requests/sessions. Messages for currently running requests will still be delivered.&lt;br /&gt;
&lt;br /&gt;
This is done by indicating lack of all capabilities in an empty &amp;lt;c/&amp;gt; element:&lt;br /&gt;
 &amp;lt;m&amp;gt;&lt;br /&gt;
    &amp;lt;c/&amp;gt;&lt;br /&gt;
 &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The converter will not answer at once, instead it will continue to deliver messages for existing requests/sessions. Eventually these requests will dry up and the new state will be applied:&lt;br /&gt;
 &amp;lt;m&amp;gt;&lt;br /&gt;
   &amp;lt;state&amp;gt;inactive&amp;lt;/state&amp;gt;&lt;br /&gt;
 &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point it is safe to close the socket.&lt;/div&gt;</summary>
		<author><name>Oana</name></author>	</entry>

	</feed>