Initial commit

Change-Id: I6a4444e3c193dae437cd7929f4c39aba7b749efa
diff --git a/contrib/CxDx/dict_cxdx.xml b/contrib/CxDx/dict_cxdx.xml
new file mode 100644
index 0000000..9956c21
--- /dev/null
+++ b/contrib/CxDx/dict_cxdx.xml
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dictionary SYSTEM "dictionary.dtd">
+
+
+<!--**************************************************************************************
+
+ === CpqD/DRC  -  Projeto ADRIMS  -  Mar/2011 ===
+ === Dicionario Dx/Cx ===
+ Baseado no "dict_sip" do FreeDiameter (www.freediameter.net) 
+                                                                      Norberto R Goes Jr
+**************************************************************************************-->
+
+
+<dictionary>
+
+  <!-- ******************************************************** -->
+  <!-- ********************* Vendors ************************** -->
+  <!-- ******************************************************** -->
+
+  <vendor id="13019" name="ETSI" />
+
+  <vendor id="10415" name="3GPP" />
+  
+  <!-- ******************************************************** -->
+  <!-- ***************** CxDx Application *********************-->
+  <!-- ******************************************************** -->
+
+  <application id="16777216" name="Diameter CxDx Application" 
+	       uri="http://www.cpqd.com.br">
+    
+    <!-- ******************************************************** -->
+    <!-- ******************** Commands ************************** -->
+    <!-- ******************************************************** -->
+ 
+    <command name="User-Authorization" code="300" >
+
+      <requestrules>
+        <fixed>
+	  <avprule name="Session-Id" minimum="1" maximum="1"/>
+	</fixed>
+	
+        <required>
+	  <avprule name="Vendor-Specific-Application-Id" maximum="1" />
+	  <avprule name="Auth-Session-State" maximum="1" />
+	  <avprule name="Origin-Host" maximum="1" />
+	  <avprule name="Origin-Realm" maximum="1" />
+	  <avprule name="Destination-Realm" maximum="1" />
+	  <avprule name="User-Name" maximum="1" />
+	  <avprule name="Public-Identity" maximum="1" />
+	  <avprule name="Visited-Network-Identifier" maximum="1" />
+	</required>
+	
+        <optional>
+	  <avprule name="Destination-Host" maximum="1"/>
+	  <avprule name="Supported-Features" />
+	  <avprule name="User-Authorization-Type" maximum="1"/>
+	  <avprule name="UAR-Flags" maximum="1" />
+	  <avprule name="AVP" />
+	  <avprule name="Proxy-Info" />
+	  <avprule name="Route-Record" />
+        </optional>
+      </requestrules>
+      
+      
+      <answerrules>
+        <fixed>
+	  <avprule name="Session-Id"  minimum="1" maximum="1"/>
+	</fixed>
+	
+        <required>
+	  <avprule name="Vendor-Specific-Application-Id" maximum="1" />
+	  <avprule name="Auth-Session-State" maximum="1" />
+	  <avprule name="Origin-Host" maximum="1" />
+	  <avprule name="Origin-Realm" maximum="1"/>
+	  
+	</required>
+	
+        <optional>
+	  <avprule name="Result-Code" maximum="1"/>
+	  <avprule name="Experimental-Result" maximum="1"/>
+	  <avprule name="Supported-Features" />
+	  <avprule name="Server-Name" maximum="1"/>
+	  <avprule name="Server-Capabilities" maximum="1"/>
+	  <avprule name="Wildcarded-IMPU" maximum="1"/>
+	  <avprule name="AVP" />
+	  <avprule name="Failed-AVP" />
+	  <avprule name="Proxy-Info" />
+	  <avprule name="Route-Record" />
+        </optional>
+	
+      </answerrules>
+      
+    </command>
+    
+
+
+    <command name="Server-Assignment" code="301" >
+
+      <requestrules>
+        <fixed>
+	  <avprule name="Session-Id" minimum="1" maximum="1"/>
+	</fixed>
+	
+        <required>
+	  <avprule name="Vendor-Specific-Application-Id" maximum="1" />
+	  <avprule name="Auth-Session-State" maximum="1" />
+	  <avprule name="Origin-Host" maximum="1" />
+	  <avprule name="Origin-Realm" maximum="1" />
+	  <avprule name="Destination-Realm" maximum="1" />
+	  <avprule name="Server-Name" maximum="1"/>
+	  <avprule name="Server-Assignment-Type" maximum="1" />
+	  <avprule name="User-Data-Already-Available" maximum="1" />
+	</required>
+	
+        <optional>
+	  <avprule name="Destination-Host" maximum="1"/>
+	  <avprule name="User-Name" maximum="1" />
+	  <avprule name="Supported-Features" />
+	  <avprule name="Public-Identity" />
+	  <avprule name="Wildcarded-PSI" maximum="1"/>
+	  <avprule name="Wildcarded-IMPU" maximum="1"/>
+	  <!-- avprule name="SCSCF-Restoration-Info" maximum="1"/> -->
+	  <!-- avprule name="Multiple-Registration-Indication" maximum="1"/> -->
+	  <!--avprule name="Session-Priority" maximum="1"/> -->
+	  <avprule name="AVP" />
+	  <avprule name="Proxy-Info" />
+	  <avprule name="Route-Record" />
+        </optional>
+      </requestrules>    
+
+
+      <answerrules>
+        <fixed>
+	  <avprule name="Session-Id"  minimum="1" maximum="1"/>
+	</fixed>
+	
+        <required>
+	  <avprule name="Vendor-Specific-Application-Id" maximum="1" />
+	  <avprule name="Auth-Session-State" maximum="1" />
+	  <avprule name="Origin-Host" maximum="1" />
+	  <avprule name="Origin-Realm" maximum="1"/>
+	</required>
+	
+        <optional>
+	  <avprule name="Result-Code" maximum="1"/>
+	  <avprule name="Experimental-Result" maximum="1"/>
+	  <avprule name="User-Name" maximum="1" />
+	  <avprule name="Supported-Features" />
+	  <!--avprule name="User-Data" maximum="1"/> -->
+	  <!--avprule name="Charging-Information" maximum="1"/> -->
+	  <!--avprule name="Associated-Identities" maximum="1"/> -->
+	  <!--avprule name="Loose-Route-Indication" maximum="1"/> -->
+	  <!--avprule name="SCSCF-Restoration-Info" /> -->
+	  <!--avprule name="Associated-Registered-Identities " maximum="1"/> -->
+	  <avprule name="AVP" />
+	  <avprule name="Server-Name" maximum="1"/>
+	  <avprule name="Failed-AVP" />
+	  <avprule name="Proxy-Info" />
+	  <avprule name="Route-Record" />
+   
+        </optional>
+	
+      </answerrules>
+      
+    </command>
+    
+
+
+
+
+    <!-- ******************************************************** -->
+    <!-- *********************** AVPs *************************** -->
+    <!-- ******************************************************** -->
+	
+    <avp name="Visited-Network-Identifier" code="600" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="OctetString" />
+    </avp>
+   
+    <avp name="Public-Identity" code="601" vendor-id="10415"  mandatory="must"
+	 may-encrypt="no">
+      <type type-name="UTF8String" />
+    </avp>
+  
+    <avp name="Server-Name" code="602" vendor-id="10415"  mandatory="must"
+	 may-encrypt="no">
+      <type type-name="UTF8String" />
+    </avp>
+
+    <!-- "Server-Capabilites" (603) usa as duas AVPs a seguir :    -->
+    <avp name="Feature-List-ID" code="629" vendor-id="10415"  mandatory="must"
+	 may-encrypt="no">  <!-- verificar flags / NRGJ -->
+      <type type-name="Unsigned32" />
+    </avp>
+
+    <avp name="Feature-List" code="630" vendor-id="10415"  mandatory="must"
+	 may-encrypt="no"> <!-- verificar flags / NRGJ -->
+      <type type-name="Unsigned32" />
+    </avp>    
+
+    <avp name="Server-Capabilities" code="603" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <grouped>
+	<optional>
+	  <avprule name="Vendor-Id" maximum="1" />
+	  <avprule name="Feature-List-ID" maximum="1" />
+	  <avprule name="Feature-List" maximum="1" />
+	</optional>
+      </grouped>
+    </avp>
+
+    <avp name="Mandatory-Capability" code="604" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="Unsigned32" />
+    </avp>
+  
+    <avp name="Optional-Capability" code="605" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="Unsigned32" />
+    </avp>
+  
+    <avp name="User-Data" code="606" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="OctetString" />
+    </avp>
+  
+    <avp name="SIP-Number-Auth-Items" code="607" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="Unsigned32" />
+    </avp>
+  
+    <avp name="SIP-Authentication-Scheme" code="608" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="UTF8String" />
+    </avp>
+  
+    <avp name="SIP-Authenticate" code="609" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="OctetString" />
+    </avp>
+  
+    <avp name="SIP-Authorization" code="610" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="OctetString" />
+    </avp>
+ 
+    <avp name="SIP-Authentication-Context" code="611" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="OctetString" />
+    </avp>
+  
+
+
+    <!-- "SIP-Auth-Data-Item" (612) usa as AVPs a seguir :    -->
+
+    <avp name="SIP-Item-Number" code="613" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="Unsigned32" />
+    </avp>
+  
+    <avp name="Confidentiality-Key" code="625" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="OctetString" />
+    </avp>
+  
+    <avp name="Integrity-Key" code="626" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="OctetString" />
+    </avp>
+  
+    <avp name="Digest-Realm" code="104" vendor-id="10415" mandatory="must"
+	 may-encrypt="no"> <!-- verificar flags / NRGJ -->
+      <type type-name="UTF8String" />
+    </avp>
+ 
+   <avp name="Digest-Algorithm" code="111" vendor-id="10415" mandatory="must"
+	 may-encrypt="no"> <!-- verificar flags / NRGJ -->
+      <type type-name="UTF8String" />
+    </avp>
+
+   <avp name="Digest-QoP" code="110" vendor-id="10415" mandatory="must"
+	 may-encrypt="no"> <!-- verificar flags / NRGJ -->
+      <type type-name="UTF8String" />
+    </avp>
+  
+   <avp name="Digest-HA1" code="121" vendor-id="10415" mandatory="must"
+	 may-encrypt="no"> <!-- verificar flags / NRGJ -->
+      <type type-name="UTF8String" />
+    </avp>
+     
+
+    <avp name="SIP-Digest-Authenticate" code="635" vendor-id="10415" 
+	 may-encrypt="no"> <!-- verificar flags / NRGJ -->
+      <grouped>
+	<required>
+	  <avprule name="Digest-Realm" minimum="1" maximum="1" />
+	</required>
+	<optional>
+	  <avprule name="Digest-Algorithm" maximum="1" />
+	  <avprule name="Digest-QoP" maximum="1" />
+	  <avprule name="Digest-HA1" maximum="1" />
+	  <avprule name="AVP" />
+	</optional>
+      </grouped>
+
+    </avp>
+    
+    <avp name="Line-Identifier" code="500" vendor-id="13019" mandatory="must"
+	 may-encrypt="no"> <!-- verificar flags / NRGJ -->
+      <type type-name="OctetString" />
+    </avp>
+    
+    <avp name="SIP-Auth-Data-Item" code="612" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <grouped>
+	<optional>
+	  <avprule name="SIP-Item-Number" maximum="1" />
+	  <avprule name="SIP-Authentication-Scheme" maximum="1" />
+	  <avprule name="SIP-Authenticate" maximum="1" />
+	  <avprule name="SIP-Authorization" maximum="1" />
+	  <avprule name="SIP-Authentication-Context" maximum="1" />
+	  <avprule name="Confidentiality-Key" maximum="1" />
+	  <avprule name="Integrity-Key" maximum="1" />
+	  <avprule name="SIP-Digest-Authenticate" maximum="1" />
+	  <avprule name="Framed-IP-Address" maximum="1" />
+	  <avprule name="Framed-IPv6-Prefix" maximum="1" />
+	  <avprule name="Framed-Interface-Id" maximum="1" />
+	  <avprule name="Line-Identifier" />
+	  <avprule name="AVP" />
+	</optional>
+      </grouped>
+    </avp>
+  
+
+
+
+    <avp name="Server-Assignment-Type" code="614" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="Enumerated"/>
+      <enum name="NO_ASSIGNMENT" code="0"/>
+      <enum name="REGISTRATION" code="1"/>
+      <enum name="RE_REGISTRATION" code="2"/>
+      <enum name="UNREGISTERED_USER" code="3"/>
+      <enum name="TIMEOUT_DEREGISTRATION" code="4"/>
+      <enum name="USER_DEREGISTRATION" code="5"/>
+      <enum name="TIMEOUT_DEREGISTRATION_STORE_SERVER_NAME" code="6"/>
+      <enum name="USER_DEREGISTRATION_STORE_SERVER_NAME" code="7"/>
+      <enum name="ADMINISTRATIVE_DEREGISTRATION " code="8"/>
+      <enum name="AUTHENTICATION_FAILURE" code="9"/>
+      <enum name="AUTHENTICATION_TIMEOUT" code="10"/>
+      <enum name="DEREGISTRATION_TOO_MUCH_DATA" code="11"/>
+      <enum name="AAA_USER_DATA_REQUEST" code="12"/>
+      <enum name="PGW_UPDATE " code="13"/>
+    </avp>
+
+
+    <avp name="User-Data-Already-Available" code="624" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="Enumerated"/>
+      <enum name="USER_DATA_NOT_AVAILABLE" code="0"/>
+      <enum name="USER_DATA_ALREADY_AVAILABLE" code="1"/>
+    </avp>
+  
+
+    <avp name="Wildcarded-PSI" code="634" vendor-id="10415"
+	 may-encrypt="no">
+      <type type-name="UTF8String" />
+    </avp>
+   
+  
+    <avp name="User-Authorization-Type" code="623" vendor-id="10415" mandatory="must"
+	 may-encrypt="no">
+      <type type-name="UTF8String" />
+    </avp>
+   
+
+  
+   <avp name="Wildcarded-IMPU" code="636" vendor-id="10415" mandatory="must"
+	may-encrypt="no">
+      <type type-name="UTF8String" />
+    </avp>
+
+    <avp name="UAR-Flags" code="637" vendor-id="10415"  mandatory="must"
+	 may-encrypt="no">
+      <type type-name="Unsigned32" />
+    </avp>
+  
+    
+    <avp name="Supported-Features" code="628" vendor-id="10415"
+	 may-encrypt="no">
+      <grouped>
+	<optional>
+	  <avprule name="Vendor-Id" maximum="1" />
+	  <avprule name="Feature-List-ID" maximum="1" />
+	  <avprule name="Feature-List" maximum="1" />
+	</optional>
+      </grouped>
+    </avp>
+ 
+
+
+  </application>
+
+
+</dictionary>
+
+