changeset 1477:81d8d83a38a0

Update to 3GPP TS 29.229 V15.2.0 (2019-09) Add Initial-CSeq-Sequence-Number, Unsigned32, code 654, section 6.3.62 Add SAR-Flags, Unsigned32, code 655, section 6.3.63 Add Allowed-WAF-WWSF-Identities, Grouped, code 656, section 6.3.64 Add WebRTC-Authentication-Function-Name, UTF8String, code 657, section 6.3.65 Add WebRTC-Web-Server-Function-Name, UTF8String, code 658, section 6.3.66 Add RTR-Flags, Unsigned32, code 659, section 6.3.69 Add User-Data-Request-Type,627,6.3.25,Enumerated,"M, V",,,,No Removed in 3GPP TS 29.229 V6.5.0 (2005-06). Add Wildcarded-IMPU,636,6.3.43,UTF8String,V,,,M,N Present in section 6.3.43 but missing in table 6.3.1. (Now commented out in 29.329 definitions.) Order changed to AVP Code per table 6.3.1.
author Luke Mewburn <luke@mewburn.net>
date Wed, 25 Mar 2020 16:55:36 +1100
parents 55b7c14ffb1c
children 47ce98681bd7
files extensions/dict_dcca_3gpp/dict_dcca_3gpp.c extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv
diffstat 2 files changed, 826 insertions(+), 687 deletions(-) [+]
line wrap: on
line diff
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Wed Mar 25 10:30:49 2020 +1100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Wed Mar 25 16:55:36 2020 +1100
@@ -4879,85 +4879,210 @@
 	};
 
 	/*==================================================================*/
-	/* 3GPP 29.229-b20 (11.2.0 2012.12.21)                              */
+	/* 3GPP TS 29.229 V15.2.0 (2019-09)                                 */
+	/* From 3GPP 29229-f20.doc                                          */
+	/*==================================================================*/
+
+	/*==================================================================*/
+	/* 3GPP TS 29.229 Table 6.3.1: Diameter Multimedia Application AVPs */
 	/*==================================================================*/
 
-	/* Associated-Identities, Grouped, code 632, section 6.3.33         */
-	{
-		struct dict_avp_data data = {
-			632,	/* Code */
-			10415,	/* Vendor */
-			"Associated-Identities",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Associated-Registered-Identities, Grouped, code 647, section 6.3.50 */
-	{
-		struct dict_avp_data data = {
-			647,	/* Code */
-			10415,	/* Vendor */
-			"Associated-Registered-Identities",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Call-ID-SIP-Header, OctetString, code 643, section 6.3.49.1      */
-	{
-		struct dict_avp_data data = {
-			643,	/* Code */
-			10415,	/* Vendor */
-			"Call-ID-SIP-Header",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Charging-Information, Grouped, code 618, section 6.3.19          */
-	{
-		struct dict_avp_data data = {
-			618,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Information",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Confidentiality-Key, OctetString, code 625, section 6.3.27       */
-	{
-		struct dict_avp_data data = {
-			625,	/* Code */
-			10415,	/* Vendor */
-			"Confidentiality-Key",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Contact, OctetString, code 641, section 6.3.48                   */
-	{
-		struct dict_avp_data data = {
-			641,	/* Code */
-			10415,	/* Vendor */
-			"Contact",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	/* Visited-Network-Identifier, OctetString, code 600, section 6.3.1 */
+	{
+		struct dict_avp_data data = {
+			600,	/* Code */
+			10415,	/* Vendor */
+			"Visited-Network-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Public-Identity, UTF8String, code 601, section 6.3.2             */
+	{
+		struct dict_avp_data data = {
+			601,	/* Code */
+			10415,	/* Vendor */
+			"Public-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Server-Name, UTF8String, code 602, section 6.3.3                 */
+	{
+		struct dict_avp_data data = {
+			602,	/* Code */
+			10415,	/* Vendor */
+			"Server-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Server-Capabilities, Grouped, code 603, section 6.3.4            */
+	{
+		struct dict_avp_data data = {
+			603,	/* Code */
+			10415,	/* Vendor */
+			"Server-Capabilities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Mandatory-Capability, Unsigned32, code 604, section 6.3.5        */
+	{
+		struct dict_avp_data data = {
+			604,	/* Code */
+			10415,	/* Vendor */
+			"Mandatory-Capability",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Optional-Capability, Unsigned32, code 605, section 6.3.6         */
+	{
+		struct dict_avp_data data = {
+			605,	/* Code */
+			10415,	/* Vendor */
+			"Optional-Capability",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* User-Data, OctetString, code 606, section 6.3.7                  */
+	{
+		struct dict_avp_data data = {
+			606,	/* Code */
+			10415,	/* Vendor */
+			"User-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Number-Auth-Items, Unsigned32, code 607, section 6.3.8       */
+	{
+		struct dict_avp_data data = {
+			607,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Number-Auth-Items",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Authentication-Scheme, UTF8String, code 608, section 6.3.9   */
+	{
+		struct dict_avp_data data = {
+			608,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authentication-Scheme",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SIP-Authenticate, OctetString, code 609, section 6.3.10          */
+	{
+		struct dict_avp_data data = {
+			609,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authenticate",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Authorization, OctetString, code 610, section 6.3.11         */
+	{
+		struct dict_avp_data data = {
+			610,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authorization",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Authentication-Context, OctetString, code 611, section 6.3.12 */
+	{
+		struct dict_avp_data data = {
+			611,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authentication-Context",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Auth-Data-Item, Grouped, code 612, section 6.3.13            */
+	{
+		struct dict_avp_data data = {
+			612,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Auth-Data-Item",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Item-Number, Unsigned32, code 613, section 6.3.14            */
+	{
+		struct dict_avp_data data = {
+			613,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Item-Number",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Server-Assignment-Type, Enumerated, code 614, section 6.3.15     */
+	{
+		struct dict_avp_data data = {
+			614,	/* Code */
+			10415,	/* Vendor */
+			"Server-Assignment-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Server-Assignment-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
 	/* Deregistration-Reason, Grouped, code 615, section 6.3.16         */
@@ -4973,226 +5098,6 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Feature-List, Unsigned32, code 630, section 6.3.31               */
-	{
-		struct dict_avp_data data = {
-			630,	/* Code */
-			10415,	/* Vendor */
-			"Feature-List",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Feature-List-ID, Unsigned32, code 629, section 6.3.30            */
-	{
-		struct dict_avp_data data = {
-			629,	/* Code */
-			10415,	/* Vendor */
-			"Feature-List-ID",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* From-SIP-Header, OctetString, code 644, section 6.3.49.2         */
-	{
-		struct dict_avp_data data = {
-			644,	/* Code */
-			10415,	/* Vendor */
-			"From-SIP-Header",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Identity-with-Emergency-Registration, Grouped, code 651, section 6.3.57 */
-	{
-		struct dict_avp_data data = {
-			651,	/* Code */
-			10415,	/* Vendor */
-			"Identity-with-Emergency-Registration",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Integrity-Key, OctetString, code 626, section 6.3.28             */
-	{
-		struct dict_avp_data data = {
-			626,	/* Code */
-			10415,	/* Vendor */
-			"Integrity-Key",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* LIA-Flags, Unsigned32, code 653, section 6.3.59                  */
-	{
-		struct dict_avp_data data = {
-			653,	/* Code */
-			10415,	/* Vendor */
-			"LIA-Flags",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Loose-Route-Indication, Enumerated, code 638, section 6.3.45     */
-	{
-		struct dict_avp_data data = {
-			638,	/* Code */
-			10415,	/* Vendor */
-			"Loose-Route-Indication",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Loose-Route-Indication)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Mandatory-Capability, Unsigned32, code 604, section 6.3.5        */
-	{
-		struct dict_avp_data data = {
-			604,	/* Code */
-			10415,	/* Vendor */
-			"Mandatory-Capability",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Multiple-Registration-Indication, Enumerated, code 648, section 6.3.51 */
-	{
-		struct dict_avp_data data = {
-			648,	/* Code */
-			10415,	/* Vendor */
-			"Multiple-Registration-Indication",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Multiple-Registration-Indication)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Optional-Capability, Unsigned32, code 605, section 6.3.6         */
-	{
-		struct dict_avp_data data = {
-			605,	/* Code */
-			10415,	/* Vendor */
-			"Optional-Capability",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Originating-Request, Enumerated, code 633, section 6.3.34        */
-	{
-		struct dict_avp_data data = {
-			633,	/* Code */
-			10415,	/* Vendor */
-			"Originating-Request",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Originating-Request)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Path, OctetString, code 640, section 6.3.47                      */
-	{
-		struct dict_avp_data data = {
-			640,	/* Code */
-			10415,	/* Vendor */
-			"Path",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Primary-Charging-Collection-Function-Name, DiameterURI, code 621, section 6.3.22 */
-	{
-		struct dict_avp_data data = {
-			621,	/* Code */
-			10415,	/* Vendor */
-			"Primary-Charging-Collection-Function-Name",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
-	};
-
-	/* Primary-Event-Charging-Function-Name, DiameterURI, code 619, section 6.3.20 */
-	{
-		struct dict_avp_data data = {
-			619,	/* Code */
-			10415,	/* Vendor */
-			"Primary-Event-Charging-Function-Name",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
-	};
-
-	/* Priviledged-Sender-Indication, Enumerated, code 652, section 6.3.58 */
-	{
-		struct dict_avp_data data = {
-			652,	/* Code */
-			10415,	/* Vendor */
-			"Priviledged-Sender-Indication",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Priviledged-Sender-Indication)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Public-Identity, UTF8String, code 601, section 6.3.2             */
-	{
-		struct dict_avp_data data = {
-			601,	/* Code */
-			10415,	/* Vendor */
-			"Public-Identity",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
-	};
-
 	/* Reason-Code, Enumerated, code 616, section 6.3.17                */
 	{
 		struct dict_avp_data data = {
@@ -5222,155 +5127,25 @@
 		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
 	};
 
-	/* Record-Route, OctetString, code 646, section 6.3.49.4            */
-	{
-		struct dict_avp_data data = {
-			646,	/* Code */
-			10415,	/* Vendor */
-			"Record-Route",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Restoration-Info, Grouped, code 649, section 6.3.52              */
-	{
-		struct dict_avp_data data = {
-			649,	/* Code */
-			10415,	/* Vendor */
-			"Restoration-Info",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SCSCF-Restoration-Info, Grouped, code 639, section 6.3.46        */
-	{
-		struct dict_avp_data data = {
-			639,	/* Code */
-			10415,	/* Vendor */
-			"SCSCF-Restoration-Info",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SIP-Auth-Data-Item, Grouped, code 612, section 6.3.13            */
-	{
-		struct dict_avp_data data = {
-			612,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Auth-Data-Item",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SIP-Authenticate, OctetString, code 609, section 6.3.10          */
-	{
-		struct dict_avp_data data = {
-			609,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Authenticate",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SIP-Authentication-Context, OctetString, code 611, section 6.3.12 */
-	{
-		struct dict_avp_data data = {
-			611,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Authentication-Context",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SIP-Authentication-Scheme, UTF8String, code 608, section 6.3.9   */
-	{
-		struct dict_avp_data data = {
-			608,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Authentication-Scheme",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
-	};
-
-	/* SIP-Authorization, OctetString, code 610, section 6.3.11         */
-	{
-		struct dict_avp_data data = {
-			610,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Authorization",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SIP-Digest-Authenticate, Grouped, code 635, section 6.3.36       */
-	{
-		struct dict_avp_data data = {
-			635,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Digest-Authenticate",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SIP-Item-Number, Unsigned32, code 613, section 6.3.14            */
-	{
-		struct dict_avp_data data = {
-			613,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Item-Number",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* SIP-Number-Auth-Items, Unsigned32, code 607, section 6.3.8       */
-	{
-		struct dict_avp_data data = {
-			607,	/* Code */
-			10415,	/* Vendor */
-			"SIP-Number-Auth-Items",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Secondary-Charging-Collection-Function-Name, DiameterURI, code 622, section 6.3.23 */
-	{
-		struct dict_avp_data data = {
-			622,	/* Code */
-			10415,	/* Vendor */
-			"Secondary-Charging-Collection-Function-Name",	/* Name */
+	/* Charging-Information, Grouped, code 618, section 6.3.19          */
+	{
+		struct dict_avp_data data = {
+			618,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Primary-Event-Charging-Function-Name, DiameterURI, code 619, section 6.3.20 */
+	{
+		struct dict_avp_data data = {
+			619,	/* Code */
+			10415,	/* Vendor */
+			"Primary-Event-Charging-Function-Name",	/* Name */
 			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
 			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
 			AVP_TYPE_OCTETSTRING	/* base type of data */
@@ -5391,46 +5166,405 @@
 		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
 	};
 
-	/* Server-Assignment-Type, Enumerated, code 614, section 6.3.15     */
-	{
-		struct dict_avp_data data = {
-			614,	/* Code */
-			10415,	/* Vendor */
-			"Server-Assignment-Type",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Server-Assignment-Type)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Server-Capabilities, Grouped, code 603, section 6.3.4            */
-	{
-		struct dict_avp_data data = {
-			603,	/* Code */
-			10415,	/* Vendor */
-			"Server-Capabilities",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Server-Name, UTF8String, code 602, section 6.3.3                 */
-	{
-		struct dict_avp_data data = {
-			602,	/* Code */
-			10415,	/* Vendor */
-			"Server-Name",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	/* Primary-Charging-Collection-Function-Name, DiameterURI, code 621, section 6.3.22 */
+	{
+		struct dict_avp_data data = {
+			621,	/* Code */
+			10415,	/* Vendor */
+			"Primary-Charging-Collection-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
+	};
+
+	/* Secondary-Charging-Collection-Function-Name, DiameterURI, code 622, section 6.3.23 */
+	{
+		struct dict_avp_data data = {
+			622,	/* Code */
+			10415,	/* Vendor */
+			"Secondary-Charging-Collection-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
+	};
+
+	/* User-Authorization-Type, Enumerated, code 623, section 6.3.24    */
+	{
+		struct dict_avp_data data = {
+			623,	/* Code */
+			10415,	/* Vendor */
+			"User-Authorization-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/User-Authorization-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* User-Data-Already-Available, Enumerated, code 624, section 6.3.26 */
+	{
+		struct dict_avp_data data = {
+			624,	/* Code */
+			10415,	/* Vendor */
+			"User-Data-Already-Available",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/User-Data-Already-Available)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Confidentiality-Key, OctetString, code 625, section 6.3.27       */
+	{
+		struct dict_avp_data data = {
+			625,	/* Code */
+			10415,	/* Vendor */
+			"Confidentiality-Key",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Integrity-Key, OctetString, code 626, section 6.3.28             */
+	{
+		struct dict_avp_data data = {
+			626,	/* Code */
+			10415,	/* Vendor */
+			"Integrity-Key",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Note: 3GPP TS 29.229 V6.5.0 (2005-06) removed User-Data-Request-Type. */
+	/* User-Data-Request-Type, Enumerated, code 627, section 6.3.25     */
+	{
+		struct dict_avp_data data = {
+			627,	/* Code */
+			10415,	/* Vendor */
+			"User-Data-Request-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/User-Data-Request-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Supported-Features, Grouped, code 628, section 6.3.29            */
+	{
+		struct dict_avp_data data = {
+			628,	/* Code */
+			10415,	/* Vendor */
+			"Supported-Features",	/* Name */
+			AVP_FLAG_VENDOR,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Feature-List-ID, Unsigned32, code 629, section 6.3.30            */
+	{
+		struct dict_avp_data data = {
+			629,	/* Code */
+			10415,	/* Vendor */
+			"Feature-List-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Feature-List, Unsigned32, code 630, section 6.3.31               */
+	{
+		struct dict_avp_data data = {
+			630,	/* Code */
+			10415,	/* Vendor */
+			"Feature-List",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Supported-Applications, Grouped, code 631, section 6.3.32        */
+	{
+		struct dict_avp_data data = {
+			631,	/* Code */
+			10415,	/* Vendor */
+			"Supported-Applications",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Associated-Identities, Grouped, code 632, section 6.3.33         */
+	{
+		struct dict_avp_data data = {
+			632,	/* Code */
+			10415,	/* Vendor */
+			"Associated-Identities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Originating-Request, Enumerated, code 633, section 6.3.34        */
+	{
+		struct dict_avp_data data = {
+			633,	/* Code */
+			10415,	/* Vendor */
+			"Originating-Request",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Originating-Request)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Wildcarded-Public-Identity, UTF8String, code 634, section 6.3.35 */
+	{
+		struct dict_avp_data data = {
+			634,	/* Code */
+			10415,	/* Vendor */
+			"Wildcarded-Public-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SIP-Digest-Authenticate, Grouped, code 635, section 6.3.36       */
+	{
+		struct dict_avp_data data = {
+			635,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Digest-Authenticate",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Wildcarded-IMPU, UTF8String, code 636, section 6.3.43            */
+	{
+		struct dict_avp_data data = {
+			636,	/* Code */
+			10415,	/* Vendor */
+			"Wildcarded-IMPU",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Note: Uses RFC 4590 Digest-Realm.                                */
+	/* Note: Uses RFC 4590 Digest-Algorithm.                            */
+	/* Note: Uses RFC 4590 Digest-QoP.                                  */
+	/* Note: Uses RFC 4590 Digest-HA1.                                  */
+
+	/* UAR-Flags, Unsigned32, code 637, section 6.3.44                  */
+	{
+		struct dict_avp_data data = {
+			637,	/* Code */
+			10415,	/* Vendor */
+			"UAR-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Loose-Route-Indication, Enumerated, code 638, section 6.3.45     */
+	{
+		struct dict_avp_data data = {
+			638,	/* Code */
+			10415,	/* Vendor */
+			"Loose-Route-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Loose-Route-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* SCSCF-Restoration-Info, Grouped, code 639, section 6.3.46        */
+	{
+		struct dict_avp_data data = {
+			639,	/* Code */
+			10415,	/* Vendor */
+			"SCSCF-Restoration-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Path, OctetString, code 640, section 6.3.47                      */
+	{
+		struct dict_avp_data data = {
+			640,	/* Code */
+			10415,	/* Vendor */
+			"Path",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Contact, OctetString, code 641, section 6.3.48                   */
+	{
+		struct dict_avp_data data = {
+			641,	/* Code */
+			10415,	/* Vendor */
+			"Contact",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Subscription-Info, Grouped, code 642, section 6.3.49             */
+	{
+		struct dict_avp_data data = {
+			642,	/* Code */
+			10415,	/* Vendor */
+			"Subscription-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Call-ID-SIP-Header, OctetString, code 643, section 6.3.49.1      */
+	{
+		struct dict_avp_data data = {
+			643,	/* Code */
+			10415,	/* Vendor */
+			"Call-ID-SIP-Header",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* From-SIP-Header, OctetString, code 644, section 6.3.49.2         */
+	{
+		struct dict_avp_data data = {
+			644,	/* Code */
+			10415,	/* Vendor */
+			"From-SIP-Header",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* To-SIP-Header, OctetString, code 645, section 6.3.49.3           */
+	{
+		struct dict_avp_data data = {
+			645,	/* Code */
+			10415,	/* Vendor */
+			"To-SIP-Header",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Record-Route, OctetString, code 646, section 6.3.49.4            */
+	{
+		struct dict_avp_data data = {
+			646,	/* Code */
+			10415,	/* Vendor */
+			"Record-Route",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Associated-Registered-Identities, Grouped, code 647, section 6.3.50 */
+	{
+		struct dict_avp_data data = {
+			647,	/* Code */
+			10415,	/* Vendor */
+			"Associated-Registered-Identities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Multiple-Registration-Indication, Enumerated, code 648, section 6.3.51 */
+	{
+		struct dict_avp_data data = {
+			648,	/* Code */
+			10415,	/* Vendor */
+			"Multiple-Registration-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Multiple-Registration-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Restoration-Info, Grouped, code 649, section 6.3.52              */
+	{
+		struct dict_avp_data data = {
+			649,	/* Code */
+			10415,	/* Vendor */
+			"Restoration-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
 	/* Session-Priority, Enumerated, code 650, section 6.3.56           */
@@ -5449,140 +5583,130 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Subscription-Info, Grouped, code 642, section 6.3.49             */
-	{
-		struct dict_avp_data data = {
-			642,	/* Code */
-			10415,	/* Vendor */
-			"Subscription-Info",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Supported-Applications, Grouped, code 631, section 6.3.32        */
-	{
-		struct dict_avp_data data = {
-			631,	/* Code */
-			10415,	/* Vendor */
-			"Supported-Applications",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Supported-Features, Grouped, code 628, section 6.3.29            */
-	{
-		struct dict_avp_data data = {
-			628,	/* Code */
-			10415,	/* Vendor */
-			"Supported-Features",	/* Name */
-			AVP_FLAG_VENDOR,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* To-SIP-Header, OctetString, code 645, section 6.3.49.3           */
-	{
-		struct dict_avp_data data = {
-			645,	/* Code */
-			10415,	/* Vendor */
-			"To-SIP-Header",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* UAR-Flags, Unsigned32, code 637, section 6.3.44                  */
-	{
-		struct dict_avp_data data = {
-			637,	/* Code */
-			10415,	/* Vendor */
-			"UAR-Flags",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_UNSIGNED32	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* User-Authorization-Type, Enumerated, code 623, section 6.3.24    */
-	{
-		struct dict_avp_data data = {
-			623,	/* Code */
-			10415,	/* Vendor */
-			"User-Authorization-Type",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/User-Authorization-Type)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* User-Data, OctetString, code 606, section 6.3.7                  */
-	{
-		struct dict_avp_data data = {
-			606,	/* Code */
-			10415,	/* Vendor */
-			"User-Data",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* User-Data-Already-Available, Enumerated, code 624, section 6.3.26 */
-	{
-		struct dict_avp_data data = {
-			624,	/* Code */
-			10415,	/* Vendor */
-			"User-Data-Already-Available",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/User-Data-Already-Available)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Visited-Network-Identifier, OctetString, code 600, section 6.3.1 */
-	{
-		struct dict_avp_data data = {
-			600,	/* Code */
-			10415,	/* Vendor */
-			"Visited-Network-Identifier",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Wildcarded-Public-Identity, UTF8String, code 634, section 6.3.35 */
-	{
-		struct dict_avp_data data = {
-			634,	/* Code */
-			10415,	/* Vendor */
-			"Wildcarded-Public-Identity",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	/* Identity-with-Emergency-Registration, Grouped, code 651, section 6.3.57 */
+	{
+		struct dict_avp_data data = {
+			651,	/* Code */
+			10415,	/* Vendor */
+			"Identity-with-Emergency-Registration",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Priviledged-Sender-Indication, Enumerated, code 652, section 6.3.58 */
+	{
+		struct dict_avp_data data = {
+			652,	/* Code */
+			10415,	/* Vendor */
+			"Priviledged-Sender-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Priviledged-Sender-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* LIA-Flags, Unsigned32, code 653, section 6.3.59                  */
+	{
+		struct dict_avp_data data = {
+			653,	/* Code */
+			10415,	/* Vendor */
+			"LIA-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Note: Uses RFC 7683 OC-Supported-Features.                       */
+	/* Note: Uses RFC 7683 OC-OLR.                                      */
+
+	/* Initial-CSeq-Sequence-Number, Unsigned32, code 654, section 6.3.62 */
+	{
+		struct dict_avp_data data = {
+			654,	/* Code */
+			10415,	/* Vendor */
+			"Initial-CSeq-Sequence-Number",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SAR-Flags, Unsigned32, code 655, section 6.3.63                  */
+	{
+		struct dict_avp_data data = {
+			655,	/* Code */
+			10415,	/* Vendor */
+			"SAR-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Allowed-WAF-WWSF-Identities, Grouped, code 656, section 6.3.64   */
+	{
+		struct dict_avp_data data = {
+			656,	/* Code */
+			10415,	/* Vendor */
+			"Allowed-WAF-WWSF-Identities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WebRTC-Authentication-Function-Name, UTF8String, code 657, section 6.3.65 */
+	{
+		struct dict_avp_data data = {
+			657,	/* Code */
+			10415,	/* Vendor */
+			"WebRTC-Authentication-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* WebRTC-Web-Server-Function-Name, UTF8String, code 658, section 6.3.66 */
+	{
+		struct dict_avp_data data = {
+			658,	/* Code */
+			10415,	/* Vendor */
+			"WebRTC-Web-Server-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Note: Uses RFC 7944 DRMP.                                        */
+	/* Note: Uses RFC 8583 Load.                                        */
+
+	/* RTR-Flags, Unsigned32, code 659, section 6.3.69                  */
+	{
+		struct dict_avp_data data = {
+			659,	/* Code */
+			10415,	/* Vendor */
+			"RTR-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
 	/*==================================================================*/
@@ -8484,19 +8608,8 @@
 
 	/* in 29.229                                                        */
 	/* Wildcarded-Public-Identity                                       */
-	/* Wildcarded-IMPU, UTF8String, code 636, section 6.3.20            */
-	{
-		struct dict_avp_data data = {
-			636,	/* Code */
-			10415,	/* Vendor */
-			"Wildcarded-IMPU",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_OCTETSTRING	/* base type of data */
-		};
-		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
-	};
-
+	/* in 29.229                                                        */
+	/* Wildcarded-IMPU                                                  */
 	/* in 29.229                                                        */
 	/* Session-Priority                                                 */
 	/* One-Time-Notification, Enumerated, code 712, section 6.3.22      */
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	Wed Mar 25 10:30:49 2020 +1100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	Wed Mar 25 16:55:36 2020 +1100
@@ -459,61 +459,86 @@
 ,,,,,,,,
 @standard,3GPP TS 29.229,,,,,,,
 #=,,,,,,,,
-# 3GPP 29.229-b20 (11.2.0 2012.12.21),,,,,,,,
+# 3GPP TS 29.229 V15.2.0 (2019-09),,,,,,,,
+# From 3GPP 29229-f20.doc,,,,,,,,
+#=,,,,,,,,
+#,,,,,,,,
+#=,,,,,,,,
+# 3GPP TS 29.229 Table 6.3.1: Diameter Multimedia Application AVPs,,,,,,,,
 #=,,,,,,,,
 #,,,,,,,,
-Associated-Identities,632,6.3.33,Grouped,V,,,M,N
-Associated-Registered-Identities,647,6.3.50,Grouped,V,,,M,N
-Call-ID-SIP-Header,643,6.3.49.1,OctetString,V,,,M,N
-Charging-Information,618,6.3.19,Grouped,"M,V",,,,N
-Confidentiality-Key,625,6.3.27,OctetString,"M,V",,,,N
-Contact,641,6.3.48,OctetString,V,,,M,N
-Deregistration-Reason,615,6.3.16,Grouped,"M,V",,,,N
-Feature-List,630,6.3.31,Unsigned32,V,,,M,N
-Feature-List-ID,629,6.3.30,Unsigned32,V,,,M,N
-From-SIP-Header,644,6.3.49.2,OctetString,V,,,M,N
-Identity-with-Emergency-Registration,651,6.3.57,Grouped,V,,,M,N
-Integrity-Key,626,6.3.28,OctetString,"M,V",,,,N
-LIA-Flags,653,6.3.59,Unsigned32,V,,,M,N
-Loose-Route-Indication,638,6.3.45,Enumerated,V,,,M,N
-Mandatory-Capability,604,6.3.5,Unsigned32,"M,V",,,,N
-Multiple-Registration-Indication,648,6.3.51,Enumerated,V,,,M,N
-Optional-Capability,605,6.3.6,Unsigned32,"M,V",,,,N
-Originating-Request,633,6.3.34,Enumerated,"M,V",,,,N
-Path,640,6.3.47,OctetString,V,,,M,N
-Primary-Charging-Collection-Function-Name,621,6.3.22,DiameterURI,"M,V",,,,N
-Primary-Event-Charging-Function-Name,619,6.3.20,DiameterURI,"M,V",,,,N
-Priviledged-Sender-Indication,652,6.3.58,Enumerated,V,,,M,N
-Public-Identity,601,6.3.2,UTF8String,"M,V",,,,N
-Reason-Code,616,6.3.17,Enumerated,"M,V",,,,N
-Reason-Info,617,6.3.18,UTF8String,"M,V",,,,N
-Record-Route,646,6.3.49.4,OctetString,V,,,M,N
-Restoration-Info,649,6.3.52,Grouped,V,,,M,N
-SCSCF-Restoration-Info,639,6.3.46,Grouped,V,,,M,N
-SIP-Auth-Data-Item,612,6.3.13,Grouped,"M,V",,,,N
-SIP-Authenticate,609,6.3.10,OctetString,"M,V",,,,N
-SIP-Authentication-Context,611,6.3.12,OctetString,"M,V",,,,N
-SIP-Authentication-Scheme,608,6.3.9,UTF8String,"M,V",,,,N
-SIP-Authorization,610,6.3.11,OctetString,"M,V",,,,N
-SIP-Digest-Authenticate,635,6.3.36,Grouped,V,,,M,N
-SIP-Item-Number,613,6.3.14,Unsigned32,"M,V",,,,N
-SIP-Number-Auth-Items,607,6.3.8,Unsigned32,"M,V",,,,N
-Secondary-Charging-Collection-Function-Name,622,6.3.23,DiameterURI,"M,V",,,,N
-Secondary-Event-Charging-Function-Name,620,6.3.21,DiameterURI,"M,V",,,,N
-Server-Assignment-Type,614,6.3.15,Enumerated,"M,V",,,,N
-Server-Capabilities,603,6.3.4,Grouped,"M,V",,,,N
-Server-Name,602,6.3.3,UTF8String,"M,V",,,,N
-Session-Priority,650,6.3.56,Enumerated,V,,,M,N
-Subscription-Info,642,6.3.49,Grouped,V,,,M,N
-Supported-Applications,631,6.3.32,Grouped,V,,,M,N
-Supported-Features,628,6.3.29,Grouped,V,M,,,N
-To-SIP-Header,645,6.3.49.3,OctetString,V,,,M,N
-UAR-Flags,637,6.3.44,Unsigned32,V,,,M,N
-User-Authorization-Type,623,6.3.24,Enumerated,"M,V",,,,N
-User-Data,606,6.3.7,OctetString,"M,V",,,,N
-User-Data-Already-Available,624,6.3.26,Enumerated,"M,V",,,,N
-Visited-Network-Identifier,600,6.3.1,OctetString,"M,V",,,,N
-Wildcarded-Public-Identity,634,6.3.35,UTF8String,V,,,M,N
+Visited-Network-Identifier,600,6.3.1,OctetString,"M, V",,,,No
+Public-Identity,601,6.3.2,UTF8String,"M, V",,,,No
+Server-Name,602,6.3.3,UTF8String,"M, V",,,,No
+Server-Capabilities,603,6.3.4,Grouped,"M, V",,,,No
+Mandatory-Capability,604,6.3.5,Unsigned32,"M, V",,,,No
+Optional-Capability,605,6.3.6,Unsigned32,"M, V",,,,No
+User-Data,606,6.3.7,OctetString,"M, V",,,,No
+SIP-Number-Auth-Items,607,6.3.8,Unsigned32,"M, V",,,,No
+SIP-Authentication-Scheme,608,6.3.9,UTF8String,"M, V",,,,No
+SIP-Authenticate,609,6.3.10,OctetString,"M, V",,,,No
+SIP-Authorization,610,6.3.11,OctetString,"M, V",,,,No
+SIP-Authentication-Context,611,6.3.12,OctetString,"M, V",,,,No
+SIP-Auth-Data-Item,612,6.3.13,Grouped,"M, V",,,,No
+SIP-Item-Number,613,6.3.14,Unsigned32,"M, V",,,,No
+Server-Assignment-Type,614,6.3.15,Enumerated,"M, V",,,,No
+Deregistration-Reason,615,6.3.16,Grouped,"M, V",,,,No
+Reason-Code,616,6.3.17,Enumerated,"M, V",,,,No
+Reason-Info,617,6.3.18,UTF8String,"M, V",,,,No
+Charging-Information,618,6.3.19,Grouped,"M, V",,,,No
+Primary-Event-Charging-Function-Name,619,6.3.20,DiameterURI,"M, V",,,,No
+Secondary-Event-Charging-Function-Name,620,6.3.21,DiameterURI,"M, V",,,,No
+Primary-Charging-Collection-Function-Name,621,6.3.22,DiameterURI,"M, V",,,,No
+Secondary-Charging-Collection-Function-Name,622,6.3.23,DiameterURI,"M, V",,,,No
+User-Authorization-Type,623,6.3.24,Enumerated,"M, V",,,,No
+User-Data-Already-Available,624,6.3.26,Enumerated,"M, V",,,,No
+Confidentiality-Key,625,6.3.27,OctetString,"M, V",,,,No
+Integrity-Key,626,6.3.28,OctetString,"M, V",,,,No
+# Note: 3GPP TS 29.229 V6.5.0 (2005-06) removed User-Data-Request-Type.,,,,,,,,
+User-Data-Request-Type,627,6.3.25,Enumerated,"M, V",,,,No
+Supported-Features,628,6.3.29,Grouped,V,M,,,No
+Feature-List-ID,629,6.3.30,Unsigned32,V,,,M,No
+Feature-List,630,6.3.31,Unsigned32,V,,,M,No
+Supported-Applications,631,6.3.32,Grouped,V,,,M,No
+Associated-Identities,632,6.3.33,Grouped,V,,,M,No
+Originating-Request,633,6.3.34,Enumerated,"M,V",,,,No
+Wildcarded-Public-Identity,634,6.3.35,UTF8String,V,,,M,No
+SIP-Digest-Authenticate,635,6.3.36,Grouped,V,,,M,No
+Wildcarded-IMPU,636,6.3.43,UTF8String,V,,,M,N
+# Note: Uses RFC 4590 Digest-Realm.,104,6.3.37,UTF8String,M,,,V,No
+# Note: Uses RFC 4590 Digest-Algorithm.,111,6.3.39,UTF8String,M,,,V,No
+# Note: Uses RFC 4590 Digest-QoP.,110,6.3.40,UTF8String,M,,,V,No
+# Note: Uses RFC 4590 Digest-HA1.,121,6.3.41,UTF8String,M,,,V,No
+#,,,,,,,,
+UAR-Flags,637,6.3.44,Unsigned32,V,,,M,No
+Loose-Route-Indication,638,6.3.45,Enumerated,V,,,M,No
+SCSCF-Restoration-Info,639,6.3.46,Grouped,V,,,M,No
+Path,640,6.3.47,OctetString,V,,,M,No
+Contact,641,6.3.48,OctetString,V,,,M,No
+Subscription-Info,642,6.3.49,Grouped,V,,,M,No
+Call-ID-SIP-Header,643,6.3.49.1,OctetString,V,,,M,No
+From-SIP-Header,644,6.3.49.2,OctetString,V,,,M,No
+To-SIP-Header,645,6.3.49.3,OctetString,V,,,M,No
+Record-Route,646,6.3.49.4,OctetString,V,,,M,No
+Associated-Registered-Identities,647,6.3.50,Grouped,V,,,M,No
+Multiple-Registration-Indication,648,6.3.51,Enumerated,V,,,M,No
+Restoration-Info,649,6.3.52,Grouped,V,,,M,No
+Session-Priority,650,6.3.56,Enumerated,V,,,M,No
+Identity-with-Emergency-Registration,651,6.3.57,Grouped,V,,,M,No
+Priviledged-Sender-Indication,652,6.3.58,Enumerated,V,,,M,No
+LIA-Flags,653,6.3.59,Unsigned32,V,,,M,No
+# Note: Uses RFC 7683 OC-Supported-Features.,621,6.3.60,Grouped,,,,"M, V",No
+# Note: Uses RFC 7683 OC-OLR.,623,6.3.61,Grouped,,,,"M, V",No
+#,,,,,,,,
+Initial-CSeq-Sequence-Number,654,6.3.62,Unsigned32,V,,,M,No
+SAR-Flags,655,6.3.63,Unsigned32,V,,,M,No
+Allowed-WAF-WWSF-Identities,656,6.3.64,Grouped,V,,,M,No
+WebRTC-Authentication-Function-Name,657,6.3.65,UTF8String,V,,,M,No
+WebRTC-Web-Server-Function-Name,658,6.3.66,UTF8String,V,,,M,No
+# Note: Uses RFC 7944 DRMP.,301,6.3.67,Enumerated,,,,"M, V",No
+# Note: Uses RFC 8583 Load.,,6.3.68,Grouped,,,,"M, V",No
+#,,,,,,,,
+RTR-Flags,659,6.3.69,Unsigned32,V,,,M,No
 ,,,,,,,,
 @standard,3GPP TS 29.272,,,,,,,
 #=,,,,,,,,
@@ -765,7 +790,8 @@
 DSAI-Tag,711,6.3.18,OctetString,"M,V",,,,N
 # in 29.229,,,,,,,,
 # Wildcarded-Public-Identity,634,6.3.19,UTF8String,V,,,M,N
-Wildcarded-IMPU,636,6.3.20,UTF8String,V,,,M,N
+# in 29.229,,,,,,,,
+# Wildcarded-IMPU,636,6.3.20,UTF8String,V,,,M,N
 # in 29.229,,,,,,,,
 # Session-Priority,650,6.3.21,Enumerated,V,,,M,N
 One-Time-Notification,712,6.3.22,Enumerated,V,,,M,N
"Welcome to our mercurial repository"