From Aaron Woo (via Jeff Weston): Optimized Link State Routing Protocol
[obnox/wireshark/wip.git] / packet-h245.c
index b2c9bbd96fa87c5ccce6fe937650c79bb80e3136..50be7a098c2cdac0e8bd1c9fbda6a727098d3c8f 100644 (file)
@@ -1,98 +1,13 @@
-/*
-Alternative H245 dissector.
-This is an alternative dissector for the H.245 protocol.  The aim
-is to evolve this dissector and test and verify it until it becomes reasonably
-complete and can then be a realistic alternative/replacement for
-the H245 dissector that is part of the H.323 decoder that can be found
-at www.voice2sniff.org
-The are three reasons for developing this dissector:
-1,  The H323 disscotor at voice2sniff is not compatible with GPL and can thus
-not be distributed together with main ethereal.
-2,  The dissector at voice2sniff is mainly machinegenerated so it is difficult
- to add non-protocol extensions to it,  such as snooping of data structures,
-knowing what to populate COL_INFO with etc etc
-3,  At the same time helper routines do decode (ALIGNED) PER protocols
-will be developed which might be interesting for people wanting to
-develop dissectors for other protocols encoded using PER
-
-
-This dissector is NOT enabled or compiled into ethereal by default.
-In order to activate this decoder you will have to add packet-h245.c
-at the relevant places in Makefile.[am|nmake] and recompile.
-
-Ethereal can not determine automatically what is H245 and what is not
-without the other support protocols such as I guess H225 and H235
-so you will have to select packets you know are H245 and   specify H245
-with DecodeAs.
-
-This file currently contains two sections:
-One rather small section that consists of helper routines  dissect_per...()
-that are helper subroutines to dissect various PER types.
-This is not aimed at being able to be PER complete, only aimed at being
-able to dissect those parts of PER that are relevant to the actual dissectors.
-This part will when the dissector is production quality be broken out into
-a separate file asn1-per.c  or something to be available for all PER
-dissectors.
-The other section is the dissector for H245   in this temporary work version
-called altH245  which is mainly table driven.  It should be realtively easy
-to see how the mapping from the H245 idl file into the dissector functions
-actually works.
-
-
-Due to it being a temporary work version, there are no preference settings
-created to handle tcp reassembly. Instead the dissector is hardcoded to
-ask the TCP dissector (through the encapsulating protocol) for reassembly.
-It may be wise to always have the reassembly setting in the TCP preferences
-activated.
-
-
-There are several places in the dissector where it is known the functionality
-is not implemented yet.  These are indicated by the presence of the 
-NOT_DECODED_YET() macro which both prints information on stdout and puts
-"something unknown here"  in the tree pane.
-Whenever this is seen in a capture file this indicates that dissection could 
-not continue properly and thus everything after this tree item will be
-just random dissection junk.
-
-
-There is a flag which controls whether internal PER bits will be placed in
-the tree or not.
-Currently it is enabled which is why all those Extension Bit... etc
-that are just internal PER stuff are placed in the tree.
-To get rid of these ones just change display_internal_per_fields to FALSE
-below.
-This will be a preference later and will default to FALSE.
-
-
-What needs to be done?
-TODO:
-* Test the capture with as many different capture files as possible and verify
-it against machinegenerated one.
-* Identify example captures that contain constructs that are not decoded yet
-so using a real example an implementation can be written and verified.
-* Clean up and rename a lot of hf_index fields to have better names.
-Much of it was generated by emacs scripts and sometimes there will be
-placed in the tree names of the construct/type such as OctetString
-instead of the name of the field such as madeUpAscIIStringFieldName
-* Clean up several hf_index fields and collaps duplicates  such as
-all those bitRate fields  which should be collapsed into a generic 
-hf_h245_bitRate field where the actual dissector function reads the value from
-the tvb and translates it into bits/second
-* Adding nice COL_INFO entries for the parts of the data that is important
-* Cleaning up the PER helpers.
-etc etc etc
-All in all a lot of work.
-
-
-XXX all this offset>>3 and calculations of bytes in the tvb everytime
-we put something in the tree is just silly.  should be replaced with some
-proper helper routines 
-*/
 /* packet-h245.c
  * Routines for H.245 packet dissection
  * 2003  Ronnie Sahlberg
+ *       with great support with testing and providing capturefiles
+ *       from Martin Regner
+ *
  *
- * $Id: packet-h245.c,v 1.6 2003/07/08 10:08:22 sahlberg Exp $
+ * Maintained by Andreas Sikkema (andreas.sikkema@philips.com)
+ *
+ * $Id: packet-h245.c,v 1.44 2004/01/10 13:49:52 jmayer Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -119,25 +34,31 @@ proper helper routines
 
 #include <glib.h>
 #include <epan/packet.h>
+#include <epan/conversation.h>
 
 #include <stdio.h>
 #include <string.h>
 
 #include "prefs.h"
 #include "packet-tpkt.h"
+#include "packet-per.h"
+#include "t35.h"
+
+static dissector_handle_t rtp_handle=NULL;
+static dissector_handle_t rtcp_handle=NULL;
 
 static dissector_handle_t h245_handle;
 static dissector_handle_t MultimediaSystemControlMessage_handle;
 
-static int proto_h245 = -1;
+static int proto_h245 = -1;            /* h245 over tpkt */
+static int hf_h245_rfc_number = -1;
 static int hf_h245_pdu_type = -1;
-static int hf_h245_GeneralString_length = -1;
-static int hf_h245_extension_bit = -1;
-static int hf_h245_extension_present_bit = -1;
-static int hf_h245_choice_extension = -1;
-static int hf_h245_num_sequence_extensions = -1;
-static int hf_h245_small_number_bit = -1;
-static int hf_h245_optional_field_bit = -1;
+static int hf_h245_DialingInformationNumber_networkAddress = -1;
+static int hf_h245_signalType = -1;
+static int hf_h245_e164Address = -1;
+static int hf_h245_subAddress = -1;
+static int hf_h245_domainBased = -1;
+static int hf_h245_internationalNumber = -1;
 static int hf_h245_IndicationMessage_type = -1;
 static int hf_h245_RequestMessage_type = -1;
 static int hf_h245_ResponseMessage_type = -1;
@@ -406,7 +327,7 @@ static int hf_h245_MasterSlaveDeterminationRelease = -1;
 static int hf_h245_MasterSlaveDeterminationReject = -1;
 static int hf_h245_MasterSlaveDeterminationAck = -1;
 static int hf_h245_MasterSlaveDetermination = -1;
-static int hf_h245_NonStandardIdentifier_h221NonStandard = -1;
+static int hf_h245_h221NonStandard = -1;
 static int hf_h245_NonStandardParameter = -1;
 static int hf_h245_NonStandardMessage = -1;
 static int hf_h245_FlowControlIndication_restriction = -1;
@@ -436,7 +357,6 @@ static int hf_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCo
 static int hf_h245_MiscellaneousCommand_type = -1;
 static int hf_h245_ConferenceCommand = -1;
 static int hf_h245_EndSessionCommand_gstnOptions = -1;
-static int hf_h245_EndSessionCommand = -1;
 static int hf_h245_EndSessionCommand_isdnOptions = -1;
 static int hf_h245_FlowControlCommand_restriction = -1;
 static int hf_h245_FlowControlCommand_scope = -1;
@@ -514,9 +434,6 @@ static int hf_h245_FECData = -1;
 static int hf_h245_RTPPayloadType_payloadDescriptor = -1;
 static int hf_h245_H2250LogicalChannelParameters_mediaPacketization = -1;
 static int hf_h245_CRCLength = -1;
-static int hf_h245_open_type_length = -1;
-static int hf_h245_sequence_of_length = -1;
-static int hf_h245_octet_string_length = -1;
 static int hf_h245_V76LogicalChannelParameters_mode_eRM_recovery = -1;
 static int hf_h245_V76LogicalChannelParameters_mode = -1;
 static int hf_h245_V76LogicalChannelParameters_suspendResume = -1;
@@ -967,7 +884,6 @@ static int hf_h245_containedThread = -1;
 static int hf_h245_t38FaxMaxBuffer = -1;
 static int hf_h245_t38FaxMaxDatagram = -1;
 static int hf_h245_expirationTime = -1;
-static int hf_h245_object_identifier_length = -1;
 static int hf_h245_object = -1;
 static int hf_h245_protocolIdentifier = -1;
 static int hf_h245_algorithm = -1;
@@ -1064,9 +980,10 @@ static int hf_h245_recoveryReferencePicture = -1;
 static int hf_h245_iPSourceRouteAddress_route = -1;
 static int hf_h245_audioTelephoneEvent = -1;
 static int hf_h245_alphanumeric = -1;
+static int hf_h245_h221Manufacturer = -1;
+
 
 static gint ett_h245 = -1;
-static gint ett_h245_sequence_of_item = -1;
 static gint ett_h245_VCCapability_set_of = -1;
 static gint ett_h245_MultimediaSystemControlMessage = -1;
 static gint ett_h245_RequestMessage = -1;
@@ -1332,7 +1249,7 @@ static gint ett_h245_MasterSlaveDeterminationRelease = -1;
 static gint ett_h245_MasterSlaveDeterminationReject = -1;
 static gint ett_h245_MasterSlaveDeterminationAck = -1;
 static gint ett_h245_MasterSlaveDetermination = -1;
-static gint ett_h245_NonStandardIdentifier_h221NonStandard = -1;
+static gint ett_h245_h221NonStandard = -1;
 static gint ett_h245_NonStandardParameter = -1;
 static gint ett_h245_NonStandardMessage = -1;
 static gint ett_h245_FlowControlIndication_restriction = -1;
@@ -1547,1031 +1464,24 @@ static gint ett_h245_lostPicture = -1;
 static gint ett_h245_recoveryReferencePicture = -1;
 static gint ett_h245_iPSourceRouteAddress_route = -1;
 
-#define NOT_DECODED_YET(x) \
-proto_tree_add_text(tree, tvb, offset, 0, "something unknown here"); \
-fprintf(stderr,"Not decoded yet in packet : %d  [%s]\n", pinfo->fd->num,x);
-
-/*
-#define DEBUG_ENTRY(x) \
-printf("#%d  %s   tvb:0x%08x\n",pinfo->fd->num,x,(int)tvb);
-*/
-#define DEBUG_ENTRY(x) \
-       ;
-
-
-
-
-/*************************************************************
- ASN.1_PER functions here 
-**************************************************************/
-/* whether the PER helpers should put the internal PER fields into the tree
-   or not.
-*/
-static guint display_internal_per_fields = TRUE;
-
-
-/* in all functions here, offset is guint32 and is
-   byteposition<<3 + bitposition
-*/
-
-/* values for extensions */
-#define NO_EXTENSIONS          0
-#define EXTENSION_ROOT         1
-#define NOT_EXTENSION_ROOT     2
-
-/* value for optional */
-#define NOT_OPTIONAL           0
-#define OPTIONAL               1
-
-typedef struct _per_choice_t {
-       int value;
-       char *name;
-       int extension;
-       int (*func)(tvbuff_t *, int, packet_info *, proto_tree *);
-} per_choice_t;
-
-typedef struct _per_sequence_t {
-       char *name;
-       int extension;
-       int optional;
-       int (*func)(tvbuff_t *, int, packet_info *, proto_tree *);
-} per_sequence_t;
-
-
-static const true_false_string tfs_extension_present_bit = {
-       "Extension is present",
-       "Extension is NOT present"
-};
-static const true_false_string tfs_extension_bit = {
-       "Extension bit is set",
-       "Extension bit is clear"
-};
-static const true_false_string tfs_small_number_bit = {
-       "The number is small, 0-63",
-       "The number is large, >63"
-};
-static const true_false_string tfs_optional_field_bit = {
-       "This optional field is present",
-       "This optional field is absent"
-};
-
-
-
-guint32 dissect_per_boolean(tvbuff_t *tvb, guint32 offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index, gboolean *bool, proto_item **item);
-guint32 dissect_per_constrained_integer(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, guint32 min, guint32 max, guint32 *value, proto_item **item);
-
-
-/* 10.9 */
-/* this decodes and returns a length determinant according to 10.9 */
-guint32
-dissect_per_length_determinant(tvbuff_t *tvb, guint32 offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index, guint32 *length)
-{
-       guint8 byte;
-       guint32 len;
-
-DEBUG_ENTRY("dissect_per_length_determinant");
-
-       if(!length){
-               length=&len;
-       }
-
-       /* byte aligned */
-       if(offset&0x07){
-               offset=(offset&0xfffffff8)+8;
-       }
-       byte=tvb_get_guint8(tvb, offset>>3);
-       offset+=8;
-
-       if((byte&0x80)==0){
-               *length=byte;
-               if(hf_index!=-1){
-                       proto_tree_add_uint(tree, hf_index, tvb, (offset>>3)-1, 1, *length);
-               }
-               return offset;
-       }
-       if((byte&0xc0)==0x80){
-               *length=(byte&0x3f);
-               *length=((*length)<<8)+tvb_get_guint8(tvb, offset>>3);
-               offset+=8;
-               if(hf_index!=-1){
-                       proto_tree_add_uint(tree, hf_index, tvb, (offset>>3)-2, 2, *length);
-               }
-               return offset;
-       }
-       NOT_DECODED_YET("10.9.3.8.1");
-       return offset;
-}
-
-/* 10.6   normally small non-negative whole number */
-guint32
-dissect_per_normally_small_nonnegative_whole_number(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, guint32 *length)
-{
-       gboolean small_number;
-       guint32 len;
-
-DEBUG_ENTRY("dissect_per_normally_small_nonnegative_whole_number");
-       if(!length){
-               length=&len;
-       }
-
-       offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h245_small_number_bit, &small_number, NULL);
-       if(!small_number){
-               int i;
-               /* 10.6.1 */
-               *length=0;
-               for(i=0;i<6;i++){
-                       offset=dissect_per_boolean(tvb, offset, pinfo, tree, -1, &small_number, NULL);
-                       *length<<=1;
-                       if(small_number){
-                               *length|=1;
-                       }
-               }
-               if(hf_index!=-1){
-                       if((offset&0x07)<7){
-                               proto_tree_add_uint(tree, hf_index, tvb, (offset>>3)-1, 1, *length);
-                       } else {
-                               proto_tree_add_uint(tree, hf_index, tvb, (offset>>3), 1, *length);
-                       }
-               }
-               return offset;
-       }
-
-       /* 10.6.2 */
-       offset=dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_index, length);
-
-       return offset;
-}
-
-
-       
-/* this function reads a GeneralString */
-/* currently based on pure guesswork since RFC2833 didnt tell me much
-   i guess that the PER encoding for this is a normally-small-whole-number
-   followed by a ascii string.
-
-   based on pure guesswork.  it looks ok in the only capture i have where 
-   there is a 1 byte general string encoded
-*/
-guint32
-dissect_per_GeneralString(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index)
-{
-       proto_tree *etr=NULL;
-       guint32 length;
-
-       if(display_internal_per_fields){
-               etr=tree;
-       }
-
-       offset=dissect_per_length_determinant(tvb, offset, pinfo, etr, hf_h245_GeneralString_length, &length);
-
-       proto_tree_add_string(tree, hf_index, tvb, (offset>>3), length, tvb_get_ptr(tvb, (offset>>3), length));
-
-       offset+=length*8;
-       
-       return offset;
-}
-
-/* 19 this function dissects a sequence of */
-guint32
-dissect_per_sequence_of_helper(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int (*func)(tvbuff_t *, int , packet_info *, proto_tree *), guint32 length)
-{
-       guint32 i;
-
-DEBUG_ENTRY("dissect_per_sequence_of_helper");
-       for(i=0;i<length;i++){
-               guint32 lold_offset=offset;
-               proto_item *litem;
-               proto_tree *ltree;
-
-               litem=proto_tree_add_text(tree, tvb, offset>>3, 0, "Item %d", i);
-               ltree=proto_item_add_subtree(litem, ett_h245_sequence_of_item);
-
-               offset=(*func)(tvb, offset, pinfo, ltree);
-               proto_item_set_len(litem, (offset>>3)!=(lold_offset>>3)?(offset>>3)-(lold_offset>>3):1);
-       }
-
-       return offset;
-}
-guint32
-dissect_per_sequence_of(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *parent_tree, int hf_index, gint ett_index, int (*func)(tvbuff_t *, int , packet_info *, proto_tree *))
-{
-       proto_item *item;
-       proto_tree *tree;
-       guint32 old_offset=offset;
-       guint32 length;
-
-DEBUG_ENTRY("dissect_per_sequence_of");
-
-       item=proto_tree_add_item(parent_tree, hf_index, tvb, offset>>3, 0, FALSE);
-       tree=proto_item_add_subtree(item, ett_index);
-
-       /* semi-constrained whole number for number of elements */
-       /* each element encoded as 10.9 */
-       offset=dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_h245_sequence_of_length, &length);
-
-
-       offset=dissect_per_sequence_of_helper(tvb, offset, pinfo, tree, func, length);
-
-
-       proto_item_set_len(item, (offset>>3)!=(old_offset>>3)?(offset>>3)-(old_offset>>3):1);
-       return offset;
-}
-
-/* this function dissects a constrained sequence of */
-guint32
-dissect_per_constrained_sequence_of(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *parent_tree, int hf_index, gint ett_index, int (*func)(tvbuff_t *, int , packet_info *, proto_tree *), int min_len, int max_len)
-{
-       proto_item *item;
-       proto_tree *tree;
-       guint32 old_offset=offset;
-       guint32 length;
-
-
-DEBUG_ENTRY("dissect_per_constrained_sequence_of");
-       item=proto_tree_add_item(parent_tree, hf_index, tvb, offset>>3, 0, FALSE);
-       tree=proto_item_add_subtree(item, ett_index);
-
-       /* 19.5 if min==max and min,max<64k ==> no length determinant */
-       if((min_len==max_len) && (min_len<65536)){
-               length=min_len;
-               goto call_sohelper;
-       }
-
-       /* 19.6 ub>=64k or unset */
-       if(max_len>=65536){
-               guint32 old_offset=offset;
-               /* semi-constrained whole number for number of elements */
-               /* each element encoded as 10.9 */
-               offset=dissect_per_length_determinant(tvb, offset, pinfo, tree, -1, &length);
-               length+=min_len;
-               proto_tree_add_uint(tree, hf_h245_sequence_of_length, tvb, old_offset>>3, (offset>>3)!=(old_offset>>3)?(offset>>3)-(old_offset>>3):1, length);
-               goto call_sohelper;
-       }
-
-       /* constrained whole number for number of elements */
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-               tree, hf_h245_sequence_of_length, min_len, max_len, 
-               &length, NULL);
-
-
-       
-call_sohelper:
-       offset=dissect_per_sequence_of_helper(tvb, offset, pinfo, tree, func, length);
-
-
-       proto_item_set_len(item, (offset>>3)!=(old_offset>>3)?(offset>>3)-(old_offset>>3):1);
-       return offset;
-}
-
-/* this function dissects a constrained set of */
-guint32
-dissect_per_constrained_set_of(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *parent_tree, int hf_index, gint ett_index, int (*func)(tvbuff_t *, int , packet_info *, proto_tree *), int min_len, int max_len)
-{
-       /* for basic-per  a set-of is encoded in the same way as a sequence-of */
-DEBUG_ENTRY("dissect_per_constrained_set_of");
-       offset=dissect_per_constrained_sequence_of(tvb, offset, pinfo, parent_tree, hf_index, ett_index, func, min_len, max_len);
-       return offset;
-}
-
-
-
-
-
-
-/* this function dissects a set of */
-guint32
-dissect_per_set_of(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *parent_tree, int hf_index, gint ett_index, int (*func)(tvbuff_t *, int , packet_info *, proto_tree *))
-{
-       /* for basic-per  a set-of is encoded in the same way as a sequence-of */
-DEBUG_ENTRY("dissect_per_set_of");
-       offset=dissect_per_sequence_of(tvb, offset, pinfo, parent_tree, hf_index, ett_index, func);
-       return offset;
-}
-
-
-
-
-/* this function reads a OBJECT IDENTIFIER */
-guint32
-dissect_per_object_identifier(tvbuff_t *tvb, guint32 offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index)
-{
-       int i,count;
-       char str[256],*strp;
-       guint8 byte;
-       guint32 value;
-       proto_tree *etr=NULL;
-
-DEBUG_ENTRY("dissect_per_object_identifier");
-
-       if(display_internal_per_fields){
-               etr=tree;
-       }
-
-       /* first byte is the count and it is byte aligned */
-       if(offset&0x07){
-               offset=(offset&0xfffffff8)+8;
-       }
-       count=tvb_get_guint8(tvb, offset>>3);
-
-
-       proto_tree_add_uint(etr, hf_h245_object_identifier_length, tvb, offset>>3, 1, count);
-       offset+=8;
-
-       value=0;
-       for(i=0,strp=str;i<count;i++){
-               byte=tvb_get_guint8(tvb,offset>>3);
-               offset+=8;
-
-               if((strp-str)>200){
-NOT_DECODED_YET("too long octet_string");
-                       /*XXX assert here */
-                       return offset;
-               }
-
-               if(i==0){
-                       /* the first byte contains the first two object identifier components */
-                       if(byte<40){
-                               strp+=sprintf(strp,"0.%d",byte);
-                       } else if (byte<80){
-                               strp+=sprintf(strp,"1.%d",byte-40);
-                       } else {
-                               strp+=sprintf(strp,"2.%d",byte-80);
-                       }
-                       continue;
-               }
-
-               value=(value<<7)|(byte&0x7f);
-               if(byte&0x80){
-                       continue;
-               }
-
-               strp+=sprintf(strp,".%d",value);
-               value=0;
-       }
-       *strp=0;
-
-       proto_tree_add_string(tree, hf_index, tvb, (offset>>3)-count, count, str);
-
-       return offset;
-}
-
-
-
-
-/* this function reads a single bit */
-guint32
-dissect_per_boolean(tvbuff_t *tvb, guint32 offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index, gboolean *bool, proto_item **item)
-{
-       guint8 ch, mask;
-       gboolean value;
-       header_field_info *hfi;
-       proto_item *it;
-
-DEBUG_ENTRY("dissect_per_boolean");
-
-       ch=tvb_get_guint8(tvb, offset>>3);
-       mask=1<<(7-(offset&0x07));
-       if(ch&mask){
-               value=1;
-       } else {
-               value=0;
-       }
-       if(hf_index!=-1){
-               char str[256];
-               hfi = proto_registrar_get_nth(hf_index);
-               sprintf(str,"%s: %c%c%c%c %c%c%c%c %s",
-                       hfi->name,
-                       mask&0x80?'0'+value:'.', 
-                       mask&0x40?'0'+value:'.', 
-                       mask&0x20?'0'+value:'.', 
-                       mask&0x10?'0'+value:'.', 
-                       mask&0x08?'0'+value:'.', 
-                       mask&0x04?'0'+value:'.', 
-                       mask&0x02?'0'+value:'.', 
-                       mask&0x01?'0'+value:'.',
-                       value?"Bit is set":"Bit is clear"
-               );
-               it=proto_tree_add_boolean_format(tree, hf_index, tvb, offset>>3, 1, value, str);
-               if(item){
-                       *item=it;
-               }
-       }
-
-       if(bool){
-               *bool=value;
-       }
-       return offset+1;
-}
-
-
-
-
-guint32
-dissect_per_integer(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index _U_, guint32 *value _U_, proto_item **item _U_)
-{
-DEBUG_ENTRY("dissect_per_integer");
-NOT_DECODED_YET("dissect_per_integer");
-       return offset;
-}
-
-
-/* this function reads a constrained integer
-   it only handles integers that fit inside a 32 bit integer
-10.5.1 info only
-10.5.2 info only
-10.5.3 range=ub-lb+1
-10.5.4 empty range
-10.5.5 info only
-       10.5.6 unaligned version
-10.5.7 aligned version
-10.5.7.1 decoding of 0-255 1-8 bits
-10.5.7.2 decoding og 0-256 8 bits
-10.5.7.3 decoding of 0-65535 16 bits
-       10.5.7.4
-*/
-guint32
-dissect_per_constrained_integer(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, guint32 min, guint32 max, guint32 *value, proto_item **item)
-{
-       proto_item *it=NULL;
-       guint32 range, val;
-       header_field_info *hfi;
-       int num_bits;
-       int pad;
-       guint32 tmp;
-
-DEBUG_ENTRY("dissect_per_constrained_integer");
-       hfi = proto_registrar_get_nth(hf_index);
-
-       /* 10.5.3 */
-       if((max-min)>65536){
-               /* just set range really big so it will fall through
-                  to the bottom of the encoding */
-               range=1000000;
-       } else {
-               range=max-min+1;
-       }
-
-       num_bits=0;
-       pad=0;
-       val=0;
-       /* 10.5.4 */
-       if(range==1){
-               it=proto_tree_add_uint_format(tree, hf_index, tvb, offset>>3, 0, min, "%s: %d", hfi->name, min);
-               if(item){
-                       *item=it;
-               }
-               if(value){
-                       *value=val;
-               }
-               return offset;
-       }
-
-       /* 10.5.7 */
-       if(range<=255){
-               /* 10.5.7.1 */
-               char str[256];
-               int i, bit, length;
-
-               length=1;
-               if(range<=2){
-                       num_bits=1;
-               } else if(range<=4){
-                       num_bits=2;
-               } else if(range<=8){
-                       num_bits=3;
-               } else if(range<=16){
-                       num_bits=4;
-               } else if(range<=32){
-                       num_bits=5;
-               } else if(range<=64){
-                       num_bits=6;
-               } else if(range<=128){
-                       num_bits=7;
-               } else if(range<=256){
-                       num_bits=8;
-               }
-               /* prepare the string */
-               sprintf(str, "%s: ", hfi->name);
-               for(bit=0;bit<((int)(offset&0x07));bit++){
-                       if(bit&&(!(bit%4))){
-                               strcat(str, " ");
-                       }
-                       strcat(str,".");
-               }
-               /* read the bits for the int */
-               for(i=0;i<num_bits;i++){
-                       if(bit&&(!(bit%4))){
-                               strcat(str, " ");
-                       }
-                       if(bit&&(!(bit%8))){
-                               length+=1;
-                               strcat(str, " ");
-                       }
-                       bit++;
-                       offset=dissect_per_boolean(tvb, offset, pinfo, tree, -1, &tmp, NULL);
-                       val<<=1;
-                       if(tmp){
-                               val|=tmp;
-                               strcat(str, "1");
-                       } else {
-                               strcat(str, "0");
-                       }
-               }
-               for(;bit%8;bit++){
-                       if(bit&&(!(bit%4))){
-                               strcat(str, " ");
-                       }
-                       strcat(str,".");
-               }
-               val+=min;
-               if(hfi->strings){
-                       it=proto_tree_add_uint_format(tree, hf_index, tvb, (offset-num_bits)>>3, length, val, "%s : %s (%d)", str, val_to_str(val, hfi->strings, "Unknown(%d)"),val);
-               } else {
-                       it=proto_tree_add_uint(tree, hf_index, tvb, (offset-num_bits)>>3, length, val);
-               }
-               if(item){
-                       *item=it;
-               }
-               if(value){
-                       *value=val;
-               }
-               return offset;
-       } else if(range==256){
-               /* 10.5.7.2 */
-               num_bits=8;
-               pad=7-(offset&0x07);
-
-               /* in the aligned case, align to byte boundary */
-               if(offset&0x07){
-                       offset=(offset&0xfffffff8)+8;
-               }
-               val=tvb_get_guint8(tvb, offset>>3);
-               offset+=8;
-
-               val+=min;
-               it=proto_tree_add_uint(tree, hf_index, tvb, (offset>>3)-1, 1, val);
-               if(item){
-                       *item=it;
-               }
-               if(value){
-                       *value=val;
-               }
-               return offset;
-       } else if(range<=65536){
-               /* 10.5.7.3 */
-               num_bits=16;
-               pad=7-(offset&0x07);
-
-               /* in the aligned case, align to byte boundary */
-               if(offset&0x07){
-                       offset=(offset&0xfffffff8)+8;
-               }
-               val=tvb_get_guint8(tvb, offset>>3);
-               val<<=8;
-               offset+=8;
-               val|=tvb_get_guint8(tvb, offset>>3);
-               offset+=8;
-
-               val+=min;
-               it=proto_tree_add_uint(tree, hf_index, tvb, (offset>>3)-2, 2, val);
-               if(item){
-                       *item=it;
-               }
-               if(value){
-                       *value=val;
-               }
-               return offset;
-       } else {
-               int i,num_bytes;
-               gboolean bit;
-               
-               /* 10.5.7.4 */
-               /* 12.2.6 */
-               offset=dissect_per_boolean(tvb, offset, pinfo, tree, -1, &bit, NULL);
-               num_bytes=bit;
-               offset=dissect_per_boolean(tvb, offset, pinfo, tree, -1, &bit, NULL);
-               num_bytes=(num_bytes<<1)|bit;
-               
-               num_bytes++;  /* lower bound for length determinant is 1 */
-
-               /* byte aligned */
-               if(offset&0x07){
-                       offset=(offset&0xfffffff8)+8;
-               }
-               val=0;
-               for(i=0;i<num_bytes;i++){
-                       val=(val<<8)|tvb_get_guint8(tvb,offset>>3);
-                       offset+=8;
-               }
-               val+=min;
-               if(hf_index!=-1){
-                       it=proto_tree_add_uint(tree, hf_index, tvb, (offset>>3)-(num_bytes+1), num_bytes+1, val);
-               }
-               if(item){
-                       *item=it;
-               }
-               if(value){
-                       *value=val;
-               }
-               return offset;
-       }
-
-       NOT_DECODED_YET("10.5");
-       return offset;
-}
-
-/* this functions decodes a CHOICE
-   it can only handle CHOICE INDEX values that fits inside a 32 bit integer.
-          22.1
-          22.2
-          22.3
-          22.4
-          22.5
-22.6 no extensions
-22.7 extension marker == 0
-          22.8 extension marker == 1
-*/
-guint32
-dissect_per_choice(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, gint ett_index, per_choice_t *choice, char *name)
-{
-       gboolean extension_present, extension_flag;
-       int extension_root_entries;
-       guint32 choice_index;
-       int i;
-       proto_item *it=NULL;
-       proto_tree *tr=NULL;
-       guint32 old_offset=offset;
-
-DEBUG_ENTRY("dissect_per_choice");
-
-       it=proto_tree_add_text(tree, tvb, offset>>3, 0, name);
-       tr=proto_item_add_subtree(it, ett_index);
-
-       
-       /* first check if there should be an extension bit for this CHOICE.
-          we do this by just checking the first choice arm 
-        */
-       if(choice[0].extension==NO_EXTENSIONS){
-               extension_present=0;
-       } else {
-               extension_present=1;
-               /* will be placed called again below to place it in the tree */
-               offset=dissect_per_boolean(tvb, offset, pinfo, tr, -1, &extension_flag, NULL);
-       }
-
-       /* count the number of entries in the extension_root */
-       extension_root_entries=0;
-       for(i=0;choice[i].name;i++){
-               switch(choice[i].extension){
-               case NO_EXTENSIONS:
-               case EXTENSION_ROOT:
-                       extension_root_entries++;
-                       break;
-               }
-       }
-
-       if( (!extension_present)
-       ||  (extension_present && (extension_flag==0)) ){
-               guint32 choice_offset=offset;
-               proto_tree *choicetree;
-               proto_item *choiceitem;
-               proto_tree *etr=NULL;
-
-               /* 22.6 */
-               /* 22.7 */
-/*qqq  make it similar to the section below instead */
-               offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-                       tr, hf_index, 0, extension_root_entries-1, 
-                       &choice_index, &choiceitem);
-               choicetree=proto_item_add_subtree(choiceitem, ett_index);
-
-               if(display_internal_per_fields){
-                       etr=choicetree;
-               }
-               dissect_per_boolean(tvb, old_offset, pinfo, etr, hf_h245_extension_bit, NULL, NULL);
-               /* find and call the appropriate callback */
-               for(i=0;choice[i].name;i++){
-                       if(choice[i].value==(int)choice_index){
-                               if(choice[i].func){
-                                       offset=choice[i].func(tvb, offset, pinfo, choicetree);
-                                       break;
-                               } else {
-                                       NOT_DECODED_YET(choice[i].name);
-                               }
-                       }
-               }
-               proto_item_set_len(choiceitem, (offset>>3)!=(choice_offset>>3)?(offset>>3)-(choice_offset>>3):1);
-       } else {
-               guint32 length;
-               int i, index;
-               guint32 choice_offset;
-               proto_tree *choicetree;
-               proto_item *choiceitem;
-               proto_tree *etr=NULL;
-
-               if(display_internal_per_fields){
-                       etr=tr;
-               }
-               dissect_per_boolean(tvb, old_offset, pinfo, etr, hf_h245_extension_bit, NULL, NULL);
-
-               /* 22.8 */
-               offset=dissect_per_normally_small_nonnegative_whole_number(tvb, offset, pinfo, etr, hf_h245_choice_extension, &choice_index);
-               offset=dissect_per_length_determinant(tvb, offset, pinfo, etr, hf_h245_open_type_length, &length);
-
-
-               choice_offset=offset;
-               choiceitem=proto_tree_add_text(tr, tvb, offset>>3, 0, "Choice");
-               choicetree=proto_item_add_subtree(choiceitem, ett_index);
-
-               index=-1;
-               for(i=0;choice[i].name;i++){
-                       if(choice[i].extension==NOT_EXTENSION_ROOT){
-                               if(!choice_index){
-                                       index=i;
-                                       break;
-                               }
-                               choice_index--;
-                       }
-               }
-
-               if(index==-1){
-                       /* if we dont know how to decode this one, just step offset to the next structure */            
-                       offset+=length*8;
-                       NOT_DECODED_YET("unknown choice extension");
-               } else {
-                       guint32 new_offset;
-
-                       proto_item_set_text(choiceitem, choice[index].name);
-                       new_offset=choice[index].func(tvb, offset, pinfo, choicetree);
-
-                       if((new_offset>(offset+(length*8)))||((new_offset+8)<(offset+length*8))){
-printf("new_offset:%d  offset:%d  length*8:%d\n",new_offset,offset,length*8);
-/*                             g_assert_not_reached();*/
-                       }
-
-                       offset+=length*8;
-               }
-               proto_item_set_len(choiceitem, (offset>>3)!=(choice_offset>>3)?(offset>>3)-(choice_offset>>3):1);
-       }
-
-       proto_item_set_len(it, (offset>>3)!=(old_offset>>3)?(offset>>3)-(old_offset>>3):1);
-       return offset;
-}
-
-
-
-/* this functions decodes a SEQUENCE
-   it can only handle SEQUENCES with at most 32 DEFAULT or OPTIONAL fields
-18.1 extension bit
-18.2 optinal/default items in root 
-18.3 we ignore the case where n>64K
-18.4 the root sequence
-          18.5
-          18.6
-          18.7
-          18.8
-          18.9
-*/
-guint32
-dissect_per_sequence(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *parent_tree, int hf_index, gint ett_index, per_sequence_t *sequence)
-{
-       gboolean extension_present, extension_flag, optional_field_flag;
-       proto_item *item;
-       proto_tree *tree;
-       guint32 old_offset=offset;
-       int i, num_opts;
-       guint32 optional_mask;
-
-
-DEBUG_ENTRY("dissect_per_sequence");
-       item=proto_tree_add_item(parent_tree, hf_index, tvb, offset>>3, 0, FALSE);
-       tree=proto_item_add_subtree(item, ett_index);
-
-
-       /* first check if there should be an extension bit for this CHOICE.
-          we do this by just checking the first choice arm 
-        */
-       /* 18.1 */
-       extension_flag=0;
-       if(sequence[0].extension==NO_EXTENSIONS){
-               extension_present=0;
-       } else {
-               proto_tree *etr=NULL;
-
-               if(display_internal_per_fields){
-                       etr=tree;
-               }
-               extension_present=1;
-               offset=dissect_per_boolean(tvb, offset, pinfo, etr, hf_h245_extension_bit, &extension_flag, NULL);
-       }
-
-       /* 18.2 */
-       num_opts=0;
-       for(i=0;sequence[i].name;i++){
-               if((sequence[i].extension!=NOT_EXTENSION_ROOT)&&(sequence[i].optional==OPTIONAL)){
-                       num_opts++;
-               }
-       }
-       optional_mask=0;
-       for(i=0;i<num_opts;i++){
-               proto_tree *etr=NULL;
-               if(display_internal_per_fields){
-                       etr=tree;
-               }
-               offset=dissect_per_boolean(tvb, offset, pinfo, etr, hf_h245_optional_field_bit, &optional_field_flag, NULL);
-               optional_mask<<=1;
-               if(optional_field_flag){
-                       optional_mask|=0x01;
-               }
-       }
-
-
-       /* 18.4 */
-       for(i=0;sequence[i].name;i++){
-               if( (sequence[i].extension==NO_EXTENSIONS)
-               ||  (sequence[i].extension==EXTENSION_ROOT) ){
-                       if(sequence[i].optional==OPTIONAL){
-                               gboolean is_present;
-                               is_present=(1<<(num_opts-1))&optional_mask;
-                               num_opts--;
-                               if(!is_present){
-                                       continue;
-                               }
-                       }
-                       if(sequence[i].func){
-                               offset=sequence[i].func(tvb, offset, pinfo, tree);
-                       } else {
-                               NOT_DECODED_YET(sequence[i].name);
-                       }
-               }
-       }
-
-
-       if(extension_flag){
-               gboolean extension_bit;
-               guint32 num_known_extensions;
-               guint32 num_extensions;
-               guint32 extension_mask;
-               proto_tree *etr=NULL;
-
-               if(display_internal_per_fields){
-                       etr=tree;
-               }
-
-               offset=dissect_per_normally_small_nonnegative_whole_number(tvb, offset, pinfo, etr, hf_h245_num_sequence_extensions, &num_extensions);
-               extension_mask=0;
-               for(i=0;i<(int)num_extensions;i++){
-                       offset=dissect_per_boolean(tvb, offset, pinfo, etr, hf_h245_extension_present_bit, &extension_bit, NULL);
-                       extension_mask=(extension_mask<<1)|extension_bit;
-               }
-
-               /* find how many extensions we know about */
-               num_known_extensions=0;
-               for(i=0;sequence[i].name;i++){
-                       if(sequence[i].extension==NOT_EXTENSION_ROOT){
-                               num_known_extensions++;
-                       }
-               }
-
-               /* decode the extensions one by one */
-               for(i=0;i<num_extensions;i++){
-                       guint32 length;
-                       guint32 new_offset;
-                       guint32 extension_index;
-                       int j,k;
-
-                       if(!((1L<<(num_extensions-1-i))&extension_mask)){
-                               /* this extension is not encoded in this PDU */
-                               continue;
-                       }
-
-                       offset=dissect_per_length_determinant(tvb, offset, pinfo, etr, hf_h245_open_type_length, &length);
-
-                       if(i>=num_known_extensions){
-                               /* we dont know how to decode this extension */
-                               offset+=length*8;
-                               NOT_DECODED_YET("unknown sequence extension");
-                               continue;
-                       }
-
-                       extension_index=0;
-                       for(j=0,k=0;sequence[j].name;j++){
-                               if(sequence[j].extension==NOT_EXTENSION_ROOT){
-                                       if(k==i){
-                                               extension_index=j;
-                                               break;
-                                       }
-                                       k++;
-                               }
-                       }
-
-                       if(sequence[extension_index].func){
-                               new_offset=sequence[extension_index].func(tvb, offset, pinfo, tree);
-                       } else {
-                               NOT_DECODED_YET(sequence[extension_index].name);
-                       }
-                       offset+=length*8;
-                       
-               }       
-       }
-
-
-       proto_item_set_len(item, (offset>>3)!=(old_offset>>3)?(offset>>3)-(old_offset>>3):1);
-       return offset;
-}
-
-
-
-
-
-/* this fucntion dissects an OCTET STRING
-       16.1
-       16.2
-       16.3
-       16.4
-       16.5
-       16.6
-       16.7
-       16.8
-
-   max_len or min_len == -1 means there is no lower/upper constraint 
-*/
-guint32
-dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, int min_len, int max_len)
-{
-       guint32 length;
-
-DEBUG_ENTRY("dissect_per_octet_string");
-       /* 16.5 if the length is 0 bytes there will be no encoding */
-       if(max_len==0){
-               return offset;
-       }
+static dissector_table_t nsp_object_dissector_table;
+static dissector_table_t nsp_h221_dissector_table;
 
+static dissector_handle_t nsp_handle;
 
-       if(min_len==-1){
-               min_len=0;
-       }
-
-       /* 16.6 if length is fixed and less than or equal to two bytes*/
-       if((min_len==max_len)&&(min_len<=2)){
-               static char bytes[4];
-               guint32 i, old_offset=offset;
-               gboolean bit;
-
-               for(i=0;i<8;i++){
-                       offset=dissect_per_boolean(tvb, offset, pinfo, tree, -1, &bit, NULL);
-                       bytes[0]=(bytes[0]<<1)|bit;
-               }
-               if(min_len==2){
-                       for(i=0;i<8;i++){
-                               offset=dissect_per_boolean(tvb, offset, pinfo, tree, -1, &bit, NULL);
-                               bytes[1]=(bytes[1]<<1)|bit;
-                       }
-               }
-
-               proto_tree_add_bytes(tree, hf_index, tvb, old_offset>>3, min_len+(offset&0x07)?1:0, bytes);
-               return offset;
-       }
-
-
-       /* aligne to byte */
-       if(offset&0x07){
-               offset=(offset&0xfffffff8)+8;
-       }
-
-       /* 16.7 if length is fixed and less than to 64k*/
-       if((min_len==max_len)&&(min_len<65536)){
-               proto_tree_add_bytes(tree, hf_index, tvb, offset>>3, min_len, tvb_get_ptr(tvb, offset>>3, min_len));
-               offset+=min_len*8;
-               return offset;
-       }
+static guint32 ipv4_address;
+static guint32 ipv4_port;
+static char object[256];
+static guint32 t35CountryCode;
+static guint32 t35Extension;
+static guint32 manufacturerCode;
+static guint32 h221NonStandard;
 
-       /* 16.8 */
-       if(max_len>0){
-               offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-                       tree, hf_h245_octet_string_length, min_len, max_len, 
-                       &length, NULL);
-       } else {
-               offset=dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_h245_octet_string_length, &length);
-       }
-       if(length){
-               proto_tree_add_bytes(tree, hf_index, tvb, offset>>3, length, tvb_get_ptr(tvb, offset>>3, length));
-       }
-       offset+=length*8;
-
-       return offset;
-}
-
-
-
-
-/*************************************************************
- ASN.1_PER functions ends here 
-**************************************************************/
-
-/*******************************************/
-/*yyy  finished dissectors below this line */
-/*******************************************/
+static gboolean h245_reassembly = TRUE;
+static gboolean h245_shorttypes = FALSE;
+/* To put the codec type only in COL_INFO when
+   an OLC is read */
+char* codec_type = NULL;
 
 static int
 dissect_h245_NULL(tvbuff_t *tvb _U_, int offset, packet_info *pinfo _U_, proto_tree *tree _U_)
@@ -2592,16 +1502,16 @@ static const value_string MasterSlaveDeterminationAck_decision_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MasterSlaveDeterminationAck_decision_choice[] = {
-       {  0, "master", NO_EXTENSIONS, 
+       {  0, "master", ASN1_NO_EXTENSIONS,
                dissect_h245_NULL },
-       {  1, "slave", NO_EXTENSIONS, 
+       {  1, "slave", ASN1_NO_EXTENSIONS,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MasterSlaveDeterminationAck_decision(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MasterSlaveDeterminationAck_decision, ett_h245_MasterSlaveDeterminationAck_decision, MasterSlaveDeterminationAck_decision_choice, "Decision");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MasterSlaveDeterminationAck_decision, ett_h245_MasterSlaveDeterminationAck_decision, MasterSlaveDeterminationAck_decision_choice, "Decision", NULL);
 
        return offset;
 }
@@ -2609,7 +1519,7 @@ dissect_h245_MasterSlaveDeterminationAck_decision(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t MasterSlaveDeterminationAck_sequence[] = {
-       { "decision", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "decision", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MasterSlaveDeterminationAck_decision },
        { NULL, 0, 0, NULL }
 };
@@ -2627,14 +1537,14 @@ static const value_string MasterSlaveDeterminationReject_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MasterSlaveDeterminationReject_cause_choice[] = {
-       {  0, "identicalNumbers", EXTENSION_ROOT, 
+       {  0, "identicalNumbers", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MasterSlaveDeterminationReject_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MasterSlaveDeterminationReject_cause, ett_h245_MasterSlaveDeterminationReject_cause, MasterSlaveDeterminationReject_cause_choice, "Cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MasterSlaveDeterminationReject_cause, ett_h245_MasterSlaveDeterminationReject_cause, MasterSlaveDeterminationReject_cause_choice, "Cause", NULL);
 
        return offset;
 }
@@ -2642,7 +1552,7 @@ dissect_h245_MasterSlaveDeterminationReject_cause(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t MasterSlaveDeterminationReject_sequence[] = {
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MasterSlaveDeterminationReject_cause },
        { NULL, 0, 0, NULL }
 };
@@ -2662,16 +1572,16 @@ static const value_string QOSMode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t QOSMode_choice[] = {
-       {  0, "guaranteedQOS", EXTENSION_ROOT, 
+       {  0, "guaranteedQOS", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "controlledLoad", EXTENSION_ROOT, 
+       {  1, "controlledLoad", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_QOSMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_QOSMode, ett_h245_QOSMode, QOSMode_choice, "QOSMode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_QOSMode, ett_h245_QOSMode, QOSMode_choice, "QOSMode", NULL);
 
        return offset;
 }
@@ -2687,22 +1597,22 @@ static const value_string RefPictureSelection_videoBackChannelSend_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RefPictureSelection_videoBackChannelSend_choice[] = {
-       {  0, "none", EXTENSION_ROOT, 
+       {  0, "none", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "ackMessageOnly", EXTENSION_ROOT, 
+       {  1, "ackMessageOnly", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "nackMessageOnly", EXTENSION_ROOT, 
+       {  2, "nackMessageOnly", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "ackOrNackMessageOnly", EXTENSION_ROOT, 
+       {  3, "ackOrNackMessageOnly", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "ackAndNackMessage", EXTENSION_ROOT, 
+       {  4, "ackAndNackMessage", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RefPictureSelection_videoBackChannelSend(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RefPictureSelection_videoBackChannelSend, ett_h245_RefPictureSelection_videoBackChannelSend, RefPictureSelection_videoBackChannelSend_choice, "videoBackChannelSend");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RefPictureSelection_videoBackChannelSend, ett_h245_RefPictureSelection_videoBackChannelSend, RefPictureSelection_videoBackChannelSend_choice, "videoBackChannelSend", NULL);
 
        return offset;
 }
@@ -2715,16 +1625,16 @@ static const value_string T38FaxRateManagement_vals[] = {
        {  0, NULL }
 };
 static per_choice_t T38FaxRateManagement_choice[] = {
-       {  0, "localTCF", EXTENSION_ROOT, 
+       {  0, "localTCF", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "transferredTCF", EXTENSION_ROOT, 
+       {  1, "transferredTCF", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_T38FaxRateManagement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_T38FaxRateManagement, ett_h245_T38FaxRateManagement, T38FaxRateManagement_choice, "T38FaxRateManagement");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_T38FaxRateManagement, ett_h245_T38FaxRateManagement, T38FaxRateManagement_choice, "T38FaxRateManagement", NULL);
 
        return offset;
 }
@@ -2737,16 +1647,16 @@ static const value_string T38FaxUdpOptions_t38FaxUdpEC_vals[] = {
        {  0, NULL }
 };
 static per_choice_t T38FaxUdpOptions_t38FaxUdpEC_choice[] = {
-       {  0, "t38UDPFEC", EXTENSION_ROOT, 
+       {  0, "t38UDPFEC", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "t38UDPRedundancy", EXTENSION_ROOT, 
+       {  1, "t38UDPRedundancy", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_T38FaxUdpOptions_t38FaxUdpEC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_T38FaxUdpOptions_t38FaxUdpEC, ett_h245_T38FaxUdpOptions_t38FaxUdpEC, T38FaxUdpOptions_t38FaxUdpEC_choice, "t38FaxUdpEC");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_T38FaxUdpOptions_t38FaxUdpEC, ett_h245_T38FaxUdpOptions_t38FaxUdpEC, T38FaxUdpOptions_t38FaxUdpEC_choice, "t38FaxUdpEC", NULL);
 
        return offset;
 }
@@ -2759,16 +1669,16 @@ static const value_string NetworkAccessParameters_distribution_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NetworkAccessParameters_distribution_choice[] = {
-       {  0, "unicast", EXTENSION_ROOT, 
+       {  0, "unicast", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "multicast", EXTENSION_ROOT, 
+       {  1, "multicast", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NetworkAccessParameters_distribution(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NetworkAccessParameters_distribution, ett_h245_NetworkAccessParameters_distribution, NetworkAccessParameters_distribution_choice, "Distribution");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NetworkAccessParameters_distribution, ett_h245_NetworkAccessParameters_distribution, NetworkAccessParameters_distribution_choice, "Distribution", NULL);
 
        return offset;
 }
@@ -2782,18 +1692,18 @@ static const value_string NetworkAccessParameters_t120SetupProcedure_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NetworkAccessParameters_t120SetupProcedure_choice[] = {
-       {  0, "originateCall", EXTENSION_ROOT, 
+       {  0, "originateCall", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "waitForCall", EXTENSION_ROOT, 
+       {  1, "waitForCall", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "issueQuery", EXTENSION_ROOT, 
+       {  2, "issueQuery", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NetworkAccessParameters_t120SetupProcedure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NetworkAccessParameters_t120SetupProcedure, ett_h245_NetworkAccessParameters_t120SetupProcedure, NetworkAccessParameters_t120SetupProcedure_choice, "t120SetupProcedure");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NetworkAccessParameters_t120SetupProcedure, ett_h245_NetworkAccessParameters_t120SetupProcedure, NetworkAccessParameters_t120SetupProcedure_choice, "t120SetupProcedure", NULL);
 
        return offset;
 }
@@ -2806,16 +1716,16 @@ static const value_string H223AL1MParameters_transferMode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL1MParameters_transferMode_choice[] = {
-       {  0, "framed", EXTENSION_ROOT, 
+       {  0, "framed", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "unframed", EXTENSION_ROOT, 
+       {  1, "unframed", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL1MParameters_transferMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_transferMode, ett_h245_H223AL1MParameters_transferMode, H223AL1MParameters_transferMode_choice, "transferMode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_transferMode, ett_h245_H223AL1MParameters_transferMode, H223AL1MParameters_transferMode_choice, "transferMode", NULL);
 
        return offset;
 }
@@ -2828,16 +1738,16 @@ static const value_string H223AL1MParameters_headerFEC_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL1MParameters_headerFEC_choice[] = {
-       {  0, "sebch16-7", EXTENSION_ROOT, 
+       {  0, "sebch16-7", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "golay24-12", EXTENSION_ROOT, 
+       {  1, "golay24-12", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL1MParameters_headerFEC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_headerFEC, ett_h245_H223AL1MParameters_headerFEC, H223AL1MParameters_headerFEC_choice, "headerFEC");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_headerFEC, ett_h245_H223AL1MParameters_headerFEC, H223AL1MParameters_headerFEC_choice, "headerFEC", NULL);
 
        return offset;
 }
@@ -2856,28 +1766,28 @@ static const value_string H223AL1MParameters_crcLength_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL1MParameters_crcLength_choice[] = {
-       {  0, "crc4bit", EXTENSION_ROOT, 
+       {  0, "crc4bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "crc12bit", EXTENSION_ROOT, 
+       {  1, "crc12bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "crc20bit", EXTENSION_ROOT, 
+       {  2, "crc20bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "crc28bit", EXTENSION_ROOT, 
+       {  3, "crc28bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "crc8bit", NOT_EXTENSION_ROOT, 
+       {  4, "crc8bit", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "crc16bit", NOT_EXTENSION_ROOT, 
+       {  5, "crc16bit", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "crc32bit", NOT_EXTENSION_ROOT, 
+       {  6, "crc32bit", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  7, "crcNotUsed", NOT_EXTENSION_ROOT, 
+       {  7, "crcNotUsed", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL1MParameters_crcLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_crcLength, ett_h245_H223AL1MParameters_crcLength, H223AL1MParameters_crcLength_choice, "crcLength");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_crcLength, ett_h245_H223AL1MParameters_crcLength, H223AL1MParameters_crcLength_choice, "crcLength", NULL);
 
        return offset;
 }
@@ -2890,16 +1800,16 @@ static const value_string H223AL2MParameters_headerFEC_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL2MParameters_headerFEC_choice[] = {
-       {  0, "sebch16-5", EXTENSION_ROOT, 
+       {  0, "sebch16-5", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "golay24-12", EXTENSION_ROOT, 
+       {  1, "golay24-12", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL2MParameters_headerFEC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL2MParameters_headerFEC, ett_h245_H223AL2MParameters_headerFEC, H223AL2MParameters_headerFEC_choice, "headerFEC");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL2MParameters_headerFEC, ett_h245_H223AL2MParameters_headerFEC, H223AL2MParameters_headerFEC_choice, "headerFEC", NULL);
 
        return offset;
 }
@@ -2913,16 +1823,16 @@ static const value_string H223AL3MParameters_headerFormat_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL3MParameters_headerFormat_choice[] = {
-       {  0, "sebch16-7", EXTENSION_ROOT, 
+       {  0, "sebch16-7", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "golay24-12", EXTENSION_ROOT, 
+       {  1, "golay24-12", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL3MParameters_headerFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL3MParameters_headerFormat, ett_h245_H223AL3MParameters_headerFormat, H223AL3MParameters_headerFormat_choice, "headerFormat");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL3MParameters_headerFormat, ett_h245_H223AL3MParameters_headerFormat, H223AL3MParameters_headerFormat_choice, "headerFormat", NULL);
 
        return offset;
 }
@@ -2942,28 +1852,28 @@ static const value_string H223AL3MParameters_crcLength_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL3MParameters_crcLength_choice[] = {
-       {  0, "crc4bit", EXTENSION_ROOT, 
+       {  0, "crc4bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "crc12bit", EXTENSION_ROOT, 
+       {  1, "crc12bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "crc20bit", EXTENSION_ROOT, 
+       {  2, "crc20bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "crc28bit", EXTENSION_ROOT, 
+       {  3, "crc28bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "crc8bit", NOT_EXTENSION_ROOT, 
+       {  4, "crc8bit", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "crc16bit", NOT_EXTENSION_ROOT, 
+       {  5, "crc16bit", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "crc32bit", NOT_EXTENSION_ROOT, 
+       {  6, "crc32bit", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  7, "crcNotUsed", NOT_EXTENSION_ROOT, 
+       {  7, "crcNotUsed", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL3MParameters_crcLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL3MParameters_crcLength, ett_h245_H223AL3MParameters_crcLength, H223AL3MParameters_crcLength_choice, "crcLength");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL3MParameters_crcLength, ett_h245_H223AL3MParameters_crcLength, H223AL3MParameters_crcLength_choice, "crcLength", NULL);
 
        return offset;
 }
@@ -2978,18 +1888,18 @@ static const value_string V76LogicalChannelParameters_suspendResume_vals[] = {
        {  0, NULL }
 };
 static per_choice_t V76LogicalChannelParameters_suspendResume_choice[] = {
-       {  0, "noSuspendResume", EXTENSION_ROOT, 
+       {  0, "noSuspendResume", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "suspendResumewAddress", EXTENSION_ROOT, 
+       {  1, "suspendResumewAddress", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "suspendResumewoAddress", EXTENSION_ROOT, 
+       {  2, "suspendResumewoAddress", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_V76LogicalChannelParameters_suspendResume(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76LogicalChannelParameters_suspendResume, ett_h245_V76LogicalChannelParameters_suspendResume, V76LogicalChannelParameters_suspendResume_choice, "suspendResume");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76LogicalChannelParameters_suspendResume, ett_h245_V76LogicalChannelParameters_suspendResume, V76LogicalChannelParameters_suspendResume_choice, "suspendResume", NULL);
 
        return offset;
 }
@@ -3004,18 +1914,18 @@ static const value_string V76LogicalChannelParameters_mode_eRM_recovery_vals[] =
        {  0, NULL }
 };
 static per_choice_t V76LogicalChannelParameters_mode_eRM_recovery_choice[] = {
-       {  0, "rej", EXTENSION_ROOT, 
+       {  0, "rej", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "sREJ", EXTENSION_ROOT, 
+       {  1, "sREJ", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "mSREJ", EXTENSION_ROOT, 
+       {  2, "mSREJ", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_V76LogicalChannelParameters_mode_eRM_recovery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76LogicalChannelParameters_mode_eRM_recovery, ett_h245_V76LogicalChannelParameters_mode_eRM_recovery, V76LogicalChannelParameters_mode_eRM_recovery_choice, "recovery");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76LogicalChannelParameters_mode_eRM_recovery, ett_h245_V76LogicalChannelParameters_mode_eRM_recovery, V76LogicalChannelParameters_mode_eRM_recovery_choice, "recovery", NULL);
 
        return offset;
 }
@@ -3030,18 +1940,18 @@ static const value_string CRCLength_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CRCLength_choice[] = {
-       {  0, "crc8bit", EXTENSION_ROOT, 
+       {  0, "crc8bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "crc16bit", EXTENSION_ROOT, 
+       {  1, "crc16bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "crc32bit", EXTENSION_ROOT, 
+       {  2, "crc32bit", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CRCLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CRCLength, ett_h245_CRCLength, CRCLength_choice, "CRCLength");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CRCLength, ett_h245_CRCLength, CRCLength_choice, "CRCLength", NULL);
 
        return offset;
 }
@@ -3055,16 +1965,16 @@ static const value_string UnicastAddress_iPSourceRouteAddress_routing_vals[] = {
        {  0, NULL }
 };
 static per_choice_t UnicastAddress_iPSourceRouteAddress_routing_choice[] = {
-       {  0, "strict", NO_EXTENSIONS, 
+       {  0, "strict", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "loose", NO_EXTENSIONS, 
+       {  1, "loose", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_UnicastAddress_iPSourceRouteAddress_routing(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UnicastAddress_iPSourceRouteAddress_routing, ett_h245_UnicastAddress_iPSourceRouteAddress_routing, UnicastAddress_iPSourceRouteAddress_routing_choice, "routing");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UnicastAddress_iPSourceRouteAddress_routing, ett_h245_UnicastAddress_iPSourceRouteAddress_routing, UnicastAddress_iPSourceRouteAddress_routing_choice, "routing", NULL);
 
        return offset;
 }
@@ -3090,40 +2000,40 @@ static const value_string OpenLogicalChannelReject_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t OpenLogicalChannelReject_cause_choice[] = {
-       {  0, "unspecified", EXTENSION_ROOT, 
+       {  0, "unspecified", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "unsuitableReverseParameters", EXTENSION_ROOT, 
+       {  1, "unsuitableReverseParameters", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "dataTypeNotSupported", EXTENSION_ROOT, 
+       {  2, "dataTypeNotSupported", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "dataTypeNotAvailable", EXTENSION_ROOT, 
+       {  3, "dataTypeNotAvailable", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "unknownDataType", EXTENSION_ROOT, 
+       {  4, "unknownDataType", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "dataTypeALCombinationNotSupported", EXTENSION_ROOT, 
+       {  5, "dataTypeALCombinationNotSupported", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "multicastChannelNotAllowed", NOT_EXTENSION_ROOT, 
+       {  6, "multicastChannelNotAllowed", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  7, "insufficientBandwidth", NOT_EXTENSION_ROOT, 
+       {  7, "insufficientBandwidth", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  8, "separateStackEstablishmentFailed", NOT_EXTENSION_ROOT, 
+       {  8, "separateStackEstablishmentFailed", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  9, "invalidSessionID", NOT_EXTENSION_ROOT, 
+       {  9, "invalidSessionID", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 10, "masterSlaveConflict", NOT_EXTENSION_ROOT, 
+       { 10, "masterSlaveConflict", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 11, "waitForCommunicationMode", NOT_EXTENSION_ROOT, 
+       { 11, "waitForCommunicationMode", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 12, "invalidDependentChannel", NOT_EXTENSION_ROOT, 
+       { 12, "invalidDependentChannel", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 13, "replacementForRejected", NOT_EXTENSION_ROOT, 
+       { 13, "replacementForRejected", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_OpenLogicalChannelReject_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_OpenLogicalChannelReject_cause, ett_h245_OpenLogicalChannelReject_cause, OpenLogicalChannelReject_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_OpenLogicalChannelReject_cause, ett_h245_OpenLogicalChannelReject_cause, OpenLogicalChannelReject_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -3136,16 +2046,16 @@ static const value_string CloseLogicalChannel_source_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CloseLogicalChannel_source_choice[] = {
-       {  0, "user", NO_EXTENSIONS, 
+       {  0, "user", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "lcse", NO_EXTENSIONS, 
+       {  1, "lcse", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CloseLogicalChannel_source(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CloseLogicalChannel_source, ett_h245_CloseLogicalChannel_source, CloseLogicalChannel_source_choice, "source");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CloseLogicalChannel_source, ett_h245_CloseLogicalChannel_source, CloseLogicalChannel_source_choice, "source", NULL);
 
        return offset;
 }
@@ -3158,18 +2068,18 @@ static const value_string CloseLogicalChannel_reason_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CloseLogicalChannel_reason_choice[] = {
-       {  0, "unknown", EXTENSION_ROOT, 
+       {  0, "unknown", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "reopen", EXTENSION_ROOT, 
+       {  1, "reopen", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "reservationFailure", EXTENSION_ROOT, 
+       {  2, "reservationFailure", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CloseLogicalChannel_reason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CloseLogicalChannel_reason, ett_h245_CloseLogicalChannel_reason, CloseLogicalChannel_reason_choice, "reason");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CloseLogicalChannel_reason, ett_h245_CloseLogicalChannel_reason, CloseLogicalChannel_reason_choice, "reason", NULL);
 
        return offset;
 }
@@ -3184,20 +2094,20 @@ static const value_string RequestChannelClose_reason_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RequestChannelClose_reason_choice[] = {
-       {  0, "unknown", EXTENSION_ROOT, 
+       {  0, "unknown", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "normal", EXTENSION_ROOT, 
+       {  1, "normal", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "reopen", EXTENSION_ROOT, 
+       {  2, "reopen", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "reservationFailure", EXTENSION_ROOT, 
+       {  3, "reservationFailure", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RequestChannelClose_reason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestChannelClose_reason, ett_h245_RequestChannelClose_reason, RequestChannelClose_reason_choice, "reason");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestChannelClose_reason, ett_h245_RequestChannelClose_reason, RequestChannelClose_reason_choice, "reason", NULL);
 
        return offset;
 }
@@ -3209,14 +2119,14 @@ static const value_string RequestChannelCloseReject_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RequestChannelCloseReject_cause_choice[] = {
-       {  0, "unspecified", EXTENSION_ROOT, 
+       {  0, "unspecified", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RequestChannelCloseReject_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestChannelCloseReject_cause, ett_h245_RequestChannelCloseReject_cause, RequestChannelCloseReject_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestChannelCloseReject_cause, ett_h245_RequestChannelCloseReject_cause, RequestChannelCloseReject_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -3230,16 +2140,16 @@ static const value_string MultiplexEntryRejectionDescriptions_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultiplexEntryRejectionDescriptions_cause_choice[] = {
-       {  0, "unspecifiedCause", EXTENSION_ROOT, 
+       {  0, "unspecifiedCause", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "descriptorTooComplex", EXTENSION_ROOT, 
+       {  1, "descriptorTooComplex", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultiplexEntryRejectionDescriptions_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexEntryRejectionDescriptions_cause, ett_h245_MultiplexEntryRejectionDescriptions_cause, MultiplexEntryRejectionDescriptions_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexEntryRejectionDescriptions_cause, ett_h245_MultiplexEntryRejectionDescriptions_cause, MultiplexEntryRejectionDescriptions_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -3251,14 +2161,14 @@ static const value_string RequestMultiplexEntryRejectionDescriptions_cause_vals[
        {  0, NULL }
 };
 static per_choice_t RequestMultiplexEntryRejectionDescriptions_cause_choice[] = {
-       {  0, "unspecifiedCause", EXTENSION_ROOT, 
+       {  0, "unspecifiedCause", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RequestMultiplexEntryRejectionDescriptions_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestMultiplexEntryRejectionDescriptions_cause, ett_h245_RequestMultiplexEntryRejectionDescriptions_cause, RequestMultiplexEntryRejectionDescriptions_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestMultiplexEntryRejectionDescriptions_cause, ett_h245_RequestMultiplexEntryRejectionDescriptions_cause, RequestMultiplexEntryRejectionDescriptions_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -3272,18 +2182,18 @@ static const value_string RequestModeReject_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RequestModeReject_cause_choice[] = {
-       {  0, "modeUnavailable", EXTENSION_ROOT, 
+       {  0, "modeUnavailable", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "multipointConstraint", EXTENSION_ROOT, 
+       {  1, "multipointConstraint", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "requestDenied", EXTENSION_ROOT, 
+       {  2, "requestDenied", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RequestModeReject_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestModeReject_cause, ett_h245_RequestModeReject_cause, RequestModeReject_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestModeReject_cause, ett_h245_RequestModeReject_cause, RequestModeReject_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -3297,16 +2207,16 @@ static const value_string V76ModeParameters_vals[] = {
        {  0, NULL }
 };
 static per_choice_t V76ModeParameters_choice[] = {
-       {  0, "suspendResumewAddress", EXTENSION_ROOT, 
+       {  0, "suspendResumewAddress", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "suspendResumewoAddress", EXTENSION_ROOT, 
+       {  1, "suspendResumewoAddress", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_V76ModeParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76ModeParameters, ett_h245_V76ModeParameters, V76ModeParameters_choice, "V76ModeParameters");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76ModeParameters, ett_h245_V76ModeParameters, V76ModeParameters_choice, "V76ModeParameters", NULL);
 
        return offset;
 }
@@ -3328,34 +2238,34 @@ static const value_string H262VideoMode_profileAndLevel_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H262VideoMode_profileAndLevel_choice[] = {
-       {  0, "profileAndLevel-SPatML", EXTENSION_ROOT, 
+       {  0, "profileAndLevel-SPatML", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "profileAndLevel-MPatLL", EXTENSION_ROOT, 
+       {  1, "profileAndLevel-MPatLL", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "profileAndLevel-MPatML", EXTENSION_ROOT, 
+       {  2, "profileAndLevel-MPatML", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "profileAndLevel-MPatH-14", EXTENSION_ROOT, 
+       {  3, "profileAndLevel-MPatH-14", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "profileAndLevel-MPatHL", EXTENSION_ROOT, 
+       {  4, "profileAndLevel-MPatHL", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "profileAndLevel-SNRatLL", EXTENSION_ROOT, 
+       {  5, "profileAndLevel-SNRatLL", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "profileAndLevel-SNRatML", EXTENSION_ROOT, 
+       {  6, "profileAndLevel-SNRatML", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  7, "profileAndLevel-SpatialH-14", EXTENSION_ROOT, 
+       {  7, "profileAndLevel-SpatialH-14", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  8, "profileAndLevel-HPatML", EXTENSION_ROOT, 
+       {  8, "profileAndLevel-HPatML", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  9, "profileAndLevel-HPatH-14", EXTENSION_ROOT, 
+       {  9, "profileAndLevel-HPatH-14", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 10, "profileAndLevel-HPatHL", EXTENSION_ROOT, 
+       { 10, "profileAndLevel-HPatHL", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H262VideoMode_profileAndLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H262VideoMode_profileAndLevel, ett_h245_H262VideoMode_profileAndLevel, H262VideoMode_profileAndLevel_choice, "profileAndLevel");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H262VideoMode_profileAndLevel, ett_h245_H262VideoMode_profileAndLevel, H262VideoMode_profileAndLevel_choice, "profileAndLevel", NULL);
 
        return offset;
 }
@@ -3373,24 +2283,24 @@ static const value_string H263VideoMode_resolution_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H263VideoMode_resolution_choice[] = {
-       {  0, "sqcif", EXTENSION_ROOT, 
+       {  0, "sqcif", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "qcif", EXTENSION_ROOT, 
+       {  1, "qcif", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "cif", EXTENSION_ROOT, 
+       {  2, "cif", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "cif4", EXTENSION_ROOT, 
+       {  3, "cif4", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "cif16", EXTENSION_ROOT, 
+       {  4, "cif16", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "custom", NOT_EXTENSION_ROOT, 
+       {  5, "custom", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H263VideoMode_resolution(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H263VideoMode_resolution, ett_h245_H263VideoMode_resolution, H263VideoMode_resolution_choice, "resolution");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H263VideoMode_resolution, ett_h245_H263VideoMode_resolution, H263VideoMode_resolution_choice, "resolution", NULL);
 
        return offset;
 }
@@ -3404,20 +2314,20 @@ static const value_string AudioMode_g7231_vals[] = {
        {  0, NULL }
 };
 static per_choice_t AudioMode_g7231_choice[] = {
-       {  0, "noSilenceSuppressionLowRate", NO_EXTENSIONS, 
+       {  0, "noSilenceSuppressionLowRate", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "noSilenceSuppressionHighRate", NO_EXTENSIONS, 
+       {  1, "noSilenceSuppressionHighRate", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  2, "silenceSuppressionLowRate", NO_EXTENSIONS, 
+       {  2, "silenceSuppressionLowRate", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  3, "silenceSuppressionHighRate", NO_EXTENSIONS, 
+       {  3, "silenceSuppressionHighRate", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_AudioMode_g7231(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_AudioMode_g7231, ett_h245_AudioMode_g7231, AudioMode_g7231_choice, "g7231");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_AudioMode_g7231, ett_h245_AudioMode_g7231, AudioMode_g7231_choice, "g7231", NULL);
 
        return offset;
 }
@@ -3431,18 +2341,18 @@ static const value_string IS11172AudioMode_audioLayer_vals[] = {
        {  0, NULL }
 };
 static per_choice_t IS11172AudioMode_audioLayer_choice[] = {
-       {  0, "audioLayer1", NO_EXTENSIONS, 
+       {  0, "audioLayer1", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "audioLayer2", NO_EXTENSIONS, 
+       {  1, "audioLayer2", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  2, "audioLayer3", NO_EXTENSIONS, 
+       {  2, "audioLayer3", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_IS11172AudioMode_audioLayer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS11172AudioMode_audioLayer, ett_h245_IS11172AudioMode_audioLayer, IS11172AudioMode_audioLayer_choice, "audioLayer");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS11172AudioMode_audioLayer, ett_h245_IS11172AudioMode_audioLayer, IS11172AudioMode_audioLayer_choice, "audioLayer", NULL);
 
        return offset;
 }
@@ -3456,18 +2366,18 @@ static const value_string IS11172AudioMode_audioSampling_vals[] = {
        {  0, NULL }
 };
 static per_choice_t IS11172AudioMode_audioSampling_choice[] = {
-       {  0, "audioSampling32k", NO_EXTENSIONS, 
+       {  0, "audioSampling32k", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "audioSampling44k1", NO_EXTENSIONS, 
+       {  1, "audioSampling44k1", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  2, "audioSampling48k", NO_EXTENSIONS, 
+       {  2, "audioSampling48k", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_IS11172AudioMode_audioSampling(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS11172AudioMode_audioSampling, ett_h245_IS11172AudioMode_audioSampling, IS11172AudioMode_audioSampling_choice, "audioSampling");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS11172AudioMode_audioSampling, ett_h245_IS11172AudioMode_audioSampling, IS11172AudioMode_audioSampling_choice, "audioSampling", NULL);
 
        return offset;
 }
@@ -3481,18 +2391,18 @@ static const value_string IS11172AudioMode_multichannelType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t IS11172AudioMode_multichannelType_choice[] = {
-       {  0, "singleChannel", NO_EXTENSIONS, 
+       {  0, "singleChannel", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "twoChannelStereo", NO_EXTENSIONS, 
+       {  1, "twoChannelStereo", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  2, "twoChannelDual", NO_EXTENSIONS, 
+       {  2, "twoChannelDual", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_IS11172AudioMode_multichannelType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS11172AudioMode_multichannelType, ett_h245_IS11172AudioMode_multichannelType, IS11172AudioMode_multichannelType_choice, "multichannelType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS11172AudioMode_multichannelType, ett_h245_IS11172AudioMode_multichannelType, IS11172AudioMode_multichannelType_choice, "multichannelType", NULL);
 
        return offset;
 }
@@ -3507,18 +2417,18 @@ static const value_string IS13818AudioMode_audioLayer_vals[] = {
        {  0, NULL }
 };
 static per_choice_t IS13818AudioMode_audioLayer_choice[] = {
-       {  0, "audioLayer1", NO_EXTENSIONS, 
+       {  0, "audioLayer1", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "audioLayer2", NO_EXTENSIONS, 
+       {  1, "audioLayer2", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  2, "audioLayer3", NO_EXTENSIONS, 
+       {  2, "audioLayer3", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_IS13818AudioMode_audioLayer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS13818AudioMode_audioLayer, ett_h245_IS13818AudioMode_audioLayer, IS13818AudioMode_audioLayer_choice, "audioLayer");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS13818AudioMode_audioLayer, ett_h245_IS13818AudioMode_audioLayer, IS13818AudioMode_audioLayer_choice, "audioLayer", NULL);
 
        return offset;
 }
@@ -3536,24 +2446,24 @@ static const value_string IS13818AudioMode_audioSampling_vals[] = {
        {  0, NULL }
 };
 static per_choice_t IS13818AudioMode_audioSampling_choice[] = {
-       {  0, "audioSampling16k", NO_EXTENSIONS, 
+       {  0, "audioSampling16k", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "audioSampling22k05", NO_EXTENSIONS, 
+       {  1, "audioSampling22k05", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  2, "audioSampling24k", NO_EXTENSIONS, 
+       {  2, "audioSampling24k", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  3, "audioSampling32k", NO_EXTENSIONS, 
+       {  3, "audioSampling32k", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  4, "audioSampling44k1", NO_EXTENSIONS, 
+       {  4, "audioSampling44k1", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  5, "audioSampling48k", NO_EXTENSIONS, 
+       {  5, "audioSampling48k", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_IS13818AudioMode_audioSampling(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS13818AudioMode_audioSampling, ett_h245_IS13818AudioMode_audioSampling, IS13818AudioMode_audioSampling_choice, "audioSampling");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS13818AudioMode_audioSampling, ett_h245_IS13818AudioMode_audioSampling, IS13818AudioMode_audioSampling_choice, "audioSampling", NULL);
 
        return offset;
 }
@@ -3575,32 +2485,32 @@ static const value_string IS13818AudioMode_multiChannelType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t IS13818AudioMode_multiChannelType_choice[] = {
-       {  0, "singleChannel", NO_EXTENSIONS, 
+       {  0, "singleChannel", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "twoChannelStereo", NO_EXTENSIONS, 
+       {  1, "twoChannelStereo", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  2, "twoChannelDual", NO_EXTENSIONS, 
+       {  2, "twoChannelDual", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  3, "threeChannels2-1", NO_EXTENSIONS, 
+       {  3, "threeChannels2-1", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  4, "threeChannels3-0", NO_EXTENSIONS, 
+       {  4, "threeChannels3-0", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  5, "fourChannels2-0-2-0", NO_EXTENSIONS, 
+       {  5, "fourChannels2-0-2-0", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  6, "fourChannels2-2", NO_EXTENSIONS, 
+       {  6, "fourChannels2-2", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  7, "fourChannels3-1", NO_EXTENSIONS, 
+       {  7, "fourChannels3-1", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  8, "fiveChannels3-0-2-0", NO_EXTENSIONS, 
+       {  8, "fiveChannels3-0-2-0", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  9, "fiveChannels3-2", NO_EXTENSIONS, 
+       {  9, "fiveChannels3-2", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_IS13818AudioMode_multiChannelType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS13818AudioMode_multiChannelType, ett_h245_IS13818AudioMode_multiChannelType, IS13818AudioMode_multiChannelType_choice, "multiChannelType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IS13818AudioMode_multiChannelType, ett_h245_IS13818AudioMode_multiChannelType, IS13818AudioMode_multiChannelType_choice, "multiChannelType", NULL);
 
        return offset;
 }
@@ -3613,14 +2523,14 @@ static const value_string MaintenanceLoopReject_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MaintenanceLoopReject_cause_choice[] = {
-       {  0, "canNotPerformLoop", EXTENSION_ROOT, 
+       {  0, "canNotPerformLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MaintenanceLoopReject_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopReject_cause, ett_h245_MaintenanceLoopReject_cause, MaintenanceLoopReject_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopReject_cause, ett_h245_MaintenanceLoopReject_cause, MaintenanceLoopReject_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -3634,16 +2544,16 @@ static const value_string ConferenceResponse_makeMeChairResponse_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ConferenceResponse_makeMeChairResponse_choice[] = {
-       {  0, "grantedChairToken", EXTENSION_ROOT, 
+       {  0, "grantedChairToken", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "deniedChairToken", EXTENSION_ROOT, 
+       {  1, "deniedChairToken", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceResponse_makeMeChairResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_makeMeChairResponse, ett_h245_ConferenceResponse_makeMeChairResponse, ConferenceResponse_makeMeChairResponse_choice, "makeMeChairResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_makeMeChairResponse, ett_h245_ConferenceResponse_makeMeChairResponse, ConferenceResponse_makeMeChairResponse_choice, "makeMeChairResponse", NULL);
 
        return offset;
 }
@@ -3657,16 +2567,16 @@ static const value_string ConferenceResponse_broadcastMyLogicalChannelResponse_v
        {  0, NULL }
 };
 static per_choice_t ConferenceResponse_broadcastMyLogicalChannelResponse_choice[] = {
-       {  0, "grantedBroadcastMyLogicalChannel", EXTENSION_ROOT, 
+       {  0, "grantedBroadcastMyLogicalChannel", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "deniedBroadcastMyLogicalChannel", EXTENSION_ROOT, 
+       {  1, "deniedBroadcastMyLogicalChannel", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceResponse_broadcastMyLogicalChannelResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_broadcastMyLogicalChannelResponse, ett_h245_ConferenceResponse_broadcastMyLogicalChannelResponse, ConferenceResponse_broadcastMyLogicalChannelResponse_choice, "broadcastMyLogicalChannelResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_broadcastMyLogicalChannelResponse, ett_h245_ConferenceResponse_broadcastMyLogicalChannelResponse, ConferenceResponse_broadcastMyLogicalChannelResponse_choice, "broadcastMyLogicalChannelResponse", NULL);
 
        return offset;
 }
@@ -3679,16 +2589,16 @@ static const value_string ConferenceResponse_makeTerminalBroadcasterResponse_val
        {  0, NULL }
 };
 static per_choice_t ConferenceResponse_makeTerminalBroadcasterResponse_choice[] = {
-       {  0, "grantedMakeTerminalBroadcaster", EXTENSION_ROOT, 
+       {  0, "grantedMakeTerminalBroadcaster", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "deniedMakeTerminalBroadcaster", EXTENSION_ROOT, 
+       {  1, "deniedMakeTerminalBroadcaster", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceResponse_makeTerminalBroadcasterResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_makeTerminalBroadcasterResponse, ett_h245_ConferenceResponse_makeTerminalBroadcasterResponse, ConferenceResponse_makeTerminalBroadcasterResponse_choice, "makeTerminalBroadcasterResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_makeTerminalBroadcasterResponse, ett_h245_ConferenceResponse_makeTerminalBroadcasterResponse, ConferenceResponse_makeTerminalBroadcasterResponse_choice, "makeTerminalBroadcasterResponse", NULL);
 
        return offset;
 }
@@ -3702,16 +2612,16 @@ static const value_string ConferenceResponse_sendThisSourceResponse_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ConferenceResponse_sendThisSourceResponse_choice[] = {
-       {  0, "grantedSendThisSource", EXTENSION_ROOT, 
+       {  0, "grantedSendThisSource", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "deniedSendThisSource", EXTENSION_ROOT, 
+       {  1, "deniedSendThisSource", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceResponse_sendThisSourceResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_sendThisSourceResponse, ett_h245_ConferenceResponse_sendThisSourceResponse, ConferenceResponse_sendThisSourceResponse_choice, "sendThisSourceResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse_sendThisSourceResponse, ett_h245_ConferenceResponse_sendThisSourceResponse, ConferenceResponse_sendThisSourceResponse_choice, "sendThisSourceResponse", NULL);
 
        return offset;
 }
@@ -3725,18 +2635,18 @@ static const value_string RemoteMCRequest_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RemoteMCRequest_choice[] = {
-       {  0, "masterActivate", EXTENSION_ROOT, 
+       {  0, "masterActivate", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "slaveActivate", EXTENSION_ROOT, 
+       {  1, "slaveActivate", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "deActivate", EXTENSION_ROOT, 
+       {  2, "deActivate", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RemoteMCRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RemoteMCRequest, ett_h245_RemoteMCRequest, RemoteMCRequest_choice, "RemoteMCRequest");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RemoteMCRequest, ett_h245_RemoteMCRequest, RemoteMCRequest_choice, "RemoteMCRequest", NULL);
 
        return offset;
 }
@@ -3750,16 +2660,16 @@ static const value_string RemoteMCResponse_reject_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RemoteMCResponse_reject_choice[] = {
-       {  0, "unspecified", EXTENSION_ROOT, 
+       {  0, "unspecified", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "functionNotSupported", EXTENSION_ROOT, 
+       {  1, "functionNotSupported", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RemoteMCResponse_reject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RemoteMCResponse_reject, ett_h245_RemoteMCResponse_reject, RemoteMCResponse_reject_choice, "reject");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RemoteMCResponse_reject, ett_h245_RemoteMCResponse_reject, RemoteMCResponse_reject_choice, "reject", NULL);
 
        return offset;
 }
@@ -3773,16 +2683,16 @@ static const value_string RemoteMCResponse_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RemoteMCResponse_choice[] = {
-       {  0, "accept", EXTENSION_ROOT, 
+       {  0, "accept", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "reject", EXTENSION_ROOT, 
+       {  1, "reject", ASN1_EXTENSION_ROOT,
                        dissect_h245_RemoteMCResponse_reject },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RemoteMCResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RemoteMCResponse, ett_h245_RemoteMCResponse, RemoteMCResponse_choice, "RemoteMCResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RemoteMCResponse, ett_h245_RemoteMCResponse, RemoteMCResponse_choice, "RemoteMCResponse", NULL);
 
        return offset;
 }
@@ -3796,16 +2706,16 @@ static const value_string MultilinkResponse_addConnection_responseCode_rejected_
        {  0, NULL }
 };
 static per_choice_t MultilinkResponse_addConnection_responseCode_rejected_choice[] = {
-       {  0, "connectionNotAvailable", EXTENSION_ROOT, 
+       {  0, "connectionNotAvailable", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "userRejected", EXTENSION_ROOT, 
+       {  1, "userRejected", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultilinkResponse_addConnection_responseCode_rejected(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkResponse_addConnection_responseCode_rejected, ett_h245_MultilinkResponse_addConnection_responseCode_rejected, MultilinkResponse_addConnection_responseCode_rejected_choice, "rejected");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkResponse_addConnection_responseCode_rejected, ett_h245_MultilinkResponse_addConnection_responseCode_rejected, MultilinkResponse_addConnection_responseCode_rejected_choice, "rejected", NULL);
 
        return offset;
 }
@@ -3818,16 +2728,16 @@ static const value_string MultilinkResponse_addConnection_responseCode_vals[] =
        {  0, NULL }
 };
 static per_choice_t MultilinkResponse_addConnection_responseCode_choice[] = {
-       {  0, "accepted", EXTENSION_ROOT, 
+       {  0, "accepted", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "rejected", EXTENSION_ROOT, 
+       {  1, "rejected", ASN1_EXTENSION_ROOT,
                        dissect_h245_MultilinkResponse_addConnection_responseCode_rejected },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultilinkResponse_addConnection_responseCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkResponse_addConnection_responseCode, ett_h245_MultilinkResponse_addConnection_responseCode, MultilinkResponse_addConnection_responseCode_choice, "responseCode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkResponse_addConnection_responseCode, ett_h245_MultilinkResponse_addConnection_responseCode, MultilinkResponse_addConnection_responseCode_choice, "responseCode", NULL);
 
        return offset;
 }
@@ -3840,16 +2750,16 @@ static const value_string LogicalChannelRateRejectReason_vals[] = {
        {  0, NULL }
 };
 static per_choice_t LogicalChannelRateRejectReason_choice[] = {
-       {  0, "undefinedReason", EXTENSION_ROOT, 
+       {  0, "undefinedReason", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "insufficientResources", EXTENSION_ROOT, 
+       {  1, "insufficientResources", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_LogicalChannelRateRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_LogicalChannelRateRejectReason, ett_h245_LogicalChannelRateRejectReason, LogicalChannelRateRejectReason_choice, "LogicalChannelRateRejectReason");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_LogicalChannelRateRejectReason, ett_h245_LogicalChannelRateRejectReason, LogicalChannelRateRejectReason_choice, "LogicalChannelRateRejectReason", NULL);
 
        return offset;
 }
@@ -3866,22 +2776,22 @@ static const value_string EndSessionCommand_gstnOptions_vals[] = {
        {  0, NULL }
 };
 static per_choice_t EndSessionCommand_gstnOptions_choice[] = {
-       {  0, "telephonyMode", EXTENSION_ROOT, 
+       {  0, "telephonyMode", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "v8bis", EXTENSION_ROOT, 
+       {  1, "v8bis", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "v34DSVD", EXTENSION_ROOT, 
+       {  2, "v34DSVD", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "v34DuplexFax", EXTENSION_ROOT, 
+       {  3, "v34DuplexFax", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "v34H324", EXTENSION_ROOT, 
+       {  4, "v34H324", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_EndSessionCommand_gstnOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EndSessionCommand_gstnOptions, ett_h245_EndSessionCommand_gstnOptions, EndSessionCommand_gstnOptions_choice, "gstnOptions");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EndSessionCommand_gstnOptions, ett_h245_EndSessionCommand_gstnOptions, EndSessionCommand_gstnOptions_choice, "gstnOptions", NULL);
 
        return offset;
 }
@@ -3896,18 +2806,18 @@ static const value_string EndSessionCommand_isdnOptions_vals[] = {
        {  0, NULL }
 };
 static per_choice_t EndSessionCommand_isdnOptions_choice[] = {
-       {  0, "telephonyMode", EXTENSION_ROOT, 
+       {  0, "telephonyMode", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "v140", EXTENSION_ROOT, 
+       {  1, "v140", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "terminalOnHold", EXTENSION_ROOT, 
+       {  2, "terminalOnHold", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_EndSessionCommand_isdnOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EndSessionCommand_isdnOptions, ett_h245_EndSessionCommand_isdnOptions, EndSessionCommand_isdnOptions_choice, "isdnOptions");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EndSessionCommand_isdnOptions, ett_h245_EndSessionCommand_isdnOptions, EndSessionCommand_isdnOptions_choice, "isdnOptions", NULL);
 
        return offset;
 }
@@ -3923,20 +2833,20 @@ static const value_string MiscellaneousCommand_type_progressiveRefinementStart_r
        {  0, NULL }
 };
 static per_choice_t MiscellaneousCommand_type_progressiveRefinementStart_repeatCount_choice[] = {
-       {  0, "doOneProgression", EXTENSION_ROOT, 
+       {  0, "doOneProgression", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "doContinousProgressions", EXTENSION_ROOT, 
+       {  1, "doContinousProgressions", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "doOneIndependentProgression", EXTENSION_ROOT, 
+       {  2, "doOneIndependentProgression", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "doContinousIndependentProgressions", EXTENSION_ROOT, 
+       {  3, "doContinousIndependentProgressions", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount, ett_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount, MiscellaneousCommand_type_progressiveRefinementStart_repeatCount_choice, "repeatCount");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount, ett_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount, MiscellaneousCommand_type_progressiveRefinementStart_repeatCount_choice, "repeatCount", NULL);
 
        return offset;
 }
@@ -3944,7 +2854,7 @@ dissect_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(tv
 
 
 static per_sequence_t MiscellaneousCommand_type_progressiveRefinementStart_sequence[] = {
-       { "repeatCount", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "repeatCount", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount },
        { NULL, 0, 0, NULL }
 };
@@ -3967,20 +2877,20 @@ static const value_string H223MultiplexReconfiguration_h223ModeChange_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223MultiplexReconfiguration_h223ModeChange_choice[] = {
-       {  0, "toLevel0", EXTENSION_ROOT, 
+       {  0, "toLevel0", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "toLevel1", EXTENSION_ROOT, 
+       {  1, "toLevel1", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "toLevel2", EXTENSION_ROOT, 
+       {  2, "toLevel2", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "toLevel2WithOptionalHeader", EXTENSION_ROOT, 
+       {  3, "toLevel2WithOptionalHeader", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223MultiplexReconfiguration_h223ModeChange(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223MultiplexReconfiguration_h223ModeChange, ett_h245_H223MultiplexReconfiguration_h223ModeChange, H223MultiplexReconfiguration_h223ModeChange_choice, "h223ModeChange");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223MultiplexReconfiguration_h223ModeChange, ett_h245_H223MultiplexReconfiguration_h223ModeChange, H223MultiplexReconfiguration_h223ModeChange_choice, "h223ModeChange", NULL);
 
        return offset;
 }
@@ -3994,16 +2904,16 @@ static const value_string H223MultiplexReconfiguration_h223AnnexADoubleFlag_vals
        {  0, NULL }
 };
 static per_choice_t H223MultiplexReconfiguration_h223AnnexADoubleFlag_choice[] = {
-       {  0, "start", EXTENSION_ROOT, 
+       {  0, "start", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "stop", EXTENSION_ROOT, 
+       {  1, "stop", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223MultiplexReconfiguration_h223AnnexADoubleFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223MultiplexReconfiguration_h223AnnexADoubleFlag, ett_h245_H223MultiplexReconfiguration_h223AnnexADoubleFlag, H223MultiplexReconfiguration_h223AnnexADoubleFlag_choice, "h223AnnexADoubleFlag");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223MultiplexReconfiguration_h223AnnexADoubleFlag, ett_h245_H223MultiplexReconfiguration_h223AnnexADoubleFlag, H223MultiplexReconfiguration_h223AnnexADoubleFlag_choice, "h223AnnexADoubleFlag", NULL);
 
        return offset;
 }
@@ -4017,16 +2927,16 @@ static const value_string H223MultiplexReconfiguration_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223MultiplexReconfiguration_choice[] = {
-       {  0, "h233ModeChange", EXTENSION_ROOT, 
+       {  0, "h233ModeChange", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223MultiplexReconfiguration_h223ModeChange },
-       {  1, "h223AnnexADoubleFlag", EXTENSION_ROOT, 
+       {  1, "h223AnnexADoubleFlag", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223MultiplexReconfiguration_h223AnnexADoubleFlag },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223MultiplexReconfiguration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223MultiplexReconfiguration, ett_h245_H223MultiplexReconfiguration, H223MultiplexReconfiguration_choice, "H223MultiplexReconfiguration");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223MultiplexReconfiguration, ett_h245_H223MultiplexReconfiguration, H223MultiplexReconfiguration_choice, "H223MultiplexReconfiguration", NULL);
 
        return offset;
 }
@@ -4041,18 +2951,18 @@ static const value_string NewATMVCCommand_aal_aal1_clockRecovery_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCCommand_aal_aal1_clockRecovery_choice[] = {
-       {  0, "nullClockRecovery", EXTENSION_ROOT, 
+       {  0, "nullClockRecovery", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "srtsClockRecovery", EXTENSION_ROOT, 
+       {  1, "srtsClockRecovery", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "adaptiveClockRecovery", EXTENSION_ROOT, 
+       {  2, "adaptiveClockRecovery", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCCommand_aal_aal1_clockRecovery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_aal_aal1_clockRecovery, ett_h245_NewATMVCCommand_aal_aal1_clockRecovery, NewATMVCCommand_aal_aal1_clockRecovery_choice, "clockRecovery");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_aal_aal1_clockRecovery, ett_h245_NewATMVCCommand_aal_aal1_clockRecovery, NewATMVCCommand_aal_aal1_clockRecovery_choice, "clockRecovery", NULL);
 
        return offset;
 }
@@ -4069,20 +2979,20 @@ static const value_string NewATMVCCommand_aal_aal1_errorCorrection_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCCommand_aal_aal1_errorCorrection_choice[] = {
-       {  0, "nullErrorCorrection", EXTENSION_ROOT, 
+       {  0, "nullErrorCorrection", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "longInterleaver", EXTENSION_ROOT, 
+       {  1, "longInterleaver", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "shortInterleaver", EXTENSION_ROOT, 
+       {  2, "shortInterleaver", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "errorCorrectionOnly", EXTENSION_ROOT, 
+       {  3, "errorCorrectionOnly", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCCommand_aal_aal1_errorCorrection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_aal_aal1_errorCorrection, ett_h245_NewATMVCCommand_aal_aal1_errorCorrection, NewATMVCCommand_aal_aal1_errorCorrection_choice, "errorCorrection");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_aal_aal1_errorCorrection, ett_h245_NewATMVCCommand_aal_aal1_errorCorrection, NewATMVCCommand_aal_aal1_errorCorrection_choice, "errorCorrection", NULL);
 
        return offset;
 }
@@ -4097,18 +3007,18 @@ static const value_string NewATMVCCommand_multiplex_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCCommand_multiplex_choice[] = {
-       {  0, "noMultiplex", EXTENSION_ROOT, 
+       {  0, "noMultiplex", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "transportStream", EXTENSION_ROOT, 
+       {  1, "transportStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "programStream", EXTENSION_ROOT, 
+       {  2, "programStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCCommand_multiplex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_multiplex, ett_h245_NewATMVCCommand_multiplex, NewATMVCCommand_multiplex_choice, "multiplex");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_multiplex, ett_h245_NewATMVCCommand_multiplex, NewATMVCCommand_multiplex_choice, "multiplex", NULL);
 
        return offset;
 }
@@ -4123,18 +3033,18 @@ static const value_string NewATMVCCommand_reverseParameters_multiplex_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCCommand_reverseParameters_multiplex_choice[] = {
-       {  0, "noMultiplex", EXTENSION_ROOT, 
+       {  0, "noMultiplex", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "transportStream", EXTENSION_ROOT, 
+       {  1, "transportStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "programStream", EXTENSION_ROOT, 
+       {  2, "programStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCCommand_reverseParameters_multiplex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_reverseParameters_multiplex, ett_h245_NewATMVCCommand_reverseParameters_multiplex, NewATMVCCommand_reverseParameters_multiplex_choice, "multiplex");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_reverseParameters_multiplex, ett_h245_NewATMVCCommand_reverseParameters_multiplex, NewATMVCCommand_reverseParameters_multiplex_choice, "multiplex", NULL);
 
        return offset;
 }
@@ -4147,16 +3057,16 @@ static const value_string MobileMultilinkReconfigurationCommand_status_vals[] =
        {  0, NULL }
 };
 static per_choice_t MobileMultilinkReconfigurationCommand_status_choice[] = {
-       {  0, "synchronized", EXTENSION_ROOT, 
+       {  0, "synchronized", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "reconfiguration", EXTENSION_ROOT, 
+       {  1, "reconfiguration", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MobileMultilinkReconfigurationCommand_status(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MobileMultilinkReconfigurationCommand_status, ett_h245_MobileMultilinkReconfigurationCommand_status, MobileMultilinkReconfigurationCommand_status_choice, "status");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MobileMultilinkReconfigurationCommand_status, ett_h245_MobileMultilinkReconfigurationCommand_status, MobileMultilinkReconfigurationCommand_status_choice, "status", NULL);
 
        return offset;
 }
@@ -4171,18 +3081,18 @@ static const value_string FunctionNotSupported_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FunctionNotSupported_cause_choice[] = {
-       {  0, "syntaxError", EXTENSION_ROOT, 
+       {  0, "syntaxError", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "semanticError", EXTENSION_ROOT, 
+       {  1, "semanticError", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "unknownFunction", EXTENSION_ROOT, 
+       {  2, "unknownFunction", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FunctionNotSupported_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FunctionNotSupported_cause, ett_h245_FunctionNotSupported_cause, FunctionNotSupported_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FunctionNotSupported_cause, ett_h245_FunctionNotSupported_cause, FunctionNotSupported_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -4197,18 +3107,18 @@ static const value_string NewATMVCIndication_aal_aal1_clockRecovery_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCIndication_aal_aal1_clockRecovery_choice[] = {
-       {  0, "nullClockRecovery", EXTENSION_ROOT, 
+       {  0, "nullClockRecovery", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "srtsClockRecovery", EXTENSION_ROOT, 
+       {  1, "srtsClockRecovery", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "adaptiveClockRecovery", EXTENSION_ROOT, 
+       {  2, "adaptiveClockRecovery", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCIndication_aal_aal1_clockRecovery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_aal_aal1_clockRecovery, ett_h245_NewATMVCIndication_aal_aal1_clockRecovery, NewATMVCIndication_aal_aal1_clockRecovery_choice, "clockRecovery");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_aal_aal1_clockRecovery, ett_h245_NewATMVCIndication_aal_aal1_clockRecovery, NewATMVCIndication_aal_aal1_clockRecovery_choice, "clockRecovery", NULL);
 
        return offset;
 }
@@ -4223,20 +3133,20 @@ static const value_string NewATMVCIndication_aal_aal1_errorCorrection_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCIndication_aal_aal1_errorCorrection_choice[] = {
-       {  0, "nullErrorCorrection", EXTENSION_ROOT, 
+       {  0, "nullErrorCorrection", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "longInterleaver", EXTENSION_ROOT, 
+       {  1, "longInterleaver", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "shortInterleaver", EXTENSION_ROOT, 
+       {  2, "shortInterleaver", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "errorCorrectionOnly", EXTENSION_ROOT, 
+       {  3, "errorCorrectionOnly", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCIndication_aal_aal1_errorCorrection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_aal_aal1_errorCorrection, ett_h245_NewATMVCIndication_aal_aal1_errorCorrection, NewATMVCIndication_aal_aal1_errorCorrection_choice, "errorCorrection");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_aal_aal1_errorCorrection, ett_h245_NewATMVCIndication_aal_aal1_errorCorrection, NewATMVCIndication_aal_aal1_errorCorrection_choice, "errorCorrection", NULL);
 
        return offset;
 }
@@ -4251,18 +3161,18 @@ static const value_string NewATMVCIndication_multiplex_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCIndication_multiplex_choice[] = {
-       {  0, "noMultiplex", EXTENSION_ROOT, 
+       {  0, "noMultiplex", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "transportStream", EXTENSION_ROOT, 
+       {  1, "transportStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "programStream", EXTENSION_ROOT, 
+       {  2, "programStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCIndication_multiplex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_multiplex, ett_h245_NewATMVCIndication_multiplex, NewATMVCIndication_multiplex_choice, "multiplex");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_multiplex, ett_h245_NewATMVCIndication_multiplex, NewATMVCIndication_multiplex_choice, "multiplex", NULL);
 
        return offset;
 }
@@ -4277,18 +3187,18 @@ static const value_string NewATMVCIndication_reverseParameters_multiplex_vals[]
        {  0, NULL }
 };
 static per_choice_t NewATMVCIndication_reverseParameters_multiplex_choice[] = {
-       {  0, "noMultiplex", EXTENSION_ROOT, 
+       {  0, "noMultiplex", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "transportStream", EXTENSION_ROOT, 
+       {  1, "transportStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "programStream", EXTENSION_ROOT, 
+       {  2, "programStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCIndication_reverseParameters_multiplex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_reverseParameters_multiplex, ett_h245_NewATMVCIndication_reverseParameters_multiplex, NewATMVCIndication_reverseParameters_multiplex_choice, "multiplex");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_reverseParameters_multiplex, ett_h245_NewATMVCIndication_reverseParameters_multiplex, NewATMVCIndication_reverseParameters_multiplex_choice, "multiplex", NULL);
 
        return offset;
 }
@@ -4298,9 +3208,18 @@ dissect_h245_NewATMVCIndication_reverseParameters_multiplex(tvbuff_t *tvb, int o
 static int
 dissect_h245_LogicalChannelNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-               tree, hf_h245_LogicalChannelNumber, 1, 65535, 
-               NULL, NULL);
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_LogicalChannelNumber, 1, 65535,
+               NULL, NULL, FALSE);
+       return offset;
+}
+
+static int
+dissect_h245_logicalChannelNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_LogicalChannelNumber, 0, 65535,
+               NULL, NULL, FALSE);
        return offset;
 }
 
@@ -4308,9 +3227,9 @@ dissect_h245_LogicalChannelNumber(tvbuff_t *tvb, int offset, packet_info *pinfo,
 static int
 dissect_h245_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-               tree, hf_h245_SequenceNumber, 0, 255, 
-               NULL, NULL);
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_SequenceNumber, 0, 255,
+               NULL, NULL, FALSE);
        return offset;
 }
 
@@ -4324,18 +3243,18 @@ static const value_string MaintenanceLoopRequest_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MaintenanceLoopRequest_type_choice[] = {
-       {  0, "systemLoop", EXTENSION_ROOT, 
+       {  0, "systemLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "mediaLoop", EXTENSION_ROOT, 
+       {  1, "mediaLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelNumber },
-       {  2, "logicalChannelLoop", EXTENSION_ROOT, 
+       {  2, "logicalChannelLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelNumber },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MaintenanceLoopRequest_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopRequest_type, ett_h245_MaintenanceLoopRequest_type, MaintenanceLoopRequest_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopRequest_type, ett_h245_MaintenanceLoopRequest_type, MaintenanceLoopRequest_type_choice, "type", NULL);
 
        return offset;
 }
@@ -4350,18 +3269,18 @@ static const value_string MaintenanceLoopAck_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MaintenanceLoopAck_type_choice[] = {
-       {  0, "systemLoop", EXTENSION_ROOT, 
+       {  0, "systemLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "mediaLoop", EXTENSION_ROOT, 
+       {  1, "mediaLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelNumber },
-       {  2, "logicalChannelLoop", EXTENSION_ROOT, 
+       {  2, "logicalChannelLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelNumber },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MaintenanceLoopAck_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopAck_type, ett_h245_MaintenanceLoopAck_type, MaintenanceLoopAck_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopAck_type, ett_h245_MaintenanceLoopAck_type, MaintenanceLoopAck_type_choice, "type", NULL);
 
        return offset;
 }
@@ -4376,18 +3295,18 @@ static const value_string MaintenanceLoopReject_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MaintenanceLoopReject_type_choice[] = {
-       {  0, "systemLoop", EXTENSION_ROOT, 
+       {  0, "systemLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "mediaLoop", EXTENSION_ROOT, 
+       {  1, "mediaLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelNumber },
-       {  2, "logicalChannelLoop", EXTENSION_ROOT, 
+       {  2, "logicalChannelLoop", ASN1_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelNumber },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MaintenanceLoopReject_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopReject_type, ett_h245_MaintenanceLoopReject_type, MaintenanceLoopReject_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MaintenanceLoopReject_type, ett_h245_MaintenanceLoopReject_type, MaintenanceLoopReject_type_choice, "type", NULL);
 
        return offset;
 }
@@ -4396,9 +3315,9 @@ dissect_h245_MaintenanceLoopReject_type(tvbuff_t *tvb, int offset, packet_info *
 
 
 static per_sequence_t OpenLogicalChannelReject_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_OpenLogicalChannelReject_cause },
        { NULL, 0, 0, NULL }
 };
@@ -4414,11 +3333,11 @@ dissect_h245_OpenLogicalChannelReject(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t CloseLogicalChannel_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "source", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "source", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CloseLogicalChannel_source },
-       { "reason", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "reason", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CloseLogicalChannel_reason },
        { NULL, 0, 0, NULL }
 };
@@ -4434,7 +3353,7 @@ dissect_h245_CloseLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t CloseLogicalChannelAck_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4450,7 +3369,7 @@ dissect_h245_CloseLogicalChannelAck(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t RequestChannelCloseAck_sequence[] = {
-       { "forwardLogiclChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogiclChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4466,9 +3385,9 @@ dissect_h245_RequestChannelCloseAck(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t RequestChannelCloseReject_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RequestChannelCloseReject_cause },
        { NULL, 0, 0, NULL }
 };
@@ -4484,7 +3403,7 @@ dissect_h245_RequestChannelCloseReject(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t RequestChannelCloseRelease_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4501,7 +3420,7 @@ dissect_h245_RequestChannelCloseRelease(tvbuff_t *tvb, int offset, packet_info *
 
 
 static per_sequence_t MultiplexedStreamModeParameters_sequence[] = {
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4517,7 +3436,7 @@ dissect_h245_MultiplexedStreamModeParameters(tvbuff_t *tvb, int offset, packet_i
 
 
 static per_sequence_t MaintenanceLoopRequest_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MaintenanceLoopRequest_type },
        { NULL, 0, 0, NULL }
 };
@@ -4533,7 +3452,7 @@ dissect_h245_MaintenanceLoopRequest(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t MaintenanceLoopAck_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MaintenanceLoopAck_type },
        { NULL, 0, 0, NULL }
 };
@@ -4548,9 +3467,9 @@ dissect_h245_MaintenanceLoopAck(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t MaintenanceLoopReject_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_MaintenanceLoopReject_type },
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_MaintenanceLoopReject_cause },
        { NULL, 0, 0, NULL }
 };
@@ -4565,7 +3484,7 @@ dissect_h245_MaintenanceLoopReject(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t UserInputIndication_signalUpdate_rtp_sequence[] = {
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4580,7 +3499,7 @@ dissect_h245_UserInputIndication_signalUpdate_rtp(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t OpenLogicalChannelConfirm_sequence[] = {
-       { "forwardLogicalChannelNumber",        EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber",        ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4595,7 +3514,7 @@ dissect_h245_OpenLogicalChannelConfirm(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t TerminalCapabilitySetAck_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4610,9 +3529,9 @@ dissect_h245_TerminalCapabilitySetAck(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t RequestModeReject_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RequestModeReject_cause },
        { NULL, 0, 0, NULL }
 };
@@ -4628,7 +3547,7 @@ dissect_h245_RequestModeReject(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t RoundTripDelayRequest_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4644,7 +3563,7 @@ dissect_h245_RoundTripDelayRequest(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t RoundTripDelayResponse_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
        { NULL, 0, 0, NULL }
 };
@@ -4659,9 +3578,9 @@ dissect_h245_RoundTripDelayResponse(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t MultilinkResponse_addConnection_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "responseCode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "responseCode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MultilinkResponse_addConnection_responseCode },
        { NULL, 0, 0, NULL }
 };
@@ -4821,23 +3740,23 @@ dissect_h245_partiallyFilledCells(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t VCCapability_aal1_sequence[] = {
-       { "nullClockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "nullClockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_nullClockRecovery },
-       { "srtsClockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "srtsClockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_srtsClockRecovery },
-       { "adaptiveClockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "adaptiveClockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_adaptiveClockRecovery },
-       { "nullErrorCorrection", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "nullErrorCorrection", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_nullErrorCorrection },
-       { "longInterleaver", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "longInterleaver", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_longInterleaver },
-       { "shortInterleaver", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "shortInterleaver", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_shortInterleaver },
-       { "errorCorrectionOnly", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "errorCorrectionOnly", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_errorCorrectionOnly },
-       { "structuredDataTransfer", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "structuredDataTransfer", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_structuredDataTransfer },
-       { "partiallyFilledCells", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "partiallyFilledCells", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_partiallyFilledCells },
        { NULL, 0, 0, NULL }
 };
@@ -4854,13 +3773,13 @@ dissect_h245_VCCapability_aal1(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t NewATMVCCommand_aal_aal1_sequence[] = {
-       { "clockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "clockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCCommand_aal_aal1_clockRecovery },
-       { "errorCorrection", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "errorCorrection", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCCommand_aal_aal1_errorCorrection },
-       { "structuredDataTransfer", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "structuredDataTransfer", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_structuredDataTransfer },
-       { "partiallyFilledCells", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "partiallyFilledCells", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_partiallyFilledCells },
        { NULL, 0, 0, NULL }
 };
@@ -4875,13 +3794,13 @@ dissect_h245_NewATMVCCommand_aal_aal1(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t NewATMVCIndication_aal_aal1_sequence[] = {
-       { "clockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "clockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCIndication_aal_aal1_clockRecovery },
-       { "errorCorrection", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "errorCorrection", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCIndication_aal_aal1_errorCorrection },
-       { "structuredDataTransfer", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "structuredDataTransfer", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_structuredDataTransfer },
-       { "partiallyFilledCells", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "partiallyFilledCells", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_partiallyFilledCells },
        { NULL, 0, 0, NULL }
 };
@@ -5184,15 +4103,15 @@ dissect_h245_h223AnnexBwithHeader(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H223Capability_mobileOperationTransmitCapability_sequence[] = {
-       { "modeChangeCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "modeChangeCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_modeChangeCapability },
-       { "h223AnnexA", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h223AnnexA", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h223AnnexA },
-       { "h223AnnexADoubleFlag", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h223AnnexADoubleFlag", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h223AnnexADoubleFlag_bool },
-       { "h223AnnexB", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "h223AnnexB", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h223AnnexB },
-       { "h223AnnexBwithHeader", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h223AnnexBwithHeader", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h223AnnexBwithHeader },
        { NULL, 0, 0, NULL }
 };
@@ -5366,9 +4285,9 @@ dissect_h245_alpduInterleaving(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t H223AL2MParameters_sequence[] = {
-       { "headerFEC", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "headerFEC", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL2MParameters_headerFEC },
-       { "alpduInterleaving", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "alpduInterleaving", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alpduInterleaving },
        { NULL, 0, 0, NULL }
 };
@@ -5595,7 +4514,7 @@ dissect_h245_audioHeader(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 
 
 static per_sequence_t V75Capability_sequence[] = {
-       { "audioHeader", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioHeader", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioHeader },
        { NULL, 0, 0, NULL }
 };
@@ -5643,9 +4562,9 @@ dissect_h245_decentralizedConferenceMC(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t H2250Capability_mcCapability_sequence[] = {
-       { "centralizedConferenceMC", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "centralizedConferenceMC", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_centralizedConferenceMC },
-       { "decentralizedConferenceMC", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "decentralizedConferenceMC", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_decentralizedConferenceMC },
        { NULL, 0, 0, NULL }
 };
@@ -5821,7 +4740,7 @@ dissect_h245_variableDelta(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t MediaTransportType_AtmAAL5Compressed_sequence[] = {
-       { "variable-delta", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "variable-delta", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_variableDelta },
        { NULL, 0, 0, NULL }
 };
@@ -5845,22 +4764,22 @@ static const value_string MediaTransportType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MediaTransportType_choice[] = {
-       {  0, "ip-UDP", EXTENSION_ROOT, 
+       {  0, "ip-UDP", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "ip-TCP", EXTENSION_ROOT, 
+       {  1, "ip-TCP", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "atm-AAL5-UNIDIR", EXTENSION_ROOT, 
+       {  2, "atm-AAL5-UNIDIR", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "atm-AAL5-BIDIR", EXTENSION_ROOT, 
+       {  3, "atm-AAL5-BIDIR", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "atm-AAL5-compressed", NOT_EXTENSION_ROOT, 
+       {  4, "atm-AAL5-compressed", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_MediaTransportType_AtmAAL5Compressed },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MediaTransportType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MediaTransportType, ett_h245_MediaTransportType, MediaTransportType_choice, "MediaTransportType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MediaTransportType, ett_h245_MediaTransportType, MediaTransportType_choice, "MediaTransportType", NULL);
 
        return offset;
 }
@@ -5868,7 +4787,7 @@ dissect_h245_MediaTransportType(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t MediaChannelCapability_sequence[] = {
-       { "mediaTransport", EXTENSION_ROOT, OPTIONAL, 
+       { "mediaTransport", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_MediaTransportType },
        { NULL, 0, 0, NULL }
 };
@@ -6902,21 +5821,21 @@ dissect_h245_spareReferencePictures(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t H263Version3Options_sequence[] = {
-       { "dataPartitionedSlices", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dataPartitionedSlices", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataPartitionedSlices },
-       { "fixedPointIDCTO", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "fixedPointIDCTO", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fixedPointIDCT0 },
-       { "interlacedFields", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "interlacedFields", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_interlacedFields},
-       { "currentPictureHeaderRepetition", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "currentPictureHeaderRepetition", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_currentPictureHeaderRepetition },
-       { "previousPictureHeaderRepetition", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "previousPictureHeaderRepetition", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_previousPictureHeaderRepetition },
-       { "nextPictureHeaderRepetition", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "nextPictureHeaderRepetition", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_nextPictureHeaderRepetition },
-       { "pictureNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "pictureNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_pictureNumber_bool },
-       { "spareReferencePictures", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "spareReferencePictures", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_spareReferencePictures },
        { NULL, 0, 0, NULL }
 };
@@ -6933,51 +5852,51 @@ dissect_h245_H263Version3Options(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H263ModeComboFlags_sequence[] = {
-       { "unrestrictedVector", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "unrestrictedVector", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_unrestrictedVector },
-       { "arithmeticCoding", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "arithmeticCoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_arithmeticCoding },
-       { "advancedPrediction", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "advancedPrediction", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_advancedPrediction },
-       { "pbFrames", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "pbFrames", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_pbFrames },
-       { "advancedIntraCodingMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "advancedIntraCodingMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_advancedIntraCodingMode },
-       { "deblockingFilterMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "deblockingFilterMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_deblockingFilterMode },
-       { "unlimitedMotionVectors", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "unlimitedMotionVectors", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_unlimitedMotionVectors },
-       { "slicesInOrder-NonRect", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "slicesInOrder-NonRect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesInOrderNonRect },
-       { "slicesInOrder-Rect", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "slicesInOrder-Rect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesInOrderRect },
-       { "slicesNoOrder-NonRect", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "slicesNoOrder-NonRect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesNoOrderNonRect },
-       { "slicesNoOrder-Rect", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "slicesNoOrder-Rect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesNoOrderRect },
-       { "improvedPBFramesMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "improvedPBFramesMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_improvedPBFramesMode },
-       { "referencePicSelect", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "referencePicSelect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_referencePicSelect },
-       { "dynamicPictureResizingByFour", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dynamicPictureResizingByFour", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicPictureResizingByFour },
-       { "dynamicPictureResizingSixteenthPel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dynamicPictureResizingSixteenthPel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicPictureResizingSixteenthPel },
-       { "dynamicWarpingHalfPel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dynamicWarpingHalfPel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicWarpingHalfPel },
-       { "dynamicWarpingSixteenthPel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dynamicWarpingSixteenthPel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicWarpingSixteenthPel },
-       { "reducedResolutionUpdate", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "reducedResolutionUpdate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_reducedResolutionUpdate },
-       { "independentSegmentDecoding", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "independentSegmentDecoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_independentSegmentDecoding },
-       { "alternateInterVLCMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "alternateInterVLCMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alternateInterVLCMode },
-       { "modifiedQuantizationMode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "modifiedQuantizationMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_modifiedQuantizationMode },
-       { "enhancedReferencePicSelect", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "enhancedReferencePicSelect", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_enhancedReferencePicSelect_bool },
-       { "h263Version3Options", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h263Version3Options", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H263Version3Options },
        { NULL, 0, 0, NULL }
 };
@@ -7795,43 +6714,43 @@ dissect_h245_digPhotoHighProg(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t T84Profile_t84Restricted_sequence[] = {
-       { "qcif", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "qcif", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_qcif_bool },
-       { "cif", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "cif", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_cif_bool },
-       { "ccir601Seq", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "ccir601Seq", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ccir601Seq },
-       { "ccir601Prog", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "ccir601Prog", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ccir601Prog },
-       { "hdtvSeq", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "hdtvSeq", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_hdtvSeq },
-       { "hdtvProg", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "hdtvProg", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_hdtvProg },
-       { "g3FacsMH200x100", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "g3FacsMH200x100", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_g3FacsMH200x100 },
-       { "g3FacsMH200x200", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "g3FacsMH200x200", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_g3FacsMH200x200 },
-       { "g4FacsMMR200x100", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "g4FacsMMR200x100", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_g4FacsMMR200x100 },
-       { "g4FacsMMR200x200", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "g4FacsMMR200x200", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_g4FacsMMR200x200 },
-       { "jbig200x200Seq", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "jbig200x200Seq", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_jbig200x200Seq },
-       { "jbig200x200Prog", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "jbig200x200Prog", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_jbig200x200Prog },
-       { "jbig300x300Seq", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "jbig300x300Seq", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_jbig300x300Seq },
-       { "jbig300x300Prog", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "jbig300x300Prog", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_jbig300x300Prog },
-       { "digPhotoLow", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "digPhotoLow", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_digPhotoLow },
-       { "digPhotoMedSeq", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "digPhotoMedSeq", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_digPhotoMedSeq },
-       { "digPhotoMedProg", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "digPhotoMedProg", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_digPhotoMedProg },
-       { "digPhotoHighSeq", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "digPhotoHighSeq", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_digPhotoHighSeq },
-       { "digPhotoHighProg", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "digPhotoHighProg", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_digPhotoHighProg },
        { NULL, 0, 0, NULL }
 };
@@ -7852,16 +6771,16 @@ static const value_string T84Profile_vals[] = {
        {  0, NULL }
 };
 static per_choice_t T84Profile_choice[] = {
-       {  0, "t84Unrestricted", NO_EXTENSIONS, 
+       {  0, "t84Unrestricted", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "t84Restricted", NO_EXTENSIONS, 
+       {  1, "t84Restricted", ASN1_NO_EXTENSIONS,
                        dissect_h245_T84Profile_t84Restricted },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_T84Profile(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_T84Profile, ett_h245_T84Profile, T84Profile_choice, "T84Profile");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_T84Profile, ett_h245_T84Profile, T84Profile_choice, "T84Profile", NULL);
 
        return offset;
 }
@@ -7933,7 +6852,7 @@ dissect_h245_t38TCPBidirectionalMode(tvbuff_t *tvb, int offset, packet_info *pin
 
 
 static per_sequence_t T38FaxTcpOptions_sequence[] = {
-       { "t38TCPBidirectionalMode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "t38TCPBidirectionalMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_t38TCPBidirectionalMode },
        { NULL, 0, 0, NULL }
 };
@@ -8062,9 +6981,9 @@ dissect_h245_samePort_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t FECCapability_rfc2733_separateStream_sequence[] = {
-       { "separatePort", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "separatePort", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_separatePort },
-       { "samePort", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "samePort", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_samePort_bool },
        { NULL, 0, 0, NULL }
 };
@@ -8079,9 +6998,9 @@ dissect_h245_FECCapability_rfc2733_separateStream(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t FECCapability_rfc2733_sequence[] = {
-       { "redundancyEncoding", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "redundancyEncoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_redundancyEncoding_bool },
-       { "separateStream", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "separateStream", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FECCapability_rfc2733_separateStream },
        { NULL, 0, 0, NULL }
 };
@@ -8101,14 +7020,14 @@ static const value_string FECCapability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FECCapability_choice[] = {
-       {  0, "rfc2733", EXTENSION_ROOT, 
+       {  0, "rfc2733", ASN1_EXTENSION_ROOT,
                dissect_h245_FECCapability_rfc2733 },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FECCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECCapability, ett_h245_FECCapability, FECCapability_choice, "FECCapability");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECCapability, ett_h245_FECCapability, FECCapability_choice, "FECCapability", NULL);
 
        return offset;
 }
@@ -8148,7 +7067,7 @@ dissect_h245_audioHeaderPresent(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t V75Parameters_sequence[] = {
-       { "audioHeaderPresent", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioHeaderPresent", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioHeaderPresent },
        { NULL, 0, 0, NULL }
 };
@@ -8345,11 +7264,11 @@ dissect_h245_certProtectedKey(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t KeyProtectionMethod_sequence[] = {
-       { "secureChannel", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "secureChannel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_secureChannel },
-       { "sharedSecret", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sharedSecret", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sharedSecret },
-       { "certProtectedKey", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "certProtectedKey", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_certProtectedKey },
        { NULL, 0, 0, NULL }
 };
@@ -8364,7 +7283,7 @@ dissect_h245_KeyProtectionMethod(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t EncryptionUpdateRequest_sequence[] = {
-       { "keyProtectionMethod", EXTENSION_ROOT, OPTIONAL,
+       { "keyProtectionMethod", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_KeyProtectionMethod },
        { NULL, 0, 0, NULL }
 };
@@ -8414,10 +7333,10 @@ dissect_h245_bitRateLockedToNetworkClock(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_IS11172_BitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-               tree, hf_h245_IS11172_BitRate, 1, 448, 
-               NULL, NULL);
-       
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_IS11172_BitRate, 1, 448,
+               NULL, NULL, FALSE);
+
        return offset;
 }
 
@@ -8427,33 +7346,33 @@ dissect_h245_IS11172_BitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_IS13818_BitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-               tree, hf_h245_IS13818_BitRate, 1, 1130, 
-               NULL, NULL);
-       
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_IS13818_BitRate, 1, 1130,
+               NULL, NULL, FALSE);
+
        return offset;
 }
 
 
 
 static per_sequence_t IS11172AudioCapability_sequence[] = {
-       { "audioLayer1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioLayer1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioLayer1 },
-       { "audioLayer2", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioLayer2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioLayer2 },
-       { "audioLayer3", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioLayer3", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioLayer3 },
-       { "audioSampling32k", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioSampling32k", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling32k },
-       { "audioSampling44k1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioSampling44k1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling44k1 },
-       { "audioSampling48k", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioSampling48k", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling48k },
-       { "singleChannel", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "singleChannel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_singleChannel },
-       { "twoChannels", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "twoChannels", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_twoChannels },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_IS11172_BitRate },
        { NULL, 0, 0, NULL }
 };
@@ -8468,13 +7387,13 @@ dissect_h245_IS11172AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t IS11172AudioMode_sequence[] = {
-       { "audioLayer", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioLayer", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_IS11172AudioMode_audioLayer },
-       { "audioSampling", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioSampling", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_IS11172AudioMode_audioSampling },
-       { "multichannelType", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multichannelType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_IS11172AudioMode_multichannelType },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_IS11172_BitRate },
        { NULL, 0, 0, NULL }
 };
@@ -8489,17 +7408,17 @@ dissect_h245_IS11172AudioMode(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t IS13818AudioMode_sequence[] = {
-       { "audioLayer", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioLayer", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_IS13818AudioMode_audioLayer },
-       { "audioSampling", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioSampling", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_IS13818AudioMode_audioSampling },
-       { "multiChannelType", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multiChannelType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_IS13818AudioMode_multiChannelType },
-       { "lowFrequencyEnhancement", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "lowFrequencyEnhancement", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_lowFrequencyEnhancement },
-       { "multilingual", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multilingual", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_multilingual },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_IS13818_BitRate },
        { NULL, 0, 0, NULL }
 };
@@ -8515,47 +7434,47 @@ dissect_h245_IS13818AudioMode(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t IS13818AudioCapability_sequence[] = {
-       { "audioLayer1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioLayer1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioLayer1 },
-       { "audioLayer2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioLayer2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioLayer2 },
-       { "audioLayer3", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioLayer3", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioLayer3 },
-       { "audioSampling16k", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioSampling16k", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling16k },
-       { "audioSampling22k05", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioSampling22k05", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling22k05 },
-       { "audioSampling24k", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioSampling24k", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling24k },
-       { "audioSampling32k", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioSampling32k", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling32k },
-       { "audioSampling44k1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioSampling44k1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling44k1 },
-       { "audioSampling48k", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioSampling48k", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioSampling48k },
-       { "singleChannel", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "singleChannel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_singleChannel },
-       { "twoChannels", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "twoChannels", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_twoChannels },
-       { "threeChannels2-1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "threeChannels2-1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_threeChannels21 },
-       { "threeChannels3-0", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "threeChannels3-0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_threeChannels30 },
-       { "fourChannels2-0-2-0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "fourChannels2-0-2-0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fourChannels2020 },
-       { "fourChannels2-2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "fourChannels2-2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fourChannels22 },
-       { "fourChannels3-1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "fourChannels3-1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fourChannels31 },
-       { "fiveChannels3-0-2-0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "fiveChannels3-0-2-0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fiveChannels3020 },
-       { "fiveChannels3-2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "fiveChannels3-2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fiveChannels32 },
-       { "lowFrequencyEnhancement", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "lowFrequencyEnhancement", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_lowFrequencyEnhancement },
-       { "multilingual", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multilingual", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_multilingual },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_IS13818_BitRate },
        { NULL, 0, 0, NULL }
 };
@@ -8573,10 +7492,10 @@ dissect_h245_IS13818AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinf
 static int
 dissect_h245_ATM_BitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-               tree, hf_h245_ATM_BitRate, 1, 65535, 
-               NULL, NULL);
-       
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_ATM_BitRate, 1, 65535,
+               NULL, NULL, FALSE);
+
        return offset;
 }
 
@@ -8584,13 +7503,13 @@ dissect_h245_ATM_BitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 
 
 static per_sequence_t NewATMVCIndication_reverseParameters_sequence[] = {
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ATM_BitRate },
-       { "bitRateLockedToPCRClock", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRateLockedToPCRClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToPCRClock },
-       { "bitRateLockedToNetworkClock", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRateLockedToNetworkClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToNetworkClock },
-       { "multiplex", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multiplex", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCIndication_reverseParameters_multiplex },
        { NULL, 0, 0, NULL }
 };
@@ -8605,13 +7524,13 @@ dissect_h245_NewATMVCIndication_reverseParameters(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t NewATMVCCommand_reverseParameters_sequence[] = {
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ATM_BitRate },
-       { "bitRateLockedToPCRClock", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRateLockedToPCRClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToPCRClock },
-       { "bitRateLockedToNetworkClock", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRateLockedToNetworkClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToNetworkClock },
-       { "multiplex", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multiplex", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCCommand_reverseParameters_multiplex },
        { NULL, 0, 0, NULL }
 };
@@ -8623,13 +7542,12 @@ dissect_h245_NewATMVCCommand_reverseParameters(tvbuff_t *tvb, int offset, packet
        return offset;
 }
 
-
 static int
 dissect_h245_t35CountryCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_t35CountryCode, 0, 255,
-               NULL, NULL);
+               &t35CountryCode, NULL, FALSE);
 
        return offset;
 }
@@ -8638,9 +7556,9 @@ dissect_h245_t35CountryCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_t35Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_t35Extension, 0, 255,
-               NULL, NULL);
+               &t35Extension, NULL, FALSE);
 
        return offset;
 }
@@ -8650,54 +7568,57 @@ dissect_h245_t35Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_manufacturerCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_manufacturerCode, 0, 65535,
-               NULL, NULL);
+               &manufacturerCode, NULL, FALSE);
 
        return offset;
 }
 
 
+/* dissect_h245_h221NonStandard is used for H.245 */
 
-
-static per_sequence_t NonStandardIdentifier_h221NonStandard_sequence[] = {
-       { "t35CountryCode", NO_EXTENSIONS, NOT_OPTIONAL,
+static per_sequence_t h221NonStandard_sequence[] = {
+       { "t35CountryCode", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_t35CountryCode },
-       { "t35Extension", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "t35Extension", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_t35Extension },
-       { "manufacturerCode", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "manufacturerCode", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_manufacturerCode },
        { NULL, 0, 0, NULL }
 };
-static int
-dissect_h245_NonStandardIdentifier_h221NonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+int
+dissect_h245_h221NonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h245_NonStandardIdentifier_h221NonStandard, ett_h245_NonStandardIdentifier_h221NonStandard, NonStandardIdentifier_h221NonStandard_sequence);
+       t35CountryCode = 0;
+       t35Extension = 0;
+       manufacturerCode = 0;
 
-       return offset;
-}
+       offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h245_h221NonStandard, ett_h245_h221NonStandard, h221NonStandard_sequence);
 
+       h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
 
+       proto_tree_add_uint(tree, hf_h245_h221Manufacturer, tvb, (offset-3)>>3,4,h221NonStandard);
+
+       return offset;
+}
 
 static int
 dissect_h245_terminalType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_terminalType, 0, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
 
-
-
-
 static int
 dissect_h245_statusDeterminationNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_statusDeterminationNumber, 0, 16777215,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8705,9 +7626,9 @@ dissect_h245_statusDeterminationNumber(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t MasterSlaveDetermination_sequence[] = {
-       { "terminalType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_terminalType },
-       { "statusDeterminationNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "statusDeterminationNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_statusDeterminationNumber },
        { NULL, 0, 0, NULL }
 };
@@ -8725,9 +7646,9 @@ dissect_h245_MasterSlaveDetermination(tvbuff_t *tvb, int offset, packet_info *pi
 static int
 dissect_h245_CapabilityTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_CapabilityTableEntryNumber, 1, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8740,16 +7661,16 @@ static const value_string TerminalCapabilitySetReject_cause_tableEntryCapacityEx
        {  0, NULL }
 };
 static per_choice_t TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded_choice[] = {
-       {  0, "highestEntryNumberProcessed", NO_EXTENSIONS,
+       {  0, "highestEntryNumberProcessed", ASN1_NO_EXTENSIONS,
                        dissect_h245_CapabilityTableEntryNumber },
-       {  1, "noneProcessed", NO_EXTENSIONS, 
+       {  1, "noneProcessed", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded, ett_h245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded, TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded_choice, "tableEntryCapacityExceeded");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded, ett_h245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded, TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded_choice, "tableEntryCapacityExceeded", NULL);
 
        return offset;
 }
@@ -8766,20 +7687,20 @@ static const value_string TerminalCapabilitySetReject_cause_vals[] = {
        {  0, NULL }
 };
 static per_choice_t TerminalCapabilitySetReject_cause_choice[] = {
-       {  0, "unspecified", EXTENSION_ROOT, 
+       {  0, "unspecified", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "undefinedTableEntryUsed", EXTENSION_ROOT, 
+       {  1, "undefinedTableEntryUsed", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "descriptorCapacityExceeded", EXTENSION_ROOT, 
+       {  2, "descriptorCapacityExceeded", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "tableEntryCapacityExceeded", EXTENSION_ROOT, 
+       {  3, "tableEntryCapacityExceeded", ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_TerminalCapabilitySetReject_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_TerminalCapabilitySetReject_cause, ett_h245_TerminalCapabilitySetReject_cause, TerminalCapabilitySetReject_cause_choice, "cause");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_TerminalCapabilitySetReject_cause, ett_h245_TerminalCapabilitySetReject_cause, TerminalCapabilitySetReject_cause_choice, "cause", NULL);
 
        return offset;
 }
@@ -8787,9 +7708,9 @@ dissect_h245_TerminalCapabilitySetReject_cause(tvbuff_t *tvb, int offset, packet
 
 
 static per_sequence_t TerminalCapabilitySetReject_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_SequenceNumber },
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_TerminalCapabilitySetReject_cause },
        { NULL, 0, 0, NULL }
 };
@@ -8808,9 +7729,9 @@ dissect_h245_TerminalCapabilitySetReject(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_CapabilityDescriptorNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_CapabilityDescriptorNumber, 0, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8821,9 +7742,9 @@ dissect_h245_CapabilityDescriptorNumber(tvbuff_t *tvb, int offset, packet_info *
 static int
 dissect_h245_h233IVResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_h233IVResponseTime, 0, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8832,7 +7753,7 @@ dissect_h245_h233IVResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t Capability_h233EncryptionReceiveCapability_sequence[] = {
-       { "h233IVResponseTime", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h233IVResponseTime", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_h233IVResponseTime },
        { NULL, 0, 0, NULL }
 };
@@ -8851,9 +7772,9 @@ dissect_h245_Capability_h233EncryptionReceiveCapability(tvbuff_t *tvb, int offse
 static int
 dissect_h245_maxPendingReplacementFor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxPendingReplacementFor, 0, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8864,9 +7785,9 @@ dissect_h245_maxPendingReplacementFor(tvbuff_t *tvb, int offset, packet_info *pi
 static int
 dissect_h245_numberOfVCs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_numberOfVCs, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8878,9 +7799,9 @@ dissect_h245_numberOfVCs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_forwardMaximumSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_forwardMaximumSDUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8891,9 +7812,9 @@ dissect_h245_forwardMaximumSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo
 static int
 dissect_h245_backwardMaximumSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_backwardMaximumSDUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -8903,9 +7824,9 @@ dissect_h245_backwardMaximumSDUSize(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t VCCapability_aal5_sequence[] = {
-       { "forwardMaximumSDUSize", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardMaximumSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_forwardMaximumSDUSize },
-       { "backwardMaximumSDUSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "backwardMaximumSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_backwardMaximumSDUSize },
        { NULL, 0, 0, NULL }
 };
@@ -8920,9 +7841,9 @@ dissect_h245_VCCapability_aal5(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t NewATMVCCommand_aal_aal5_sequence[] = {
-       { "forwardMaximumSDUSize", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardMaximumSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_forwardMaximumSDUSize},
-       { "backwardMaximumSDUSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "backwardMaximumSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_backwardMaximumSDUSize },
        { NULL, 0, 0, NULL }
 };
@@ -8944,16 +7865,16 @@ static const value_string NewATMVCCommand_aal_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCCommand_aal_choice[] = {
-       {  0, "aal1", EXTENSION_ROOT, 
+       {  0, "aal1", ASN1_EXTENSION_ROOT,
                dissect_h245_NewATMVCCommand_aal_aal1 },
-       {  1, "aal5", EXTENSION_ROOT, 
+       {  1, "aal5", ASN1_EXTENSION_ROOT,
                dissect_h245_NewATMVCCommand_aal_aal5 },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCCommand_aal(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_aal, ett_h245_NewATMVCCommand_aal, NewATMVCCommand_aal_choice, "aal");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCCommand_aal, ett_h245_NewATMVCCommand_aal, NewATMVCCommand_aal_choice, "aal", NULL);
 
        return offset;
 }
@@ -8962,9 +7883,9 @@ dissect_h245_NewATMVCCommand_aal(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t NewATMVCIndication_aal_aal5_sequence[] = {
-       { "forwardMaximumSDUSize", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardMaximumSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_forwardMaximumSDUSize },
-       { "backwardMaximumSDUSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "backwardMaximumSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_backwardMaximumSDUSize },
        { NULL, 0, 0, NULL }
 };
@@ -8985,16 +7906,16 @@ static const value_string NewATMVCIndication_aal_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NewATMVCIndication_aal_choice[] = {
-       {  0, "aal1", EXTENSION_ROOT, 
+       {  0, "aal1", ASN1_EXTENSION_ROOT,
                dissect_h245_NewATMVCIndication_aal_aal1 },
-       {  1, "aal5", EXTENSION_ROOT,
+       {  1, "aal5", ASN1_EXTENSION_ROOT,
                dissect_h245_NewATMVCIndication_aal_aal5 },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NewATMVCIndication_aal(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_aal, ett_h245_NewATMVCIndication_aal, NewATMVCIndication_aal_choice, "aal");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NewATMVCIndication_aal, ett_h245_NewATMVCIndication_aal, NewATMVCIndication_aal_choice, "aal", NULL);
 
        return offset;
 }
@@ -9005,9 +7926,9 @@ dissect_h245_NewATMVCIndication_aal(tvbuff_t *tvb, int offset, packet_info *pinf
 static int
 dissect_h245_singleBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_singleBitRate, 1, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9018,9 +7939,9 @@ dissect_h245_singleBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_lowerBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_lowerBitRate, 1, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9030,9 +7951,9 @@ dissect_h245_lowerBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_higherBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_higherBitRate, 1, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9042,9 +7963,9 @@ dissect_h245_higherBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t VCCapability_availableBitRates_rangeOfBitRates_sequence[] = {
-       { "lowerBitRate", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "lowerBitRate", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                        dissect_h245_lowerBitRate },
-       { "higherBitRate", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "higherBitRate", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                        dissect_h245_higherBitRate },
        { NULL, 0, 0, NULL }
 };
@@ -9065,16 +7986,16 @@ static const value_string VCCapability_availableBitRates_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t VCCapability_availableBitRates_type_choice[] = {
-       {  0, "singleBitRate", NO_EXTENSIONS, 
+       {  0, "singleBitRate", ASN1_NO_EXTENSIONS,
                        dissect_h245_singleBitRate },
-       {  1, "rangeOfBitRates", NO_EXTENSIONS,
+       {  1, "rangeOfBitRates", ASN1_NO_EXTENSIONS,
                        dissect_h245_VCCapability_availableBitRates_rangeOfBitRates },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_VCCapability_availableBitRates_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_VCCapability_availableBitRates_type, ett_h245_VCCapability_availableBitRates_type, VCCapability_availableBitRates_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_VCCapability_availableBitRates_type, ett_h245_VCCapability_availableBitRates_type, VCCapability_availableBitRates_type_choice, "type", NULL);
 
        return offset;
 }
@@ -9084,9 +8005,9 @@ dissect_h245_VCCapability_availableBitRates_type(tvbuff_t *tvb, int offset, pack
 static int
 dissect_h245_maximumAl2SDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumAl2SDUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9097,9 +8018,9 @@ dissect_h245_maximumAl2SDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_maximumAl3SDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumAl3SDUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9110,9 +8031,9 @@ dissect_h245_maximumAl3SDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_maximumDelayJitter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumDelayJitter, 0, 1023,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9122,9 +8043,9 @@ dissect_h245_maximumDelayJitter(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_maximumNestingDepth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumNestingDepth, 1, 15,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9134,9 +8055,9 @@ dissect_h245_maximumNestingDepth(tvbuff_t *tvb, int offset, packet_info *pinfo,
 static int
 dissect_h245_maximumElementListSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumElementListSize, 2, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9146,9 +8067,9 @@ dissect_h245_maximumElementListSize(tvbuff_t *tvb, int offset, packet_info *pinf
 static int
 dissect_h245_maximumSubElementListSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumSubElementListSize, 2, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9156,11 +8077,11 @@ dissect_h245_maximumSubElementListSize(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t H223Capability_h223MultiplexTableCapability_enhanced_sequence[] = {
-       { "maximumNestingDepth", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumNestingDepth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_maximumNestingDepth },
-       { "maximumElementListSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumElementListSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_maximumElementListSize },
-       { "maximumSubElementListSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumSubElementListSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_maximumSubElementListSize },
        { NULL, 0, 0, NULL }
 };
@@ -9181,16 +8102,16 @@ static const value_string H223Capability_h223MultiplexTableCapability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223Capability_h223MultiplexTableCapability_choice[] = {
-       {  0, "basic", NO_EXTENSIONS, 
+       {  0, "basic", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
-       {  1, "enhanced", NO_EXTENSIONS,
+       {  1, "enhanced", ASN1_NO_EXTENSIONS,
                        dissect_h245_H223Capability_h223MultiplexTableCapability_enhanced },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223Capability_h223MultiplexTableCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223Capability_h223MultiplexTableCapability, ett_h245_H223Capability_h223MultiplexTableCapability, H223Capability_h223MultiplexTableCapability_choice, "h223MultiplexTableCapability");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223Capability_h223MultiplexTableCapability, ett_h245_H223Capability_h223MultiplexTableCapability, H223Capability_h223MultiplexTableCapability_choice, "h223MultiplexTableCapability", NULL);
 
        return offset;
 }
@@ -9201,9 +8122,9 @@ dissect_h245_H223Capability_h223MultiplexTableCapability(tvbuff_t *tvb, int offs
 static int
 dissect_h245_h223bitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_h223bitRate, 1, 19200,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9214,9 +8135,9 @@ dissect_h245_h223bitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_maximumSampleSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumSampleSize, 1, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9227,9 +8148,9 @@ dissect_h245_maximumSampleSize(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_maximumPayloadLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumPayloadLength, 1, 65025,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9238,9 +8159,9 @@ dissect_h245_maximumPayloadLength(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H223Capability_mobileMultilinkFrameCapability_sequence[] = {
-       { "maximumSampleSize", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maximumSampleSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_maximumSampleSize },
-       { "maximumPayloadLength", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maximumPayloadLength", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_maximumPayloadLength },
        { NULL, 0, 0, NULL }
 };
@@ -9258,9 +8179,9 @@ dissect_h245_H223Capability_mobileMultilinkFrameCapability(tvbuff_t *tvb, int of
 static int
 dissect_h245_maximumAL1MPDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumAL1MPDUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9271,9 +8192,9 @@ dissect_h245_maximumAL1MPDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_maximumAL2MSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumAL2MSDUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9284,9 +8205,9 @@ dissect_h245_maximumAL2MSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_maximumAL3MSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumAL3MSDUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9296,33 +8217,33 @@ dissect_h245_maximumAL3MSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t H223AnnexCCapability_sequence[] = {
-       { "videoWithAL1M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoWithAL1M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoWithAL1M },
-       { "videoWithAL2M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoWithAL2M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoWithAL2M },
-       { "videoWithAL3M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoWithAL3M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoWithAL3M },
-       { "audioWithAL1M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioWithAL1M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioWithAL1M },
-       { "audioWithAL2M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioWithAL2M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioWithAL2M },
-       { "audioWithAL3M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioWithAL3M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioWithAL3M },
-       { "dataWithAL1M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dataWithAL1M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataWithAL1M },
-       { "dataWithAL2M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dataWithAL2M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataWithAL2M },
-       { "dataWithAL3M", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dataWithAL3M", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataWithAL3M },
-       { "alpduInterleaving", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "alpduInterleaving", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alpduInterleaving },
-       { "maximumAL1MPDUSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumAL1MPDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumAL1MPDUSize },
-       { "maximumAL2MSDUSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumAL2MSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumAL2MSDUSize },
-       { "maximumAL3MSDUSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumAL3MSDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumAL3MSDUSize },
-       { "rsCodeCapability", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "rsCodeCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_rsCodeCapability },
        { NULL, 0, 0, NULL }
 };
@@ -9350,45 +8271,45 @@ dissect_h245_transportWithIframes(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H223Capability_sequence[] = {
-       { "transportWithIframes", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "transportWithIframes", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_transportWithIframes },
-       { "videoWithAL1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoWithAL1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoWithAL1 },
-       { "videoWithAL2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoWithAL2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoWithAL2 },
-       { "videoWithAL3", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoWithAL3", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoWithAL3 },
-       { "audioWithAL1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioWithAL1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioWithAL1 },
-       { "audioWithAL2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioWithAL2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioWithAL2 },
-       { "audioWithAL3", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "audioWithAL3", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioWithAL3 },
-       { "dataWithAL1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dataWithAL1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataWithAL1 },
-       { "dataWithAL2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dataWithAL2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataWithAL2 },
-       { "dataWithAL3", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dataWithAL3", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataWithAL3 },
-       { "maximumAL2SDUSize", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maximumAL2SDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumAl2SDUSize },
-       { "maximumAL3SDUSize", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maximumAL3SDUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumAl3SDUSize },
-       { "maximumDelayJitter", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maximumDelayJitter", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumDelayJitter },
-       { "h223MultiplexTableCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h223MultiplexTableCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223Capability_h223MultiplexTableCapability },
-       { "maxMUXPDUSizeCapability", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maxMUXPDUSizeCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxMUXPDUSizeCapability },
-       { "nsrpSupport", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "nsrpSupport", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_nsrpSupport },
-       { "mobileOperationTransmitCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "mobileOperationTransmitCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H223Capability_mobileOperationTransmitCapability },
-       { "h223AnnexCCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "h223AnnexCCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H223AnnexCCapability },
-       { "bitRate", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "bitRate", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_h223bitRate },
-       { "mobileMultilinkFrameCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "mobileMultilinkFrameCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H223Capability_mobileMultilinkFrameCapability },
        { NULL, 0, 0, NULL }
 };
@@ -9406,9 +8327,9 @@ dissect_h245_H223Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_numOfDLCS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_numOfDLCS, 2, 8191,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9419,9 +8340,9 @@ dissect_h245_numOfDLCS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_n401Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_n401Capability, 1, 4095,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9432,9 +8353,9 @@ dissect_h245_n401Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_maxWindowSizeCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxWindowSizeCapability, 1, 127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9443,35 +8364,35 @@ dissect_h245_maxWindowSizeCapability(tvbuff_t *tvb, int offset, packet_info *pin
 
 
 static per_sequence_t V76Capability_sequence[] = {
-       { "suspendResumeCapabilitywAddress", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "suspendResumeCapabilitywAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_suspendResumeCapabilitywAddress },
-       { "suspendResumeCapabilitywoAddress", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "suspendResumeCapabilitywoAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_suspendResumeCapabilitywoAddress },
-       { "rejCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "rejCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_rejCapability },
-       { "sREJCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sREJCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sREJCapability },
-       { "mREJCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mREJCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_mREJCapability },
-       { "crc8bitCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "crc8bitCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_crc8bitCapability },
-       { "crc16bitCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "crc16bitCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_crc16bitCapability },
-       { "crc32bitCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "crc32bitCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_crc32bitCapability },
-       { "uihCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "uihCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_uihCapability },
-       { "numOfDLCS", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numOfDLCS", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numOfDLCS },
-       { "twoOctetAddressFieldCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "twoOctetAddressFieldCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_twoOctetAddressFieldCapability },
-       { "loopBackTestCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "loopBackTestCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_loopBackTestCapability },
-       { "n401Capability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "n401Capability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_n401Capability },
-       { "maxWindowSizeCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxWindowSizeCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxWindowSizeCapability },
-       { "v75Capability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "v75Capability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_V75Capability },
        { NULL, 0, 0, NULL }
 };
@@ -9489,9 +8410,9 @@ dissect_h245_V76Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_maximumAudioDelayJitter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumAudioDelayJitter, 0, 1023,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9502,9 +8423,9 @@ dissect_h245_maximumAudioDelayJitter(tvbuff_t *tvb, int offset, packet_info *pin
 static int
 dissect_h245_tokenRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_tokenRate, 1, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9515,9 +8436,9 @@ dissect_h245_tokenRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_bucketSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_bucketSize, 1, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9528,9 +8449,9 @@ dissect_h245_bucketSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_peakRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_peakRate, 1, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9540,9 +8461,9 @@ dissect_h245_peakRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_minPoliced(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_minPoliced, 1, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9553,9 +8474,9 @@ dissect_h245_minPoliced(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_maxPktSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxPktSize, 1, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9563,17 +8484,17 @@ dissect_h245_maxPktSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 
 
 static per_sequence_t RSVPParameters_sequence[] = {
-       { "qosMode", EXTENSION_ROOT, OPTIONAL, 
+       { "qosMode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                        dissect_h245_QOSMode },
-       { "tokenRate", EXTENSION_ROOT, OPTIONAL, 
+       { "tokenRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                        dissect_h245_tokenRate },
-       { "bucketSize", EXTENSION_ROOT, OPTIONAL, 
+       { "bucketSize", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                        dissect_h245_bucketSize },
-       { "peakRate", EXTENSION_ROOT, OPTIONAL,
+       { "peakRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                        dissect_h245_peakRate },
-       { "minPoliced", EXTENSION_ROOT, OPTIONAL,
+       { "minPoliced", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                        dissect_h245_minPoliced },
-       { "maxPktSize", EXTENSION_ROOT, OPTIONAL,
+       { "maxPktSize", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                        dissect_h245_maxPktSize },
        { NULL, 0, 0, NULL }
 };
@@ -9591,9 +8512,9 @@ dissect_h245_RSVPParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_maxNTUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxNTUSize, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9601,17 +8522,17 @@ dissect_h245_maxNTUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 
 
 static per_sequence_t ATMParameters_sequence[] = {
-       { "maxNTUSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxNTUSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxNTUSize },
-       { "atmUBR", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "atmUBR", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_atmUBR },
-       { "atmrtVBR", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "atmrtVBR", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_atmrtVBR },
-       { "atmnrtVBR", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "atmnrtVBR", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_atmnrtVBR },
-       { "atmABR", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "atmABR", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_atmABR },
-       { "atmCBR", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "atmCBR", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_atmCBR },
        { NULL, 0, 0, NULL }
 };
@@ -9629,9 +8550,9 @@ dissect_h245_ATMParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_numberOfThreads(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_numberOfThreads, 1, 16,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9641,9 +8562,9 @@ dissect_h245_numberOfThreads(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_framesBetweenSyncPoints(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_framesBetweenSyncPoints, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9653,9 +8574,9 @@ dissect_h245_framesBetweenSyncPoints(tvbuff_t *tvb, int offset, packet_info *pin
 static int
 dissect_h245_threadNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_threadNumber, 0, 15,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9666,9 +8587,9 @@ dissect_h245_threadNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_qcifMPI_1_4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_qcifMPI_1_4, 1, 4,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9679,9 +8600,9 @@ dissect_h245_qcifMPI_1_4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_qcifMPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_qcifMPI_1_32, 1, 32,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9694,9 +8615,9 @@ dissect_h245_qcifMPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_qcifMPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_qcifMPI_1_2048, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9707,9 +8628,9 @@ dissect_h245_qcifMPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_cifMPI_1_4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cifMPI_1_4, 1, 4,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9719,9 +8640,9 @@ dissect_h245_cifMPI_1_4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_cifMPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cifMPI_1_32, 1, 32,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9731,9 +8652,9 @@ dissect_h245_cifMPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_cifMPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cifMPI_1_2048, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9743,17 +8664,17 @@ dissect_h245_cifMPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t H261VideoCapability_sequence[] = {
-       { "qcifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "qcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_qcifMPI_1_4 },
-       { "cifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "cifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cifMPI_1_4 },
-       { "temporalSpatialTradeOffCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "temporalSpatialTradeOffCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_temporalSpatialTradeOffCapability },
-       { "maxBitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxBitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h223bitRate },
-       { "stillImageTransmission", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "stillImageTransmission", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_stillImageTransmission },
-       { "videoBadMBsCap", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "videoBadMBsCap", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoBadMBsCap },
        { NULL, 0, 0, NULL }
 };
@@ -9771,9 +8692,9 @@ dissect_h245_H261VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo,
 static int
 dissect_h245_videoBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_videoBitRate, 0, 1073741823,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9784,9 +8705,9 @@ dissect_h245_videoBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_vbvBufferSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_vbvBufferSize, 0, 262143,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9798,9 +8719,9 @@ dissect_h245_vbvBufferSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_samplesPerLine(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_samplesPerLine, 0, 16383,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9812,9 +8733,9 @@ dissect_h245_samplesPerLine(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_linesPerFrame(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_linesPerFrame, 0, 16383,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9826,9 +8747,9 @@ dissect_h245_linesPerFrame(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_framesPerSecond(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_framesPerSecond, 0, 15,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9839,9 +8760,9 @@ dissect_h245_framesPerSecond(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_luminanceSampleRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_luminanceSampleRate, 0, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9850,41 +8771,41 @@ dissect_h245_luminanceSampleRate(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H262VideoCapability_sequence[] = {
-       { "profileAndLevel-SPatML", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "profileAndLevel-SPatML", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelSPatML },
-       { "profileAndLevel-MPatLL", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-MPatLL", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelMPatLL },
-       { "profileAndLevel-MPatML", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "profileAndLevel-MPatML", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelMPatML },
-       { "profileAndLevel-MPatH-14", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-MPatH-14", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelMPatH14 },
-       { "profileAndLevel-MPatHL", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-MPatHL", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelMPatHL },
-       { "profileAndLevel-SNRatLL", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-SNRatLL", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelSNRatLL },
-       { "profileAndLevel-SNRatML", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-SNRatML", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelSNRatML },
-       { "profileAndLevel-SpatialatH-14", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-SpatialatH-14", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelSpatialatH14 },
-       { "profileAndLevel-HPatML", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "profileAndLevel-HPatML", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelHPatML },
-       { "profileAndLevel-HPatH-14", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-HPatH-14", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelHPatH14 },
-       { "profileAndLevel-HPatHL", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel-HPatHL", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_profileAndLevelHPatHL },
-       { "videoBitRate", EXTENSION_ROOT, OPTIONAL,
+       { "videoBitRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_videoBitRate },
-       { "vbvBufferSize", EXTENSION_ROOT, OPTIONAL, 
+       { "vbvBufferSize", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_vbvBufferSize },
-       { "samplesPerLine", EXTENSION_ROOT, OPTIONAL,
+       { "samplesPerLine", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_samplesPerLine },
-       { "linesPerFrame", EXTENSION_ROOT, OPTIONAL,
+       { "linesPerFrame", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_linesPerFrame },
-       { "framesPerSecond", EXTENSION_ROOT, OPTIONAL,
+       { "framesPerSecond", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_framesPerSecond },
-       { "luminanceSampleRate", EXTENSION_ROOT, OPTIONAL,
+       { "luminanceSampleRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_luminanceSampleRate },
-       { "videoBadMBsCap", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoBadMBsCap", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoBadMBsCap },
        { NULL, 0, 0, NULL }
 };
@@ -9901,19 +8822,19 @@ dissect_h245_H262VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H262VideoMode_sequence[] = {
-       { "profileAndLevel", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "profileAndLevel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H262VideoMode_profileAndLevel },
-       { "videoBitRate", EXTENSION_ROOT, OPTIONAL,
+       { "videoBitRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_videoBitRate },
-       { "vbvBufferSize", EXTENSION_ROOT, OPTIONAL, 
+       { "vbvBufferSize", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_vbvBufferSize },
-       { "samplesPerLine", EXTENSION_ROOT, OPTIONAL,
+       { "samplesPerLine", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_samplesPerLine },
-       { "linesPerFrame", EXTENSION_ROOT, OPTIONAL,
+       { "linesPerFrame", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_linesPerFrame },
-       { "framesPerSecond", EXTENSION_ROOT, OPTIONAL,
+       { "framesPerSecond", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_framesPerSecond },
-       { "luminanceSampleRate", EXTENSION_ROOT, OPTIONAL,
+       { "luminanceSampleRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_luminanceSampleRate },
        { NULL, 0, 0, NULL }
 };
@@ -9931,9 +8852,9 @@ dissect_h245_H262VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_sqcifMPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sqcifMPI_1_32, 1, 32,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9943,9 +8864,9 @@ dissect_h245_sqcifMPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_sqcifMPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sqcifMPI_1_2048, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9956,9 +8877,9 @@ dissect_h245_sqcifMPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_cif4MPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cif4MPI_1_32, 1, 32,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9969,9 +8890,9 @@ dissect_h245_cif4MPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_cif4MPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cif4MPI_1_2048, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9982,9 +8903,9 @@ dissect_h245_cif4MPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_cif16MPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cif16MPI_1_32, 1, 32,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -9995,9 +8916,9 @@ dissect_h245_cif16MPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_cif16MPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cif16MPI_1_2048, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10007,9 +8928,9 @@ dissect_h245_cif16MPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_maxBitRate_192400(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxBitRate_192400, 1, 192400,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10021,9 +8942,9 @@ dissect_h245_maxBitRate_192400(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_hrd_B(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_hrd_B, 0, 524287,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10034,9 +8955,9 @@ dissect_h245_hrd_B(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
 static int
 dissect_h245_bppMaxKb(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_bppMaxKb, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10047,9 +8968,9 @@ dissect_h245_bppMaxKb(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_slowSqcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_slowSqcifMPI, 1, 3600,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10060,9 +8981,9 @@ dissect_h245_slowSqcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_slowQcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_slowQcifMPI, 1, 3600,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10072,9 +8993,9 @@ dissect_h245_slowQcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_slowCifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_slowCifMPI, 1, 3600,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10085,9 +9006,9 @@ dissect_h245_slowCifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_slowCif4MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_slowCif4MPI, 1, 3600,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10098,9 +9019,9 @@ dissect_h245_slowCif4MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_slowCif16MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_slowCif16MPI, 1, 3600,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10112,9 +9033,9 @@ dissect_h245_slowCif16MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_numberOfBPictures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_numberOfBPictures, 1, 64,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10125,9 +9046,9 @@ dissect_h245_numberOfBPictures(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_presentationOrder(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_presentationOrder, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10138,9 +9059,9 @@ dissect_h245_presentationOrder(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_offset_x(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_offset_x, -262144, 262143,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10152,9 +9073,9 @@ dissect_h245_offset_x(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_offset_y(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_offset_y, -262144, 262143,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10166,9 +9087,9 @@ dissect_h245_offset_y(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_scale_x(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_scale_x, 1, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10178,9 +9099,9 @@ dissect_h245_scale_x(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 static int
 dissect_h245_scale_y(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_scale_y, 1, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10189,15 +9110,15 @@ dissect_h245_scale_y(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 
 
 static per_sequence_t TransperencyParameters_sequence[] = {
-       { "presentationOrder", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "presentationOrder", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_presentationOrder },
-       { "offset-x", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "offset-x", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_offset_x },
-       { "offset-y", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "offset-y", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_offset_y },
-       { "scale-x", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "scale-x", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_scale_x },
-       { "scale-y", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "scale-y", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_scale_y },
        { NULL, 0, 0, NULL }
 };
@@ -10215,9 +9136,9 @@ dissect_h245_TransperencyParameters(tvbuff_t *tvb, int offset, packet_info *pinf
 static int
 dissect_h245_sqcifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sqcifAdditionalPictureMemory, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10228,9 +9149,9 @@ dissect_h245_sqcifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_qcifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_qcifAdditionalPictureMemory, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10241,9 +9162,9 @@ dissect_h245_qcifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_cifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cifAdditionalPictureMemory, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10254,9 +9175,9 @@ dissect_h245_cifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *
 static int
 dissect_h245_cif4AdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cif4AdditionalPictureMemory, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10266,9 +9187,9 @@ dissect_h245_cif4AdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_cif16AdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_cif16AdditionalPictureMemory, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10278,9 +9199,9 @@ dissect_h245_cif16AdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_bigCpfAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_bigCpfAdditionalPictureMemory, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10289,17 +9210,17 @@ dissect_h245_bigCpfAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_inf
 
 
 static per_sequence_t RefPictureSelection_additionalPictureMemory_sequence[] = {
-       { "sqcifAdditionalPictureMemory", EXTENSION_ROOT, OPTIONAL,
+       { "sqcifAdditionalPictureMemory", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_sqcifAdditionalPictureMemory },
-       { "qcifAdditionalPictureMemory", EXTENSION_ROOT, OPTIONAL,
+       { "qcifAdditionalPictureMemory", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_qcifAdditionalPictureMemory },
-       { "cifAdditionalPictureMemory", EXTENSION_ROOT, OPTIONAL,
+       { "cifAdditionalPictureMemory", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cifAdditionalPictureMemory },
-       { "cif4AdditionalPictureMemory", EXTENSION_ROOT, OPTIONAL,
+       { "cif4AdditionalPictureMemory", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif4AdditionalPictureMemory },
-       { "cif16AdditionalPictureMemory", EXTENSION_ROOT, OPTIONAL,
+       { "cif16AdditionalPictureMemory", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif16AdditionalPictureMemory },
-       { "bigCpfAdditionalPictureMemory", EXTENSION_ROOT, OPTIONAL,
+       { "bigCpfAdditionalPictureMemory", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_bigCpfAdditionalPictureMemory},
        { NULL, 0, 0, NULL }
 };
@@ -10317,9 +9238,9 @@ dissect_h245_RefPictureSelection_additionalPictureMemory(tvbuff_t *tvb, int offs
 static int
 dissect_h245_mpuHorizMBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_mpuHorizMBs, 1, 128,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10330,9 +9251,9 @@ dissect_h245_mpuHorizMBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_mpuVertMBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_mpuVertMBs, 1, 72,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10343,9 +9264,9 @@ dissect_h245_mpuVertMBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_mpuTotalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_mpuTotalNumber, 1, 65536,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10353,11 +9274,11 @@ dissect_h245_mpuTotalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters_sequence[] = {
-       { "mpuHorizMBs", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mpuHorizMBs", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_mpuHorizMBs },
-       { "mpuVertMBs", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mpuVertMBs", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_mpuVertMBs},
-       { "mpuTotalNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mpuTotalNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_mpuTotalNumber},
        { NULL, 0, 0, NULL }
 };
@@ -10375,7 +9296,7 @@ dissect_h245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalPar
 
 
 static per_sequence_t RefPictureSelection_enhancedReferencePicSelect_sequence[] = {
-       { "subPictureRemovalParameters", EXTENSION_ROOT, OPTIONAL,
+       { "subPictureRemovalParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters },
        { NULL, 0, 0, NULL }
 };
@@ -10392,13 +9313,13 @@ dissect_h245_RefPictureSelection_enhancedReferencePicSelect(tvbuff_t *tvb, int o
 
 
 static per_sequence_t RefPictureSelection_sequence[] = {
-       { "additionalPictureMemory", EXTENSION_ROOT, OPTIONAL,
+       { "additionalPictureMemory", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RefPictureSelection_additionalPictureMemory },
-       { "videoMux", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoMux", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoMux },
-       { "videoBackChannelSend", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoBackChannelSend", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RefPictureSelection_videoBackChannelSend },
-       { "enhancedReferencePicSelect", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "enhancedReferencePicSelect", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RefPictureSelection_enhancedReferencePicSelect },
        { NULL, 0, 0, NULL }
 };
@@ -10415,9 +9336,9 @@ dissect_h245_RefPictureSelection(tvbuff_t *tvb, int offset, packet_info *pinfo,
 static int
 dissect_h245_clockConversionCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_clockConversionCode, 1000, 1001,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10428,9 +9349,9 @@ dissect_h245_clockConversionCode(tvbuff_t *tvb, int offset, packet_info *pinfo,
 static int
 dissect_h245_clockDivisor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_clockDivisor, 1, 127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10439,19 +9360,19 @@ dissect_h245_clockDivisor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 
 
 static per_sequence_t CustomPictureClockFrequency_sequence[] = {
-       { "clockConversionCode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "clockConversionCode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_clockConversionCode },
-       { "clockDivisor", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "clockDivisor", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_clockDivisor },
-       { "sqcifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "sqcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_sqcifMPI_1_2048 },
-       { "qcifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "qcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_qcifMPI_1_2048 },
-       { "cifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "cifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cifMPI_1_2048 },
-       { "cif4MPI", EXTENSION_ROOT, OPTIONAL,
+       { "cif4MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif4MPI_1_2048 },
-       { "cif16MPI", EXTENSION_ROOT, OPTIONAL,
+       { "cif16MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif16MPI_1_2048 },
        { NULL, 0, 0, NULL }
 };
@@ -10469,9 +9390,9 @@ dissect_h245_CustomPictureClockFrequency(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_maxCustomPictureWidth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxCustomPictureWidth, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10480,9 +9401,9 @@ dissect_h245_maxCustomPictureWidth(tvbuff_t *tvb, int offset, packet_info *pinfo
 static int
 dissect_h245_minCustomPictureWidth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_minCustomPictureWidth, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10493,9 +9414,9 @@ dissect_h245_minCustomPictureWidth(tvbuff_t *tvb, int offset, packet_info *pinfo
 static int
 dissect_h245_minCustomPictureHeight(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_minCustomPictureHeight, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10504,9 +9425,9 @@ dissect_h245_minCustomPictureHeight(tvbuff_t *tvb, int offset, packet_info *pinf
 static int
 dissect_h245_maxCustomPictureHeight(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxCustomPictureHeight, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10518,9 +9439,9 @@ dissect_h245_maxCustomPictureHeight(tvbuff_t *tvb, int offset, packet_info *pinf
 static int
 dissect_h245_standardMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_standardMPI, 1, 31,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10531,9 +9452,9 @@ dissect_h245_standardMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_customMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_customMPI, 1, 2048,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10542,11 +9463,11 @@ dissect_h245_customMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 
 static per_sequence_t CustomPictureFormat_mPI_customPCF_sequence[] = {
-       { "clockConversionCode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "clockConversionCode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_clockConversionCode },
-       { "clockDivisor", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "clockDivisor", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_clockDivisor },
-       { "customMPI", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "customMPI", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_customMPI },
        { NULL, 0, 0, NULL }
 };
@@ -10563,9 +9484,9 @@ dissect_h245_CustomPictureFormat_mPI_customPCF(tvbuff_t *tvb, int offset, packet
 static int dissect_h245_customPCF(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 
 static per_sequence_t CustomPictureFormat_mPI_sequence[] = {
-       { "standardMPI", EXTENSION_ROOT, OPTIONAL, 
+       { "standardMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_standardMPI},
-       { "customPCF", EXTENSION_ROOT, OPTIONAL,
+       { "customPCF", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_customPCF },
        { NULL, 0, 0, NULL }
 };
@@ -10583,9 +9504,9 @@ dissect_h245_CustomPictureFormat_mPI(tvbuff_t *tvb, int offset, packet_info *pin
 static int
 dissect_h245_width(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_width, 1, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10595,9 +9516,9 @@ dissect_h245_width(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
 static int
 dissect_h245_height(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_height, 1, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10606,9 +9527,9 @@ dissect_h245_height(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
 
 
 static per_sequence_t CustomPictureFormat_pixelAspectInformation_extendedPAR_sequence[] = {
-       { "width", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "width", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_width },
-       { "height", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "height", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_height},
        { NULL, 0, 0, NULL }
 };
@@ -10626,9 +9547,9 @@ dissect_h245_CustomPictureFormat_pixelAspectInformation_extendedPAR(tvbuff_t *tv
 static int
 dissect_h245_pictureRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_pictureRate, 0, 15,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10637,19 +9558,19 @@ dissect_h245_pictureRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 
 
 static per_sequence_t IS11172VideoMode_sequence[] = {
-       { "constrainedBitstream", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "constrainedBitstream", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_constrainedBitstream },
-       { "videoBitRate", EXTENSION_ROOT, OPTIONAL,
+       { "videoBitRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_videoBitRate },
-       { "vbvBufferSize", EXTENSION_ROOT, OPTIONAL, 
+       { "vbvBufferSize", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_vbvBufferSize },
-       { "samplesPerLine", EXTENSION_ROOT, OPTIONAL,
+       { "samplesPerLine", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_samplesPerLine },
-       { "linesPerFrame", EXTENSION_ROOT, OPTIONAL,
+       { "linesPerFrame", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_linesPerFrame },
-       { "pictureRate", EXTENSION_ROOT, OPTIONAL, 
+       { "pictureRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_pictureRate},
-       { "luminanceSampleRate", EXTENSION_ROOT, OPTIONAL,
+       { "luminanceSampleRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_luminanceSampleRate },
        { NULL, 0, 0, NULL }
 };
@@ -10664,21 +9585,21 @@ dissect_h245_IS11172VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t IS11172VideoCapability_sequence[] = {
-       { "constrainedBitstream", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "constrainedBitstream", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_constrainedBitstream },
-       { "videoBitRate", EXTENSION_ROOT, OPTIONAL, 
+       { "videoBitRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_videoBitRate },
-       { "vbvBufferSize", EXTENSION_ROOT, OPTIONAL, 
+       { "vbvBufferSize", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_vbvBufferSize },
-       { "samplesPerLine", EXTENSION_ROOT, OPTIONAL,
+       { "samplesPerLine", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_samplesPerLine },
-       { "linesPerFrame", EXTENSION_ROOT, OPTIONAL,
+       { "linesPerFrame", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_linesPerFrame },
-       { "pictureRate", EXTENSION_ROOT, OPTIONAL, 
+       { "pictureRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_pictureRate },
-       { "luminanceSampleRate", EXTENSION_ROOT, OPTIONAL,
+       { "luminanceSampleRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_luminanceSampleRate },
-       { "videoBadMBsCap", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoBadMBsCap", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoBadMBsCap },
        { NULL, 0, 0, NULL }
 };
@@ -10696,9 +9617,9 @@ dissect_h245_IS11172VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinf
 static int
 dissect_h245_g711Alaw64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g711Alaw64k, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10708,9 +9629,9 @@ dissect_h245_g711Alaw64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_g711Alaw56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g711Alaw56k, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10720,9 +9641,9 @@ dissect_h245_g711Alaw56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_g711Ulaw64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g711Ulaw64k, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10732,9 +9653,9 @@ dissect_h245_g711Ulaw64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_g711Ulaw56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g711Ulaw56k, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10745,9 +9666,9 @@ dissect_h245_g711Ulaw56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_g722_64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g722_64k, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10757,9 +9678,9 @@ dissect_h245_g722_64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_g722_56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g722_56k, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10770,9 +9691,9 @@ dissect_h245_g722_56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_g722_48k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g722_48k, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10784,9 +9705,9 @@ dissect_h245_g722_48k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_maxAl_sduAudioFrames(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxAl_sduAudioFrames, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10794,9 +9715,9 @@ dissect_h245_maxAl_sduAudioFrames(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t AudioCapability_g7231_sequence[] = {
-       { "maxAl-sduAudioFrames", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "maxAl-sduAudioFrames", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_maxAl_sduAudioFrames },
-       { "silenceSuppression", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "silenceSuppression", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_silenceSuppression },
        { NULL, 0, 0, NULL }
 };
@@ -10814,9 +9735,9 @@ dissect_h245_AudioCapability_g7231(tvbuff_t *tvb, int offset, packet_info *pinfo
 static int
 dissect_h245_g728(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g728, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10826,9 +9747,9 @@ dissect_h245_g728(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
 static int
 dissect_h245_g729(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g729, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10838,9 +9759,9 @@ dissect_h245_g729(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
 static int
 dissect_h245_g729AnnexA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g729AnnexA, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10851,9 +9772,9 @@ dissect_h245_g729AnnexA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_g729wAnnexB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g729wAnnexB, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10864,9 +9785,9 @@ dissect_h245_g729wAnnexB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_g729AnnexAwAnnexB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_g729AnnexAwAnnexB, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10877,9 +9798,9 @@ dissect_h245_g729AnnexAwAnnexB(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_audioUnit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_audioUnit, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10888,21 +9809,21 @@ dissect_h245_audioUnit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 
 static per_sequence_t G729Extensions_sequence[] = {
-       { "audioUnit", EXTENSION_ROOT, OPTIONAL,
+       { "audioUnit", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_audioUnit },
-       { "annexA", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "annexA", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_annexA },
-       { "annexB", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "annexB", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_annexB },
-       { "annexD", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "annexD", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_annexD },
-       { "annexE", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "annexE", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_annexE },
-       { "annexF", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "annexF", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_annexF },
-       { "annexG", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "annexG", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_annexG },
-       { "annexH", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "annexH", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_annexH },
        { NULL, 0, 0, NULL }
 };
@@ -10920,9 +9841,9 @@ dissect_h245_G729Extensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_highRateMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_highRateMode0, 27, 78,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10931,9 +9852,9 @@ dissect_h245_highRateMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_highRateMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_highRateMode1, 27, 78,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10945,9 +9866,9 @@ dissect_h245_highRateMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_lowRateMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_lowRateMode0, 23, 66,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10956,9 +9877,9 @@ dissect_h245_lowRateMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_lowRateMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_lowRateMode1, 23, 66,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10969,9 +9890,9 @@ dissect_h245_lowRateMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_sidMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sidMode0, 6, 17,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10980,9 +9901,9 @@ dissect_h245_sidMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_sidMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sidMode1, 6, 17,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -10991,17 +9912,17 @@ dissect_h245_sidMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 
 static per_sequence_t G7231AnnexCCapability_g723AnnexCAudioMode_sequence[] = {
-       { "highRateMode0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "highRateMode0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_highRateMode0 },
-       { "highRateMode1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "highRateMode1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_highRateMode1 },
-       { "lowRateMode0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "lowRateMode0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_lowRateMode0 },
-       { "lowRateMode1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "lowRateMode1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_lowRateMode1 },
-       { "sidMode0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sidMode0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sidMode0 },
-       { "sidMode1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sidMode1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sidMode1 },
        { NULL, 0, 0, NULL }
 };
@@ -11017,11 +9938,11 @@ dissect_h245_G7231AnnexCCapability_g723AnnexCAudioMode(tvbuff_t *tvb, int offset
 
 
 static per_sequence_t G7231AnnexCCapability_sequence[] = {
-       { "maxAl-sduAudioFrames", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maxAl-sduAudioFrames", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxAl_sduAudioFrames },
-       { "silenceSuppression", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "silenceSuppression", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_silenceSuppression },
-       { "g723AnnexCAudioMode", EXTENSION_ROOT, OPTIONAL,
+       { "g723AnnexCAudioMode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_G7231AnnexCCapability_g723AnnexCAudioMode },
        { NULL, 0, 0, NULL }
 };
@@ -11036,17 +9957,17 @@ dissect_h245_G7231AnnexCCapability(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t G7231AnnexCMode_g723AnnexCAudioMode_sequence[] = {
-       { "highRateMode0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "highRateMode0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_highRateMode0 },
-       { "highRateMode1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "highRateMode1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_highRateMode1 },
-       { "lowRateMode0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "lowRateMode0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_lowRateMode0 },
-       { "lowRateMode1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "lowRateMode1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_lowRateMode0 },
-       { "sidMode0", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sidMode0", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_sidMode0 },
-       { "sidMode1", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sidMode1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_sidMode1 },
        { NULL, 0, 0, NULL }
 };
@@ -11062,11 +9983,11 @@ dissect_h245_G7231AnnexCMode_g723AnnexCAudioMode(tvbuff_t *tvb, int offset, pack
 
 
 static per_sequence_t G7231AnnexCMode_sequence[] = {
-       { "maxAl-sduAudioFrames", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "maxAl-sduAudioFrames", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxAl_sduAudioFrames },
-       { "silenceSupression", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "silenceSupression", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_silenceSuppression },
-       { "g723AnnexCAudioMode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "g723AnnexCAudioMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_G7231AnnexCMode_g723AnnexCAudioMode },
        { NULL, 0, 0, NULL }
 };
@@ -11084,9 +10005,9 @@ dissect_h245_G7231AnnexCMode(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_audioUnitSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_audioUnitSize, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11096,11 +10017,11 @@ dissect_h245_audioUnitSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t GSMAudioCapability_sequence[] = {
-       { "audioUnitSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioUnitSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioUnitSize },
-       { "comfortNoice", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "comfortNoice", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_comfortNoise },
-       { "scrambled", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "scrambled", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_scrambled },
        { NULL, 0, 0, NULL }
 };
@@ -11120,9 +10041,9 @@ static int
 dissect_h245_maxBitRate_4294967295UL(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
        /* XXX unit is 100bit/s */
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maxBitRate_4294967295UL, 0, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11134,9 +10055,9 @@ dissect_h245_maxBitRate_4294967295UL(tvbuff_t *tvb, int offset, packet_info *pin
 static int
 dissect_h245_numberOfCodewords(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_numberOfCodewords, 1, 65536,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11147,9 +10068,9 @@ dissect_h245_numberOfCodewords(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_maximumStringLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_maximumStringLength, 1, 256,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11159,9 +10080,9 @@ dissect_h245_maximumStringLength(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t V42bis_sequence[] = {
-       { "numberOfCodewords", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numberOfCodewords", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfCodewords },
-       { "maximumStringLength", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumStringLength", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumStringLength },
        { NULL, 0, 0, NULL }
 };
@@ -11180,14 +10101,14 @@ static const value_string CompressionType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CompressionType_choice[] = {
-       {  0, "v42bis", EXTENSION_ROOT,
+       {  0, "v42bis", ASN1_EXTENSION_ROOT,
                dissect_h245_V42bis },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CompressionType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CompressionType, ett_h245_CompressionType, CompressionType_choice, "CompressionType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CompressionType, ett_h245_CompressionType, CompressionType_choice, "CompressionType", NULL);
 
        return offset;
 }
@@ -11203,18 +10124,18 @@ static const value_string DataProtocolCapability_v76wCompression_vals[] = {
        {  0, NULL }
 };
 static per_choice_t DataProtocolCapability_v76wCompression_choice[] = {
-       {  0, "transmitCompression", EXTENSION_ROOT,
+       {  0, "transmitCompression", ASN1_EXTENSION_ROOT,
                dissect_h245_CompressionType },
-       {  1, "receiveCompression", EXTENSION_ROOT,
+       {  1, "receiveCompression", ASN1_EXTENSION_ROOT,
                dissect_h245_CompressionType },
-       {  2, "transmitAndReceiveCompression", EXTENSION_ROOT,
+       {  2, "transmitAndReceiveCompression", ASN1_EXTENSION_ROOT,
                dissect_h245_CompressionType },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_DataProtocolCapability_v76wCompression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataProtocolCapability_v76wCompression, ett_h245_DataProtocolCapability_v76wCompression, DataProtocolCapability_v76wCompression_choice, "v76wCompression");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataProtocolCapability_v76wCompression, ett_h245_DataProtocolCapability_v76wCompression, DataProtocolCapability_v76wCompression_choice, "v76wCompression", NULL);
 
        return offset;
 }
@@ -11226,9 +10147,9 @@ dissect_h245_DataProtocolCapability_v76wCompression(tvbuff_t *tvb, int offset, p
 static int
 dissect_h245_version(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_version, 0, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11237,23 +10158,23 @@ dissect_h245_version(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 
 static int dissect_h245_T38FaxUdpOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 static per_sequence_t T38FaxProfile_sequence[] = {
-       { "fillBitRemoval", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "fillBitRemoval", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fillBitRemoval },
-       { "transcodingJBIG", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "transcodingJBIG", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_transcodingJBIG },
-       { "transcodingMMR", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "transcodingMMR", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_transcodingMMR },
-       { "version", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "version", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_version },
-       { "t38FaxRateManagement", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "t38FaxRateManagement", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_T38FaxRateManagement },
-       { "t38FaxUdpOptions", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "t38FaxUdpOptions", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_T38FaxUdpOptions },
-       { "t38FaxTcpOptions", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "t38FaxTcpOptions", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_T38FaxTcpOptions },
        { NULL, 0, 0, NULL }
 };
-static int
+int
 dissect_h245_T38FaxProfile(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
        offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h245_T38FaxProfile, ett_h245_T38FaxProfile, T38FaxProfile_sequence);
@@ -11267,9 +10188,9 @@ dissect_h245_T38FaxProfile(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_standard_0_127(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_standard_0_127, 0, 127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11280,9 +10201,9 @@ dissect_h245_standard_0_127(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 static int
 dissect_h245_booleanArray(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_booleanArray, 0, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11293,9 +10214,9 @@ dissect_h245_booleanArray(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_unsignedMin(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_unsignedMin, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11304,9 +10225,9 @@ dissect_h245_unsignedMin(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_unsignedMax(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_unsignedMax, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11317,9 +10238,9 @@ dissect_h245_unsignedMax(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_unsigned32Min(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_unsigned32Min, 0, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11328,9 +10249,9 @@ dissect_h245_unsigned32Min(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_unsigned32Max(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_unsigned32Max, 0, 4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11341,9 +10262,9 @@ dissect_h245_unsigned32Max(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_dynamicRTPPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_dynamicRTPPayloadType, 96, 127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11352,7 +10273,7 @@ dissect_h245_dynamicRTPPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t AudioToneCapability_sequence[] = {
-       { "dynamicRTPPayloadType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dynamicRTPPayloadType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicRTPPayloadType },
        { NULL, 0, 0, NULL }
 };
@@ -11368,7 +10289,7 @@ dissect_h245_AudioToneCapability(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t NoPTAudioToneCapability_sequence[] = {
-       { NULL, EXTENSION_ROOT, 0, NULL }
+       { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
 };
 static int
 dissect_h245_NoPTAudioToneCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -11385,9 +10306,9 @@ dissect_h245_NoPTAudioToneCapability(tvbuff_t *tvb, int offset, packet_info *pin
 static int
 dissect_h245_portNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_portNumber, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11398,9 +10319,9 @@ dissect_h245_portNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_resourceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_resourceID, 0, 65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11415,18 +10336,18 @@ static const value_string FlowControlCommand_scope_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FlowControlCommand_scope_choice[] = {
-       {  0, "logicalChannelNumber", NO_EXTENSIONS, 
+       {  0, "logicalChannelNumber", ASN1_NO_EXTENSIONS,
                        dissect_h245_LogicalChannelNumber },
-       {  1, "resourceID", NO_EXTENSIONS,
+       {  1, "resourceID", ASN1_NO_EXTENSIONS,
                        dissect_h245_resourceID },
-       {  2, "wholeMultiplex", NO_EXTENSIONS, 
+       {  2, "wholeMultiplex", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FlowControlCommand_scope(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlCommand_scope, ett_h245_FlowControlCommand_scope, FlowControlCommand_scope_choice, "scope");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlCommand_scope, ett_h245_FlowControlCommand_scope, FlowControlCommand_scope_choice, "scope", NULL);
 
        return offset;
 }
@@ -11443,18 +10364,18 @@ static const value_string JitterIndication_scope_vals[] = {
        {  0, NULL }
 };
 static per_choice_t JitterIndication_scope_choice[] = {
-       {  0, "logicalChannelNumber", NO_EXTENSIONS, 
+       {  0, "logicalChannelNumber", ASN1_NO_EXTENSIONS,
                        dissect_h245_LogicalChannelNumber },
-       {  1, "resourceID", NO_EXTENSIONS,
+       {  1, "resourceID", ASN1_NO_EXTENSIONS,
                        dissect_h245_resourceID },
-       {  2, "wholeMultiplex", NO_EXTENSIONS, 
+       {  2, "wholeMultiplex", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_JitterIndication_scope(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_JitterIndication_scope, ett_h245_JitterIndication_scope, JitterIndication_scope_choice, "scope");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_JitterIndication_scope, ett_h245_JitterIndication_scope, JitterIndication_scope_choice, "scope", NULL);
 
        return offset;
 }
@@ -11470,18 +10391,18 @@ static const value_string FlowControlIndication_scope_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FlowControlIndication_scope_choice[] = {
-       {  0, "logicalChannelNumber", NO_EXTENSIONS, 
+       {  0, "logicalChannelNumber", ASN1_NO_EXTENSIONS,
                        dissect_h245_LogicalChannelNumber },
-       {  1, "resourceID", NO_EXTENSIONS,
+       {  1, "resourceID", ASN1_NO_EXTENSIONS,
                        dissect_h245_resourceID },
-       {  2, "wholeMultiplex", NO_EXTENSIONS, 
+       {  2, "wholeMultiplex", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FlowControlIndication_scope(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlIndication_scope, ett_h245_FlowControlIndication_scope, FlowControlIndication_scope_choice, "scope");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlIndication_scope, ett_h245_FlowControlIndication_scope, FlowControlIndication_scope_choice, "scope", NULL);
 
        return offset;
 }
@@ -11490,19 +10411,19 @@ dissect_h245_FlowControlIndication_scope(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t NewATMVCIndication_sequence[] = {
-       { "resourceID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "resourceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_resourceID },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ATM_BitRate },
-       { "bitRateLockedToPCRClock", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRateLockedToPCRClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToPCRClock },
-       { "bitRateLockedToNetworkClock", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRateLockedToNetworkClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToNetworkClock },
-       { "aal", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "aal", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCIndication_aal },
-       { "multiplex", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multiplex", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCIndication_multiplex },
-       { "reverseParameters", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "reverseParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCIndication_reverseParameters },
        { NULL, 0, 0, NULL }
 };
@@ -11520,9 +10441,9 @@ dissect_h245_NewATMVCIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_subChannelID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_subChannelID, 0, 8191,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11533,9 +10454,9 @@ dissect_h245_subChannelID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_pcr_pid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_pcr_pid, 0, 8191,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11546,9 +10467,9 @@ dissect_h245_pcr_pid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 static int
 dissect_h245_controlFieldOctets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_controlFieldOctets, 0, 2,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11559,9 +10480,9 @@ dissect_h245_controlFieldOctets(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_sendBufferSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sendBufferSize, 0, 16777215,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11570,9 +10491,9 @@ dissect_h245_sendBufferSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t H223LogicalChannelParameters_adaptionLayerType_al3_sequence[] = {
-       { "controlFieldOctets", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "controlFieldOctets", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_controlFieldOctets },
-       { "sendBufferSize", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "sendBufferSize", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_sendBufferSize },
        { NULL, 0, 0, NULL }
 };
@@ -11587,9 +10508,9 @@ dissect_h245_H223LogicalChannelParameters_adaptionLayerType_al3(tvbuff_t *tvb, i
 
 
 static per_sequence_t H223ModeParameters_adaptationLayerType_al3_sequence[] = {
-       { "controlFieldOctets", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "controlFieldOctets", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_controlFieldOctets },
-       { "sendBufferSize", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "sendBufferSize", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_sendBufferSize },
        { NULL, 0, 0, NULL }
 };
@@ -11607,9 +10528,9 @@ dissect_h245_H223ModeParameters_adaptationLayerType_al3(tvbuff_t *tvb, int offse
 static int
 dissect_h245_rcpcCodeRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_rcpcCodeRate, 8, 32,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11620,9 +10541,9 @@ dissect_h245_rcpcCodeRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_rsCodeCorrection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_rsCodeCorrection, 0, 127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11633,9 +10554,9 @@ dissect_h245_rsCodeCorrection(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 static int
 dissect_h245_finite_0_16(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_finite_0_16, 0, 16,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11650,16 +10571,16 @@ static const value_string H223AnnexCArqParameters_numberOfRetransmissions_vals[]
        {  0, NULL }
 };
 static per_choice_t H223AnnexCArqParameters_numberOfRetransmissions_choice[] = {
-       {  0, "finite", EXTENSION_ROOT,
+       {  0, "finite", ASN1_EXTENSION_ROOT,
                        dissect_h245_finite_0_16 },
-       {  1, "infinite", EXTENSION_ROOT, 
+       {  1, "infinite", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AnnexCArqParameters_numberOfRetransmissions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AnnexCArqParameters_numberOfRetransmissions, ett_h245_H223AnnexCArqParameters_numberOfRetransmissions, H223AnnexCArqParameters_numberOfRetransmissions_choice, "numberOfRetransmissions");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AnnexCArqParameters_numberOfRetransmissions, ett_h245_H223AnnexCArqParameters_numberOfRetransmissions, H223AnnexCArqParameters_numberOfRetransmissions_choice, "numberOfRetransmissions", NULL);
 
        return offset;
 }
@@ -11668,9 +10589,9 @@ dissect_h245_H223AnnexCArqParameters_numberOfRetransmissions(tvbuff_t *tvb, int
 
 
 static per_sequence_t H223AnnexCArqParameters_sequence[] = {
-       { "numberOfRetransmissions", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numberOfRetransmissions", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AnnexCArqParameters_numberOfRetransmissions },
-       { "sendBufferSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sendBufferSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sendBufferSize },
        { NULL, 0, 0, NULL }
 };
@@ -11693,18 +10614,18 @@ static const value_string H223AL1MParameters_arqType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL1MParameters_arqType_choice[] = {
-       {  0, "noArq", EXTENSION_ROOT, 
+       {  0, "noArq", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "typeIArq", EXTENSION_ROOT, 
+       {  1, "typeIArq", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223AnnexCArqParameters },
-       {  2, "typeIIArq", EXTENSION_ROOT, 
+       {  2, "typeIIArq", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223AnnexCArqParameters },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL1MParameters_arqType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_arqType, ett_h245_H223AL1MParameters_arqType, H223AL1MParameters_arqType_choice, "arqType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL1MParameters_arqType, ett_h245_H223AL1MParameters_arqType, H223AL1MParameters_arqType_choice, "arqType", NULL);
 
        return offset;
 }
@@ -11719,18 +10640,18 @@ static const value_string H223AL3MParameters_arqType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223AL3MParameters_arqType_choice[] = {
-       {  0, "noArq", EXTENSION_ROOT, 
+       {  0, "noArq", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "typeIArq", EXTENSION_ROOT,
+       {  1, "typeIArq", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223AnnexCArqParameters },
-       {  2, "typeIIArq", EXTENSION_ROOT,
+       {  2, "typeIIArq", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223AnnexCArqParameters },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223AL3MParameters_arqType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL3MParameters_arqType, ett_h245_H223AL3MParameters_arqType, H223AL3MParameters_arqType_choice, "arqType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223AL3MParameters_arqType, ett_h245_H223AL3MParameters_arqType, H223AL3MParameters_arqType_choice, "arqType", NULL);
 
        return offset;
 }
@@ -11740,21 +10661,21 @@ dissect_h245_H223AL3MParameters_arqType(tvbuff_t *tvb, int offset, packet_info *
 
 
 static per_sequence_t H223AL1MParameters_sequence[] = {
-       { "transferMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "transferMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL1MParameters_transferMode },
-       { "headerFEC", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "headerFEC", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL1MParameters_headerFEC },
-       { "crcLength", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "crcLength", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL1MParameters_crcLength },
-       { "rcpcCodeRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "rcpcCodeRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_rcpcCodeRate },
-       { "arqType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "arqType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL1MParameters_arqType },
-       { "alpduInterleaving", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "alpduInterleaving", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alpduInterleaving },
-       { "alsduSplitting", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "alsduSplitting", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alsduSplitting },
-       { "rsCodeCorrection", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "rsCodeCorrection", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_rsCodeCorrection },
        { NULL, 0, 0, NULL }
 };
@@ -11770,17 +10691,17 @@ dissect_h245_H223AL1MParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t H223AL3MParameters_sequence[] = {
-       { "headerFormat", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "headerFormat", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL3MParameters_headerFormat },
-       { "crcLength", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "crcLength", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL3MParameters_crcLength },
-       { "rcpcCodeRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "rcpcCodeRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_rcpcCodeRate },
-       { "arqType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "arqType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223AL3MParameters_arqType },
-       { "alpduInterleaving", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "alpduInterleaving", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alpduInterleaving },
-       { "rsCodeCorrection", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "rsCodeCorrection", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_rsCodeCorrection },
        { NULL, 0, 0, NULL }
 };
@@ -11799,9 +10720,9 @@ dissect_h245_H223AL3MParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_windowSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_windowSize, 1, 127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11810,9 +10731,9 @@ dissect_h245_windowSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 
 
 static per_sequence_t V76LogicalChannelParameters_mode_eRM_sequence[] = {
-       { "windowSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "windowSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_windowSize },
-       { "recovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "recovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_V76LogicalChannelParameters_mode_eRM_recovery },
        { NULL, 0, 0, NULL }
 };
@@ -11832,16 +10753,16 @@ static const value_string V76LogicalChannelParameters_mode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t V76LogicalChannelParameters_mode_choice[] = {
-       {  0, "eRM", EXTENSION_ROOT, 
+       {  0, "eRM", ASN1_EXTENSION_ROOT,
                        dissect_h245_V76LogicalChannelParameters_mode_eRM },
-       {  1, "uNERM", EXTENSION_ROOT, 
+       {  1, "uNERM", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_V76LogicalChannelParameters_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76LogicalChannelParameters_mode, ett_h245_V76LogicalChannelParameters_mode, V76LogicalChannelParameters_mode_choice, "mode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_V76LogicalChannelParameters_mode, ett_h245_V76LogicalChannelParameters_mode, V76LogicalChannelParameters_mode_choice, "mode", NULL);
 
        return offset;
 }
@@ -11852,9 +10773,9 @@ dissect_h245_V76LogicalChannelParameters_mode(tvbuff_t *tvb, int offset, packet_
 static int
 dissect_h245_n401(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_n401, 1, 4095,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11864,11 +10785,11 @@ dissect_h245_n401(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
 
 
 static per_sequence_t V76HDLCParameters_sequence[] = {
-       { "crcLength", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "crcLength", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CRCLength },
-       { "n401", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "n401", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_n401 },
-       { "loopbackTestProcedure", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "loopbackTestProcedure", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_loopbackTestProcedure },
        { NULL, 0, 0, NULL }
 };
@@ -11884,15 +10805,15 @@ dissect_h245_V76HDLCParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t V76LogicalChannelParameters_sequence[] = {
-       { "hdlcParameters", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "hdlcParameters", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_V76HDLCParameters },
-       { "suspendResume", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "suspendResume", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_V76LogicalChannelParameters_suspendResume },
-       { "uIH", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "uIH", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_uIH },
-       { "mode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_V76LogicalChannelParameters_mode },
-       { "v75Parameters", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "v75Parameters", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_V75Parameters },
        { NULL, 0, 0, NULL }
 };
@@ -11909,9 +10830,9 @@ dissect_h245_V76LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_sessionID_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sessionID_0_255, 0, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11921,9 +10842,9 @@ dissect_h245_sessionID_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_sessionID_1_255(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_sessionID_1_255, 1, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11934,9 +10855,9 @@ dissect_h245_sessionID_1_255(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_associatedSessionID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
                tree, hf_h245_associatedSessionID, 1, 255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11949,7 +10870,7 @@ dissect_h245_payloadType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_payloadType,  0,  127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11962,7 +10883,7 @@ dissect_h245_protectedSessionID(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_protectedSessionID,  1,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11974,7 +10895,7 @@ dissect_h245_protectedPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo,
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_protectedPayloadType,  0,  127,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -11983,9 +10904,9 @@ dissect_h245_protectedPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t FECData_rfc2733_mode_separateStream_differentPort_sequence[] = {
-       { "protectedSessionID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "protectedSessionID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_protectedSessionID },
-       { "protectedPayloadType", EXTENSION_ROOT, OPTIONAL,
+       { "protectedPayloadType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_protectedPayloadType },
        { NULL, 0, 0, NULL }
 };
@@ -12001,7 +10922,7 @@ dissect_h245_FECData_rfc2733_mode_separateStream_differentPort(tvbuff_t *tvb, in
 
 
 static per_sequence_t FECData_rfc2733_mode_separateStream_samePort_sequence[] = {
-       { "protectedPayloadType", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "protectedPayloadType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_protectedPayloadType },
        { NULL, 0, 0, NULL }
 };
@@ -12021,16 +10942,16 @@ static const value_string FECData_rfc2733_mode_separateStream_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FECData_rfc2733_mode_separateStream_choice[] = {
-       {  0, "differentPort", EXTENSION_ROOT, 
+       {  0, "differentPort", ASN1_EXTENSION_ROOT,
                dissect_h245_FECData_rfc2733_mode_separateStream_differentPort },
-       {  1, "samePort", EXTENSION_ROOT,
+       {  1, "samePort", ASN1_EXTENSION_ROOT,
                dissect_h245_FECData_rfc2733_mode_separateStream_samePort },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FECData_rfc2733_mode_separateStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECData_rfc2733_mode_separateStream, ett_h245_FECData_rfc2733_mode_separateStream, FECData_rfc2733_mode_separateStream_choice, "separateStream");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECData_rfc2733_mode_separateStream, ett_h245_FECData_rfc2733_mode_separateStream, FECData_rfc2733_mode_separateStream_choice, "separateStream", NULL);
 
        return offset;
 }
@@ -12044,16 +10965,16 @@ static const value_string FECData_rfc2733_mode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FECData_rfc2733_mode_choice[] = {
-       {  0, "redundancyEncoding", EXTENSION_ROOT, 
+       {  0, "redundancyEncoding", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "separateStream", EXTENSION_ROOT,
+       {  1, "separateStream", ASN1_EXTENSION_ROOT,
                        dissect_h245_FECData_rfc2733_mode_separateStream },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FECData_rfc2733_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECData_rfc2733_mode, ett_h245_FECData_rfc2733_mode, FECData_rfc2733_mode_choice, "mode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECData_rfc2733_mode, ett_h245_FECData_rfc2733_mode, FECData_rfc2733_mode_choice, "mode", NULL);
 
        return offset;
 }
@@ -12062,7 +10983,7 @@ dissect_h245_FECData_rfc2733_mode(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t FECData_rfc2733_sequence[] = {
-       { "mode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "mode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FECData_rfc2733_mode },
        { NULL, 0, 0, NULL }
 };
@@ -12082,14 +11003,14 @@ static const value_string FECData_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FECData_choice[] = {
-       {  0, "rfc2733", NO_EXTENSIONS,
+       {  0, "rfc2733", ASN1_NO_EXTENSIONS,
                dissect_h245_FECData_rfc2733 },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FECData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECData, ett_h245_FECData, FECData_choice, "FECData");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECData, ett_h245_FECData, FECData_choice, "FECData", NULL);
 
        return offset;
 }
@@ -12098,9 +11019,9 @@ dissect_h245_FECData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 
 
 static per_sequence_t FECMode_rfc2733Mode_mode_separateStream_differentPort_sequence[] = {
-       { "protectedSessionID", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "protectedSessionID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_protectedSessionID },
-       { "protectedPayloadType", EXTENSION_ROOT, OPTIONAL,
+       { "protectedPayloadType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_protectedPayloadType },
        { NULL, 0, 0, NULL }
 };
@@ -12120,7 +11041,7 @@ dissect_h245_tsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_tsapIdentifier,  0,  65535,
-               NULL, NULL);
+               &ipv4_port, NULL, FALSE);
 
        return offset;
 }
@@ -12132,7 +11053,7 @@ dissect_h245_synchFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_synchFlag,  0,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12145,7 +11066,7 @@ dissect_h245_finite_1_65535(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_finite_1_65535,  1,  65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12159,16 +11080,16 @@ static const value_string MultiplexElement_repeatCount_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultiplexElement_repeatCount_choice[] = {
-       {  0, "finite", NO_EXTENSIONS,
+       {  0, "finite", ASN1_NO_EXTENSIONS,
                        dissect_h245_finite_1_65535 },
-       {  1, "untilClosingFlag", NO_EXTENSIONS, 
+       {  1, "untilClosingFlag", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultiplexElement_repeatCount(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexElement_repeatCount, ett_h245_MultiplexElement_repeatCount, MultiplexElement_repeatCount_choice, "repeatCount");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexElement_repeatCount, ett_h245_MultiplexElement_repeatCount, MultiplexElement_repeatCount_choice, "repeatCount", NULL);
 
        return offset;
 }
@@ -12181,7 +11102,7 @@ dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *p
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_MultiplexTableEntryNumber,  1,  15,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12190,9 +11111,9 @@ dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t MultiplexEntryRejectionDescriptions_sequence[] = {
-       { "multiplexTableEntryNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexTableEntryNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexTableEntryNumber },
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexEntryRejectionDescriptions_cause },
        { NULL, 0, 0, NULL }
 };
@@ -12208,9 +11129,9 @@ dissect_h245_MultiplexEntryRejectionDescriptions(tvbuff_t *tvb, int offset, pack
 
 
 static per_sequence_t RequestMultiplexEntryRejectionDescriptions_sequence[] = {
-       { "multiplexTableEntryNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexTableEntryNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexTableEntryNumber },
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RequestMultiplexEntryRejectionDescriptions_cause},
        { NULL, 0, 0, NULL }
 };
@@ -12230,7 +11151,7 @@ dissect_h245_dataModeBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_dataModeBitRate,  0,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12242,7 +11163,7 @@ dissect_h245_sessionDependency(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_sessionDependency,  1,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12254,7 +11175,7 @@ dissect_h245_sRandom(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_sRandom,  1,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12266,7 +11187,7 @@ dissect_h245_McuNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_McuNumber,  0,  192,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12279,7 +11200,7 @@ dissect_h245_TerminalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_TerminalNumber,  0,  192,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12288,9 +11209,9 @@ dissect_h245_TerminalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t TerminalLabel_sequence[] = {
-       { "mcuNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mcuNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_McuNumber },
-       { "terminalNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalNumber },
        { NULL, 0, 0, NULL }
 };
@@ -12311,7 +11232,7 @@ dissect_h245_maxNumberOfAdditionalConnections(tvbuff_t *tvb, int offset, packet_
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_maxNumberOfAdditionalConnections,  1,  65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12320,7 +11241,7 @@ dissect_h245_maxNumberOfAdditionalConnections(tvbuff_t *tvb, int offset, packet_
 
 
 static per_sequence_t MultilinkRequest_callInformation_sequence[] = {
-       { "maxNumberOfAdditionalConnections", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxNumberOfAdditionalConnections", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxNumberOfAdditionalConnections },
        { NULL, 0, 0, NULL }
 };
@@ -12341,7 +11262,7 @@ dissect_h245_requestedInterval(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_requestedInterval,  0,  65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12355,16 +11276,16 @@ static const value_string MultilinkRequest_maximumHeaderInterval_requestType_val
        {  0, NULL }
 };
 static per_choice_t MultilinkRequest_maximumHeaderInterval_requestType_choice[] = {
-       {  0, "currentIntervalInformation", EXTENSION_ROOT, 
+       {  0, "currentIntervalInformation", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "requestedInterval", EXTENSION_ROOT,
+       {  1, "requestedInterval", ASN1_EXTENSION_ROOT,
                        dissect_h245_requestedInterval },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultilinkRequest_maximumHeaderInterval_requestType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkRequest_maximumHeaderInterval_requestType, ett_h245_MultilinkRequest_maximumHeaderInterval_requestType, MultilinkRequest_maximumHeaderInterval_requestType_choice, "requestType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkRequest_maximumHeaderInterval_requestType, ett_h245_MultilinkRequest_maximumHeaderInterval_requestType, MultilinkRequest_maximumHeaderInterval_requestType_choice, "requestType", NULL);
 
        return offset;
 }
@@ -12373,7 +11294,7 @@ dissect_h245_MultilinkRequest_maximumHeaderInterval_requestType(tvbuff_t *tvb, i
 
 
 static per_sequence_t MultilinkRequest_maximumHeaderInterval_sequence[] = {
-       { "requestType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "requestType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MultilinkRequest_maximumHeaderInterval_requestType },
        { NULL, 0, 0, NULL }
 };
@@ -12393,7 +11314,7 @@ dissect_h245_callAssociationNumber(tvbuff_t *tvb, int offset, packet_info *pinfo
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_callAssociationNumber,  0,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12406,7 +11327,7 @@ dissect_h245_currentInterval(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_currentInterval,  0,  65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12414,7 +11335,7 @@ dissect_h245_currentInterval(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 
 
 static per_sequence_t MultilinkResponse_maximumHeaderInterval_sequence[] = {
-       { "currentInterval", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "currentInterval", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_currentInterval },
        { NULL, 0, 0, NULL }
 };
@@ -12434,7 +11355,7 @@ dissect_h245_infoNotAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_infoNotAvailable,  1,  65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12447,7 +11368,7 @@ dissect_h245_channelTag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_channelTag,  0,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12460,7 +11381,7 @@ dissect_h245_ConnectionIDsequenceNumber(tvbuff_t *tvb, int offset, packet_info *
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_ConnectionIDsequenceNumber,  0,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12470,9 +11391,9 @@ dissect_h245_ConnectionIDsequenceNumber(tvbuff_t *tvb, int offset, packet_info *
 
 
 static per_sequence_t ConnectionIdentifier_sequence[] = {
-       { "channelTag", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "channelTag", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_channelTag },
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ConnectionIDsequenceNumber },
        { NULL, 0, 0, NULL }
 };
@@ -12488,7 +11409,7 @@ dissect_h245_ConnectionIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t MultilinkRequest_removeConnection_sequence[] = {
-       { "connectionIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "connectionIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ConnectionIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -12504,7 +11425,7 @@ dissect_h245_MultilinkRequest_removeConnection(tvbuff_t *tvb, int offset, packet
 
 
 static per_sequence_t MultilinkResponse_removeConnection_sequence[] = {
-       { "connectionIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "connectionIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ConnectionIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -12520,7 +11441,7 @@ dissect_h245_MultilinkResponse_removeConnection(tvbuff_t *tvb, int offset, packe
 
 
 static per_sequence_t MultilinkIndication_excessiveError_sequence[] = {
-       { "connectionIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "connectionIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ConnectionIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -12540,7 +11461,7 @@ dissect_h245_MaximumBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_MaximumBitRate,  0,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12548,11 +11469,11 @@ dissect_h245_MaximumBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t LogicalChannelRateRequest_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "maximumBitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumBitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MaximumBitRate },
        { NULL, 0, 0, NULL }
 };
@@ -12567,11 +11488,11 @@ dissect_h245_LogicalChannelRateRequest(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t LogicalChannelRateAck_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "maximumBitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumBitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MaximumBitRate },
        { NULL, 0, 0, NULL }
 };
@@ -12587,13 +11508,13 @@ dissect_h245_LogicalChannelRateAck(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t LogicalChannelRateReject_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_SequenceNumber },
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelNumber },
-       { "rejectReason", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelRateRejectReason },
-       { "currentMaximumBitRate", EXTENSION_ROOT, OPTIONAL,
+       { "currentMaximumBitRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                        dissect_h245_MaximumBitRate },
        { NULL, 0, 0, NULL }
 };
@@ -12628,7 +11549,7 @@ dissect_h245_maximumBitRate_0_16777215(tvbuff_t *tvb, int offset, packet_info *p
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_maximumBitRate_0_16777215,  0,  16777215,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12641,16 +11562,16 @@ static const value_string FlowControlCommand_restriction_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FlowControlCommand_restriction_choice[] = {
-       {  0, "maximumBitRate", NO_EXTENSIONS,
+       {  0, "maximumBitRate", ASN1_NO_EXTENSIONS,
                        dissect_h245_maximumBitRate_0_16777215 },
-       {  1, "noRestriction", NO_EXTENSIONS, 
+       {  1, "noRestriction", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FlowControlCommand_restriction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlCommand_restriction, ett_h245_FlowControlCommand_restriction, FlowControlCommand_restriction_choice, "restriction");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlCommand_restriction, ett_h245_FlowControlCommand_restriction, FlowControlCommand_restriction_choice, "restriction", NULL);
 
        return offset;
 }
@@ -12664,16 +11585,16 @@ static const value_string FlowControlIndication_restriction_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FlowControlIndication_restriction_choice[] = {
-       {  0, "maximumBitRate", NO_EXTENSIONS,
+       {  0, "maximumBitRate", ASN1_NO_EXTENSIONS,
                        dissect_h245_maximumBitRate_0_16777215 },
-       {  1, "noRestrictions", NO_EXTENSIONS, 
+       {  1, "noRestrictions", ASN1_NO_EXTENSIONS,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FlowControlIndication_restriction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlIndication_restriction, ett_h245_FlowControlIndication_restriction, FlowControlIndication_restriction_choice, "restriction");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FlowControlIndication_restriction, ett_h245_FlowControlIndication_restriction, FlowControlIndication_restriction_choice, "restriction", NULL);
 
        return offset;
 }
@@ -12682,9 +11603,9 @@ dissect_h245_FlowControlIndication_restriction(tvbuff_t *tvb, int offset, packet
 
 
 static per_sequence_t FlowControlCommand_sequence[] = {
-       { "scope", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "scope", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FlowControlCommand_scope },
-       { "restriction", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "restriction", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FlowControlCommand_restriction },
        { NULL, 0, 0, NULL }
 };
@@ -12699,9 +11620,9 @@ dissect_h245_FlowControlCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t FlowControlIndication_sequence[] = {
-       { "scope", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "scope", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FlowControlIndication_scope },
-       { "restriction", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "restriction", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FlowControlIndication_restriction },
        { NULL, 0, 0, NULL }
 };
@@ -12721,7 +11642,7 @@ dissect_h245_firstGOB_0_17(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_firstGOB_0_17,  0,  17,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12733,7 +11654,7 @@ dissect_h245_numberOfGOBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_numberOfGOBs,  1,  18,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12742,9 +11663,9 @@ dissect_h245_numberOfGOBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 
 
 static per_sequence_t MiscellaneousCommand_type_videoFastUpdateGOB_sequence[] = {
-       { "firstGOB", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "firstGOB", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_firstGOB_0_17 },
-       { "numberOfGOBs", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "numberOfGOBs", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfGOBs },
        { NULL, 0, 0, NULL }
 };
@@ -12764,7 +11685,7 @@ dissect_h245_videoTemporalSpatialTradeOff(tvbuff_t *tvb, int offset, packet_info
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_videoTemporalSpatialTradeOff,  0,  31,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12776,7 +11697,7 @@ dissect_h245_firstGOB_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_firstGOB_0_255,  0,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12788,7 +11709,7 @@ dissect_h245_firstMB_1_8192(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_firstMB_1_8192,  1,  8192,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12800,7 +11721,7 @@ dissect_h245_firstMB_1_9216(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_firstMB_1_9216,  1,  9216,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12813,7 +11734,7 @@ dissect_h245_numberOfMBs_1_8192(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_numberOfMBs_1_8192,  1,  8192,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12826,7 +11747,7 @@ dissect_h245_numberOfMBs_1_9216(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_numberOfMBs_1_9216,  1,  9216,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12835,11 +11756,11 @@ dissect_h245_numberOfMBs_1_9216(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t MiscellaneousCommand_type_videoFastUpdateMB_sequence[] = {
-       { "firstGOB", EXTENSION_ROOT, OPTIONAL,
+       { "firstGOB", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_firstGOB_0_255 },
-       { "firstMB", EXTENSION_ROOT, OPTIONAL,
+       { "firstMB", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_firstMB_1_8192 },
-       { "numberOfMBs", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numberOfMBs", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfMBs_1_8192 },
        { NULL, 0, 0, NULL }
 };
@@ -12859,7 +11780,7 @@ dissect_h245_maxH223MUXPDUsize(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_maxH223MUXPDUsize,  1,  65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12872,7 +11793,7 @@ dissect_h245_temporalReference_0_1023(tvbuff_t *tvb, int offset, packet_info *pi
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_temporalReference_0_1023,  0,  1023,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12887,7 +11808,7 @@ dissect_h245_temporalReference_0_255(tvbuff_t *tvb, int offset, packet_info *pin
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_temporalReference_0_255,  0,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12896,11 +11817,11 @@ dissect_h245_temporalReference_0_255(tvbuff_t *tvb, int offset, packet_info *pin
 
 
 static per_sequence_t MiscellaneousIndication_type_videoNotDecodedMBs_sequence[] = {
-       { "firstMB", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "firstMB", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_firstMB_1_8192 },
-       { "numberOfMBs", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numberOfMBs", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfMBs_1_8192 },
-       { "temporalReference", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "temporalReference", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_temporalReference_0_255 },
        { NULL, 0, 0, NULL }
 };
@@ -12917,11 +11838,11 @@ dissect_h245_MiscellaneousIndication_type_videoNotDecodedMBs(tvbuff_t *tvb, int
 
 
 static per_sequence_t MiscellaneousCommand_type_videoBadMBs_sequence[] = {
-       { "firstMB", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "firstMB", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_firstMB_1_9216 },
-       { "numberOfMBs", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numberOfMBs", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfMBs_1_9216 },
-       { "temporalReference", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "temporalReference", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_temporalReference_0_1023 },
        { NULL, 0, 0, NULL }
 };
@@ -12941,7 +11862,7 @@ dissect_h245_pictureNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_pictureNumber,  0,  1023,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12954,7 +11875,7 @@ dissect_h245_longTermPictureIndex(tvbuff_t *tvb, int offset, packet_info *pinfo,
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_longTermPictureIndex,  0,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -12968,16 +11889,16 @@ static const value_string PictureReference_vals[] = {
        {  0, NULL }
 };
 static per_choice_t PictureReference_choice[] = {
-       {  0, "pictureNumber", EXTENSION_ROOT,
+       {  0, "pictureNumber", ASN1_EXTENSION_ROOT,
                dissect_h245_pictureNumber },
-       {  1, "longTermPictureIndex", EXTENSION_ROOT,
+       {  1, "longTermPictureIndex", ASN1_EXTENSION_ROOT,
                dissect_h245_longTermPictureIndex },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_PictureReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_PictureReference, ett_h245_PictureReference, PictureReference_choice, "PictureReference");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_PictureReference, ett_h245_PictureReference, PictureReference_choice, "PictureReference", NULL);
 
        return offset;
 }
@@ -12986,11 +11907,11 @@ dissect_h245_PictureReference(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t MiscellaneousCommand_type_lostPartialPicture_sequence[] = {
-       { "pictureReference", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "pictureReference", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_PictureReference },
-       { "firstMB", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "firstMB", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_firstMB_1_9216 },
-       { "numberOfMBs", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numberOfMBs", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfMBs_1_9216 },
        { NULL, 0, 0, NULL }
 };
@@ -13010,7 +11931,7 @@ dissect_h245_sampleSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_sampleSize,  1,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13022,7 +11943,7 @@ dissect_h245_samplesPerFrame(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_samplesPerFrame,  1,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13030,9 +11951,9 @@ dissect_h245_samplesPerFrame(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 
 
 static per_sequence_t MobileMultilinkReconfigurationIndication_sequence[] = {
-       { "sampleSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sampleSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sampleSize },
-       { "samplesPerFrame", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "samplesPerFrame", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_samplesPerFrame },
        { NULL, 0, 0, NULL }
 };
@@ -13048,11 +11969,11 @@ dissect_h245_MobileMultilinkReconfigurationIndication(tvbuff_t *tvb, int offset,
 
 
 static per_sequence_t MobileMultilinkReconfigurationCommand_sequence[] = {
-       { "sampleSize", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sampleSize", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sampleSize },
-       { "samplesPerFrame", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "samplesPerFrame", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_samplesPerFrame },
-       { "status", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "status", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MobileMultilinkReconfigurationCommand_status },
        { NULL, 0, 0, NULL }
 };
@@ -13072,7 +11993,7 @@ dissect_h245_sbeNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_sbeNumber,  0,  9,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13088,7 +12009,7 @@ dissect_h245_subPictureNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_subPictureNumber,  0,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13097,9 +12018,9 @@ dissect_h245_subPictureNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t TerminalYouAreSeeingInSubPictureNumber_sequence[] = {
-       { "terminalNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalNumber },
-       { "subPictureNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "subPictureNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_subPictureNumber },
        { NULL, 0, 0, NULL }
 };
@@ -13118,7 +12039,7 @@ dissect_h245_compositionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_compositionNumber,  0,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13127,7 +12048,7 @@ dissect_h245_compositionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t VideoIndicateCompose_sequence[] = {
-       { "compositionNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "compositionNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_compositionNumber },
        { NULL, 0, 0, NULL }
 };
@@ -13160,40 +12081,40 @@ static const value_string ConferenceIndication_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ConferenceIndication_choice[] = {
-       {  0, "sbeNumber", EXTENSION_ROOT,
+       {  0, "sbeNumber", ASN1_EXTENSION_ROOT,
                        dissect_h245_sbeNumber },
-       {  1, "terminalNumberAssign", EXTENSION_ROOT,
+       {  1, "terminalNumberAssign", ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalLabel },
-       {  2, "terminalJoinedConference", EXTENSION_ROOT,
+       {  2, "terminalJoinedConference", ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalLabel },
-       {  3, "terminalLeftConference", EXTENSION_ROOT,
+       {  3, "terminalLeftConference", ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalLabel },
-       {  4, "seenByAtLeastOneOther", EXTENSION_ROOT, 
+       {  4, "seenByAtLeastOneOther", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "cancelSeenByAtLeastOneOther", EXTENSION_ROOT, 
+       {  5, "cancelSeenByAtLeastOneOther", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "seenByAll", EXTENSION_ROOT, 
+       {  6, "seenByAll", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  7, "cancelSeenByAll", EXTENSION_ROOT, 
+       {  7, "cancelSeenByAll", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  8, "terminalAreYouSeeing", EXTENSION_ROOT,
+       {  8, "terminalAreYouSeeing", ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalLabel },
-       {  9, "requestForFloor", EXTENSION_ROOT,
+       {  9, "requestForFloor", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 10, "withdrawChairToken", NOT_EXTENSION_ROOT, 
+       { 10, "withdrawChairToken", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 11, "floorRequested", NOT_EXTENSION_ROOT,
+       { 11, "floorRequested", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_TerminalLabel },
-       { 12, "terminalAreYouSeeingInSubPictureNumber", NOT_EXTENSION_ROOT,
+       { 12, "terminalAreYouSeeingInSubPictureNumber", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_TerminalYouAreSeeingInSubPictureNumber },
-       { 13, "videoIndicateCompose", NOT_EXTENSION_ROOT,
+       { 13, "videoIndicateCompose", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_VideoIndicateCompose },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceIndication, ett_h245_ConferenceIndication, ConferenceIndication_choice, "ConferenceIndication");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceIndication, ett_h245_ConferenceIndication, ConferenceIndication_choice, "ConferenceIndication", NULL);
 
        return offset;
 }
@@ -13206,7 +12127,7 @@ dissect_h245_estimatedReceivedJitterMantissa(tvbuff_t *tvb, int offset, packet_i
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_estimatedReceivedJitterMantissa,  0,  3,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13219,7 +12140,7 @@ dissect_h245_estimatedReceivedJitterExponent(tvbuff_t *tvb, int offset, packet_i
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_estimatedReceivedJitterExponent,  0,  7,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13231,7 +12152,7 @@ dissect_h245_skippedFrameCount(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_skippedFrameCount,  0,  15,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13244,7 +12165,7 @@ dissect_h245_additionalDecoderBuffer(tvbuff_t *tvb, int offset, packet_info *pin
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_additionalDecoderBuffer,  0,  262143,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13253,15 +12174,15 @@ dissect_h245_additionalDecoderBuffer(tvbuff_t *tvb, int offset, packet_info *pin
 
 
 static per_sequence_t JitterIndication_sequence[] = {
-       { "scope", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "scope", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_JitterIndication_scope },
-       { "estimatedReceivedJitterMantissa", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "estimatedReceivedJitterMantissa", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_estimatedReceivedJitterMantissa },
-       { "estimatedReceivedJitterExponent", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "estimatedReceivedJitterExponent", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_estimatedReceivedJitterExponent },
-       { "skippedFrameCount", EXTENSION_ROOT, OPTIONAL,
+       { "skippedFrameCount", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_skippedFrameCount },
-       { "additionalDecoderBuffer", EXTENSION_ROOT, OPTIONAL,
+       { "additionalDecoderBuffer", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_additionalDecoderBuffer },
        { NULL, 0, 0, NULL }
 };
@@ -13281,7 +12202,7 @@ dissect_h245_skew(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_skew,  0,  4095,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13289,11 +12210,11 @@ dissect_h245_skew(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
 
 
 static per_sequence_t H223SkewIndication_sequence[] = {
-       { "logicalChannelNumber1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelNumber },
-       { "logicalChannelNumber2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelNumber },
-       { "skew", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "skew", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_skew },
        { NULL, 0, 0, NULL }
 };
@@ -13313,7 +12234,7 @@ dissect_h245_maximumSkew(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_maximumSkew,  0,  4095,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13322,11 +12243,11 @@ dissect_h245_maximumSkew(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 
 
 static per_sequence_t H2250MaximumSkewIndication_sequence[] = {
-       { "logicalChannelNumber1", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber1", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelNumber },
-       { "logicalChannelNumber2", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_LogicalChannelNumber },
-       { "maximumSkew", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumSkew", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                        dissect_h245_maximumSkew },
        { NULL, 0, 0, NULL }
 };
@@ -13346,7 +12267,7 @@ dissect_h245_duration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_duration,  1,  65535,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13354,9 +12275,9 @@ dissect_h245_duration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 
 static per_sequence_t UserInputIndication_signalUpdate_sequence[] = {
-       { "duration", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "duration", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_duration },
-       { "rtp", EXTENSION_ROOT, OPTIONAL, 
+       { "rtp", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_UserInputIndication_signalUpdate_rtp },
        { NULL, 0, 0, NULL }
 };
@@ -13376,7 +12297,7 @@ dissect_h245_timestamp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_timestamp,  0,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13388,7 +12309,7 @@ dissect_h245_expirationTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_expirationTime,  0,  4294967295UL,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -13397,11 +12318,11 @@ dissect_h245_expirationTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t UserInputIndication_signal_rtp_sequence[] = {
-       { "timestamp", EXTENSION_ROOT, OPTIONAL,
+       { "timestamp", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_timestamp },
-       { "expirationTime", EXTENSION_ROOT, OPTIONAL,
+       { "expirationTime", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_expirationTime },
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -13419,7 +12340,7 @@ dissect_h245_UserInputIndication_signal_rtp(tvbuff_t *tvb, int offset, packet_in
 
 
 static per_sequence_t MasterSlaveDeterminationRelease_sequence[] = {
-       { NULL, EXTENSION_ROOT, 0, NULL }
+       { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
 };
 static int
 dissect_h245_MasterSlaveDeterminationRelease(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -13434,7 +12355,7 @@ dissect_h245_MasterSlaveDeterminationRelease(tvbuff_t *tvb, int offset, packet_i
 
 
 static per_sequence_t MultilinkIndication_crcDesired_sequence[] = {
-       { NULL, EXTENSION_ROOT, 0, NULL }
+       { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
 };
 static int
 dissect_h245_MultilinkIndication_crcDesired(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -13451,7 +12372,7 @@ dissect_h245_MultilinkIndication_crcDesired(tvbuff_t *tvb, int offset, packet_in
 static int
 dissect_h245_object(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_object);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_object, object);
        return offset;
 }
 
@@ -13460,7 +12381,7 @@ dissect_h245_object(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
 static int
 dissect_h245_protocolIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_protocolIdentifier);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_protocolIdentifier, NULL);
        return offset;
 }
 
@@ -13470,7 +12391,7 @@ dissect_h245_protocolIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_algorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_algorithm);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_algorithm, NULL);
        return offset;
 }
 
@@ -13480,7 +12401,7 @@ dissect_h245_algorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_antiSpamAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_antiSpamAlgorithm);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_antiSpamAlgorithm, NULL);
        return offset;
 }
 
@@ -13490,7 +12411,7 @@ dissect_h245_antiSpamAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_standard_object(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_standard_object);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_standard_object, NULL);
        return offset;
 }
 
@@ -13499,7 +12420,7 @@ dissect_h245_standard_object(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_oid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_oid);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_oid, NULL);
        return offset;
 }
 
@@ -13509,7 +12430,7 @@ dissect_h245_oid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree
 static int
 dissect_h245_escrowID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_escrowID);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_escrowID, NULL);
        return offset;
 }
 
@@ -13519,38 +12440,64 @@ dissect_h245_escrowID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_field(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_field);
+       offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h245_field, NULL);
        return offset;
 }
 
 
 
 
+/* dissect_h245_NonStandardIdentifier is used for H.245 */
+
 static const value_string NonStandardIdentifier_vals[] = {
        { 0,    "object" },
        { 1,    "h221NonStandard" },
        { 0, NULL }
 };
 static per_choice_t NonStandardIdentifier_choice[] = {
-       { 0,    "object", NO_EXTENSIONS,
+       { 0,    "object", ASN1_NO_EXTENSIONS,
                dissect_h245_object },
-       { 1,    "h221NonStandard", NO_EXTENSIONS, 
-               dissect_h245_NonStandardIdentifier_h221NonStandard },
+       { 1,    "h221NonStandard", ASN1_NO_EXTENSIONS,
+               dissect_h245_h221NonStandard },
        { 0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NonStandardIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NonStandardIdentifier, ett_h245_NonStandardIdentifier, NonStandardIdentifier_choice, "NonStandardIdentifier");
+       guint32 value;
+
+       *object = '\0';
+       h221NonStandard = 0;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NonStandardIdentifier, ett_h245_NonStandardIdentifier, NonStandardIdentifier_choice, "NonStandardIdentifier", &value);
+
+       switch (value) {
+               case 0 :  /* object */
+                       nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, object);
+                       break;
+               case 1 :  /* h221NonStandard */
+                       nsp_handle = dissector_get_port_handle(nsp_h221_dissector_table, h221NonStandard);
+                       break;
+               default :
+                       nsp_handle = NULL;
+    }
 
        return offset;
 }
 
-
 static int
 dissect_h245_NonStandardParameterData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_NonStandardParameterData, -1, -1);
+       guint32 value_offset, value_len;
+       tvbuff_t *next_tvb;
+
+       if (nsp_handle) {
+               offset=dissect_per_octet_string(tvb, offset, pinfo, tree, -1, -1, -1, &value_offset, &value_len);
+               next_tvb = tvb_new_subset(tvb, value_offset, value_len, value_len);
+               call_dissector(nsp_handle, next_tvb, pinfo, tree);
+       } else {
+               offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_NonStandardParameterData, -1, -1, NULL, NULL);
+       }
        return offset;
 }
 
@@ -13560,7 +12507,7 @@ dissect_h245_NonStandardParameterData(tvbuff_t *tvb, int offset, packet_info *pi
 static int
 dissect_h245_nlpidData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nlpidData, -1, -1);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nlpidData, -1, -1, NULL, NULL);
        return offset;
 }
 
@@ -13570,7 +12517,7 @@ dissect_h245_nlpidData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_nonCollapsingRaw(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nonCollapsingRaw, -1, -1);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nonCollapsingRaw, -1, -1, NULL, NULL);
        return offset;
 }
 
@@ -13579,7 +12526,7 @@ dissect_h245_nonCollapsingRaw(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 static int
 dissect_h245_uuid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_uuid, 16, 16);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_uuid, 16, 16, NULL, NULL);
        return offset;
 }
 
@@ -13589,7 +12536,7 @@ dissect_h245_uuid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
 static int
 dissect_h245_octetString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_octetString, -1, -1);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_octetString, -1, -1, NULL, NULL);
        return offset;
 }
 
@@ -13599,7 +12546,7 @@ dissect_h245_octetString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_externalReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_externalReference, 1, 255);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_externalReference, 1, 255, NULL, NULL);
        return offset;
 }
 
@@ -13609,7 +12556,7 @@ dissect_h245_externalReference(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_nsapAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nsapAddress, 1, 20);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nsapAddress, 1, 20, NULL, NULL);
        return offset;
 }
 
@@ -13619,7 +12566,7 @@ dissect_h245_nsapAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_subaddress_1_20(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_subaddress_1_20, 1, 20);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_subaddress_1_20, 1, 20, NULL, NULL);
        return offset;
 }
 
@@ -13629,7 +12576,7 @@ dissect_h245_subaddress_1_20(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_programDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_programDescriptors, -1, -1);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_programDescriptors, -1, -1, NULL, NULL);
        return offset;
 }
 
@@ -13638,7 +12585,7 @@ dissect_h245_programDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 static int
 dissect_h245_streamDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_streamDescriptors, -1, -1);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_streamDescriptors, -1, -1, NULL, NULL);
        return offset;
 }
 
@@ -13648,15 +12595,13 @@ dissect_h245_streamDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_ipv4network(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree)
 {
-       guint32 ip;
-
        /* byte aligned */
        if(offset&0x07){
                offset=(offset&0xfffffff8)+8;
        }
-       ip=tvb_get_letohl(tvb, offset>>3);
-       proto_tree_add_ipv4(tree, hf_h245_ipv4network, tvb, offset>>3, 4, ip);
-       
+       tvb_memcpy(tvb, (char *)&ipv4_address, offset>>3, 4);
+       proto_tree_add_ipv4(tree, hf_h245_ipv4network, tvb, offset>>3, 4, ipv4_address);
+
        offset+=32;
        return offset;
 }
@@ -13666,7 +12611,7 @@ dissect_h245_ipv4network(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, prot
 static int
 dissect_h245_ipxNode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ipxNode, 6, 6);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ipxNode, 6, 6, NULL, NULL);
        return offset;
 }
 
@@ -13675,7 +12620,7 @@ dissect_h245_ipxNode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 static int
 dissect_h245_ipxNetnum(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ipxNetnum, 4, 4);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ipxNetnum, 4, 4, NULL, NULL);
        return offset;
 }
 
@@ -13685,7 +12630,7 @@ dissect_h245_ipxNetnum(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_ipv6network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ipv6network, 16, 16);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ipv6network, 16, 16, NULL, NULL);
        return offset;
 }
 
@@ -13694,7 +12639,7 @@ dissect_h245_ipv6network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 static int
 dissect_h245_netBios(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_netBios, 16, 16);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_netBios, 16, 16, NULL, NULL);
        return offset;
 }
 
@@ -13704,7 +12649,7 @@ dissect_h245_netBios(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 static int
 dissect_h245_nsap(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nsap, 1, 20);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_nsap, 1, 20, NULL, NULL);
        return offset;
 }
 
@@ -13714,7 +12659,7 @@ dissect_h245_nsap(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
 static int
 dissect_h245_h235Key(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_h235Key, 1, 65535);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_h235Key, 1, 65535, NULL, NULL);
        return offset;
 }
 
@@ -13723,7 +12668,7 @@ dissect_h245_h235Key(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
 static int
 dissect_h245_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_value, 1, 65535);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_value, 1, 65535, NULL, NULL);
        return offset;
 }
 
@@ -13733,7 +12678,7 @@ dissect_h245_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
 static int
 dissect_h245_certificateResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_certificateResponse, 1, 65535);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_certificateResponse, 1, 65535, NULL, NULL);
        return offset;
 }
 
@@ -13743,7 +12688,7 @@ dissect_h245_certificateResponse(tvbuff_t *tvb, int offset, packet_info *pinfo,
 static int
 dissect_h245_TerminalID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_TerminalID, 1, 128);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_TerminalID, 1, 128, NULL, NULL);
        return offset;
 }
 
@@ -13752,7 +12697,7 @@ dissect_h245_TerminalID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 static int
 dissect_h245_ConferenceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ConferenceID, 1, 32);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_ConferenceID, 1, 32, NULL, NULL);
        return offset;
 }
 
@@ -13761,7 +12706,7 @@ dissect_h245_ConferenceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_Password(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_Password, 1, 32);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_Password, 1, 32, NULL, NULL);
        return offset;
 }
 
@@ -13771,7 +12716,7 @@ dissect_h245_Password(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_encryptionSE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_encryptionSE, -1, -1);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_encryptionSE, -1, -1, NULL, NULL);
        return offset;
 }
 
@@ -13780,7 +12725,7 @@ dissect_h245_encryptionSE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_conferenceIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_conferenceIdentifier, 1, 16);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_conferenceIdentifier, 1, 16, NULL, NULL);
        return offset;
 }
 
@@ -13790,7 +12735,7 @@ dissect_h245_conferenceIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo,
 static int
 dissect_h245_returnedFunction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_returnedFunction, -1, -1);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_returnedFunction, -1, -1, NULL, NULL);
        return offset;
 }
 
@@ -13800,7 +12745,7 @@ dissect_h245_returnedFunction(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 static int
 dissect_h245_productNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_productNumber, 1, 256);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_productNumber, 1, 256, NULL, NULL);
        return offset;
 }
 
@@ -13810,7 +12755,7 @@ dissect_h245_productNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 static int
 dissect_h245_versionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_versionNumber, 1, 256);
+       offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h245_versionNumber, 1, 256, NULL, NULL);
        return offset;
 }
 
@@ -13819,15 +12764,15 @@ dissect_h245_versionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t H222LogicalChannelParameters_sequence[] = {
-       { "resourceID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "resourceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_resourceID },
-       { "subChannelID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "subChannelID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_subChannelID },
-       { "pcr-pid", EXTENSION_ROOT, OPTIONAL,
+       { "pcr-pid", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_pcr_pid },
-       { "programDescriptors", EXTENSION_ROOT, OPTIONAL,
+       { "programDescriptors", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_programDescriptors },
-       { "streamDescriptors", EXTENSION_ROOT, OPTIONAL,
+       { "streamDescriptors", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_streamDescriptors },
        { NULL, 0, 0, NULL }
 };
@@ -13844,9 +12789,9 @@ dissect_h245_H222LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t UnicastAddress_iPAddress_sequence[] = {
-       { "network", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "network", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ipv4network },
-       { "tsapIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "tsapIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_tsapIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -13861,11 +12806,11 @@ dissect_h245_UnicastAddress_iPAddress(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t UnicastAddress_iPXAddress_sequence[] = {
-       { "node", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "node", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ipxNode },
-       { "netnum", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "netnum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ipxNetnum },
-       { "tsapIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "tsapIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_tsapIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -13881,9 +12826,9 @@ dissect_h245_UnicastAddress_iPXAddress(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t UnicastAddress_iP6Address_sequence[] = {
-       { "network", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "network", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ipv6network },
-       { "tsapIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "tsapIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_tsapIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -13900,11 +12845,11 @@ dissect_h245_UnicastAddress_iP6Address(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t VendorIdentification_sequence[] = {
-       { "vendor", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "vendor", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NonStandardIdentifier },
-       { "productNumber", EXTENSION_ROOT, OPTIONAL,
+       { "productNumber", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_productNumber },
-       { "versionNumber", EXTENSION_ROOT, OPTIONAL,
+       { "versionNumber", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_versionNumber },
        { NULL, 0, 0, NULL }
 };
@@ -13920,9 +12865,9 @@ dissect_h245_VendorIdentification(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t MulticastAddress_iPAddress_sequence[] = {
-       { "network", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "network", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ipv4network },
-       { "tsapIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "tsapIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_tsapIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -13938,9 +12883,9 @@ dissect_h245_MulticastAddress_iPAddress(tvbuff_t *tvb, int offset, packet_info *
 
 
 static per_sequence_t MulticastAddress_iP6Address_sequence[] = {
-       { "network", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "network", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ipv6network },
-       { "tsapIdentifier", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "tsapIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_tsapIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -13957,9 +12902,9 @@ dissect_h245_MulticastAddress_iP6Address(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t Criteria_sequence[] = {
-       { "field", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "field", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_field },
-       { "value", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "value", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_value },
        { NULL, 0, 0, NULL }
 };
@@ -13975,9 +12920,9 @@ dissect_h245_Criteria(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 
 static per_sequence_t ConferenceResponse_mCterminalIDResponse_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "terminalID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalID },
        { NULL, 0, 0, NULL }
 };
@@ -13993,9 +12938,9 @@ dissect_h245_ConferenceResponse_mCterminalIDResponse(tvbuff_t *tvb, int offset,
 
 
 static per_sequence_t ConferenceResponse_conferenceIDResponse_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "conferenceID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ConferenceID },
        { NULL, 0, 0, NULL }
 };
@@ -14011,9 +12956,9 @@ dissect_h245_ConferenceResponse_conferenceIDResponse(tvbuff_t *tvb, int offset,
 
 
 static per_sequence_t ConferenceResponse_passwordResponse_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "password", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "password", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_Password },
        { NULL, 0, 0, NULL }
 };
@@ -14030,7 +12975,7 @@ dissect_h245_ConferenceResponse_passwordResponse(tvbuff_t *tvb, int offset, pack
 
 
 static per_sequence_t ConferenceResponse_extensionAddressResponse_sequence[] = {
-       { "extensionAddress", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "extensionAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalID },
        { NULL, 0, 0, NULL }
 };
@@ -14046,9 +12991,9 @@ dissect_h245_ConferenceResponse_extensionAddressResponse(tvbuff_t *tvb, int offs
 
 
 static per_sequence_t ConferenceResponse_chairTokenOwnerResponse_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "terminalID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalID },
        { NULL, 0, 0, NULL }
 };
@@ -14064,9 +13009,9 @@ dissect_h245_ConferenceResponse_chairTokenOwnerResponse(tvbuff_t *tvb, int offse
 
 
 static per_sequence_t ConferenceResponse_terminalCertificateResponse_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "certificateResponse", EXTENSION_ROOT, OPTIONAL,
+       { "certificateResponse", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_certificateResponse },
        { NULL, 0, 0, NULL }
 };
@@ -14082,9 +13027,9 @@ dissect_h245_ConferenceResponse_terminalCertificateResponse(tvbuff_t *tvb, int o
 
 
 static per_sequence_t TerminalInformation_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "terminalID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalID },
        { NULL, 0, 0, NULL }
 };
@@ -14099,7 +13044,7 @@ dissect_h245_TerminalInformation(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t SubstituteConferenceIDCommand_sequence[] = {
-       { "conferenceIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "conferenceIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_conferenceIdentifier },
        { NULL, 0, 0, NULL }
 };
@@ -14126,28 +13071,28 @@ static const value_string ConferenceCommand_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ConferenceCommand_choice[] = {
-       {  0, "broadcastMyLogicalChannel", EXTENSION_ROOT, 
+       {  0, "broadcastMyLogicalChannel", ASN1_EXTENSION_ROOT,
                dissect_h245_LogicalChannelNumber },
-       {  1, "cancelBroadcastMyLogicalChannel", EXTENSION_ROOT, 
+       {  1, "cancelBroadcastMyLogicalChannel", ASN1_EXTENSION_ROOT,
                dissect_h245_LogicalChannelNumber },
-       {  2, "makeTerminalBroadcaster", EXTENSION_ROOT,
+       {  2, "makeTerminalBroadcaster", ASN1_EXTENSION_ROOT,
                dissect_h245_TerminalLabel },
-       {  3, "cancelMakeTerminalBroadcaster", EXTENSION_ROOT, 
+       {  3, "cancelMakeTerminalBroadcaster", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  4, "sendThisSource", EXTENSION_ROOT,
+       {  4, "sendThisSource", ASN1_EXTENSION_ROOT,
                dissect_h245_TerminalLabel },
-       {  5, "cancelSendThisSource", EXTENSION_ROOT, 
+       {  5, "cancelSendThisSource", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  6, "dropConference", EXTENSION_ROOT, 
+       {  6, "dropConference", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  7, "substituteConferenceIDCommand", NOT_EXTENSION_ROOT,
+       {  7, "substituteConferenceIDCommand", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_SubstituteConferenceIDCommand },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceCommand, ett_h245_ConferenceCommand, ConferenceCommand_choice, "ConferenceCommand");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceCommand, ett_h245_ConferenceCommand, ConferenceCommand_choice, "ConferenceCommand", NULL);
 
        return offset;
 }
@@ -14156,9 +13101,9 @@ dissect_h245_ConferenceCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t FunctionNotSupported_sequence[] = {
-       { "cause", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "cause", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FunctionNotSupported_cause },
-       { "returnedFunction", EXTENSION_ROOT, OPTIONAL,
+       { "returnedFunction", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_returnedFunction },
        { NULL, 0, 0, NULL }
 };
@@ -14173,26 +13118,25 @@ dissect_h245_FunctionNotSupported(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 
+/* dissect_h245_NonStandardParameter is used for H.245 */
 
 static per_sequence_t NonStandardParameter_sequence[] = {
-       { "nonStandardIdentifier", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "nonStandardIdentifier", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_NonStandardIdentifier },
-       { "data", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "data", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_NonStandardParameterData },
        { NULL, 0, 0, NULL }
 };
-static int
+int
 dissect_h245_NonStandardParameter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
+       nsp_handle = NULL;
+
        offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h245_NonStandardParameter, ett_h245_NonStandardParameter, NonStandardParameter_sequence);
 
        return offset;
 }
 
-
-
-
-
 static const value_string DataProtocolCapability_vals[] = {
        {  0, "nonStandard" },
        {  1, "v14buffered" },
@@ -14211,40 +13155,40 @@ static const value_string DataProtocolCapability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t DataProtocolCapability_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardParameter },
-       {  1, "v14buffered", EXTENSION_ROOT, 
+       {  1, "v14buffered", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "v42lapm", EXTENSION_ROOT, 
+       {  2, "v42lapm", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "hdlcFrameTunnelling", EXTENSION_ROOT, 
+       {  3, "hdlcFrameTunnelling", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "h310SeparateVCStack", EXTENSION_ROOT, 
+       {  4, "h310SeparateVCStack", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "h310SingleVCStack", EXTENSION_ROOT, 
+       {  5, "h310SingleVCStack", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "transparent", EXTENSION_ROOT, 
+       {  6, "transparent", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  7, "segmentationAndReassembly", NOT_EXTENSION_ROOT, 
+       {  7, "segmentationAndReassembly", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  8, "hdlcFrameTunnelingwSAR", NOT_EXTENSION_ROOT, 
+       {  8, "hdlcFrameTunnelingwSAR", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  9, "v120", NOT_EXTENSION_ROOT, 
+       {  9, "v120", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 10, "separateLANStack", NOT_EXTENSION_ROOT, 
+       { 10, "separateLANStack", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 11, "v76wCompression", NOT_EXTENSION_ROOT,
+       { 11, "v76wCompression", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_DataProtocolCapability_v76wCompression },
-       { 12, "tcp", NOT_EXTENSION_ROOT, 
+       { 12, "tcp", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       { 13, "udp", NOT_EXTENSION_ROOT, 
+       { 13, "udp", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
-static int
+int
 dissect_h245_DataProtocolCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataProtocolCapability, ett_h245_DataProtocolCapability, DataProtocolCapability_choice, "DataProtocolCapability");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataProtocolCapability, ett_h245_DataProtocolCapability, DataProtocolCapability_choice, "DataProtocolCapability", NULL);
 
        return offset;
 }
@@ -14258,16 +13202,16 @@ static const value_string MediaEncryptionAlgorithm_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MediaEncryptionAlgorithm_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "algorithm", EXTENSION_ROOT,
+       {  1, "algorithm", ASN1_EXTENSION_ROOT,
                dissect_h245_algorithm },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MediaEncryptionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MediaEncryptionAlgorithm, ett_h245_MediaEncryptionAlgorithm, MediaEncryptionAlgorithm_choice, "MediaEncryptionAlgorithm");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MediaEncryptionAlgorithm, ett_h245_MediaEncryptionAlgorithm, MediaEncryptionAlgorithm_choice, "MediaEncryptionAlgorithm", NULL);
 
        return offset;
 }
@@ -14286,26 +13230,36 @@ static const value_string UserInputCapability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t UserInputCapability_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardParameter },
-       {  1, "basicString", EXTENSION_ROOT, 
+       {  1, "basicString", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "iA5String", EXTENSION_ROOT, 
+       {  2, "iA5String", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "generalString", EXTENSION_ROOT, 
+       {  3, "generalString", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "dtmf", EXTENSION_ROOT, 
+       {  4, "dtmf", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "hookflash", EXTENSION_ROOT, 
+       {  5, "hookflash", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "extendedAlphanumeric", NOT_EXTENSION_ROOT, 
+       {  6, "extendedAlphanumeric", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_UserInputCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UserInputCapability, ett_h245_UserInputCapability, UserInputCapability_choice, "UserInputCapability");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UserInputCapability, ett_h245_UserInputCapability, UserInputCapability_choice, "UserInputCapability", NULL);
+
+       return offset;
+}
+
+
+
+static int
+dissect_h245_domainBased(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
+       offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h245_domainBased, 1, 64);
 
        return offset;
 }
@@ -14321,19 +13275,20 @@ static const value_string CapabilityIdentifier_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CapabilityIdentifier_choice[] = {
-       {  0, "standard", EXTENSION_ROOT,
+       {  0, "standard", ASN1_EXTENSION_ROOT,
                dissect_h245_standard_object },
-       {  1, "h221NonStandard", EXTENSION_ROOT,
+       {  1, "h221NonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  2, "uuid", EXTENSION_ROOT,
+       {  2, "uuid", ASN1_EXTENSION_ROOT,
                dissect_h245_uuid },
-       {  3, "domainBased", EXTENSION_ROOT, NULL },
+       {  3, "domainBased", ASN1_EXTENSION_ROOT,
+               dissect_h245_domainBased },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CapabilityIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CapabilityIdentifier, ett_h245_CapabilityIdentifier, CapabilityIdentifier_choice, "CapabilityIdentifier");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CapabilityIdentifier, ett_h245_CapabilityIdentifier, CapabilityIdentifier_choice, "CapabilityIdentifier", NULL);
 
        return offset;
 }
@@ -14349,26 +13304,25 @@ static const value_string ParameterIdentifier_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ParameterIdentifier_choice[] = {
-       {  0, "standard", EXTENSION_ROOT,
+       {  0, "standard", ASN1_EXTENSION_ROOT,
                dissect_h245_standard_0_127 },
-       {  1, "h221NonStandard", EXTENSION_ROOT,
+       {  1, "h221NonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  2, "uuid", EXTENSION_ROOT,
+       {  2, "uuid", ASN1_EXTENSION_ROOT,
                dissect_h245_uuid },
-       {  3, "domainBased", EXTENSION_ROOT, NULL },
+       {  3, "domainBased", ASN1_EXTENSION_ROOT,
+               dissect_h245_domainBased },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ParameterIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ParameterIdentifier, ett_h245_ParameterIdentifier, ParameterIdentifier_choice, "ParameterIdentifier");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ParameterIdentifier, ett_h245_ParameterIdentifier, ParameterIdentifier_choice, "ParameterIdentifier", NULL);
 
        return offset;
 }
 
 
-
-
 static const value_string H223LogicalChannelParameters_adaptationLayerType_vals[] = {
        {  0, "nonStandard" },
        {  1, "al1Framed" },
@@ -14382,30 +13336,30 @@ static const value_string H223LogicalChannelParameters_adaptationLayerType_vals[
        {  0, NULL }
 };
 static per_choice_t H223LogicalChannelParameters_adaptationLayerType_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardParameter },
-       {  1, "al1Framed", EXTENSION_ROOT, 
+       {  1, "al1Framed", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "al1NotFramed", EXTENSION_ROOT, 
+       {  2, "al1NotFramed", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "al2WithoutSequenceNumbers", EXTENSION_ROOT, 
+       {  3, "al2WithoutSequenceNumbers", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "al2WithSequenceNumbers", EXTENSION_ROOT, 
+       {  4, "al2WithSequenceNumbers", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "al3", EXTENSION_ROOT,
+       {  5, "al3", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223LogicalChannelParameters_adaptionLayerType_al3 },
-       {  6, "al1M", NOT_EXTENSION_ROOT,
+       {  6, "al1M", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H223AL1MParameters },
-       {  7, "al2M", NOT_EXTENSION_ROOT, 
+       {  7, "al2M", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H223AL2MParameters },
-       {  8, "al3M", NOT_EXTENSION_ROOT,
+       {  8, "al3M", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H223AL3MParameters },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223LogicalChannelParameters_adaptationLayerType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223LogicalChannelParameters_adaptationLayerType, ett_h245_H223LogicalChannelParameters_adaptationLayerType, H223LogicalChannelParameters_adaptationLayerType_choice, "adaptationLayerType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223LogicalChannelParameters_adaptationLayerType, ett_h245_H223LogicalChannelParameters_adaptationLayerType, H223LogicalChannelParameters_adaptationLayerType_choice, "adaptationLayerType", NULL);
 
        return offset;
 }
@@ -14422,20 +13376,20 @@ static const value_string MulticastAddress_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MulticastAddress_choice[] = {
-       {  0, "iPAddress", EXTENSION_ROOT,
+       {  0, "iPAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_MulticastAddress_iPAddress },
-       {  1, "iP6Address", EXTENSION_ROOT,
+       {  1, "iP6Address", ASN1_EXTENSION_ROOT,
                dissect_h245_MulticastAddress_iP6Address },
-       {  2, "nsap", NOT_EXTENSION_ROOT,
+       {  2, "nsap", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_nsap },
-       {  3, "nonStandardAddress", NOT_EXTENSION_ROOT,
+       {  3, "nonStandardAddress", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MulticastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MulticastAddress, ett_h245_MulticastAddress, MulticastAddress_choice, "MulticastAddress");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MulticastAddress, ett_h245_MulticastAddress, MulticastAddress_choice, "MulticastAddress", NULL);
 
        return offset;
 }
@@ -14456,30 +13410,30 @@ static const value_string H223ModeParameters_adaptationLayerType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H223ModeParameters_adaptationLayerType_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardParameter },
-       {  1, "al1Framed", EXTENSION_ROOT, 
+       {  1, "al1Framed", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "al1NotFramed", EXTENSION_ROOT, 
+       {  2, "al1NotFramed", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "al2WithoutSequenceNumbers", EXTENSION_ROOT, 
+       {  3, "al2WithoutSequenceNumbers", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "al2WithSequenceNumbers", EXTENSION_ROOT, 
+       {  4, "al2WithSequenceNumbers", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "al3", EXTENSION_ROOT,
+       {  5, "al3", ASN1_EXTENSION_ROOT,
                        dissect_h245_H223ModeParameters_adaptationLayerType_al3 },
-       {  6, "al1M", NOT_EXTENSION_ROOT,
+       {  6, "al1M", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_H223AL1MParameters },
-       {  7, "al2M", NOT_EXTENSION_ROOT, 
+       {  7, "al2M", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_H223AL2MParameters },
-       {  8, "al3M", NOT_EXTENSION_ROOT,
+       {  8, "al3M", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_H223AL3MParameters },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H223ModeParameters_adaptationLayerType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223ModeParameters_adaptationLayerType, ett_h245_H223ModeParameters_adaptationLayerType, H223ModeParameters_adaptationLayerType_choice, "Type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H223ModeParameters_adaptationLayerType, ett_h245_H223ModeParameters_adaptationLayerType, H223ModeParameters_adaptationLayerType_choice, "Type", NULL);
 
        return offset;
 }
@@ -14493,16 +13447,16 @@ static const value_string EncryptionMode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t EncryptionMode_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "h233Encryption", EXTENSION_ROOT, 
+       {  1, "h233Encryption", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_EncryptionMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EncryptionMode, ett_h245_EncryptionMode, EncryptionMode_choice, "EncryptionMode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EncryptionMode, ett_h245_EncryptionMode, EncryptionMode_choice, "EncryptionMode", NULL);
 
        return offset;
 }
@@ -14511,7 +13465,7 @@ dissect_h245_EncryptionMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t NonStandardMessage_sequence[] = {
-       { "nonStandardData", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NonStandardParameter },
        { NULL, 0, 0, NULL }
 };
@@ -14534,18 +13488,18 @@ static const value_string MultilinkIndication_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultilinkIndication_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardMessage },
-       {  1, "crcDesired", EXTENSION_ROOT,
+       {  1, "crcDesired", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkIndication_crcDesired },
-       {  2, "excessiveError", EXTENSION_ROOT,
+       {  2, "excessiveError", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkIndication_excessiveError },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultilinkIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkIndication, ett_h245_MultilinkIndication, MultilinkIndication_choice, "MultilinkIndication");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkIndication, ett_h245_MultilinkIndication, MultilinkIndication_choice, "MultilinkIndication", NULL);
 
        return offset;
 }
@@ -14561,20 +13515,20 @@ static const value_string DialingInformationNetworkType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t DialingInformationNetworkType_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardMessage },
-       {  1, "n-isdn", EXTENSION_ROOT, 
+       {  1, "n-isdn", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "gstn", EXTENSION_ROOT, 
+       {  2, "gstn", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  3, "mobile", NOT_EXTENSION_ROOT, 
+       {  3, "mobile", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_DialingInformationNetworkType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DialingInformationNetworkType, ett_h245_DialingInformationNetworkType, DialingInformationNetworkType_choice, "DialingInformationNetworkType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DialingInformationNetworkType, ett_h245_DialingInformationNetworkType, DialingInformationNetworkType_choice, "DialingInformationNetworkType", NULL);
 
        return offset;
 }
@@ -14583,11 +13537,11 @@ dissect_h245_DialingInformationNetworkType(tvbuff_t *tvb, int offset, packet_inf
 
 
 static per_sequence_t QOSCapability_sequence[] = {
-       { "nonStandardData", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NonStandardParameter },
-       { "rsvpParameters", EXTENSION_ROOT, OPTIONAL,
+       { "rsvpParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RSVPParameters },
-       { "atmParameters", EXTENSION_ROOT, OPTIONAL,
+       { "atmParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_ATMParameters },
        { NULL, 0, 0, NULL }
 };
@@ -14603,9 +13557,9 @@ dissect_h245_QOSCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t DataApplicationCapability_application_t84_sequence[] = {
-       { "t84Protocol", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "t84Protocol", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_DataProtocolCapability },
-       { "t84Profile", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "t84Profile", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_T84Profile },
        { NULL, 0, 0, NULL }
 };
@@ -14622,9 +13576,9 @@ dissect_h245_DataApplicationCapability_application_t84(tvbuff_t *tvb, int offset
 
 
 static per_sequence_t DataApplicationCapability_application_nlpid_sequence[] = {
-       { "nlpidProtocol", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "nlpidProtocol", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_DataProtocolCapability },
-       { "nlpidData", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "nlpidData", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_nlpidData },
        { NULL, 0, 0, NULL }
 };
@@ -14640,9 +13594,9 @@ dissect_h245_DataApplicationCapability_application_nlpid(tvbuff_t *tvb, int offs
 
 
 static per_sequence_t DataApplicationCapability_application_t38fax_sequence[] = {
-       { "t38FaxProtocol", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "t38FaxProtocol", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_DataProtocolCapability },
-       { "t38FaxProfile", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "t38FaxProfile", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_T38FaxProfile },
        { NULL, 0, 0, NULL }
 };
@@ -14658,9 +13612,9 @@ dissect_h245_DataApplicationCapability_application_t38fax(tvbuff_t *tvb, int off
 
 
 static per_sequence_t AuthenticationCapability_sequence[] = {
-       { "nonStandard", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NonStandardParameter },
-       { "antiSpamAlgorithm", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "antiSpamAlgorithm", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_antiSpamAlgorithm },
        { NULL, 0, 0, NULL }
 };
@@ -14675,7 +13629,7 @@ dissect_h245_AuthenticationCapability(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t IntegrityCapability_sequence[] = {
-       { "nonStandard", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NonStandardParameter },
        { NULL, 0, 0, NULL }
 };
@@ -14691,9 +13645,9 @@ dissect_h245_IntegrityCapability(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H223LogicalChannelParameters_sequence[] = {
-       { "adaptationLayerType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "adaptationLayerType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223LogicalChannelParameters_adaptationLayerType },
-       { "segmentableFlag", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "segmentableFlag", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_segmentableFlag },
        { NULL, 0, 0, NULL }
 };
@@ -14709,11 +13663,11 @@ dissect_h245_H223LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t RequestChannelClose_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "qosCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "qosCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_QOSCapability },
-       { "reason", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "reason", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RequestChannelClose_reason },
        { NULL, 0, 0, NULL }
 };
@@ -14729,9 +13683,9 @@ dissect_h245_RequestChannelClose(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t DataMode_application_nlpid_sequence[] = {
-       { "nlpidProtocol", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "nlpidProtocol", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_DataProtocolCapability },
-       { "nlpidData", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "nlpidData", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_nlpidData },
        { NULL, 0, 0, NULL }
 };
@@ -14748,9 +13702,9 @@ dissect_h245_DataMode_application_nlpid(tvbuff_t *tvb, int offset, packet_info *
 
 
 static per_sequence_t DataMode_application_t38fax_sequence[] = {
-       { "t38FaxProtocol", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "t38FaxProtocol", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_DataProtocolCapability },
-       { "t38FaxProfile", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "t38FaxProfile", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_T38FaxProfile },
        { NULL, 0, 0, NULL }
 };
@@ -14766,9 +13720,9 @@ dissect_h245_DataMode_application_t38fax(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t EncryptionCommand_encryptionAlgorithmID_sequence[] = {
-       { "h233AlgorithmIdentifier", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "h233AlgorithmIdentifier", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "associatedAlgorithm", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "associatedAlgorithm", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_NonStandardParameter },
        { NULL, 0, 0, NULL }
 };
@@ -14791,18 +13745,18 @@ static const value_string EncryptionCommand_vals[] = {
        {  0, NULL }
 };
 static per_choice_t EncryptionCommand_choice[] = {
-       {  0, "encryptionSE", EXTENSION_ROOT, 
+       {  0, "encryptionSE", ASN1_EXTENSION_ROOT,
                dissect_h245_encryptionSE },
-       {  1, "encryptionIVRequest", EXTENSION_ROOT, 
+       {  1, "encryptionIVRequest", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "encryptionAlgorithmID", EXTENSION_ROOT,
+       {  2, "encryptionAlgorithmID", ASN1_EXTENSION_ROOT,
                dissect_h245_EncryptionCommand_encryptionAlgorithmID },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_EncryptionCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EncryptionCommand, ett_h245_EncryptionCommand, EncryptionCommand_choice, "EncryptionCommand");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EncryptionCommand, ett_h245_EncryptionCommand, EncryptionCommand_choice, "EncryptionCommand", NULL);
 
        return offset;
 }
@@ -14818,20 +13772,20 @@ static const value_string EndSessionCommand_vals[] = {
        {  0, NULL }
 };
 static per_choice_t EndSessionCommand_choice[] = {
-       {  0,   "nonStandard",                  EXTENSION_ROOT,
+       {  0,   "nonStandard",                  ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1,   "disconnect",                   EXTENSION_ROOT, 
+       {  1,   "disconnect",                   ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2,   "gstnOptions",                  EXTENSION_ROOT, 
+       {  2,   "gstnOptions",                  ASN1_EXTENSION_ROOT,
                dissect_h245_EndSessionCommand_gstnOptions },
-       {  3,   "isdnOptions",                  NOT_EXTENSION_ROOT, 
+       {  3,   "isdnOptions",                  ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_EndSessionCommand_isdnOptions },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_EndSessionCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EndSessionCommand_type, ett_h245_EndSessionCommand, EndSessionCommand_choice, "EndSessionCommand");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_EndSessionCommand_type, ett_h245_EndSessionCommand, EndSessionCommand_choice, "EndSessionCommand", NULL);
 
        return offset;
 }
@@ -14844,7 +13798,7 @@ dissect_h245_EndSessionCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 static int
 dissect_h245_AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 static per_sequence_t VBDCapability_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_AudioCapability },
        { NULL, 0, 0, NULL }
 };
@@ -14897,28 +13851,28 @@ static const value_string ParameterValue_vals[] = {
 };
 static int dissect_h245_genericParameter_sequence_of(tvbuff_t *, int, packet_info *, proto_tree *);
 static per_choice_t ParameterValue_choice[] = {
-       {  0, "logical", EXTENSION_ROOT, 
+       {  0, "logical", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "booleanArray", EXTENSION_ROOT,
+       {  1, "booleanArray", ASN1_EXTENSION_ROOT,
                        dissect_h245_booleanArray },
-       {  2, "unsignedMin", EXTENSION_ROOT,
+       {  2, "unsignedMin", ASN1_EXTENSION_ROOT,
                        dissect_h245_unsignedMin },
-       {  3, "unsignedMax", EXTENSION_ROOT,
+       {  3, "unsignedMax", ASN1_EXTENSION_ROOT,
                        dissect_h245_unsignedMax },
-       {  4, "unsigned32Min", EXTENSION_ROOT,
+       {  4, "unsigned32Min", ASN1_EXTENSION_ROOT,
                        dissect_h245_unsigned32Min },
-       {  5, "unsigned32Max", EXTENSION_ROOT, 
+       {  5, "unsigned32Max", ASN1_EXTENSION_ROOT,
                        dissect_h245_unsigned32Max },
-       {  6, "octetString", EXTENSION_ROOT,
+       {  6, "octetString", ASN1_EXTENSION_ROOT,
                        dissect_h245_octetString },
-       {  7, "genericParameter", EXTENSION_ROOT,
+       {  7, "genericParameter", ASN1_EXTENSION_ROOT,
                        dissect_h245_genericParameter_sequence_of },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ParameterValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ParameterValue, ett_h245_ParameterValue, ParameterValue_choice, "ParameterValue");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ParameterValue, ett_h245_ParameterValue, ParameterValue_choice, "ParameterValue", NULL);
 
        return offset;
 }
@@ -14926,11 +13880,11 @@ dissect_h245_ParameterValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t GenericParameter_sequence[] = {
-       { "parameterIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "parameterIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ParameterIdentifier },
-       { "parameterValue", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "parameterValue", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ParameterValue },
-       { "supersedes", EXTENSION_ROOT, OPTIONAL,
+       { "supersedes", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_supersedes_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -14971,12 +13925,12 @@ dissect_h245_nonCollapsing_sequence_of(tvbuff_t *tvb, int offset, packet_info *p
 }
 
 
-static int
-dissect_h245_secondary_REE_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
-{
 /* XXX */
 static int dissect_h245_RedundancyEncodingElement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 
+static int
+dissect_h245_secondary_REE_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
        offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h245_secondary_REE, ett_h245_secondary_REE, dissect_h245_RedundancyEncodingElement );
        return offset;
 }
@@ -14984,12 +13938,12 @@ static int dissect_h245_RedundancyEncodingElement(tvbuff_t *tvb, int offset, pac
 
 
 
-static int
-dissect_h245_elements_MPSE_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
-{
 /* XXX */
 static int dissect_h245_MultiplePayloadStreamElement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 
+static int
+dissect_h245_elements_MPSE_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
        offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h245_elements_MPSE, ett_h245_elements_MPSE, dissect_h245_MultiplePayloadStreamElement );
        return offset;
 }
@@ -14997,12 +13951,12 @@ static int dissect_h245_MultiplePayloadStreamElement(tvbuff_t *tvb, int offset,
 
 
 
-static int
-dissect_h245_secondary_REDTME_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
-{
 /* XXX */
 static int dissect_h245_RedundancyEncodingDTModeElement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 
+static int
+dissect_h245_secondary_REDTME_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
        offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h245_secondary_REDTME, ett_h245_secondary_REDTME, dissect_h245_RedundancyEncodingDTModeElement );
        return offset;
 }
@@ -15010,12 +13964,12 @@ static int dissect_h245_RedundancyEncodingDTModeElement(tvbuff_t *tvb, int offse
 
 
 
-static int
-dissect_h245_elements_MPSEM_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
-{
 /* XXX*/
 static int dissect_h245_MultiplePayloadStreamElementMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 
+static int
+dissect_h245_elements_MPSEM_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
        offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h245_elements_MPSEM, ett_h245_elements_MPSEM, dissect_h245_MultiplePayloadStreamElementMode );
        return offset;
 }
@@ -15057,13 +14011,13 @@ dissect_h245_recoveryReferencePicture_sequence_of(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t ConferenceCapability_sequence[] = {
-       { "nonStandardData", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_nonStandardData_sequence_of },
-       { "chairControlCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "chairControlCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_chairControlCapability },
-       { "videoIndicateMixingCapability", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "videoIndicateMixingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoIndicateMixingCapability },
-       { "multipointVisualizationCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "multipointVisualizationCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_multipointVisualizationCapability },
        { NULL, 0, 0, NULL }
 };
@@ -15079,17 +14033,17 @@ dissect_h245_ConferenceCapability(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t GenericCapability_sequence[] = {
-       { "capabilityIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "capabilityIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CapabilityIdentifier },
-       { "maxBitRate", EXTENSION_ROOT, OPTIONAL,
+       { "maxBitRate", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_maxBitRate_4294967295UL },
-       { "collapsing", EXTENSION_ROOT, OPTIONAL,
+       { "collapsing", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_collapsing_sequence_of },
-       { "nonCollapsing", EXTENSION_ROOT, OPTIONAL,
+       { "nonCollapsing", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_nonCollapsing_sequence_of },
-       { "nonCollapsingRaw", EXTENSION_ROOT, OPTIONAL,
+       { "nonCollapsingRaw", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_nonCollapsingRaw },
-       { "transport", EXTENSION_ROOT, OPTIONAL,
+       { "transport", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_DataProtocolCapability },
        { NULL, 0, 0, NULL }
 };
@@ -15123,40 +14077,44 @@ static const value_string DataApplicationCapability_application_vals[] = {
        {  0, NULL }
 };
 static per_choice_t DataApplicationCapability_application_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "t120", EXTENSION_ROOT,
+       {  1, "t120", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  2, "dsm-cc", EXTENSION_ROOT,
+       {  2, "dsm-cc", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  3, "userData", EXTENSION_ROOT,
+       {  3, "userData", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  4, "t84", EXTENSION_ROOT,
+       {  4, "t84", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability_application_t84 },
-       {  5, "t434", EXTENSION_ROOT,
+       {  5, "t434", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  6, "h224", EXTENSION_ROOT,
+       {  6, "h224", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  7, "nlpid", EXTENSION_ROOT,
+       {  7, "nlpid", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability_application_nlpid },
-       {  8, "dsvdControl", EXTENSION_ROOT, 
+       {  8, "dsvdControl", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  9, "h222DataPartitioning", EXTENSION_ROOT,
+       {  9, "h222DataPartitioning", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       { 10, "t30fax", NOT_EXTENSION_ROOT,
+       { 10, "t30fax", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       { 11, "t140", NOT_EXTENSION_ROOT,
+       { 11, "t140", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       { 12, "t38fax", NOT_EXTENSION_ROOT,
+       { 12, "t38fax", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability_application_t38fax },
-       { 13, "genericDataCapability", NOT_EXTENSION_ROOT,
+       { 13, "genericDataCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_DataApplicationCapability_application(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataApplicationCapability_application, ett_h245_DataApplicationCapability_application, DataApplicationCapability_application_choice, "application");
+        guint32 value;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataApplicationCapability_application, ett_h245_DataApplicationCapability_application, DataApplicationCapability_application_choice, "application", &value);
+
+        codec_type = val_to_str(value, DataApplicationCapability_application_vals, "<unknown>");
 
        return offset;
 }
@@ -15182,40 +14140,40 @@ static const value_string DataMode_application_vals[] = {
        {  0, NULL }
 };
 static per_choice_t DataMode_application_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "t120", EXTENSION_ROOT,
+       {  1, "t120", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  2, "dsm-cc", EXTENSION_ROOT,
+       {  2, "dsm-cc", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  3, "userData", EXTENSION_ROOT,
+       {  3, "userData", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  4, "t84", EXTENSION_ROOT,
+       {  4, "t84", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  5, "t434", EXTENSION_ROOT,
+       {  5, "t434", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  6, "h224", EXTENSION_ROOT,
+       {  6, "h224", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       {  7, "nlpid", EXTENSION_ROOT,
+       {  7, "nlpid", ASN1_EXTENSION_ROOT,
                dissect_h245_DataMode_application_nlpid },
-       {  8, "dsvdControl", EXTENSION_ROOT, 
+       {  8, "dsvdControl", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  9, "h222DataPartitioning", EXTENSION_ROOT,
+       {  9, "h222DataPartitioning", ASN1_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       { 10, "t30fax", NOT_EXTENSION_ROOT, 
+       { 10, "t30fax", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       { 11, "t140", NOT_EXTENSION_ROOT,
+       { 11, "t140", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_DataProtocolCapability },
-       { 12, "t38fax", NOT_EXTENSION_ROOT,
+       { 12, "t38fax", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_DataMode_application_t38fax },
-       { 13, "genericDataMode", NOT_EXTENSION_ROOT,
+       { 13, "genericDataMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_DataMode_application(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataMode_application, ett_h245_DataMode_application, DataMode_application_choice, "application");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataMode_application, ett_h245_DataMode_application, DataMode_application_choice, "application", NULL);
 
        return offset;
 }
@@ -15225,7 +14183,7 @@ dissect_h245_DataMode_application(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t MultiplePayloadStream_sequence[] = {
-       { "elements", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "elements", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_elements_MPSE_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -15242,7 +14200,7 @@ dissect_h245_MultiplePayloadStream(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t MultiplePayloadStreamMode_sequence[] = {
-       { "elements", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "elements", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_elements_MPSEM_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -15259,9 +14217,9 @@ dissect_h245_MultiplePayloadStreamMode(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t DataMode_sequence[] = {
-       { "application", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "application", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DataMode_application },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dataModeBitRate },
        { NULL, 0, 0, NULL }
 };
@@ -15278,7 +14236,7 @@ dissect_h245_DataMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 
 static per_sequence_t RequestAllTerminalIDsResponse_sequence[] = {
-       { "terminalInformation", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalInformation", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalInformationSO_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -15295,9 +14253,9 @@ dissect_h245_RequestAllTerminalIDsResponse(tvbuff_t *tvb, int offset, packet_inf
 
 
 static per_sequence_t DataApplicationCapability_sequence[] = {
-       { "application", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "application", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DataApplicationCapability_application },
-       { "maxBitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxBitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxBitRate_4294967295UL },
        { NULL, 0, 0, NULL }
 };
@@ -15323,13 +14281,13 @@ NOT_DECODED_YET("iPSourceRouteAddress");
 
 
 static per_sequence_t UnicastAddress_iPSourceRouteAddress_sequence[] = {
-       { "routing", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "routing", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_UnicastAddress_iPSourceRouteAddress_routing },
-       { "network", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "network", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ipv4network },
-       { "tsapIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "tsapIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_tsapIdentifier },
-       { "route", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "route", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_iPSourceRouteAddress_route },
        { NULL, 0, 0, NULL }
 };
@@ -15354,26 +14312,26 @@ static const value_string UnicastAddress_vals[] = {
        {  0, NULL }
 };
 static per_choice_t UnicastAddress_choice[] = {
-       {  0, "iPAddress", EXTENSION_ROOT,
+       {  0, "iPAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_UnicastAddress_iPAddress },
-       {  1, "iPXAddress", EXTENSION_ROOT,
+       {  1, "iPXAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_UnicastAddress_iPXAddress },
-       {  2, "iP6Address", EXTENSION_ROOT,
+       {  2, "iP6Address", ASN1_EXTENSION_ROOT,
                dissect_h245_UnicastAddress_iP6Address },
-       {  3, "netBios", EXTENSION_ROOT, 
+       {  3, "netBios", ASN1_EXTENSION_ROOT,
                dissect_h245_netBios },
-       {  4, "iPSourceRouteAddress", EXTENSION_ROOT,
+       {  4, "iPSourceRouteAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_UnicastAddress_iPSourceRouteAddress },
-       {  5, "nsap", NOT_EXTENSION_ROOT,
+       {  5, "nsap", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_nsap },
-       {  6, "nonStandardAddress", NOT_EXTENSION_ROOT,
+       {  6, "nonStandardAddress", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_UnicastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UnicastAddress, ett_h245_UnicastAddress, UnicastAddress_choice, "UnicastAddress");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UnicastAddress, ett_h245_UnicastAddress, UnicastAddress_choice, "UnicastAddress", NULL);
 
        return offset;
 }
@@ -15387,37 +14345,71 @@ static const value_string TransportAddress_vals[] = {
        {  0, NULL }
 };
 static per_choice_t TransportAddress_choice[] = {
-       {  0, "unicastAddress", EXTENSION_ROOT,
+       {  0, "unicastAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_UnicastAddress },
-       {  1, "multicastAddress", EXTENSION_ROOT,
+       {  1, "multicastAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_MulticastAddress },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_localAreaAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_localAreaAddress, ett_h245_TransportAddress, TransportAddress_choice, "localAreaAddress");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_localAreaAddress, ett_h245_TransportAddress, TransportAddress_choice, "localAreaAddress", NULL);
 
        return offset;
 }
 static int
 dissect_h245_mediaChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_mediaChannel, ett_h245_TransportAddress, TransportAddress_choice, "mediaChannel");
+       ipv4_address=0;
+       ipv4_port=0;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_mediaChannel, ett_h245_TransportAddress, TransportAddress_choice, "mediaChannel", NULL);
 
+       if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtp_handle){
+               address src_addr;
+               conversation_t *conv=NULL;
+
+               src_addr.type=AT_IPv4;
+               src_addr.len=4;
+               src_addr.data=(char *)&ipv4_address;
+
+               conv=find_conversation(&src_addr, &src_addr, PT_UDP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
+               if(!conv){
+                       conv=conversation_new(&src_addr, &src_addr, PT_UDP, ipv4_port, ipv4_port, NO_ADDR2|NO_PORT2);
+                       conversation_set_dissector(conv, rtp_handle);
+               }
+       }
        return offset;
 }
 static int
 dissect_h245_mediaControlChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_mediaControlChannel, ett_h245_TransportAddress, TransportAddress_choice, "mediaControlChannel");
+       ipv4_address=0;
+       ipv4_port=0;
 
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_mediaControlChannel, ett_h245_TransportAddress, TransportAddress_choice, "mediaControlChannel", NULL);
+
+       if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtcp_handle){
+               address src_addr;
+               conversation_t *conv=NULL;
+
+               src_addr.type=AT_IPv4;
+               src_addr.len=4;
+               src_addr.data=(char *)&ipv4_address;
+
+               conv=find_conversation(&src_addr, &src_addr, PT_UDP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
+               if(!conv){
+                       conv=conversation_new(&src_addr, &src_addr, PT_UDP, ipv4_port, ipv4_port, NO_ADDR2|NO_PORT2);
+                       conversation_set_dissector(conv, rtcp_handle);
+               }
+       }
        return offset;
 }
 static int
 dissect_h245_signalAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_signalAddress, ett_h245_TransportAddress, TransportAddress_choice, "signalAddress");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_signalAddress, ett_h245_TransportAddress, TransportAddress_choice, "signalAddress", NULL);
 
        return offset;
 }
@@ -15425,7 +14417,7 @@ dissect_h245_signalAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t MCLocationIndication_sequence[] = {
-       { "signalAddress", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "signalAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_signalAddress },
        { NULL, 0, 0, NULL }
 };
@@ -15440,19 +14432,19 @@ dissect_h245_MCLocationIndication(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H2250LogicalChannelAckParameters_sequence[] = {
-       { "nonStandard", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_nonStandardData_sequence_of },
-       { "sessionID", EXTENSION_ROOT, OPTIONAL,
+       { "sessionID", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_sessionID_1_255 },
-       { "mediaChannel", EXTENSION_ROOT, OPTIONAL,
+       { "mediaChannel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaChannel },
-       { "mediaControlChannel", EXTENSION_ROOT, OPTIONAL,
+       { "mediaControlChannel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaControlChannel },
-       { "dynamicRTPPayloadType", EXTENSION_ROOT, OPTIONAL,
+       { "dynamicRTPPayloadType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_dynamicRTPPayloadType },
-       { "flowControlToZero", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "flowControlToZero", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_flowControlToZero },
-       { "portNumber", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "portNumber", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_portNumber },
        { NULL, 0, 0, NULL }
 };
@@ -15472,14 +14464,14 @@ static const value_string forwardMultiplexAckParameters_vals[] = {
        {  0, NULL }
 };
 static per_choice_t forwardMultiplexAckParameters_choice[] = {
-       {  0, "h2250LogicalChannelAckParameters", EXTENSION_ROOT,
+       {  0, "h2250LogicalChannelAckParameters", ASN1_EXTENSION_ROOT,
                dissect_h245_H2250LogicalChannelAckParameters },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_forwardMultiplexAckParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_forwardMultiplexAckParameters, ett_h245_forwardMultiplexAckParameters, forwardMultiplexAckParameters_choice, "forwardMultiplexAckParameters");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_forwardMultiplexAckParameters, ett_h245_forwardMultiplexAckParameters, forwardMultiplexAckParameters_choice, "forwardMultiplexAckParameters", NULL);
 
        return offset;
 }
@@ -15501,9 +14493,9 @@ dissect_h245_AlternativeCapabilitySet(tvbuff_t *tvb, int offset, packet_info *pi
 static int dissect_h245_rtpPayloadType_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 
 static per_sequence_t MediaPacketizationCapability_sequence[] = {
-       { "h261aVideoPacketization", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h261aVideoPacketization", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h261aVideoPacketization },
-       { "rtpPayloadType", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "rtpPayloadType", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_rtpPayloadType_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -15536,11 +14528,11 @@ dissect_h245_mediaChannelCapabilities(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t TransportCapability_sequence[] = {
-       { "nonStandard", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NonStandardParameter },
-       { "qOSCapabilities", EXTENSION_ROOT, OPTIONAL,
+       { "qOSCapabilities", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_qOSCapabilities },
-       { "mediaChannelCapabilities", EXTENSION_ROOT, OPTIONAL, 
+       { "mediaChannelCapabilities", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaChannelCapabilities },
        { NULL, 0, 0, NULL }
 };
@@ -15572,36 +14564,36 @@ static const value_string MiscellaneousIndication_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MiscellaneousIndication_type_choice[] = {
-       {  0, "logicalChannelActive", EXTENSION_ROOT, 
+       {  0, "logicalChannelActive", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  1, "logicalChannelInactive", EXTENSION_ROOT, 
+       {  1, "logicalChannelInactive", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  2, "multiportConference", EXTENSION_ROOT, 
+       {  2, "multiportConference", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  3, "cancelMultiportConference", EXTENSION_ROOT, 
+       {  3, "cancelMultiportConference", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  4, "multipointZeroComm", EXTENSION_ROOT, 
+       {  4, "multipointZeroComm", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  5, "cancelMultipointZeroComm", EXTENSION_ROOT, 
+       {  5, "cancelMultipointZeroComm", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  6, "multipointSecondryStatus", EXTENSION_ROOT, 
+       {  6, "multipointSecondryStatus", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  7, "cancelMultipointSecondryStatus", EXTENSION_ROOT, 
+       {  7, "cancelMultipointSecondryStatus", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  8, "videoIndicateReadyToActivate", EXTENSION_ROOT, 
+       {  8, "videoIndicateReadyToActivate", ASN1_EXTENSION_ROOT,
                        dissect_h245_NULL },
-       {  9, "videoTemporalSpatialTradeOff", EXTENSION_ROOT,
+       {  9, "videoTemporalSpatialTradeOff", ASN1_EXTENSION_ROOT,
                        dissect_h245_videoTemporalSpatialTradeOff },
-       { 10, "videoNotDecodedMBs", NOT_EXTENSION_ROOT,
+       { 10, "videoNotDecodedMBs", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_MiscellaneousIndication_type_videoNotDecodedMBs },
-       { 11, "transportCapability", NOT_EXTENSION_ROOT,
+       { 11, "transportCapability", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_TransportCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MiscellaneousIndication_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MiscellaneousIndication_type, ett_h245_MiscellaneousIndication_type, MiscellaneousIndication_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MiscellaneousIndication_type, ett_h245_MiscellaneousIndication_type, MiscellaneousIndication_type_choice, "type", NULL);
 
        return offset;
 }
@@ -15611,9 +14603,9 @@ dissect_h245_MiscellaneousIndication_type(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t MiscellaneousIndication_sequence[] = {
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MiscellaneousIndication_type },
        { NULL, 0, 0, NULL }
 };
@@ -15657,16 +14649,16 @@ static const value_string RTPH263VideoRedundancyEncoding_frameToThreadMapping_va
        {  0, NULL }
 };
 static per_choice_t RTPH263VideoRedundancyEncoding_frameToThreadMapping_choice[] = {
-       {  0, "roundrobin", EXTENSION_ROOT, 
+       {  0, "roundrobin", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  1, "custom", EXTENSION_ROOT,
+       {  1, "custom", ASN1_EXTENSION_ROOT,
                dissect_h245_frameToThreadMapping_custom },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RTPH263VideoRedundancyEncoding_frameToThreadMapping(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RTPH263VideoRedundancyEncoding_frameToThreadMapping, ett_h245_RTPH263VideoRedundancyEncoding_frameToThreadMapping, RTPH263VideoRedundancyEncoding_frameToThreadMapping_choice, "frameToThreadMapping");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RTPH263VideoRedundancyEncoding_frameToThreadMapping, ett_h245_RTPH263VideoRedundancyEncoding_frameToThreadMapping, RTPH263VideoRedundancyEncoding_frameToThreadMapping_choice, "frameToThreadMapping", NULL);
 
        return offset;
 }
@@ -15679,7 +14671,7 @@ dissect_h245_containedThread(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_containedThread,  0,  15,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -15699,13 +14691,13 @@ dissect_h245_containedThreads(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 
 static per_sequence_t RTPH263VideoRedundancyEncoding_sequence[] = {
-       { "numberOfThreads", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "numberOfThreads", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfThreads },
-       { "framesBetweenSyncPoints", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "framesBetweenSyncPoints", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_framesBetweenSyncPoints },
-       { "frameToThreadMapping", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "frameToThreadMapping", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RTPH263VideoRedundancyEncoding_frameToThreadMapping },
-       { "containedThreads", EXTENSION_ROOT, OPTIONAL,
+       { "containedThreads", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_containedThreads },
        { NULL, 0, 0, NULL }
 };
@@ -15727,18 +14719,18 @@ static const value_string RedundancyEncodingMethod_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RedundancyEncodingMethod_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "rtpAudioRedundancyEncoding", EXTENSION_ROOT, 
+       {  1, "rtpAudioRedundancyEncoding", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "rtpH263VideoRedundancyEncoding", NOT_EXTENSION_ROOT,
+       {  2, "rtpH263VideoRedundancyEncoding", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_RTPH263VideoRedundancyEncoding },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RedundancyEncodingMethod(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RedundancyEncodingMethod, ett_h245_RedundancyEncodingMethod, RedundancyEncodingMethod_choice, "RedundancyEncodingMethod");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RedundancyEncodingMethod, ett_h245_RedundancyEncodingMethod, RedundancyEncodingMethod_choice, "RedundancyEncodingMethod", NULL);
 
        return offset;
 }
@@ -15747,11 +14739,11 @@ dissect_h245_RedundancyEncodingMethod(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t RedundancyEncodingCapability_sequence[] = {
-       { "redundancyEncodingMethod", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "redundancyEncodingMethod", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RedundancyEncodingMethod },
-       { "primaryEncoding", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "primaryEncoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CapabilityTableEntryNumber },
-       { "secondaryEncoding", EXTENSION_ROOT, OPTIONAL,
+       { "secondaryEncoding", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_CapabilityTableEntryNumber_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -15780,7 +14772,7 @@ dissect_h245_frame(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
 {
        offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
                hf_h245_frame,  0,  255,
-               NULL, NULL);
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -15798,9 +14790,9 @@ dissect_h245_frameSequence(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t RTPH263VideoRedundancyFrameMapping_sequence[] = {
-       { "threadNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "threadNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_threadNumber },
-       { "frameSequence", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "frameSequence", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_frameSequence },
        { NULL, 0, 0, NULL }
 };
@@ -15827,11 +14819,11 @@ dissect_h245_EncryptionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t EncryptionAuthenticationAndIntegrity_sequence[] = {
-       { "encryptionCapability", EXTENSION_ROOT, OPTIONAL,
+       { "encryptionCapability", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_EncryptionCapability },
-       { "authenticationCapability", EXTENSION_ROOT, OPTIONAL,
+       { "authenticationCapability", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_AuthenticationCapability },
-       { "integrityCapability", EXTENSION_ROOT, OPTIONAL,
+       { "integrityCapability", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_IntegrityCapability },
        { NULL, 0, 0, NULL }
 };
@@ -15846,9 +14838,9 @@ dissect_h245_EncryptionAuthenticationAndIntegrity(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t H235SecurityCapability_sequence[] = {
-       { "encryptionAuthenticationAndIntegrity", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "encryptionAuthenticationAndIntegrity", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_EncryptionAuthenticationAndIntegrity },
-       { "mediaCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "mediaCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CapabilityTableEntryNumber},
        { NULL, 0, 0, NULL }
 };
@@ -15874,13 +14866,13 @@ dissect_h245_escrowentry(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 
 
 static per_sequence_t EncryptionSync_sequence[] = {
-       { "nonStandard", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NonStandardParameter },
-       { "synchFlag", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "synchFlag", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_synchFlag },
-       { "h235Key", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "h235Key", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h235Key },
-       { "escrowentry", EXTENSION_ROOT, OPTIONAL,
+       { "escrowentry", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_escrowentry },
        { NULL, 0, 0, NULL }
 };
@@ -15921,58 +14913,58 @@ static const value_string MiscellaneousCommand_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MiscellaneousCommand_type_choice[] = {
-       {  0, "equalizeDelay", EXTENSION_ROOT, 
+       {  0, "equalizeDelay", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  1, "zeroDelay", EXTENSION_ROOT, 
+       {  1, "zeroDelay", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "multipointModeCommand", EXTENSION_ROOT, 
+       {  2, "multipointModeCommand", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  3, "cancelMultipointModeCommand", EXTENSION_ROOT, 
+       {  3, "cancelMultipointModeCommand", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  4, "videoFreezePicture", EXTENSION_ROOT, 
+       {  4, "videoFreezePicture", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  5, "videoFastUpdatePicture", EXTENSION_ROOT, 
+       {  5, "videoFastUpdatePicture", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  6, "videoFastUpdateGOB", EXTENSION_ROOT,
+       {  6, "videoFastUpdateGOB", ASN1_EXTENSION_ROOT,
                dissect_h245_MiscellaneousCommand_type_videoFastUpdateGOB },
-       {  7, "videoTemporalSpatialTradeOff", EXTENSION_ROOT,
+       {  7, "videoTemporalSpatialTradeOff", ASN1_EXTENSION_ROOT,
                dissect_h245_videoTemporalSpatialTradeOff },
-       {  8, "videoSendSyncEveryGOB", EXTENSION_ROOT, 
+       {  8, "videoSendSyncEveryGOB", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  9, "videoSendSyncEveryGOBCancel", EXTENSION_ROOT, 
+       {  9, "videoSendSyncEveryGOBCancel", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 10, "videoFastUpdateMB", NOT_EXTENSION_ROOT,
+       { 10, "videoFastUpdateMB", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MiscellaneousCommand_type_videoFastUpdateMB },
-       { 11, "maxH223MUXPDUSize", NOT_EXTENSION_ROOT,
+       { 11, "maxH223MUXPDUSize", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_maxH223MUXPDUsize },
-       { 12, "encryptionUpdate", NOT_EXTENSION_ROOT,
+       { 12, "encryptionUpdate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_EncryptionSync },
-       { 13, "encryptionUpdateRequest", NOT_EXTENSION_ROOT, 
+       { 13, "encryptionUpdateRequest", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_EncryptionUpdateRequest },
-       { 14, "switchReceiveMediaOff", NOT_EXTENSION_ROOT, 
+       { 14, "switchReceiveMediaOff", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 15, "switchReceiveMediaOn", NOT_EXTENSION_ROOT, 
+       { 15, "switchReceiveMediaOn", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 16, "progressiveRefinementStart", NOT_EXTENSION_ROOT, 
+       { 16, "progressiveRefinementStart", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MiscellaneousCommand_type_progressiveRefinementStart },
-       { 17, "progressiveRefinementAbortOne", NOT_EXTENSION_ROOT, 
+       { 17, "progressiveRefinementAbortOne", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 18, "progressiveRefinementAbortContinous", NOT_EXTENSION_ROOT, 
+       { 18, "progressiveRefinementAbortContinous", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 19, "videoBadMBs", NOT_EXTENSION_ROOT,
+       { 19, "videoBadMBs", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MiscellaneousCommand_type_videoBadMBs },
-       { 20, "lostPicture", NOT_EXTENSION_ROOT,
+       { 20, "lostPicture", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_lostPicture_sequence_of },
-       { 21, "lostPartialPicture", NOT_EXTENSION_ROOT, 
+       { 21, "lostPartialPicture", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MiscellaneousCommand_type_lostPartialPicture},
-       { 22, "recoveryReferencePicture", NOT_EXTENSION_ROOT,
+       { 22, "recoveryReferencePicture", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_recoveryReferencePicture_sequence_of },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MiscellaneousCommand_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MiscellaneousCommand_type, ett_h245_MiscellaneousCommand_type, MiscellaneousCommand_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MiscellaneousCommand_type, ett_h245_MiscellaneousCommand_type, MiscellaneousCommand_type_choice, "type", NULL);
 
        return offset;
 }
@@ -15981,9 +14973,9 @@ dissect_h245_MiscellaneousCommand_type(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t MiscellaneousCommand_sequence[] = {
-       { "logicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MiscellaneousCommand_type },
        { NULL, 0, 0, NULL }
 };
@@ -16009,9 +15001,9 @@ dissect_h245_elementList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 
 
 static per_sequence_t MultiplexEntryDescriptor_sequence[] = {
-       { "multiplexTableEntryNumber", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexTableEntryNumber", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexTableEntryNumber },
-       { "elementList", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "elementList", ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
                dissect_h245_elementList },
        { NULL, 0, 0, NULL }
 };
@@ -16040,16 +15032,16 @@ static const value_string MultiplexElement_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultiplexElement_type_choice[] = {
-       {  0, "logicalChannelNumber", NO_EXTENSIONS, 
-               dissect_h245_LogicalChannelNumber },
-       {  1, "subElementList", NO_EXTENSIONS,
+       {  0, "logicalChannelNumber", ASN1_NO_EXTENSIONS,
+               dissect_h245_logicalChannelNumber },
+       {  1, "subElementList", ASN1_NO_EXTENSIONS,
                dissect_h245_subElementList },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultiplexElement_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexElement_type, ett_h245_MultiplexElement_type, MultiplexElement_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexElement_type, ett_h245_MultiplexElement_type, MultiplexElement_type_choice, "type", NULL);
 
        return offset;
 }
@@ -16058,9 +15050,9 @@ dissect_h245_MultiplexElement_type(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t MultiplexElement_sequence[] = {
-       { "type", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexElement_type },
-       { "repeatCount", NOT_EXTENSION_ROOT, NOT_OPTIONAL,
+       { "repeatCount", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexElement_repeatCount },
        { NULL, 0, 0, NULL }
 };
@@ -16088,9 +15080,9 @@ dissect_h245_requestedModes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t RequestMode_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "requestedModes", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "requestedModes", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_requestedModes },
        { NULL, 0, 0, NULL }
 };
@@ -16114,11 +15106,11 @@ dissect_h245_CertSelectionCriteria(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t ConferenceRequest_requestTerminalCertificate_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "certSelectionCriteria", EXTENSION_ROOT, OPTIONAL,
+       { "certSelectionCriteria", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_CertSelectionCriteria },
-       { "sRandom", EXTENSION_ROOT, OPTIONAL,
+       { "sRandom", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_sRandom },
        { NULL, 0, 0, NULL }
 };
@@ -16153,44 +15145,44 @@ static const value_string ConferenceRequest_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ConferenceRequest_choice[] = {
-       {  0, "terminalListRequest", EXTENSION_ROOT, 
+       {  0, "terminalListRequest", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  1, "makeMeChair", EXTENSION_ROOT, 
+       {  1, "makeMeChair", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "cancelMakeMeChair", EXTENSION_ROOT, 
+       {  2, "cancelMakeMeChair", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  3, "dropTerminal", EXTENSION_ROOT, 
+       {  3, "dropTerminal", ASN1_EXTENSION_ROOT,
                dissect_h245_TerminalLabel },
-       {  4, "requestTerminalID", EXTENSION_ROOT, 
+       {  4, "requestTerminalID", ASN1_EXTENSION_ROOT,
                dissect_h245_TerminalLabel },
-       {  5, "enterH243Password", EXTENSION_ROOT, 
+       {  5, "enterH243Password", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  6, "enterH243TerminalID", EXTENSION_ROOT, 
+       {  6, "enterH243TerminalID", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  7, "enterH243ConferenceID", EXTENSION_ROOT, 
+       {  7, "enterH243ConferenceID", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  8, "enterExtensionAddress", NOT_EXTENSION_ROOT, 
+       {  8, "enterExtensionAddress", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  9, "requestChairTokenOwner", NOT_EXTENSION_ROOT, 
+       {  9, "requestChairTokenOwner", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 10, "requestTerminalCertificate", NOT_EXTENSION_ROOT,
+       { 10, "requestTerminalCertificate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceRequest_requestTerminalCertificate },
-       { 11, "broadcastMyLogicalChannel", NOT_EXTENSION_ROOT, 
+       { 11, "broadcastMyLogicalChannel", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_LogicalChannelNumber },
-       { 12, "makeTerminalBroadcaster", NOT_EXTENSION_ROOT,
+       { 12, "makeTerminalBroadcaster", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_TerminalLabel },
-       { 13, "sendThisSource", NOT_EXTENSION_ROOT,
+       { 13, "sendThisSource", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_TerminalLabel },
-       { 14, "requestAllTerminalIDs", NOT_EXTENSION_ROOT, 
+       { 14, "requestAllTerminalIDs", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 15, "remoteMCRequest", NOT_EXTENSION_ROOT, 
+       { 15, "remoteMCRequest", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_RemoteMCRequest },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceRequest, ett_h245_ConferenceRequest, ConferenceRequest_choice, "ConferenceRequest");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceRequest, ett_h245_ConferenceRequest, ConferenceRequest_choice, "ConferenceRequest", NULL);
 
        return offset;
 }
@@ -16219,9 +15211,9 @@ dissect_h245_simultaneousCapabilities(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t CapabilityDescriptor_sequence[] = {
-       { "capabilityDescriptorNumber", NO_EXTENSIONS, NOT_OPTIONAL, 
+       { "capabilityDescriptorNumber", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_CapabilityDescriptorNumber },
-       { "simultaneousCapabilities", NO_EXTENSIONS, OPTIONAL,
+       { "simultaneousCapabilities", ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
                dissect_h245_simultaneousCapabilities },
        { NULL, 0, 0, NULL }
 };
@@ -16257,25 +15249,25 @@ dissect_h245_gatewayAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t VCCapability_aal1ViaGateway_sequence[] = {
-       { "gatewayAddress", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "gatewayAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_gatewayAddress },
-       { "nullClockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "nullClockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_nullClockRecovery },
-       { "srtsClockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "srtsClockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_srtsClockRecovery },
-       { "adaptiveClockRecovery", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "adaptiveClockRecovery", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_adaptiveClockRecovery },
-       { "nullErrorCorrection", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "nullErrorCorrection", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_nullErrorCorrection },
-       { "longInterleaver", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "longInterleaver", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_longInterleaver },
-       { "shortInterleaver", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "shortInterleaver", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_shortInterleaver },
-       { "errorCorrectionOnly", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "errorCorrectionOnly", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_errorCorrectionOnly },
-       { "structuredDataTransfer", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "structuredDataTransfer", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_structuredDataTransfer },
-       { "partiallyFilledCells", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "partiallyFilledCells", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_partiallyFilledCells },
        { NULL, 0, 0, NULL }
 };
@@ -16290,7 +15282,7 @@ dissect_h245_VCCapability_aal1ViaGateway(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t VCCapability_availableBitRates_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_VCCapability_availableBitRates_type },
        { NULL, 0, 0, NULL }
 };
@@ -16307,17 +15299,17 @@ dissect_h245_VCCapability_availableBitRates(tvbuff_t *tvb, int offset, packet_in
 
 
 static per_sequence_t VCCapability_sequence[] = {
-       { "aal1", EXTENSION_ROOT, OPTIONAL, 
+       { "aal1", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_VCCapability_aal1 },
-       { "aal5", EXTENSION_ROOT, OPTIONAL,
+       { "aal5", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_VCCapability_aal5 },
-       { "transportStream", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "transportStream", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_transportStream },
-       { "programStream", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "programStream", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_programStream },
-       { "availableBitRates", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "availableBitRates", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_VCCapability_availableBitRates },
-       { "aal1ViaGateway", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "aal1ViaGateway", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_VCCapability_aal1ViaGateway },
        { NULL, 0, 0, NULL }
 };
@@ -16368,13 +15360,13 @@ dissect_h245_bPictureEnhancement(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t EnhancementLayerInfo_sequence[] = {
-       { "baseBitRateConstrained", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "baseBitRateConstrained", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_baseBitRateConstrained },
-       { "snrEnhancement", EXTENSION_ROOT, OPTIONAL,
+       { "snrEnhancement", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_snrEnhancement },
-       { "spatialEnhancement", EXTENSION_ROOT, OPTIONAL,
+       { "spatialEnhancement", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_spatialEnhancement },
-       { "bPictureEnhancement", EXTENSION_ROOT, OPTIONAL,
+       { "bPictureEnhancement", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_bPictureEnhancement },
        { NULL, 0, 0, NULL }
 };
@@ -16425,67 +15417,67 @@ dissect_h245_modeCombos(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 
 
 static per_sequence_t H263Options_sequence[] = {
-       { "advancedIntraCodingMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "advancedIntraCodingMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_advancedIntraCodingMode },
-       { "deblockingFilterMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "deblockingFilterMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_deblockingFilterMode },
-       { "improvedPBFramesMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "improvedPBFramesMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_improvedPBFramesMode },
-       { "unlimitedMotionVectors", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "unlimitedMotionVectors", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_unlimitedMotionVectors },
-       { "fullPictureFreeze", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "fullPictureFreeze", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fullPictureFreeze },
-       { "partialPictureFreezeAndRelease", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "partialPictureFreezeAndRelease", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_partialPictureFreezeAndRelease },
-       { "resizingPartPicFreezeAndRelease", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "resizingPartPicFreezeAndRelease", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_resizingPartPicFreezeAndRelease },
-       { "fullPictureSnapshot", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "fullPictureSnapshot", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_fullPictureSnapshot },
-       { "partialPictureSnapshot", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "partialPictureSnapshot", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_partialPictureSnapshot },
-       { "videoSegmentTagging", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "videoSegmentTagging", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoSegmentTagging },
-       { "progressiveRefinement", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "progressiveRefinement", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_progressiveRefinement },
-       { "dynamicPictureResizingByFour", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dynamicPictureResizingByFour", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicPictureResizingByFour },
-       { "dynamicPictureResizingSixteenthPel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dynamicPictureResizingSixteenthPel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicPictureResizingSixteenthPel },
-       { "dynamicWarpingHalfPel", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dynamicWarpingHalfPel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicWarpingHalfPel },
-       { "dynamicWarpingSixteenthPel", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "dynamicWarpingSixteenthPel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicWarpingSixteenthPel },
-       { "independentSegmentDecoding", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "independentSegmentDecoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_independentSegmentDecoding },
-       { "slicesInOrder-NonRect", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "slicesInOrder-NonRect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesInOrderNonRect },
-       { "slicesInOrder-Rect", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "slicesInOrder-Rect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesInOrderRect },
-       { "slicesNoOrder-NonRect", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "slicesNoOrder-NonRect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesNoOrderNonRect },
-       { "slicesNoOrder-Rect", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "slicesNoOrder-Rect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_slicesNoOrderRect },
-       { "alternateInterVLCMode", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "alternateInterVLCMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alternateInterVLCMode },
-       { "modifiedQuantizationMode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "modifiedQuantizationMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_modifiedQuantizationMode },
-       { "reducedResolutionUpdate", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "reducedResolutionUpdate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_reducedResolutionUpdate },
-       { "transparencyParameters", EXTENSION_ROOT, OPTIONAL,
+       { "transparencyParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TransperencyParameters },
-       { "separateVideoBackChannel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "separateVideoBackChannel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_separateVideoBackChannel },
-       { "refPictureSelection", EXTENSION_ROOT, OPTIONAL,
+       { "refPictureSelection", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RefPictureSelection },
-       { "customPictureClockFrequence", EXTENSION_ROOT, OPTIONAL,
+       { "customPictureClockFrequence", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_customPictureClockFrequency },
-       { "customPictureFormat", EXTENSION_ROOT, OPTIONAL,
+       { "customPictureFormat", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_customPictureFormat },
-       { "modeCombos", EXTENSION_ROOT, OPTIONAL, 
+       { "modeCombos", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_modeCombos },
-       { "videoBadMBsCap", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "videoBadMBsCap", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_videoBadMBsCap },
-       { "h263Version3Options", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h263Version3Options", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H263Version3Options },
        { NULL, 0, 0, NULL }
 };
@@ -16501,23 +15493,23 @@ dissect_h245_H263Options(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
 
 
 static per_sequence_t H263VideoMode_sequence[] = {
-       { "resolution", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "resolution", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H263VideoMode_resolution },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h223bitRate },
-       { "unrestrictedVector", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "unrestrictedVector", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_unrestrictedVector },
-       { "arithmeticCoding", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "arithmeticCoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_arithmeticCoding },
-       { "advancedPrediction", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "advancedPrediction", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_advancedPrediction },
-       { "pbFrames", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "pbFrames", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_pbFrames },
-       { "errorCompensation", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "errorCompensation", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_errorCompensation },
-       { "enhancementLayerInfo", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "enhancementLayerInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_EnhancementLayerInfo },
-       { "h263Options", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "h263Options", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H263Options },
        { NULL, 0, 0, NULL }
 };
@@ -16534,47 +15526,47 @@ dissect_h245_H263VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
 
 
 static per_sequence_t H263VideoCapability_sequence[] = {
-       { "sqcifMPI", EXTENSION_ROOT, OPTIONAL, 
+       { "sqcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_sqcifMPI_1_32 },
-       { "qcifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "qcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_qcifMPI_1_32 },
-       { "cifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "cifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cifMPI_1_32 },
-       { "cif4MPI", EXTENSION_ROOT, OPTIONAL,
+       { "cif4MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif4MPI_1_32 },
-       { "cif16MPI", EXTENSION_ROOT, OPTIONAL,
+       { "cif16MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif16MPI_1_32 },
-       { "maxBitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxBitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxBitRate_192400 },
-       { "unrestrictedVector", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "unrestrictedVector", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_unrestrictedVector },
-       { "arithmeticCoding", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "arithmeticCoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_arithmeticCoding },
-       { "advancedPrediction", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "advancedPrediction", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_advancedPrediction },
-       { "pbFrames", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "pbFrames", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_pbFrames },
-       { "temporalSpatialTradeOffCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "temporalSpatialTradeOffCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_temporalSpatialTradeOffCapability },
-       { "hrd-B", EXTENSION_ROOT, OPTIONAL,
+       { "hrd-B", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_hrd_B },
-       { "bppMaxKb", EXTENSION_ROOT, OPTIONAL,
+       { "bppMaxKb", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_bppMaxKb },
-       { "slowSqcifMPI", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "slowSqcifMPI", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowSqcifMPI },
-       { "slowQcifMPI", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "slowQcifMPI", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowQcifMPI },
-       { "slowCifMPI", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "slowCifMPI", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowCifMPI },
-       { "slowCif4MPI", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "slowCif4MPI", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowCif4MPI },
-       { "slowCif16MPI", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "slowCif16MPI", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowCif16MPI },
-       { "errorCompensation", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "errorCompensation", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_errorCompensation },
-       { "enhancementLayerInfo", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "enhancementLayerInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_EnhancementLayerInfo },
-       { "h263Options", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "h263Options", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H263Options },
        { NULL, 0, 0, NULL }
 };
@@ -16600,24 +15592,28 @@ static const value_string VideoCapability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t VideoCapability_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "h261VideoCapability", EXTENSION_ROOT, 
+       {  1, "h261VideoCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_H261VideoCapability },
-       {  2, "h262VideoCapability", EXTENSION_ROOT,
+       {  2, "h262VideoCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_H262VideoCapability },
-       {  3, "h263VideoCapability", EXTENSION_ROOT,
+       {  3, "h263VideoCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_H263VideoCapability },
-       {  4, "is11172VideoCapability", EXTENSION_ROOT,
+       {  4, "is11172VideoCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_IS11172VideoCapability},
-       {  5, "genericVideoCapability", NOT_EXTENSION_ROOT,
+       {  5, "genericVideoCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_VideoCapability, ett_h245_VideoCapability, VideoCapability_choice, "VideoCapability");
+       guint32 value;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_VideoCapability, ett_h245_VideoCapability, VideoCapability_choice, "VideoCapability", &value );
+
+        codec_type = val_to_str(value, VideoCapability_vals, "<unknown>");
 
        return offset;
 }
@@ -16627,37 +15623,37 @@ dissect_h245_VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 
 
 static per_sequence_t EnhancementOptions_sequence[] = {
-       { "sqcifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "sqcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_sqcifMPI_1_32 },
-       { "qcifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "qcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_qcifMPI_1_32 },
-       { "cifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "cifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cifMPI_1_32 },
-       { "cif4MPI", EXTENSION_ROOT, OPTIONAL,
+       { "cif4MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif4MPI_1_32 },
-       { "cif16MPI", EXTENSION_ROOT, OPTIONAL,
+       { "cif16MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_cif16MPI_1_32 },
-       { "maxBitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxBitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxBitRate_192400 },
-       { "unrestrictedVector", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "unrestrictedVector", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_unrestrictedVector },
-       { "arithmeticCoding", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "arithmeticCoding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_arithmeticCoding },
-       { "temporalSpatialTradeOffCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "temporalSpatialTradeOffCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_temporalSpatialTradeOffCapability },
-       { "slowSqcifMPI", EXTENSION_ROOT, OPTIONAL, 
+       { "slowSqcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowSqcifMPI },
-       { "slowQcifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "slowQcifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowQcifMPI },
-       { "slowCifMPI", EXTENSION_ROOT, OPTIONAL,
+       { "slowCifMPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowCifMPI },
-       { "slowCif4MPI", EXTENSION_ROOT, OPTIONAL,
+       { "slowCif4MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowCif4MPI },
-       { "slowCif16MPI", EXTENSION_ROOT, OPTIONAL,
+       { "slowCif16MPI", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_slowCif16MPI },
-       { "errorCompensation", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "errorCompensation", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_errorCompensation },
-       { "h263Options", EXTENSION_ROOT, OPTIONAL,
+       { "h263Options", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H263Options },
        { NULL, 0, 0, NULL }
 };
@@ -16673,9 +15669,9 @@ dissect_h245_EnhancementOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t BEnhancementParameters_sequence[] = {
-       { "enhancementOptions", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "enhancementOptions", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_EnhancementOptions },
-       { "numberOfBPictures", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "numberOfBPictures", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfBPictures },
        { NULL, 0, 0, NULL }
 };
@@ -16702,9 +15698,9 @@ dissect_h245_customPCF(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 static int
 dissect_h245_PixelAspectCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_constrained_integer(tvb, offset, pinfo, 
-               tree, hf_h245_PixelAspectCode, 1, 14, 
-               NULL, NULL);
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_PixelAspectCode, 1, 14,
+               NULL, NULL, FALSE);
 
        return offset;
 }
@@ -16727,18 +15723,18 @@ static const value_string CustomPictureFormat_pixelAspectInformation_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CustomPictureFormat_pixelAspectInformation_choice[] = {
-       {  0, "anyPixelAspectRatio", EXTENSION_ROOT, 
+       {  0, "anyPixelAspectRatio", ASN1_EXTENSION_ROOT,
                dissect_h245_anyPixelAspectRatio },
-       {  1, "pixelAspectCode", EXTENSION_ROOT,
+       {  1, "pixelAspectCode", ASN1_EXTENSION_ROOT,
                dissect_h245_pixelAspectCode },
-       {  2, "extendedPAR", EXTENSION_ROOT,
+       {  2, "extendedPAR", ASN1_EXTENSION_ROOT,
                dissect_h245_extendedPAR },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CustomPictureFormat_pixelAspectInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CustomPictureFormat_pixelAspectInformation, ett_h245_CustomPictureFormat_pixelAspectInformation, CustomPictureFormat_pixelAspectInformation_choice, "pixelAspectInformation");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CustomPictureFormat_pixelAspectInformation, ett_h245_CustomPictureFormat_pixelAspectInformation, CustomPictureFormat_pixelAspectInformation_choice, "pixelAspectInformation", NULL);
 
        return offset;
 }
@@ -16748,17 +15744,17 @@ dissect_h245_CustomPictureFormat_pixelAspectInformation(tvbuff_t *tvb, int offse
 
 
 static per_sequence_t CustomPictureFormat_sequence[] = {
-       { "maxCustomPictureWidth", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxCustomPictureWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxCustomPictureWidth },
-       { "maxCustomPictureHeight", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maxCustomPictureHeight", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maxCustomPictureHeight},
-       { "minCustomPictureWidth", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "minCustomPictureWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_minCustomPictureWidth },
-       { "minCustomPictureHeight", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "minCustomPictureHeight", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_minCustomPictureHeight },
-       { "mPI", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mPI", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CustomPictureFormat_mPI },
-       { "pixelAspectInformation", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "pixelAspectInformation", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CustomPictureFormat_pixelAspectInformation },
        { NULL, 0, 0, NULL }
 };
@@ -16795,9 +15791,9 @@ dissect_h245_h263VideoCoupledModes(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t H263VideoModeCombos_sequence[] = {
-       { "h263VideoUncoupledModes", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "h263VideoUncoupledModes", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H263ModeComboFlags },
-       { "h263VideoCoupledModes", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "h263VideoCoupledModes", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h263VideoCoupledModes },
        { NULL, 0, 0, NULL }
 };
@@ -16831,7 +15827,7 @@ dissect_h245_capabilities(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 
 
 static per_sequence_t MultiplePayloadStreamCapability_sequence[] = {
-       { "capabilities", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "capabilities", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_capabilities },
        { NULL, 0, 0, NULL }
 };
@@ -16857,9 +15853,9 @@ dissect_h245_multiplexEntryDescriptors(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t MultiplexEntrySend_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "multiplexEntryDescriptors", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexEntryDescriptors", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_multiplexEntryDescriptors },
        { NULL, 0, 0, NULL }
 };
@@ -16884,7 +15880,7 @@ dissect_h245_multiplexTableEntryNumber_set_of(tvbuff_t *tvb, int offset, packet_
 
 
 static per_sequence_t MultiplexEntrySendRelease_sequence[] = {
-       { "multiplexTableEntryNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexTableEntryNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_multiplexTableEntryNumber_set_of },
        { NULL, 0, 0, NULL }
 };
@@ -16900,9 +15896,9 @@ dissect_h245_MultiplexEntrySendRelease(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t MultiplexEntrySendAck_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "multiplexTableEntryNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexTableEntryNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_multiplexTableEntryNumber_set_of },
        { NULL, 0, 0, NULL }
 };
@@ -16918,6 +15914,14 @@ dissect_h245_MultiplexEntrySendAck(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 
+static int
+dissect_h245_RMErejectionDescriptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
+       offset=dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_h245_rejectionDescriptions, ett_h245_rejectionDescriptions, dissect_h245_RequestMultiplexEntryRejectionDescriptions, 1, 15);
+       return offset;
+}
+
+
 static int
 dissect_h245_rejectionDescriptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
@@ -16931,9 +15935,9 @@ dissect_h245_rejectionDescriptions(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t MultiplexEntrySendReject_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "rejectionDescriptions", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "rejectionDescriptions", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_rejectionDescriptions },
        { NULL, 0, 0, NULL }
 };
@@ -16959,7 +15963,7 @@ dissect_h245_entryNumbers(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 
 
 static per_sequence_t RequestMultiplexEntry_sequence[] = {
-       { "entryNumbers", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "entryNumbers", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_entryNumbers },
        { NULL, 0, 0, NULL }
 };
@@ -16974,7 +15978,7 @@ dissect_h245_RequestMultiplexEntry(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t RequestMultiplexEntryAck_sequence[] = {
-       { "entryNumbers", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "entryNumbers", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_entryNumbers },
        { NULL, 0, 0, NULL }
 };
@@ -16990,10 +15994,10 @@ dissect_h245_RequestMultiplexEntryAck(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t RequestMultiplexEntryReject_sequence[] = {
-       { "entryNumbers", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "entryNumbers", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_entryNumbers },
-       { "rejectionDescriptions", EXTENSION_ROOT, NOT_OPTIONAL,
-               dissect_h245_rejectionDescriptions },
+       { "rejectionDescriptions", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
+               dissect_h245_RMErejectionDescriptions },
        { NULL, 0, 0, NULL }
 };
 static int
@@ -17009,7 +16013,7 @@ dissect_h245_RequestMultiplexEntryReject(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t RequestMultiplexEntryRelease_sequence[] = {
-       { "entryNumbers", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "entryNumbers", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_entryNumbers },
        { NULL, 0, 0, NULL }
 };
@@ -17049,7 +16053,7 @@ dissect_h245_communicationModeTable(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t CommunicationModeCommand_sequence[] = {
-       { "communicationModeTable", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "communicationModeTable", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_communicationModeTable },
        { NULL, 0, 0, NULL }
 };
@@ -17070,14 +16074,14 @@ static const value_string CommunicationModeResponse_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CommunicationModeResponse_choice[] = {
-       {  0, "communicationModeTable", EXTENSION_ROOT,
+       {  0, "communicationModeTable", ASN1_EXTENSION_ROOT,
                dissect_h245_communicationModeTable },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CommunicationModeResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CommunicationModeResponse, ett_h245_CommunicationModeResponse, CommunicationModeResponse_choice, "CommunicationModeResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CommunicationModeResponse, ett_h245_CommunicationModeResponse, CommunicationModeResponse_choice, "CommunicationModeResponse", NULL);
 
        return offset;
 }
@@ -17116,18 +16120,18 @@ static const value_string DialingInformation_vals[] = {
        {  0, NULL }
 };
 static per_choice_t DialingInformation_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardMessage },
-       {  1, "differential", EXTENSION_ROOT,
+       {  1, "differential", ASN1_EXTENSION_ROOT,
                dissect_h245_differential },
-       {  2, "infoNotAvailable", EXTENSION_ROOT,
+       {  2, "infoNotAvailable", ASN1_EXTENSION_ROOT,
                dissect_h245_infoNotAvailable },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_DialingInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DialingInformation, ett_h245_DialingInformation, DialingInformation_choice, "DialingInformation");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DialingInformation, ett_h245_DialingInformation, DialingInformation_choice, "DialingInformation", NULL);
 
        return offset;
 }
@@ -17137,9 +16141,9 @@ dissect_h245_DialingInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t MultilinkResponse_callInformation_sequence[] = {
-       { "dialingInformation", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dialingInformation", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DialingInformation },
-       { "callAssociationNumber", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "callAssociationNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_callAssociationNumber },
        { NULL, 0, 0, NULL }
 };
@@ -17165,22 +16169,22 @@ static const value_string MultilinkResponse_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultilinkResponse_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardMessage },
-       {  1, "callInformation", EXTENSION_ROOT,
+       {  1, "callInformation", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkResponse_callInformation },
-       {  2, "addConnection", EXTENSION_ROOT, 
+       {  2, "addConnection", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkResponse_addConnection },
-       {  3, "removeConnection", EXTENSION_ROOT,
+       {  3, "removeConnection", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkResponse_removeConnection },
-       {  4, "maximumHeaderInterval", EXTENSION_ROOT,
+       {  4, "maximumHeaderInterval", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkResponse_maximumHeaderInterval },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultilinkResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkResponse, ett_h245_MultilinkResponse, MultilinkResponse_choice, "MultilinkResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkResponse, ett_h245_MultilinkResponse, MultilinkResponse_choice, "MultilinkResponse", NULL);
 
        return offset;
 }
@@ -17189,9 +16193,9 @@ dissect_h245_MultilinkResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t MultilinkRequest_addConnection_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "dialingInformation", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dialingInformation", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DialingInformation },
        { NULL, 0, 0, NULL }
 };
@@ -17216,22 +16220,22 @@ static const value_string MultilinkRequest_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultilinkRequest_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardMessage },
-       {  1, "callInformation", EXTENSION_ROOT,
+       {  1, "callInformation", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkRequest_callInformation },
-       {  2, "addConnection", EXTENSION_ROOT,
+       {  2, "addConnection", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkRequest_addConnection },
-       {  3, "removeConnection", EXTENSION_ROOT,
+       {  3, "removeConnection", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkRequest_removeConnection },
-       {  4, "maximumHeaderInterval", EXTENSION_ROOT,
+       {  4, "maximumHeaderInterval", ASN1_EXTENSION_ROOT,
                dissect_h245_MultilinkRequest_maximumHeaderInterval },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultilinkRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkRequest, ett_h245_MultilinkRequest, MultilinkRequest_choice, "MultilinkRequest");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultilinkRequest, ett_h245_MultilinkRequest, MultilinkRequest_choice, "MultilinkRequest", NULL);
 
        return offset;
 }
@@ -17272,11 +16276,11 @@ dissect_h245_capabilityDescriptorNumbers(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t SendTerminalCapabilitySet_specificRequest_sequence[] = {
-       { "multiplexCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multiplexCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_multiplexCapability_bool },
-       { "capabilityTableEntryNumbers", EXTENSION_ROOT, OPTIONAL,
+       { "capabilityTableEntryNumbers", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_capabilityTableEntryNumbers },
-       { "capabilityDescriptorNumbers", EXTENSION_ROOT, OPTIONAL,
+       { "capabilityDescriptorNumbers", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_capabilityDescriptorNumbers },
        { NULL, 0, 0, NULL }
 };
@@ -17298,16 +16302,16 @@ static const value_string SendTerminalCapabilitySet_vals[] = {
        {  0, NULL }
 };
 static per_choice_t SendTerminalCapabilitySet_choice[] = {
-       {  0, "specificRequest", EXTENSION_ROOT,
+       {  0, "specificRequest", ASN1_EXTENSION_ROOT,
                dissect_h245_SendTerminalCapabilitySet_specificRequest },
-       {  1, "genericRequest", EXTENSION_ROOT, 
+       {  1, "genericRequest", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_SendTerminalCapabilitySet(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_SendTerminalCapabilitySet, ett_h245_SendTerminalCapabilitySet, SendTerminalCapabilitySet_choice, "SendTerminalCapabilitySet");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_SendTerminalCapabilitySet, ett_h245_SendTerminalCapabilitySet, SendTerminalCapabilitySet_choice, "SendTerminalCapabilitySet", NULL);
 
        return offset;
 }
@@ -17329,9 +16333,9 @@ dissect_h245_audioTelephoneEvent(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t AudioTelephonyEventCapability_sequence[] = {
-       { "dynamicRTPPayloadType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dynamicRTPPayloadType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_dynamicRTPPayloadType },
-       { "audioTelephoneEvent", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioTelephoneEvent", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioTelephoneEvent },
        { NULL, 0, 0, NULL }
 };
@@ -17349,7 +16353,7 @@ dissect_h245_AudioTelephonyEventCapability(tvbuff_t *tvb, int offset, packet_inf
 
 
 static per_sequence_t NoPTAudioTelephonyEventCapability_sequence[] = {
-       { "audioTelephoneEvent", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "audioTelephoneEvent", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_audioTelephoneEvent },
        { NULL, 0, 0, NULL }
 };
@@ -17393,62 +16397,66 @@ static const value_string AudioCapability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t AudioCapability_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "g711Alaw64k", EXTENSION_ROOT,
+       {  1, "g711Alaw64k", ASN1_EXTENSION_ROOT,
                dissect_h245_g711Alaw64k },
-       {  2, "g711Alaw56k", EXTENSION_ROOT,
+       {  2, "g711Alaw56k", ASN1_EXTENSION_ROOT,
                dissect_h245_g711Alaw56k },
-       {  3, "g711Ulaw64k", EXTENSION_ROOT, 
+       {  3, "g711Ulaw64k", ASN1_EXTENSION_ROOT,
                dissect_h245_g711Ulaw64k },
-       {  4, "g711Ulaw56k", EXTENSION_ROOT, 
+       {  4, "g711Ulaw56k", ASN1_EXTENSION_ROOT,
                dissect_h245_g711Ulaw56k },
-       {  5, "g722-64k", EXTENSION_ROOT, 
+       {  5, "g722-64k", ASN1_EXTENSION_ROOT,
                dissect_h245_g722_64k },
-       {  6, "g722-56k", EXTENSION_ROOT,
+       {  6, "g722-56k", ASN1_EXTENSION_ROOT,
                dissect_h245_g722_56k },
-       {  7, "g722-48k", EXTENSION_ROOT,
+       {  7, "g722-48k", ASN1_EXTENSION_ROOT,
                dissect_h245_g722_48k },
-       {  8, "g7231", EXTENSION_ROOT,
+       {  8, "g7231", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioCapability_g7231 },
-       {  9, "g728", EXTENSION_ROOT,
+       {  9, "g728", ASN1_EXTENSION_ROOT,
                dissect_h245_g728 },
-       { 10, "g729", EXTENSION_ROOT,
+       { 10, "g729", ASN1_EXTENSION_ROOT,
                dissect_h245_g729 },
-       { 11, "g729AnnexA", EXTENSION_ROOT,
+       { 11, "g729AnnexA", ASN1_EXTENSION_ROOT,
                dissect_h245_g729AnnexA },
-       { 12, "is11172AudioCapability", EXTENSION_ROOT,
+       { 12, "is11172AudioCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_IS11172AudioCapability },
-       { 13, "is13818AudioCapability", EXTENSION_ROOT,
+       { 13, "is13818AudioCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_IS13818AudioCapability },
-       { 14, "g729wAnnexB", NOT_EXTENSION_ROOT,
+       { 14, "g729wAnnexB", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_g729wAnnexB },
-       { 15, "g729AnnexAwAnnexB", NOT_EXTENSION_ROOT,
+       { 15, "g729AnnexAwAnnexB", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_g729AnnexAwAnnexB },
-       { 16, "g7231AnnexCCapability", NOT_EXTENSION_ROOT,
+       { 16, "g7231AnnexCCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_G7231AnnexCCapability },
-       { 17, "gsmFullRate", NOT_EXTENSION_ROOT,
+       { 17, "gsmFullRate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GSMAudioCapability },
-       { 18, "gsmHalfRate", NOT_EXTENSION_ROOT,
+       { 18, "gsmHalfRate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GSMAudioCapability },
-       { 19, "gsmEnhancedFullRate", NOT_EXTENSION_ROOT,
+       { 19, "gsmEnhancedFullRate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GSMAudioCapability },
-       { 20, "genericAudioCapability", NOT_EXTENSION_ROOT,
+       { 20, "genericAudioCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
-       { 21, "g729Extensions", NOT_EXTENSION_ROOT,
+       { 21, "g729Extensions", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_G729Extensions },
-       { 22, "vbd", NOT_EXTENSION_ROOT,
+       { 22, "vbd", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_VBDCapability },
-       { 23, "audioTelephonyEvent", NOT_EXTENSION_ROOT,
+       { 23, "audioTelephonyEvent", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NoPTAudioTelephonyEventCapability },
-       { 24, "audioTone", NOT_EXTENSION_ROOT,
+       { 24, "audioTone", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NoPTAudioToneCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_AudioCapability, ett_h245_AudioCapability, AudioCapability_choice, "AudioCapability");
+        guint32 value;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_AudioCapability, ett_h245_AudioCapability, AudioCapability_choice, "AudioCapability", &value);
+
+        codec_type = val_to_str(value, AudioCapability_vals, "<unknown>");
 
        return offset;
 }
@@ -17465,20 +16473,20 @@ static const value_string H235Media_mediaType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H235Media_mediaType_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "videoData", EXTENSION_ROOT,
+       {  1, "videoData", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoCapability },
-       {  2, "audioData", EXTENSION_ROOT,
+       {  2, "audioData", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioCapability },
-       {  3, "data", EXTENSION_ROOT,
+       {  3, "data", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H235Media_mediaType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H235Media_mediaType, ett_h245_H235Media_mediaType, H235Media_mediaType_choice, "mediaType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H235Media_mediaType, ett_h245_H235Media_mediaType, H235Media_mediaType_choice, "mediaType", NULL);
 
        return offset;
 }
@@ -17495,18 +16503,18 @@ static const value_string CommunicationModeTableEntry_dataType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CommunicationModeTableEntry_dataType_choice[] = {
-       {  0, "videoData", EXTENSION_ROOT,
+       {  0, "videoData", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoCapability },
-       {  1, "audioData", EXTENSION_ROOT,
+       {  1, "audioData", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioCapability },
-       {  2, "data", EXTENSION_ROOT,
+       {  2, "data", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CommunicationModeTableEntry_dataType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CommunicationModeTableEntry_dataType, ett_h245_CommunicationModeTableEntry_dataType, CommunicationModeTableEntry_dataType_choice, "dataType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CommunicationModeTableEntry_dataType, ett_h245_CommunicationModeTableEntry_dataType, CommunicationModeTableEntry_dataType_choice, "dataType", NULL);
 
        return offset;
 }
@@ -17516,9 +16524,9 @@ dissect_h245_CommunicationModeTableEntry_dataType(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t H235Media_sequence[] = {
-       { "encryptionAuthenticationAndIntegrity", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "encryptionAuthenticationAndIntegrity", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_EncryptionAuthenticationAndIntegrity },
-       { "mediaType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mediaType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H235Media_mediaType },
        { NULL, 0, 0, NULL }
 };
@@ -17554,20 +16562,20 @@ static const value_string UserInputIndication_userInputSupportIndication_vals[]
        {  0, NULL }
 };
 static per_choice_t UserInputIndication_userInputSupportIndication_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "basicString", EXTENSION_ROOT, 
+       {  1, "basicString", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "iA5String", EXTENSION_ROOT, 
+       {  2, "iA5String", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  3, "generalString", EXTENSION_ROOT, 
+       {  3, "generalString", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_UserInputIndication_userInputSupportIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UserInputIndication_userInputSupportIndication, ett_h245_UserInputIndication_userInputSupportIndication, UserInputIndication_userInputSupportIndication_choice, "userInputSupportIndication");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UserInputIndication_userInputSupportIndication, ett_h245_UserInputIndication_userInputSupportIndication, UserInputIndication_userInputSupportIndication_choice, "userInputSupportIndication", NULL);
 
        return offset;
 }
@@ -17576,9 +16584,9 @@ dissect_h245_UserInputIndication_userInputSupportIndication(tvbuff_t *tvb, int o
 
 
 static per_sequence_t UserInputIndication_extendedAlphanumeric_sequence[] = {
-       { "alphanumeric", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "alphanumeric", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_alphanumeric },
-       { "rtpPayloadIndication", EXTENSION_ROOT, OPTIONAL, 
+       { "rtpPayloadIndication", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NULL },
        { NULL, 0, 0, NULL }
 };
@@ -17594,7 +16602,9 @@ dissect_h245_UserInputIndication_extendedAlphanumeric(tvbuff_t *tvb, int offset,
 static int
 dissect_h245_rfcnumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-NOT_DECODED_YET("rfcnumber");
+       offset=dissect_per_constrained_integer(tvb, offset, pinfo,
+               tree, hf_h245_rfc_number, 1, 32768,
+               NULL, NULL, TRUE);
        return offset;
 }
 
@@ -17608,18 +16618,18 @@ static const value_string RTPPayloadType_payloadDescriptor_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RTPPayloadType_payloadDescriptor_choice[] = {
-       {  0, "nonStandardIdentifier", EXTENSION_ROOT,
+       {  0, "nonStandardIdentifier", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "rfc-number", EXTENSION_ROOT,
+       {  1, "rfc-number", ASN1_EXTENSION_ROOT,
                dissect_h245_rfcnumber },
-       {  2, "oid", EXTENSION_ROOT,
+       {  2, "oid", ASN1_EXTENSION_ROOT,
                dissect_h245_oid },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RTPPayloadType_payloadDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RTPPayloadType_payloadDescriptor, ett_h245_RTPPayloadType_payloadDescriptor, RTPPayloadType_payloadDescriptor_choice, "payloadDescriptor");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RTPPayloadType_payloadDescriptor, ett_h245_RTPPayloadType_payloadDescriptor, RTPPayloadType_payloadDescriptor_choice, "payloadDescriptor", NULL);
 
        return offset;
 }
@@ -17629,9 +16639,9 @@ dissect_h245_RTPPayloadType_payloadDescriptor(tvbuff_t *tvb, int offset, packet_
 
 
 static per_sequence_t RTPPayloadType_sequence[] = {
-       { "payloadDescriptor", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "payloadDescriptor", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RTPPayloadType_payloadDescriptor },
-       { "payloadType", EXTENSION_ROOT, OPTIONAL,
+       { "payloadType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_payloadType },
        { NULL, 0, 0, NULL }
 };
@@ -17654,16 +16664,16 @@ static const value_string H2250LogicalChannelParameters_mediaPacketization_vals[
        {  0, NULL }
 };
 static per_choice_t H2250LogicalChannelParameters_mediaPacketization_choice[] = {
-       {  0, "h261aVideoPacketization", EXTENSION_ROOT, 
+       {  0, "h261aVideoPacketization", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  1, "rtpPayloadType", NOT_EXTENSION_ROOT,
+       {  1, "rtpPayloadType", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_RTPPayloadType },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H2250LogicalChannelParameters_mediaPacketization(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H2250LogicalChannelParameters_mediaPacketization, ett_h245_H2250LogicalChannelParameters_mediaPacketization, H2250LogicalChannelParameters_mediaPacketization_choice, "mediaPacketization");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H2250LogicalChannelParameters_mediaPacketization, ett_h245_H2250LogicalChannelParameters_mediaPacketization, H2250LogicalChannelParameters_mediaPacketization_choice, "mediaPacketization", NULL);
 
        return offset;
 }
@@ -17674,22 +16684,15 @@ dissect_h245_H2250LogicalChannelParameters_mediaPacketization(tvbuff_t *tvb, int
 
 static int dissect_h245_mediaDistributionCapability_sequence_of(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 static per_sequence_t MultipointCapability_sequence[] = {
-       { "multicastCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multicastCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_multicastCapability },
-       { "multiUniCastConference", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multiUniCastConference", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_multiUniCastConference },
-       { "mediaDistributionCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mediaDistributionCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_mediaDistributionCapability_sequence_of },
        { NULL, 0, 0, NULL }
 };
 static int
-dissect_h245_MultipointCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
-{
-       offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h245_MultipointCapability, ett_h245_MultipointCapability, MultipointCapability_sequence);
-
-       return offset;
-}
-static int
 dissect_h245_receiveMultipointCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
        offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h245_receiveMultipointCapability, ett_h245_MultipointCapability, MultipointCapability_sequence);
@@ -17715,27 +16718,27 @@ dissect_h245_receiveAndTransmitMultipointCapability(tvbuff_t *tvb, int offset, p
 
 
 static per_sequence_t H2250Capability_sequence[] = {
-       { "maximumAudioDelayJitter", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "maximumAudioDelayJitter", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_maximumAudioDelayJitter },
-       { "receiveMultipointCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "receiveMultipointCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_receiveMultipointCapability },
-       { "transmitMultipointCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "transmitMultipointCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_transmitMultipointCapability },
-       { "receiveAndTransmitMultipointCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "receiveAndTransmitMultipointCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_receiveAndTransmitMultipointCapability },
-       { "mcCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "mcCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H2250Capability_mcCapability },
-       { "rtcpVideoControlCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "rtcpVideoControlCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_rtcpVideoControlCapability },
-       { "mediaPacketizationCapability", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "mediaPacketizationCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MediaPacketizationCapability },
-       { "transportCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "transportCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TransportCapability },
-       { "redundancyEncodingCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "redundancyEncodingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RedundancyEncodingCapability_sequence_of },
-       { "logicalChannelSwitchingCapability", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "logicalChannelSwitchingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_logicalChannelSwitchingCapability },
-       { "t120DynamicPortCapability", NOT_EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "t120DynamicPortCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_t120DynamicPortCapability },
        { NULL, 0, 0, NULL }
 };
@@ -17754,9 +16757,9 @@ dissect_h245_H2250Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 
 static int dissect_h245_DataType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
 static per_sequence_t RedundancyEncodingElement_sequence[] = {
-       { "dataType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dataType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DataType },
-       { "payloadType", EXTENSION_ROOT, OPTIONAL,
+       { "payloadType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_payloadType },
        { NULL, 0, 0, NULL }
 };
@@ -17773,9 +16776,9 @@ dissect_h245_RedundancyEncodingElement(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t RedundancyEncoding_rtpRedundancyEncoding_sequence[] = {
-       { "primary", EXTENSION_ROOT, OPTIONAL,
+       { "primary", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RedundancyEncodingElement },
-       { "secondary", EXTENSION_ROOT, OPTIONAL,
+       { "secondary", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_secondary_REE_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -17792,11 +16795,11 @@ dissect_h245_RedundancyEncoding_rtpRedundancyEncoding(tvbuff_t *tvb, int offset,
 
 
 static per_sequence_t RedundancyEncoding_sequence[] = {
-       { "redundancyEncodingMethod", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "redundancyEncodingMethod", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RedundancyEncodingMethod },
-       { "secondaryEncoding", EXTENSION_ROOT, OPTIONAL,
+       { "secondaryEncoding", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_DataType },
-       { "rtpRedundancyEncoding", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "rtpRedundancyEncoding", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RedundancyEncoding_rtpRedundancyEncoding },
        { NULL, 0, 0, NULL }
 };
@@ -17812,33 +16815,33 @@ dissect_h245_RedundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t H2250LogicalChannelParameters_sequence[] = {
-       { "nonStandard", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_nonStandardData_sequence_of },
-       { "sessionID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sessionID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sessionID_0_255 },
-       { "associatedSessionID", EXTENSION_ROOT, OPTIONAL,
+       { "associatedSessionID", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_associatedSessionID },
-       { "mediaChannel", EXTENSION_ROOT, OPTIONAL,
+       { "mediaChannel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaChannel },
-       { "mediaGuaranteedDelivery", EXTENSION_ROOT, OPTIONAL,
+       { "mediaGuaranteedDelivery", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaGuaranteedDelivery },
-       { "mediaControlChannel", EXTENSION_ROOT, OPTIONAL,
+       { "mediaControlChannel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaControlChannel },
-       { "mediaControlGuaranteedDelivery", EXTENSION_ROOT, OPTIONAL,
+       { "mediaControlGuaranteedDelivery", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaControlGuaranteedDelivery },
-       { "silenceSuppression", EXTENSION_ROOT, OPTIONAL, 
+       { "silenceSuppression", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_silenceSuppression },
-       { "destination", EXTENSION_ROOT, OPTIONAL,
+       { "destination", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "dynamicRTPPayloadType", EXTENSION_ROOT, OPTIONAL,
+       { "dynamicRTPPayloadType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_dynamicRTPPayloadType },
-       { "mediaPacketization", EXTENSION_ROOT, OPTIONAL,
+       { "mediaPacketization", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H2250LogicalChannelParameters_mediaPacketization },
-       { "transportCapability", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "transportCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TransportCapability },
-       { "redundancyEncoding", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "redundancyEncoding", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RedundancyEncoding },
-       { "source", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "source", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TerminalLabel },
        { NULL, 0, 0, NULL }
 };
@@ -17862,22 +16865,22 @@ static const value_string forwardLogicalChannelParameters_multiplexParameters_va
        {  0, NULL }
 };
 static per_choice_t forwardLogicalChannelParameters_multiplexParameters_choice[] = {
-       {  0, "h222LogicalChannelParameters", EXTENSION_ROOT,
+       {  0, "h222LogicalChannelParameters", ASN1_EXTENSION_ROOT,
                dissect_h245_H222LogicalChannelParameters },
-       {  1, "h223LogicalChannelParameters", EXTENSION_ROOT,
+       {  1, "h223LogicalChannelParameters", ASN1_EXTENSION_ROOT,
                dissect_h245_H223LogicalChannelParameters },
-       {  2, "v76LogicalChannelParameters", EXTENSION_ROOT,
+       {  2, "v76LogicalChannelParameters", ASN1_EXTENSION_ROOT,
                dissect_h245_V76LogicalChannelParameters },
-       {  3, "h2250LogicalChannelParameters", NOT_EXTENSION_ROOT,
+       {  3, "h2250LogicalChannelParameters", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H2250LogicalChannelParameters },
-       {  4, "none", NOT_EXTENSION_ROOT, 
+       {  4, "none", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_forwardLogicalChannelParameters_multiplexParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_forwardLogicalChannelParameters_multiplexParameters, ett_h245_forwardLogicalChannelParameters_multiplexParameters, forwardLogicalChannelParameters_multiplexParameters_choice, "multiplexParameters");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_forwardLogicalChannelParameters_multiplexParameters, ett_h245_forwardLogicalChannelParameters_multiplexParameters, forwardLogicalChannelParameters_multiplexParameters_choice, "multiplexParameters", NULL);
 
        return offset;
 }
@@ -17887,9 +16890,9 @@ dissect_h245_forwardLogicalChannelParameters_multiplexParameters(tvbuff_t *tvb,
 
 
 static per_sequence_t MultiplePayloadStreamElement_sequence[] = {
-       { "dataType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dataType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DataType },
-       { "payloadType", EXTENSION_ROOT, OPTIONAL,
+       { "payloadType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_payloadType },
        { NULL, 0, 0, NULL }
 };
@@ -17910,18 +16913,18 @@ static const value_string reverseLogicalChannelParameters_multiplexParameters_va
        {  0, NULL }
 };
 static per_choice_t reverseLogicalChannelParameters_multiplexParameters_choice[] = {
-       {  0, "h223LogicalChannelParameters", EXTENSION_ROOT,
+       {  0, "h223LogicalChannelParameters", ASN1_EXTENSION_ROOT,
                dissect_h245_H223LogicalChannelParameters },
-       {  1, "v76LogicalChannelParameters", EXTENSION_ROOT,
+       {  1, "v76LogicalChannelParameters", ASN1_EXTENSION_ROOT,
                dissect_h245_V76LogicalChannelParameters },
-       {  2, "h2250LogicalChannelParameters", NOT_EXTENSION_ROOT,
+       {  2, "h2250LogicalChannelParameters", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H2250LogicalChannelParameters },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_reverseLogicalChannelParameters_multiplexParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_reverseLogicalChannelParameters_multiplexParameters, ett_h245_reverseLogicalChannelParameters_multiplexParameters, reverseLogicalChannelParameters_multiplexParameters_choice, "multiplexParameters");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_reverseLogicalChannelParameters_multiplexParameters, ett_h245_reverseLogicalChannelParameters_multiplexParameters, reverseLogicalChannelParameters_multiplexParameters_choice, "multiplexParameters", NULL);
 
        return offset;
 }
@@ -17935,16 +16938,16 @@ static const value_string OpenLogicalChannelAck_reverseLogicalChannelParameters_
        {  0, NULL }
 };
 static per_choice_t OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_choice[] = {
-       {  0, "h222LogicalChannelParameters", EXTENSION_ROOT,
+       {  0, "h222LogicalChannelParameters", ASN1_EXTENSION_ROOT,
                dissect_h245_H222LogicalChannelParameters },
-       {  1, "h2250LogicalChannelParameters", NOT_EXTENSION_ROOT,
+       {  1, "h2250LogicalChannelParameters", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H2250LogicalChannelParameters },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters, ett_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters, OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_choice, "multiplexParameters");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters, ett_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters, OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_choice, "multiplexParameters", NULL);
 
        return offset;
 }
@@ -17954,15 +16957,15 @@ dissect_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexPara
 
 
 static per_sequence_t forwardLogicalChannelParameters_sequence[] = {
-       { "portNumber", EXTENSION_ROOT, OPTIONAL,
+       { "portNumber", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_portNumber },
-       { "dataType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dataType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DataType },
-       { "multiplexParameters", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexParameters", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_forwardLogicalChannelParameters_multiplexParameters },
-       { "forwardLogicalChannelDependency", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "forwardLogicalChannelDependency", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "replacementFor", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "replacementFor", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -17978,13 +16981,13 @@ dissect_h245_forwardLogicalChannelParameters(tvbuff_t *tvb, int offset, packet_i
 
 
 static per_sequence_t reverseLogicalChannelParameters_sequence[] = {
-       { "dataType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dataType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DataType },
-       { "multiplexParameters", EXTENSION_ROOT, OPTIONAL,
+       { "multiplexParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_reverseLogicalChannelParameters_multiplexParameters },
-       { "reverseLogicalChannelDependency", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "reverseLogicalChannelDependency", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "replacementFor", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "replacementFor", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -18001,13 +17004,13 @@ dissect_h245_reverseLogicalChannelParameters(tvbuff_t *tvb, int offset, packet_i
 
 
 static per_sequence_t OpenLogicalChannelAck_reverseLogicalChannelParameters_sequence[] = {
-       { "reverseLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "reverseLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "portNumber", EXTENSION_ROOT, OPTIONAL,
+       { "portNumber", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_portNumber },
-       { "multiplexParameters", EXTENSION_ROOT, OPTIONAL,
+       { "multiplexParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters },
-       { "replacementFor", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "replacementFor", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
        { NULL, 0, 0, NULL }
 };
@@ -18033,9 +17036,9 @@ dissect_h245_VCCapability_set_of(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t H222Capability_sequence[] = {
-       { "numberOfVCs", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "numberOfVCs", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_numberOfVCs },
-       { "vcCapability", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "vcCapability", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_VCCapability_set_of },
        { NULL, 0, 0, NULL }
 };
@@ -18057,18 +17060,18 @@ static const value_string MultiplexFormat_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultiplexFormat_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "h222Capability", EXTENSION_ROOT,
+       {  1, "h222Capability", ASN1_EXTENSION_ROOT,
                dissect_h245_H222Capability },
-       {  2, "h223Capability", EXTENSION_ROOT,
+       {  2, "h223Capability", ASN1_EXTENSION_ROOT,
                dissect_h245_H223Capability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultiplexFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexFormat, ett_h245_MultiplexFormat, MultiplexFormat_choice, "MultiplexFormat");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexFormat, ett_h245_MultiplexFormat, MultiplexFormat_choice, "MultiplexFormat", NULL);
 
        return offset;
 }
@@ -18077,11 +17080,11 @@ dissect_h245_MultiplexFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 
 
 static per_sequence_t MultiplexedStreamCapability_sequence[] = {
-       { "multiplexFormat", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexFormat", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexFormat },
-       { "controlOnMuxStream", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "controlOnMuxStream", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_controlOnMuxStream },
-       { "capabilityOnMuxStream", EXTENSION_ROOT, OPTIONAL,
+       { "capabilityOnMuxStream", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_capabilityOnMuxStream },
        { NULL, 0, 0, NULL }
 };
@@ -18127,64 +17130,64 @@ static const value_string Capability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t Capability_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "receiveVideoCapability", EXTENSION_ROOT,
+       {  1, "receiveVideoCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoCapability },
-       {  2, "transmitVideoCapability", EXTENSION_ROOT,
+       {  2, "transmitVideoCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoCapability },
-       {  3, "receiveAndTransmitVideoCapability", EXTENSION_ROOT,
+       {  3, "receiveAndTransmitVideoCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoCapability },
-       {  4, "receiveAudioCapability", EXTENSION_ROOT,
+       {  4, "receiveAudioCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioCapability },
-       {  5, "transmitAudioCapability", EXTENSION_ROOT,
+       {  5, "transmitAudioCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioCapability },
-       {  6, "receiveAndTransmitAudioCapability", EXTENSION_ROOT,
+       {  6, "receiveAndTransmitAudioCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioCapability },
-       {  7, "receiveDataApplicationCapability", EXTENSION_ROOT,
+       {  7, "receiveDataApplicationCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability },
-       {  8, "transmitDataApplicationCapability", EXTENSION_ROOT,
+       {  8, "transmitDataApplicationCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability },
-       {  9, "receiveAndTransmitDataApplicationCapability", EXTENSION_ROOT,
+       {  9, "receiveAndTransmitDataApplicationCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability },
-       { 10, "h233EncryptionTransmitCapability", EXTENSION_ROOT, 
+       { 10, "h233EncryptionTransmitCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_h233EncryptionTransmitCapability },
-       { 11, "h233EncryptionReceiveCapability", EXTENSION_ROOT,
+       { 11, "h233EncryptionReceiveCapability", ASN1_EXTENSION_ROOT,
                dissect_h245_Capability_h233EncryptionReceiveCapability },
-       { 12, "conferenceCapability", NOT_EXTENSION_ROOT,
+       { 12, "conferenceCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceCapability },
-       { 13, "h235SecurityCapability" , NOT_EXTENSION_ROOT,
+       { 13, "h235SecurityCapability" , ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H235SecurityCapability },
-       { 14, "maxPendingReplacementFor", NOT_EXTENSION_ROOT,
+       { 14, "maxPendingReplacementFor", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_maxPendingReplacementFor },
-       { 15, "receiveUserInputCapability", NOT_EXTENSION_ROOT,
+       { 15, "receiveUserInputCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_UserInputCapability },
-       { 16, "transmitUserInputCapability", NOT_EXTENSION_ROOT,
+       { 16, "transmitUserInputCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_UserInputCapability },
-       { 17, "receiveAndTransmitUserInputCapability", NOT_EXTENSION_ROOT,
+       { 17, "receiveAndTransmitUserInputCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_UserInputCapability },
-       { 18, "genericControlCapability", NOT_EXTENSION_ROOT,
+       { 18, "genericControlCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
-       { 19, "receiveMultiplexedStreamCapability", NOT_EXTENSION_ROOT,
+       { 19, "receiveMultiplexedStreamCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplexedStreamCapability },
-       { 20, "transmitMultiplexedStreamCapability", NOT_EXTENSION_ROOT,
+       { 20, "transmitMultiplexedStreamCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplexedStreamCapability },
-       { 21, "receiveAndTransmitMultiplexedStreamCapability", NOT_EXTENSION_ROOT,
+       { 21, "receiveAndTransmitMultiplexedStreamCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplexedStreamCapability },
-       { 22, "receiveRTPAudioTelephonyEventCapability", NOT_EXTENSION_ROOT,
+       { 22, "receiveRTPAudioTelephonyEventCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_AudioTelephonyEventCapability },
-       { 23, "receiveRTPAudioToneCapability", NOT_EXTENSION_ROOT,
+       { 23, "receiveRTPAudioToneCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_AudioToneCapability },
-       { 24, "fecCapability", NOT_EXTENSION_ROOT, 
+       { 24, "fecCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_FECCapability },
-       { 25, "multiplePayloadStreamCapability", NOT_EXTENSION_ROOT,
+       { 25, "multiplePayloadStreamCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplePayloadStreamCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_Capability, ett_h245_Capability, Capability_choice, "Capability");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_Capability, ett_h245_Capability, Capability_choice, "Capability", NULL);
 
        return offset;
 }
@@ -18192,9 +17195,9 @@ dissect_h245_Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
 
 
 static per_sequence_t CapabilityTableEntry_sequence[] = {
-       { "capabilityTableEntryNumber", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "capabilityTableEntryNumber", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_CapabilityTableEntryNumber },
-       { "capability", NO_EXTENSIONS, OPTIONAL,
+       { "capability", ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
                dissect_h245_Capability },
        { NULL, 0, 0, NULL }
 };
@@ -18210,9 +17213,9 @@ dissect_h245_CapabilityTableEntry(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t MultiplexedStreamParameter_sequence[] = {
-       { "multiplexFormat", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "multiplexFormat", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_MultiplexFormat },
-       { "controlOnMuxStream", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "controlOnMuxStream", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_controlOnMuxStream },
        { NULL, 0, 0, NULL }
 };
@@ -18244,36 +17247,36 @@ static const value_string DataType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t DataType_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "nullData", EXTENSION_ROOT, 
+       {  1, "nullData", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "videoData", EXTENSION_ROOT,
+       {  2, "videoData", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoCapability },
-       {  3, "audioData", EXTENSION_ROOT,
+       {  3, "audioData", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioCapability },
-       {  4, "data", EXTENSION_ROOT,
+       {  4, "data", ASN1_EXTENSION_ROOT,
                dissect_h245_DataApplicationCapability },
-       {  5, "encryptionData", EXTENSION_ROOT,
+       {  5, "encryptionData", ASN1_EXTENSION_ROOT,
                dissect_h245_EncryptionMode },
-       {  6, "h235Control", NOT_EXTENSION_ROOT,
+       {  6, "h235Control", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  7, "h235Media", NOT_EXTENSION_ROOT,
+       {  7, "h235Media", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H235Media },
-       {  8, "multiplexedStream", NOT_EXTENSION_ROOT,
+       {  8, "multiplexedStream", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplexedStreamParameter },
-       {  9, "redundancyEncoding", NOT_EXTENSION_ROOT,
+       {  9, "redundancyEncoding", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_RedundancyEncoding },
-       { 10, "multiplePayloadStream", NOT_EXTENSION_ROOT,
+       { 10, "multiplePayloadStream", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplePayloadStream },
-       { 11, "fec", NOT_EXTENSION_ROOT, 
+       { 11, "fec", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_FECData },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_DataType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataType, ett_h245_DataType, DataType_choice, "DataType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_DataType, ett_h245_DataType, DataType_choice, "DataType", NULL);
 
        return offset;
 }
@@ -18309,58 +17312,58 @@ static const value_string AudioMode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t AudioMode_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "g711Alaw64k", EXTENSION_ROOT, 
+       {  1, "g711Alaw64k", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  2, "g711Alaw56k", EXTENSION_ROOT, 
+       {  2, "g711Alaw56k", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  3, "g711Ulaw64k", EXTENSION_ROOT, 
+       {  3, "g711Ulaw64k", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  4, "g711Ulaw56k", EXTENSION_ROOT, 
+       {  4, "g711Ulaw56k", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  5, "g722-64k", EXTENSION_ROOT, 
+       {  5, "g722-64k", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  6, "g722-56k", EXTENSION_ROOT, 
+       {  6, "g722-56k", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  7, "g722-48k", EXTENSION_ROOT, 
+       {  7, "g722-48k", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  8, "g728", EXTENSION_ROOT, 
+       {  8, "g728", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  9, "g729", EXTENSION_ROOT, 
+       {  9, "g729", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 10, "g729AnnexA", EXTENSION_ROOT, 
+       { 10, "g729AnnexA", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       { 11, "g7231", EXTENSION_ROOT, 
+       { 11, "g7231", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioMode_g7231 },
-       { 12, "is11172AudioMode", EXTENSION_ROOT, 
+       { 12, "is11172AudioMode", ASN1_EXTENSION_ROOT,
                dissect_h245_IS11172AudioMode },
-       { 13, "is13818AudioMode", EXTENSION_ROOT, 
+       { 13, "is13818AudioMode", ASN1_EXTENSION_ROOT,
                dissect_h245_IS13818AudioMode },
-       { 14, "g729wAnnexB", NOT_EXTENSION_ROOT,
+       { 14, "g729wAnnexB", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_g729wAnnexB },
-       { 15, "g729AnnexAwAnnexB", NOT_EXTENSION_ROOT,
+       { 15, "g729AnnexAwAnnexB", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_g729AnnexAwAnnexB },
-       { 16, "g7231AnnexCMode", NOT_EXTENSION_ROOT,
+       { 16, "g7231AnnexCMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_G7231AnnexCMode },
-       { 17, "gsmFullRate", NOT_EXTENSION_ROOT,
+       { 17, "gsmFullRate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GSMAudioCapability },
-       { 18, "gsmHalfRate", NOT_EXTENSION_ROOT,
+       { 18, "gsmHalfRate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GSMAudioCapability },
-       { 19, "gsmEnhancedFullRate", NOT_EXTENSION_ROOT,
+       { 19, "gsmEnhancedFullRate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GSMAudioCapability },
-       { 20, "genericAudioMode", NOT_EXTENSION_ROOT,
+       { 20, "genericAudioMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
-       { 21, "g729Extensions", NOT_EXTENSION_ROOT,
+       { 21, "g729Extensions", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_G729Extensions },
-       { 22, "vbd", NOT_EXTENSION_ROOT,
+       { 22, "vbd", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_VBDMode },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_AudioMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_AudioMode, ett_h245_AudioMode, AudioMode_choice, "AudioMode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_AudioMode, ett_h245_AudioMode, AudioMode_choice, "AudioMode", NULL);
 
        return offset;
 }
@@ -18374,16 +17377,16 @@ static const value_string RedundancyEncodingMode_secondaryEncoding_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RedundancyEncodingMode_secondaryEncoding_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "audioData", EXTENSION_ROOT,
+       {  1, "audioData", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioMode },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RedundancyEncodingMode_secondaryEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RedundancyEncodingMode_secondaryEncoding, ett_h245_RedundancyEncodingMode_secondaryEncoding, RedundancyEncodingMode_secondaryEncoding_choice, "secondaryEncoding");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RedundancyEncodingMode_secondaryEncoding, ett_h245_RedundancyEncodingMode_secondaryEncoding, RedundancyEncodingMode_secondaryEncoding_choice, "secondaryEncoding", NULL);
 
        return offset;
 }
@@ -18391,9 +17394,9 @@ dissect_h245_RedundancyEncodingMode_secondaryEncoding(tvbuff_t *tvb, int offset,
 
 
 static per_sequence_t RedundancyEncodingMode_sequence[] = {
-       { "redundancyEncodingMethod", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "redundancyEncodingMethod", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RedundancyEncodingMethod },
-       { "secondaryEncoding", EXTENSION_ROOT, OPTIONAL,
+       { "secondaryEncoding", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RedundancyEncodingMode_secondaryEncoding },
        { NULL, 0, 0, NULL }
 };
@@ -18408,7 +17411,7 @@ dissect_h245_RedundancyEncodingMode(tvbuff_t *tvb, int offset, packet_info *pinf
 
 
 static per_sequence_t H2250ModeParameters_sequence[] = {
-       { "redundancyEncodingMode", EXTENSION_ROOT, OPTIONAL,
+       { "redundancyEncodingMode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RedundancyEncodingMode },
        { NULL, 0, 0, NULL }
 };
@@ -18425,7 +17428,7 @@ dissect_h245_H2250ModeParameters(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t VBDMode_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_AudioMode },
        { NULL, 0, 0, NULL }
 };
@@ -18449,24 +17452,24 @@ static const value_string MultiplexCapability_vals[] = {
        {  0, NULL }
 };
 static per_choice_t MultiplexCapability_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "h222Capability", EXTENSION_ROOT,
+       {  1, "h222Capability", ASN1_EXTENSION_ROOT,
                dissect_h245_H222Capability },
-       {  2, "h223Capability", EXTENSION_ROOT,
+       {  2, "h223Capability", ASN1_EXTENSION_ROOT,
                dissect_h245_H223Capability },
-       {  3, "v76Capability", EXTENSION_ROOT,
+       {  3, "v76Capability", ASN1_EXTENSION_ROOT,
                dissect_h245_V76Capability },
-       {  4, "h2250Capability", NOT_EXTENSION_ROOT,
+       {  4, "h2250Capability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H2250Capability },
-       {  5, "genericMultiplexCapability", NOT_EXTENSION_ROOT,
+       {  5, "genericMultiplexCapability", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_MultiplexCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexCapability, ett_h245_MultiplexCapability, MultiplexCapability_choice, "MultiplexCapability");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_MultiplexCapability, ett_h245_MultiplexCapability, MultiplexCapability_choice, "MultiplexCapability", NULL);
 
        return offset;
 }
@@ -18476,15 +17479,15 @@ dissect_h245_MultiplexCapability(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t TerminalCapabilitySet_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "protocolIdentifier", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_protocolIdentifier },
-       { "multiplexCapability", EXTENSION_ROOT, OPTIONAL,
+       { "multiplexCapability", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_MultiplexCapability },
-       { "capabilityTable", EXTENSION_ROOT, OPTIONAL,
+       { "capabilityTable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_capabilityTable },
-       { "capabilityDescriptors", EXTENSION_ROOT, OPTIONAL,
+       { "capabilityDescriptors", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_capabilityDescriptors },
        { NULL, 0, 0, NULL }
 };
@@ -18502,9 +17505,9 @@ dissect_h245_TerminalCapabilitySet(tvbuff_t *tvb, int offset, packet_info *pinfo
 
 
 static per_sequence_t ConferenceResponse_terminalIDResponse_sequence[] = {
-       { "terminalLabel", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "terminalID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "terminalID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_TerminalID },
        { NULL, 0, 0, NULL }
 };
@@ -18540,44 +17543,44 @@ static const value_string ConferenceResponse_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ConferenceResponse_choice[] = {
-       {  0, "mCTerminalIDResponse", EXTENSION_ROOT,
+       {  0, "mCTerminalIDResponse", ASN1_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_mCterminalIDResponse },
-       {  1, "terminalIDResponse", EXTENSION_ROOT,
+       {  1, "terminalIDResponse", ASN1_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_terminalIDResponse },
-       {  2, "conferenceIDResponse", EXTENSION_ROOT,
+       {  2, "conferenceIDResponse", ASN1_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_conferenceIDResponse },
-       {  3, "passwordResponse", EXTENSION_ROOT,
+       {  3, "passwordResponse", ASN1_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_passwordResponse },
-       {  4, "terminalListResponse", EXTENSION_ROOT,
+       {  4, "terminalListResponse", ASN1_EXTENSION_ROOT,
                dissect_h245_terminalListResponse },
-       {  5, "videoCommandReject", EXTENSION_ROOT, 
+       {  5, "videoCommandReject", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  6, "terminalDropReject", EXTENSION_ROOT, 
+       {  6, "terminalDropReject", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  7, "makeMeChairResponse", EXTENSION_ROOT, 
+       {  7, "makeMeChairResponse", ASN1_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_makeMeChairResponse },
-       {  8, "extensionAddressResponse", NOT_EXTENSION_ROOT,
+       {  8, "extensionAddressResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_extensionAddressResponse },
-       {  9, "chairTokenOwnerResponse", NOT_EXTENSION_ROOT,
+       {  9, "chairTokenOwnerResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_chairTokenOwnerResponse },
-       { 10, "terminalCertificateResponse", NOT_EXTENSION_ROOT,
+       { 10, "terminalCertificateResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_terminalCertificateResponse },
-       { 11, "broadcastMyLogicalChannelResponse", NOT_EXTENSION_ROOT, 
+       { 11, "broadcastMyLogicalChannelResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_broadcastMyLogicalChannelResponse },
-       { 12, "makeTerminalBroadcasterResponse", NOT_EXTENSION_ROOT, 
+       { 12, "makeTerminalBroadcasterResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_makeTerminalBroadcasterResponse },
-       { 13, "sendThisSourceResponse", NOT_EXTENSION_ROOT, 
+       { 13, "sendThisSourceResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceResponse_sendThisSourceResponse },
-       { 14, "requestAllTerminalIDsResponse", NOT_EXTENSION_ROOT,
+       { 14, "requestAllTerminalIDsResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_RequestAllTerminalIDsResponse },
-       { 15, "remoteMCResponse", NOT_EXTENSION_ROOT, 
+       { 15, "remoteMCResponse", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_RemoteMCResponse },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ConferenceResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse, ett_h245_ConferenceResponse, ConferenceResponse_choice, "ConferenceResponse");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ConferenceResponse, ett_h245_ConferenceResponse, ConferenceResponse_choice, "ConferenceResponse", NULL);
 
        return offset;
 }
@@ -18592,16 +17595,16 @@ static const value_string H261VideoMode_resolution_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H261VideoMode_resolution_choice[] = {
-       {  0, "qcif", NO_EXTENSIONS,
+       {  0, "qcif", ASN1_NO_EXTENSIONS,
                dissect_h245_NULL },
-       {  1, "cif", NO_EXTENSIONS,
+       {  1, "cif", ASN1_NO_EXTENSIONS,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H261VideoMode_resolution(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H261VideoMode_resolution, ett_h245_H261VideoMode_resolution, H261VideoMode_resolution_choice, "resolution");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H261VideoMode_resolution, ett_h245_H261VideoMode_resolution, H261VideoMode_resolution_choice, "resolution", NULL);
 
        return offset;
 }
@@ -18610,11 +17613,11 @@ dissect_h245_H261VideoMode_resolution(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t H261VideoMode_sequence[] = {
-       { "resolution", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "resolution", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H261VideoMode_resolution },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_h223bitRate },
-       { "stillImageTransmission", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "stillImageTransmission", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_stillImageTransmission },
        { NULL, 0, 0, NULL }
 };
@@ -18639,24 +17642,24 @@ static const value_string VideoMode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t VideoMode_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "h261VideoMode", EXTENSION_ROOT,
+       {  1, "h261VideoMode", ASN1_EXTENSION_ROOT,
                dissect_h245_H261VideoMode },
-       {  2, "h262VideoMode", EXTENSION_ROOT,
+       {  2, "h262VideoMode", ASN1_EXTENSION_ROOT,
                dissect_h245_H262VideoMode },
-       {  3, "h263VideoMode", EXTENSION_ROOT,
+       {  3, "h263VideoMode", ASN1_EXTENSION_ROOT,
                dissect_h245_H263VideoMode },
-       {  4, "is11172VideoMode", EXTENSION_ROOT, 
+       {  4, "is11172VideoMode", ASN1_EXTENSION_ROOT,
                dissect_h245_IS11172VideoMode},
-       {  5, "genericVideoMode", NOT_EXTENSION_ROOT,
+       {  5, "genericVideoMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_GenericCapability },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_VideoMode, ett_h245_VideoMode, VideoMode_choice, "VideoMode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_VideoMode, ett_h245_VideoMode, VideoMode_choice, "VideoMode", NULL);
 
        return offset;
 }
@@ -18672,20 +17675,20 @@ static const value_string H235Mode_mediaMode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t H235Mode_mediaMode_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "videoMode", EXTENSION_ROOT,
+       {  1, "videoMode", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoMode },
-       {  2, "audioMode", EXTENSION_ROOT,
+       {  2, "audioMode", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioMode },
-       {  3, "dataMode", EXTENSION_ROOT,
+       {  3, "dataMode", ASN1_EXTENSION_ROOT,
                dissect_h245_DataMode },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_H235Mode_mediaMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H235Mode_mediaMode, ett_h245_H235Mode_mediaMode, H235Mode_mediaMode_choice, "mediaMode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_H235Mode_mediaMode, ett_h245_H235Mode_mediaMode, H235Mode_mediaMode_choice, "mediaMode", NULL);
 
        return offset;
 }
@@ -18694,9 +17697,9 @@ dissect_h245_H235Mode_mediaMode(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t H235Mode_sequence[] = {
-       { "encryptionAuthenticationAndIntegrity", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "encryptionAuthenticationAndIntegrity", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_EncryptionAuthenticationAndIntegrity },
-       { "mediaMode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mediaMode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H235Mode_mediaMode },
        { NULL, 0, 0, NULL }
 };
@@ -18722,24 +17725,24 @@ static const value_string RedundancyEncodingDTModeElement_type_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RedundancyEncodingDTModeElement_type_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "videoMode", EXTENSION_ROOT,
+       {  1, "videoMode", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoMode },
-       {  2, "audioMode", EXTENSION_ROOT,
+       {  2, "audioMode", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioMode },
-       {  3, "dataMode", EXTENSION_ROOT, 
+       {  3, "dataMode", ASN1_EXTENSION_ROOT,
                dissect_h245_DataMode },
-       {  4, "encryptionMode", EXTENSION_ROOT,
+       {  4, "encryptionMode", ASN1_EXTENSION_ROOT,
                dissect_h245_EncryptionMode },
-       {  5, "h235Mode", EXTENSION_ROOT,
+       {  5, "h235Mode", ASN1_EXTENSION_ROOT,
                dissect_h245_H235Mode },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RedundancyEncodingDTModeElement_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RedundancyEncodingDTModeElement_type, ett_h245_RedundancyEncodingDTModeElement_type, RedundancyEncodingDTModeElement_type_choice, "type");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RedundancyEncodingDTModeElement_type, ett_h245_RedundancyEncodingDTModeElement_type, RedundancyEncodingDTModeElement_type_choice, "type", NULL);
 
        return offset;
 }
@@ -18748,7 +17751,7 @@ dissect_h245_RedundancyEncodingDTModeElement_type(tvbuff_t *tvb, int offset, pac
 
 
 static per_sequence_t RedundancyEncodingDTModeElement_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RedundancyEncodingDTModeElement_type },
        { NULL, 0, 0, NULL }
 };
@@ -18765,11 +17768,11 @@ dissect_h245_RedundancyEncodingDTModeElement(tvbuff_t *tvb, int offset, packet_i
 
 
 static per_sequence_t RedundancyEncodingDTMode_sequence[] = {
-       { "redundancyEncodingMethod", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "redundancyEncodingMethod", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RedundancyEncodingMethod },
-       { "primary", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "primary", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RedundancyEncodingDTModeElement },
-       { "secondary", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "secondary", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_secondary_REDTME_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -18799,32 +17802,32 @@ static const value_string ModeElementType_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ModeElementType_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "videoMode", EXTENSION_ROOT,
+       {  1, "videoMode", ASN1_EXTENSION_ROOT,
                dissect_h245_VideoMode },
-       {  2, "audioMode", EXTENSION_ROOT,
+       {  2, "audioMode", ASN1_EXTENSION_ROOT,
                dissect_h245_AudioMode },
-       {  3, "dataMode", EXTENSION_ROOT,
+       {  3, "dataMode", ASN1_EXTENSION_ROOT,
                dissect_h245_DataMode },
-       {  4, "encryptionMode", EXTENSION_ROOT,
+       {  4, "encryptionMode", ASN1_EXTENSION_ROOT,
                dissect_h245_EncryptionMode },
-       {  5, "h235Mode", NOT_EXTENSION_ROOT,
+       {  5, "h235Mode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_H235Mode },
-       {  6, "multiplexedStreamMode", NOT_EXTENSION_ROOT,
+       {  6, "multiplexedStreamMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplexedStreamParameter },
-       {  7, "redundancyEncodingDTMode", NOT_EXTENSION_ROOT,
+       {  7, "redundancyEncodingDTMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_RedundancyEncodingDTMode },
-       {  8, "multiplePayloadStreamMode", NOT_EXTENSION_ROOT,
+       {  8, "multiplePayloadStreamMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultiplePayloadStreamMode },
-       {  9, "fecMode", NOT_EXTENSION_ROOT,
+       {  9, "fecMode", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_FECMode },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ModeElementType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ModeElementType, ett_h245_ModeElementType, ModeElementType_choice, "ModeElementType");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ModeElementType, ett_h245_ModeElementType, ModeElementType_choice, "ModeElementType", NULL);
 
        return offset;
 }
@@ -18833,7 +17836,7 @@ dissect_h245_ModeElementType(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 
 
 static per_sequence_t MultiplePayloadStreamElementMode_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ModeElementType },
        { NULL, 0, 0, NULL }
 };
@@ -18850,7 +17853,7 @@ dissect_h245_MultiplePayloadStreamElementMode(tvbuff_t *tvb, int offset, packet_
 
 
 static per_sequence_t FECMode_rfc2733Mode_mode_separateStream_samePort_sequence[] = {
-       { "protectedType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "protectedType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ModeElementType },
        { NULL, 0, 0, NULL }
 };
@@ -18870,16 +17873,16 @@ static const value_string FECMode_rfc2733Mode_mode_separateStream_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FECMode_rfc2733Mode_mode_separateStream_choice[] = {
-       {  0, "differentPort", EXTENSION_ROOT,
+       {  0, "differentPort", ASN1_EXTENSION_ROOT,
                dissect_h245_FECMode_rfc2733Mode_mode_separateStream_differentPort },
-       {  1, "samePort", EXTENSION_ROOT,
+       {  1, "samePort", ASN1_EXTENSION_ROOT,
                dissect_h245_FECMode_rfc2733Mode_mode_separateStream_samePort },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FECMode_rfc2733Mode_mode_separateStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECMode_rfc2733Mode_mode_separateStream, ett_h245_FECMode_rfc2733Mode_mode_separateStream, FECMode_rfc2733Mode_mode_separateStream_choice, "separateStream");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECMode_rfc2733Mode_mode_separateStream, ett_h245_FECMode_rfc2733Mode_mode_separateStream, FECMode_rfc2733Mode_mode_separateStream_choice, "separateStream", NULL);
 
        return offset;
 }
@@ -18894,16 +17897,16 @@ static const value_string FECMode_rfc2733Mode_mode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FECMode_rfc2733Mode_mode_choice[] = {
-       {  0, "redundancyEncoding", EXTENSION_ROOT, 
+       {  0, "redundancyEncoding", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  1, "separateStream", EXTENSION_ROOT,
+       {  1, "separateStream", ASN1_EXTENSION_ROOT,
                dissect_h245_FECMode_rfc2733Mode_mode_separateStream },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FECMode_rfc2733Mode_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECMode_rfc2733Mode_mode, ett_h245_FECMode_rfc2733Mode_mode, FECMode_rfc2733Mode_mode_choice, "mode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECMode_rfc2733Mode_mode, ett_h245_FECMode_rfc2733Mode_mode, FECMode_rfc2733Mode_mode_choice, "mode", NULL);
 
        return offset;
 }
@@ -18911,7 +17914,7 @@ dissect_h245_FECMode_rfc2733Mode_mode(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 static per_sequence_t FECMode_rfc2733Mode_sequence[] = {
-       { "mode", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "mode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_FECMode_rfc2733Mode_mode },
        { NULL, 0, 0, NULL }
 };
@@ -18931,14 +17934,14 @@ static const value_string FECMode_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FECMode_choice[] = {
-       {  0, "rfc2733Mode", EXTENSION_ROOT,
+       {  0, "rfc2733Mode", ASN1_EXTENSION_ROOT,
                dissect_h245_FECMode_rfc2733Mode },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FECMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECMode, ett_h245_FECMode, FECMode_choice, "FECMode");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FECMode, ett_h245_FECMode, FECMode_choice, "FECMode", NULL);
 
        return offset;
 }
@@ -18956,18 +17959,18 @@ static const value_string FunctionNotUnderstood_vals[] = {
        {  0, NULL }
 };
 static per_choice_t FunctionNotUnderstood_choice[] = {
-       {  0, "request", NO_EXTENSIONS,
+       {  0, "request", ASN1_NO_EXTENSIONS,
                dissect_h245_RequestMessage },
-       {  1, "response", NO_EXTENSIONS,
+       {  1, "response", ASN1_NO_EXTENSIONS,
                dissect_h245_ResponseMessage },
-       {  2, "command", NO_EXTENSIONS,
+       {  2, "command", ASN1_NO_EXTENSIONS,
                dissect_h245_CommandMessage },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_FunctionNotUnderstood(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FunctionNotUnderstood, ett_h245_FunctionNotUnderstood, FunctionNotUnderstood_choice, "FunctionNotUnderstood");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_FunctionNotUnderstood, ett_h245_FunctionNotUnderstood, FunctionNotUnderstood_choice, "FunctionNotUnderstood", NULL);
 
        return offset;
 }
@@ -18977,7 +17980,25 @@ dissect_h245_FunctionNotUnderstood(tvbuff_t *tvb, int offset, packet_info *pinfo
 static int
 dissect_h245_signalType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-NOT_DECODED_YET("signalType");
+       /* XXX this is just wrong.
+         * the definition in the ASN.1 file is :
+        *   signalType IA5String (SIZE (1) ^ FROM ("0123456789#*ABCD!"))
+        * which means the 17 characters are encoded as 8-bit values 
+        * between 0x00 and 0x10
+         *
+        * however, captures from real world applications show that
+        * the field is encoded instead as :
+        *   signalType IA5String (SIZE (1))
+        * ie a single character ascii value from 0x00 to 0xff.
+        *
+        * the code is changed under protest.
+        * i still think it is the one commented out that is the correct one
+        */
+         /*offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h245_signalType, 1, 1, "!#*0123456789ABCD", 17);*/
+
+         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h245_signalType, 1, 1);
+
+
        return offset;
 }
 
@@ -18988,13 +18009,13 @@ NOT_DECODED_YET("signalType");
 
 
 static per_sequence_t UserInputIndication_signal_sequence[] = {
-       { "signalType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "signalType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_signalType },
-       { "duration", EXTENSION_ROOT, OPTIONAL,
+       { "duration", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_duration },
-       { "rtp", EXTENSION_ROOT, OPTIONAL,
+       { "rtp", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_UserInputIndication_signal_rtp },
-       { "rtpPayloadIndication", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "rtpPayloadIndication", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NULL },
        { NULL, 0, 0, NULL }
 };
@@ -19019,24 +18040,24 @@ static const value_string UserInputIndication_vals[] = {
        {  0, NULL }
 };
 static per_choice_t UserInputIndication_choice[] = {
-       {  0, "nonStandard", EXTENSION_ROOT,
+       {  0, "nonStandard", ASN1_EXTENSION_ROOT,
                dissect_h245_NonStandardParameter },
-       {  1, "alphanumeric", EXTENSION_ROOT,
+       {  1, "alphanumeric", ASN1_EXTENSION_ROOT,
                dissect_h245_alphanumeric },
-       {  2, "userInputSupportIndication", NOT_EXTENSION_ROOT,
+       {  2, "userInputSupportIndication", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_UserInputIndication_userInputSupportIndication },
-       {  3, "signal", NOT_EXTENSION_ROOT,
+       {  3, "signal", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_UserInputIndication_signal },
-       {  4, "signalUpdate", NOT_EXTENSION_ROOT,
+       {  4, "signalUpdate", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_UserInputIndication_signalUpdate },
-       {  5, "extendedAlphanumeric", NOT_EXTENSION_ROOT,
+       {  5, "extendedAlphanumeric", ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_UserInputIndication_extendedAlphanumeric },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_UserInputIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UserInputIndication, ett_h245_UserInputIndication, UserInputIndication_choice, "UserInputIndication");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_UserInputIndication, ett_h245_UserInputIndication, UserInputIndication_choice, "UserInputIndication", NULL);
 
        return offset;
 }
@@ -19046,7 +18067,7 @@ dissect_h245_UserInputIndication(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t TerminalCapabilitySetRelease_sequence[] = {
-       { NULL, EXTENSION_ROOT, NOT_OPTIONAL, NULL }
+       { NULL, ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, NULL }
 };
 static int
 dissect_h245_TerminalCapabilitySetRelease(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -19061,7 +18082,7 @@ dissect_h245_TerminalCapabilitySetRelease(tvbuff_t *tvb, int offset, packet_info
 static int
 dissect_h245_internationalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-NOT_DECODED_YET("internationalNumber");
+       offset=dissect_per_NumericString(tvb, offset, pinfo, tree, hf_h245_internationalNumber, 1, 16);
        return offset;
 }
 
@@ -19075,16 +18096,16 @@ static const value_string Q2931Address_address_vals[] = {
        {  0, NULL }
 };
 static per_choice_t Q2931Address_address_choice[] = {
-       {  0, "internationalNumber", EXTENSION_ROOT,
+       {  0, "internationalNumber", ASN1_EXTENSION_ROOT,
                dissect_h245_internationalNumber },
-       {  1, "nsapAddress", EXTENSION_ROOT, 
+       {  1, "nsapAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_nsapAddress},
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_Q2931Address_address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_Q2931Address_address, ett_h245_Q2931Address_address, Q2931Address_address_choice, "address");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_Q2931Address_address, ett_h245_Q2931Address_address, Q2931Address_address_choice, "address", NULL);
 
        return offset;
 }
@@ -19094,9 +18115,9 @@ dissect_h245_Q2931Address_address(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
 
 static per_sequence_t Q2931Address_sequence[] = {
-       { "address", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "address", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_Q2931Address_address },
-       { "subaddress", EXTENSION_ROOT, OPTIONAL,
+       { "subaddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_subaddress_1_20 },
        { NULL, 0, 0, NULL }
 };
@@ -19114,7 +18135,8 @@ dissect_h245_Q2931Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 static int
 dissect_h245_e164Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-NOT_DECODED_YET("e164Address");
+       offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h245_e164Address, 1, 128, "#*,0123456789", 13);
+
        return offset;
 }
 
@@ -19128,18 +18150,18 @@ static const value_string NetworkAccessParameters_networkAddress_vals[] = {
        {  0, NULL }
 };
 static per_choice_t NetworkAccessParameters_networkAddress_choice[] = {
-       {  0, "q2931Address", EXTENSION_ROOT,
+       {  0, "q2931Address", ASN1_EXTENSION_ROOT,
                dissect_h245_Q2931Address },
-       {  1, "e164Address", EXTENSION_ROOT,
+       {  1, "e164Address", ASN1_EXTENSION_ROOT,
                dissect_h245_e164Address },
-       {  2, "localAreaAddress", EXTENSION_ROOT, 
+       {  2, "localAreaAddress", ASN1_EXTENSION_ROOT,
                dissect_h245_localAreaAddress },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_NetworkAccessParameters_networkAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NetworkAccessParameters_networkAddress, ett_h245_NetworkAccessParameters_networkAddress, NetworkAccessParameters_networkAddress_choice, "networkAddress");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_NetworkAccessParameters_networkAddress, ett_h245_NetworkAccessParameters_networkAddress, NetworkAccessParameters_networkAddress_choice, "networkAddress", NULL);
 
        return offset;
 }
@@ -19149,15 +18171,15 @@ dissect_h245_NetworkAccessParameters_networkAddress(tvbuff_t *tvb, int offset, p
 
 
 static per_sequence_t NetworkAccessParameters_sequence[] = {
-       { "distribution", EXTENSION_ROOT, OPTIONAL, 
+       { "distribution", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NetworkAccessParameters_distribution },
-       { "networkAddress", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "networkAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NetworkAccessParameters_networkAddress },
-       { "associateConference", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "associateConference", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_associateConference},
-       { "externalReference", EXTENSION_ROOT, OPTIONAL,
+       { "externalReference", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_externalReference },
-       { "t120SetupProcedure", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "t120SetupProcedure", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NetworkAccessParameters_t120SetupProcedure },
        { NULL, 0, 0, NULL }
 };
@@ -19174,19 +18196,19 @@ dissect_h245_NetworkAccessParameters(tvbuff_t *tvb, int offset, packet_info *pin
 
 
 static per_sequence_t OpenLogicalChannel_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "forwardLogicalChannelParameters", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "forwardLogicalChannelParameters", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_forwardLogicalChannelParameters },
-       { "reverseLogicalChannelParameters", EXTENSION_ROOT, OPTIONAL,
+       { "reverseLogicalChannelParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_reverseLogicalChannelParameters },
-       { "separateStack", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "separateStack", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NetworkAccessParameters },
-       { "encryptionSync", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "encryptionSync", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_EncryptionSync },
        { NULL, 0, 0, NULL }
 };
-static int
+int
 dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
        offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h245_OpenLogicalChannel, ett_h245_OpenLogicalChannel, OpenLogicalChannel_sequence);
@@ -19198,15 +18220,15 @@ dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t OpenLogicalChannelAck_sequence[] = {
-       { "forwardLogicalChannelNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "forwardLogicalChannelNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_LogicalChannelNumber },
-       { "reverseLogicalChannelParameters", EXTENSION_ROOT, OPTIONAL,
+       { "reverseLogicalChannelParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_OpenLogicalChannelAck_reverseLogicalChannelParameters },
-       { "separateStack", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "separateStack", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_NetworkAccessParameters },
-       { "forwardMultiplexAckParameters", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "forwardMultiplexAckParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_forwardMultiplexAckParameters},
-       { "encryptionSync", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "encryptionSync", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_EncryptionSync},
        { NULL, 0, 0, NULL }
 };
@@ -19233,9 +18255,9 @@ NOT_DECODED_YET("escrowValue");
 
 
 static per_sequence_t EscrowData_sequence[] = {
-       { "escrowID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "escrowID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_escrowID },
-       { "escrowValue", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "escrowValue", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_escrowValue },
        { NULL, 0, 0, NULL }
 };
@@ -19261,16 +18283,16 @@ static const value_string RequestModeAck_response_decision_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RequestModeAck_response_decision_choice[] = {
-       {  0, "willTransmitMostPreferredMode", EXTENSION_ROOT, 
+       {  0, "willTransmitMostPreferredMode", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
-       {  1, "willTransmitLessPreferredMode", EXTENSION_ROOT, 
+       {  1, "willTransmitLessPreferredMode", ASN1_EXTENSION_ROOT,
                dissect_h245_NULL },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RequestModeAck_response_decision(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestModeAck_response_decision, ett_h245_RequestModeAck_response_decision, RequestModeAck_response_decision_choice, "decision");
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestModeAck_response_decision, ett_h245_RequestModeAck_response_decision, RequestModeAck_response_decision_choice, "decision", NULL);
 
        return offset;
 }
@@ -19280,9 +18302,9 @@ dissect_h245_RequestModeAck_response_decision(tvbuff_t *tvb, int offset, packet_
 
 
 static per_sequence_t RequestModeAck_sequence[] = {
-       { "sequenceNumber", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "sequenceNumber", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_SequenceNumber },
-       { "response", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "response", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_RequestModeAck_response_decision },
        { NULL, 0, 0, NULL }
 };
@@ -19298,7 +18320,7 @@ dissect_h245_RequestModeAck(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 static per_sequence_t RequestModeRelease_sequence[] = {
-       { NULL, EXTENSION_ROOT, 0, NULL }
+       { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
 };
 static int
 dissect_h245_RequestModeRelease(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -19311,7 +18333,7 @@ dissect_h245_RequestModeRelease(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t MaintenanceLoopOffCommand_sequence[] = {
-       { NULL, EXTENSION_ROOT, 0, NULL }
+       { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
 };
 static int
 dissect_h245_MaintenanceLoopOffCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -19325,7 +18347,7 @@ dissect_h245_MaintenanceLoopOffCommand(tvbuff_t *tvb, int offset, packet_info *p
 
 
 static per_sequence_t CommunicationModeRequest_sequence[] = {
-       { NULL, EXTENSION_ROOT, 0, NULL }
+       { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
 };
 static int
 dissect_h245_CommunicationModeRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -19338,6 +18360,32 @@ dissect_h245_CommunicationModeRequest(tvbuff_t *tvb, int offset, packet_info *pi
 
 
 
+static const value_string IndicationMessage_short_vals[] = {
+       {  0,   "NSM" },
+       {  1,   "FNU" },
+       {  2,   "MSDRelease" },
+       {  3,   "TCSRelease" },
+       {  4,   "OLCConfirm" },
+       {  5,   "RCCRelease" },
+       {  6,   "MESRelease" },
+       {  7,   "RMERelease" },
+       {  8,   "RMRelease" },
+       {  9,   "MI" },
+       { 10,   "JI" },
+       { 11,   "H223SI" },
+       { 12,   "NATMVCI" },
+       { 13,   "UII" },
+       { 14,   "H2250MSI" },
+       { 15,   "MCLI" },
+       { 16,   "CI" },
+       { 17,   "VI" },
+       { 18,   "FNS" },
+       { 19,   "MultilinkIndication" },
+       { 20,   "LCRRelease" },
+       { 21,   "FCIndication" },
+       { 22,   "MMRI" },
+       {  0, NULL }
+};
 
 
 static const value_string IndicationMessage_vals[] = {
@@ -19367,64 +18415,99 @@ static const value_string IndicationMessage_vals[] = {
        {  0, NULL }
 };
 static per_choice_t IndicationMessage_choice[] = {
-       {  0,   "NonStandardMessage",                   EXTENSION_ROOT,
+       {  0,   "NonStandardMessage",                   ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardMessage },
-       {  1,   "FunctionNotUnderstood",                EXTENSION_ROOT,
+       {  1,   "FunctionNotUnderstood",                ASN1_EXTENSION_ROOT,
                        dissect_h245_FunctionNotUnderstood },
-       {  2,   "MasterSlaveDeterminationRelease",      EXTENSION_ROOT,
+       {  2,   "MasterSlaveDeterminationRelease",      ASN1_EXTENSION_ROOT,
                        dissect_h245_MasterSlaveDeterminationRelease },
-       {  3,   "TerminalCapabilitySetRelease",         EXTENSION_ROOT,
+       {  3,   "TerminalCapabilitySetRelease",         ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalCapabilitySetRelease },
-       {  4,   "OpenLogicalChannelConfirm",            EXTENSION_ROOT, 
+       {  4,   "OpenLogicalChannelConfirm",            ASN1_EXTENSION_ROOT,
                        dissect_h245_OpenLogicalChannelConfirm },
-       {  5,   "RequestChannelCloseRelease",           EXTENSION_ROOT, 
+       {  5,   "RequestChannelCloseRelease",           ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestChannelCloseRelease },
-       {  6,   "MultiplexEntrySendRelease",            EXTENSION_ROOT,
+       {  6,   "MultiplexEntrySendRelease",            ASN1_EXTENSION_ROOT,
                        dissect_h245_MultiplexEntrySendRelease },
-       {  7,   "RequestMultiplexEntryRelease",         EXTENSION_ROOT,
+       {  7,   "RequestMultiplexEntryRelease",         ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestMultiplexEntryRelease },
-       {  8,   "RequestModeRelease",                   EXTENSION_ROOT,
+       {  8,   "RequestModeRelease",                   ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestModeRelease },
-       {  9,   "MiscellaneousIndication",              EXTENSION_ROOT, 
+       {  9,   "MiscellaneousIndication",              ASN1_EXTENSION_ROOT,
                        dissect_h245_MiscellaneousIndication },
-       { 10,   "JitterIndication",                     EXTENSION_ROOT,
+       { 10,   "JitterIndication",                     ASN1_EXTENSION_ROOT,
                        dissect_h245_JitterIndication },
-       { 11,   "H223SkewIndication",                   EXTENSION_ROOT,
+       { 11,   "H223SkewIndication",                   ASN1_EXTENSION_ROOT,
                        dissect_h245_H223SkewIndication },
-       { 12,   "NewATMVCIndication",                   EXTENSION_ROOT,
+       { 12,   "NewATMVCIndication",                   ASN1_EXTENSION_ROOT,
                        dissect_h245_NewATMVCIndication },
-       { 13,   "UserInputIndication",                  EXTENSION_ROOT,
+       { 13,   "UserInputIndication",                  ASN1_EXTENSION_ROOT,
                        dissect_h245_UserInputIndication },
-       { 14,   "H2250MaximumSkewIndication",           NOT_EXTENSION_ROOT,
+       { 14,   "H2250MaximumSkewIndication",           ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_H2250MaximumSkewIndication },
-       { 15,   "MCLocationIndication",                 NOT_EXTENSION_ROOT,
+       { 15,   "MCLocationIndication",                 ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_MCLocationIndication },
-       { 16,   "ConferenceIndication",                 NOT_EXTENSION_ROOT,
+       { 16,   "ConferenceIndication",                 ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_ConferenceIndication },
-       { 17,   "VendorIdentification",                 NOT_EXTENSION_ROOT,
+       { 17,   "VendorIdentification",                 ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_VendorIdentification },
-       { 18,   "FunctionNotSupported",                 NOT_EXTENSION_ROOT,
+       { 18,   "FunctionNotSupported",                 ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_FunctionNotSupported },
-       { 19,   "MultilinkIndication",                  NOT_EXTENSION_ROOT,
+       { 19,   "MultilinkIndication",                  ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MultilinkIndication },
-       { 20,   "LogicalChannelRateRelease",            NOT_EXTENSION_ROOT,
+       { 20,   "LogicalChannelRateRelease",            ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_LogicalChannelRateRelease },
-       { 21,   "FlowControlIndication",                NOT_EXTENSION_ROOT,
+       { 21,   "FlowControlIndication",                ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_FlowControlIndication },
-       { 22,   "MobileMultilinkReconfigurationIndication",NOT_EXTENSION_ROOT,
+       { 22,   "MobileMultilinkReconfigurationIndication",ASN1_NOT_EXTENSION_ROOT,
                dissect_h245_MobileMultilinkReconfigurationIndication },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_IndicationMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IndicationMessage_type, ett_h245_IndicationMessage, IndicationMessage_choice, "IndicationMessage");
+       guint32 value;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_IndicationMessage_type, ett_h245_IndicationMessage, IndicationMessage_choice, "IndicationMessage", &value);
+
+       if (check_col(pinfo->cinfo, COL_INFO)){
+               if ( h245_shorttypes == TRUE )
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, IndicationMessage_short_vals, "<unknown>"));
+               }
+               else
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, IndicationMessage_vals, "<unknown>"));
+               }
+       }
+
+       col_set_fence(pinfo->cinfo,COL_INFO);
 
        return offset;
 }
 
 
 
+static const value_string RequestMessage_short_vals[] = {
+       {  0,   "NSM" },
+       {  1,   "MSD" },
+       {  2,   "TCS" },
+       {  3,   "OLC" },
+       {  4,   "CLC" },
+       {  5,   "RCC" },
+       {  6,   "MES" },
+       {  7,   "RME" },
+       {  8,   "RM" },
+       {  9,   "RTDR" },
+       { 10,   "MLR" },
+       { 11,   "CMR" },
+       { 12,   "CR" },
+       { 13,   "MR" },
+       { 14,   "LCRR" },
+       {  0, NULL }
+};
 
 
 static const value_string RequestMessage_vals[] = {
@@ -19446,42 +18529,63 @@ static const value_string RequestMessage_vals[] = {
        {  0, NULL }
 };
 static per_choice_t RequestMessage_choice[] = {
-       {  0,   "NonStandardMessage",           EXTENSION_ROOT,
+       {  0,   "NonStandardMessage",           ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardMessage },
-       {  1,   "MasterSlaveDetermination",     EXTENSION_ROOT, 
+       {  1,   "MasterSlaveDetermination",     ASN1_EXTENSION_ROOT,
                        dissect_h245_MasterSlaveDetermination },
-       {  2,   "TerminalCapabilitySet",        EXTENSION_ROOT,
+       {  2,   "TerminalCapabilitySet",        ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalCapabilitySet },
-       {  3,   "OpenLogicalChannel",           EXTENSION_ROOT,
+       {  3,   "OpenLogicalChannel",           ASN1_EXTENSION_ROOT,
                        dissect_h245_OpenLogicalChannel },
-       {  4,   "CloseLogicalChannel",          EXTENSION_ROOT, 
+       {  4,   "CloseLogicalChannel",          ASN1_EXTENSION_ROOT,
                        dissect_h245_CloseLogicalChannel },
-       {  5,   "RequestChannelClose",          EXTENSION_ROOT,
+       {  5,   "RequestChannelClose",          ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestChannelClose },
-       {  6,   "MultiplexEntrySend",           EXTENSION_ROOT,
+       {  6,   "MultiplexEntrySend",           ASN1_EXTENSION_ROOT,
                        dissect_h245_MultiplexEntrySend },
-       {  7,   "RequestMultiplexEntry",        EXTENSION_ROOT,
+       {  7,   "RequestMultiplexEntry",        ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestMultiplexEntry },
-       {  8,   "RequestMode",                  EXTENSION_ROOT,
+       {  8,   "RequestMode",                  ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestMode },
-       {  9,   "RoundTripDelayRequest",        EXTENSION_ROOT, 
+       {  9,   "RoundTripDelayRequest",        ASN1_EXTENSION_ROOT,
                        dissect_h245_RoundTripDelayRequest },
-       { 10,   "MaintenanceLoopRequest",       EXTENSION_ROOT, 
+       { 10,   "MaintenanceLoopRequest",       ASN1_EXTENSION_ROOT,
                        dissect_h245_MaintenanceLoopRequest },
-       { 11,   "CommunicationModeRequest",     NOT_EXTENSION_ROOT,
+       { 11,   "CommunicationModeRequest",     ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_CommunicationModeRequest },
-       { 12,   "ConferenceRequest",            NOT_EXTENSION_ROOT,
+       { 12,   "ConferenceRequest",            ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_ConferenceRequest },
-       { 13,   "MultilinkRequest",             NOT_EXTENSION_ROOT,
+       { 13,   "MultilinkRequest",             ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_MultilinkRequest },
-       { 14,   "LogicalChannelRateRequest",    NOT_EXTENSION_ROOT,
+       { 14,   "LogicalChannelRateRequest",    ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelRateRequest },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_RequestMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestMessage_type, ett_h245_RequestMessage, RequestMessage_choice, "RequestMessage");
+       guint32 value;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_RequestMessage_type, ett_h245_RequestMessage, RequestMessage_choice, "RequestMessage", &value);
+
+       if (check_col(pinfo->cinfo, COL_INFO)){
+               if ( h245_shorttypes == TRUE )
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, RequestMessage_short_vals, "<unknown>"));
+               }
+               else
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, RequestMessage_vals, "<unknown>"));
+               }
+       }
+
+       if (( check_col(pinfo->cinfo, COL_INFO)) && ( codec_type != NULL ) && ( value == 3) ){
+               col_append_fstr(pinfo->cinfo, COL_INFO, "(%s) ", codec_type );
+       }
+
+        col_set_fence(pinfo->cinfo,COL_INFO);
 
        return offset;
 }
@@ -19510,21 +18614,21 @@ dissect_h245_distributedData_sequence_of(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t MediaDistributionCapability_sequence[] = {
-       { "centralizedControl", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "centralizedControl", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_centralizedControl },
-       { "distributedControl", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "distributedControl", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_distributedControl },
-       { "centralizedAudio", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "centralizedAudio", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_centralizedAudio },
-       { "distributedAudio", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "distributedAudio", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_distributedAudio },
-       { "centralizedVideo", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "centralizedVideo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_centralizedVideo },
-       { "distributedVideo", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "distributedVideo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_distributedVideo },
-       { "centralizedData", EXTENSION_ROOT, OPTIONAL,
+       { "centralizedData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_centralizedData_sequence_of },
-       { "distributedData", EXTENSION_ROOT, OPTIONAL,
+       { "distributedData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_distributedData_sequence_of },
        { NULL, 0, 0, NULL }
 };
@@ -19560,9 +18664,9 @@ dissect_h245_rtpPayloadType_sequence_of(tvbuff_t *tvb, int offset, packet_info *
 
 
 static per_sequence_t H223ModeParameters_sequence[] = {
-       { "adaptationLayerType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "adaptationLayerType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_H223ModeParameters_adaptationLayerType },
-       { "segmentableFlag", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "segmentableFlag", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_segmentableFlag },
        { NULL, 0, 0, NULL }
 };
@@ -19579,17 +18683,17 @@ dissect_h245_H223ModeParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, p
 
 
 static per_sequence_t ModeElement_sequence[] = {
-       { "type", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "type", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ModeElementType },
-       { "h223ModeParameters", EXTENSION_ROOT, OPTIONAL,
+       { "h223ModeParameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H223ModeParameters },
-       { "v76ModeParameters", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "v76ModeParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_V76ModeParameters },
-       { "h2250ModeParameters", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "h2250ModeParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_H2250ModeParameters },
-       { "genericModeParameters", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "genericModeParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_GenericCapability },
-       { "multiplexedStreamModeParameters", NOT_EXTENSION_ROOT, OPTIONAL, 
+       { "multiplexedStreamModeParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_MultiplexedStreamModeParameters },
        { NULL, 0, 0, NULL }
 };
@@ -19632,11 +18736,11 @@ dissect_h245_t38FaxMaxDatagram(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
 
 static per_sequence_t T38FaxUdpOptions_sequence[] = {
-       { "t38FaxMaxBuffer", NO_EXTENSIONS, OPTIONAL,
+       { "t38FaxMaxBuffer", ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
                dissect_h245_t38FaxMaxBuffer },
-       { "t38FaxMaxDatagram", NO_EXTENSIONS, OPTIONAL,
+       { "t38FaxMaxDatagram", ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
                dissect_h245_t38FaxMaxDatagram },
-       { "t38FaxUdpEC", NO_EXTENSIONS, NOT_OPTIONAL,
+       { "t38FaxUdpEC", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
                dissect_h245_T38FaxUdpOptions_t38FaxUdpEC },
        { NULL, 0, 0, NULL }
 };
@@ -19663,31 +18767,31 @@ NOT_DECODED_YET("sessionDescription");
 
 
 static per_sequence_t CommunicationModeTableEntry_sequence[] = {
-       { "nonStandard", EXTENSION_ROOT, OPTIONAL,
+       { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_nonStandardData_sequence_of },
-       { "sessionID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sessionID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sessionID_1_255 },
-       { "associatedSessionID", EXTENSION_ROOT, OPTIONAL,
+       { "associatedSessionID", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_associatedSessionID },
-       { "terminalLabel", EXTENSION_ROOT, OPTIONAL,
+       { "terminalLabel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TerminalLabel },
-       { "sessionDescription", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "sessionDescription", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_sessionDescription },
-       { "dataType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "dataType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_CommunicationModeTableEntry_dataType },
-       { "mediaChannel", EXTENSION_ROOT, OPTIONAL,
+       { "mediaChannel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaChannel },
-       { "mediaGuaranteedDelivery", EXTENSION_ROOT, OPTIONAL, 
+       { "mediaGuaranteedDelivery", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaGuaranteedDelivery },
-       { "mediaControlChannel", EXTENSION_ROOT, OPTIONAL,
+       { "mediaControlChannel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaControlChannel },
-       { "mediaControlGuaranteedDelivery", EXTENSION_ROOT, OPTIONAL, 
+       { "mediaControlGuaranteedDelivery", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_mediaControlGuaranteedDelivery },
-       { "redundancyEncoding", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "redundancyEncoding", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_RedundancyEncoding },
-       { "sessionDependency", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "sessionDependency", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_sessionDependency },
-       { "destination", NOT_EXTENSION_ROOT, OPTIONAL,
+       { "destination", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_TerminalLabel },
        { NULL, 0, 0, NULL }
 };
@@ -19703,19 +18807,19 @@ dissect_h245_CommunicationModeTableEntry(tvbuff_t *tvb, int offset, packet_info
 
 
 static per_sequence_t NewATMVCCommand_sequence[] = {
-       { "resouceID", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "resouceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_resourceID },
-       { "bitRate", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_ATM_BitRate },
-       { "bitRateLockedToPCRClock", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "bitRateLockedToPCRClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToPCRClock },
-       { "bitRateLockedToNetworkClock", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "bitRateLockedToNetworkClock", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_bitRateLockedToNetworkClock },
-       { "aal", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "aal", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCCommand_aal },
-       { "multiplex", EXTENSION_ROOT, NOT_OPTIONAL, 
+       { "multiplex", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCCommand_multiplex },
-       { "reverseParameters", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "reverseParameters", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_NewATMVCCommand_reverseParameters },
        { NULL, 0, 0, NULL }
 };
@@ -19727,6 +18831,21 @@ dissect_h245_NewATMVCCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
        return offset;
 }
 
+static const value_string CommandMessage_short_vals[] = {
+       {  0,   "NSM" },
+       {  1,   "MLOC" },
+       {  2,   "STCS" },
+       {  3,   "EC" },
+       {  4,   "FCC" },
+       {  5,   "ESC" },
+       {  6,   "MC" },
+       {  7,   "CMC" },
+       {  8,   "CC" },
+       {  9,   "H223MR" },
+       { 10,   "NATMVCC" },
+       { 11,   "MMRC" },
+       {  0, NULL }
+};
 
 
 
@@ -19746,36 +18865,53 @@ static const value_string CommandMessage_vals[] = {
        {  0, NULL }
 };
 static per_choice_t CommandMessage_choice[] = {
-       {  0,   "NonStandardMessage",           EXTENSION_ROOT,
+       {  0,   "NonStandardMessage",           ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardMessage },
-       {  1,   "MaintenanceLoopOffCommand",    EXTENSION_ROOT,
+       {  1,   "MaintenanceLoopOffCommand",    ASN1_EXTENSION_ROOT,
                        dissect_h245_MaintenanceLoopOffCommand },
-       {  2,   "SendTerminalCapabilitySet",    EXTENSION_ROOT,
+       {  2,   "SendTerminalCapabilitySet",    ASN1_EXTENSION_ROOT,
                        dissect_h245_SendTerminalCapabilitySet },
-       {  3,   "EncryptionCommand",            EXTENSION_ROOT,
+       {  3,   "EncryptionCommand",            ASN1_EXTENSION_ROOT,
                        dissect_h245_EncryptionCommand },
-       {  4,   "FlowControlCommand",           EXTENSION_ROOT,
+       {  4,   "FlowControlCommand",           ASN1_EXTENSION_ROOT,
                        dissect_h245_FlowControlCommand },
-       {  5,   "EndSessionCommand",            EXTENSION_ROOT,
+       {  5,   "EndSessionCommand",            ASN1_EXTENSION_ROOT,
                        dissect_h245_EndSessionCommand },
-       {  6,   "MiscellaneousCommand",         EXTENSION_ROOT,
+       {  6,   "MiscellaneousCommand",         ASN1_EXTENSION_ROOT,
                        dissect_h245_MiscellaneousCommand },
-       {  7,   "CommunicationModeCommand",     NOT_EXTENSION_ROOT,
+       {  7,   "CommunicationModeCommand",     ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_CommunicationModeCommand },
-       {  8,   "ConferenceCommand",            NOT_EXTENSION_ROOT,
+       {  8,   "ConferenceCommand",            ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_ConferenceCommand },
-       {  9,   "H223MultiplexReconfiguration", NOT_EXTENSION_ROOT, 
+       {  9,   "H223MultiplexReconfiguration", ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_H223MultiplexReconfiguration },
-       { 10,   "NewATMVCCommand",              NOT_EXTENSION_ROOT,
+       { 10,   "NewATMVCCommand",              ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_NewATMVCCommand },
-       { 11,   "MobileMultilinkReconfigurationCommand",NOT_EXTENSION_ROOT,
+       { 11,   "MobileMultilinkReconfigurationCommand",ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_MobileMultilinkReconfigurationCommand },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_CommandMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CommandMessage_type, ett_h245_CommandMessage, CommandMessage_choice, "CommandMessage");
+       guint32 value;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_CommandMessage_type, ett_h245_CommandMessage, CommandMessage_choice, "CommandMessage", &value);
+
+       if (check_col(pinfo->cinfo, COL_INFO)){
+               if ( h245_shorttypes == TRUE )
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, CommandMessage_short_vals, "<unknown>"));
+               }
+               else
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, CommandMessage_vals, "<unknown>"));
+               }
+       }
+
+       col_set_fence(pinfo->cinfo,COL_INFO);
 
        return offset;
 }
@@ -19783,6 +18919,33 @@ dissect_h245_CommandMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
 
 
 
+static const value_string ResponseMessage_short_vals[] = {
+       {  0,   "NSM" },
+       {  1,   "MSDAck" },
+       {  2,   "MSDReject" },
+       {  3,   "TCSAck" },
+       {  4,   "TCSReject" },
+       {  5,   "OLCAck" },
+       {  6,   "OLCReject" },
+       {  7,   "CLCAck" },
+       {  8,   "RCCAck" },
+       {  9,   "RCCReject" },
+       { 10,   "MESAck" },
+       { 11,   "MESReject" },
+       { 12,   "RMEAck" },
+       { 13,   "RMEReject" },
+       { 14,   "RMAck" },
+       { 15,   "RMReject" },
+       { 16,   "RTDResponse" },
+       { 17,   "MLAck" },
+       { 18,   "MLReject" },
+       { 19,   "CMResponse" },
+       { 20,   "CResponse" },
+       { 21,   "MResponse" },
+       { 22,   "LCRAck" },
+       { 23,   "LCRReject" },
+       {  0, NULL }
+};
 
 
 static const value_string ResponseMessage_vals[] = {
@@ -19813,60 +18976,77 @@ static const value_string ResponseMessage_vals[] = {
        {  0, NULL }
 };
 static per_choice_t ResponseMessage_choice[] = {
-       {  0,   "NonStandardMessage",           EXTENSION_ROOT,
+       {  0,   "NonStandardMessage",           ASN1_EXTENSION_ROOT,
                        dissect_h245_NonStandardMessage },
-       {  1,   "MasterSlaveDeterminationAck",  EXTENSION_ROOT,
+       {  1,   "MasterSlaveDeterminationAck",  ASN1_EXTENSION_ROOT,
                        dissect_h245_MasterSlaveDeterminationAck },
-       {  2,   "MasterSlaveDeterminationReject",EXTENSION_ROOT,
+       {  2,   "MasterSlaveDeterminationReject",ASN1_EXTENSION_ROOT,
                        dissect_h245_MasterSlaveDeterminationReject },
-       {  3,   "TerminalCapabilitySetAck",     EXTENSION_ROOT, 
+       {  3,   "TerminalCapabilitySetAck",     ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalCapabilitySetAck },
-       {  4,   "TerminalCapabilitySetReject",  EXTENSION_ROOT,
+       {  4,   "TerminalCapabilitySetReject",  ASN1_EXTENSION_ROOT,
                        dissect_h245_TerminalCapabilitySetReject },
-       {  5,   "OpenLogicalChannelAck",        EXTENSION_ROOT,
+       {  5,   "OpenLogicalChannelAck",        ASN1_EXTENSION_ROOT,
                        dissect_h245_OpenLogicalChannelAck },
-       {  6,   "OpenLogicalChannelReject",     EXTENSION_ROOT, 
+       {  6,   "OpenLogicalChannelReject",     ASN1_EXTENSION_ROOT,
                        dissect_h245_OpenLogicalChannelReject },
-       {  7,   "CloseLogicalChannelAck",       EXTENSION_ROOT, 
+       {  7,   "CloseLogicalChannelAck",       ASN1_EXTENSION_ROOT,
                        dissect_h245_CloseLogicalChannelAck },
-       {  8,   "RequestChannelCloseAck",       EXTENSION_ROOT, 
+       {  8,   "RequestChannelCloseAck",       ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestChannelCloseAck },
-       {  9,   "RequestChannelCloseReject",    EXTENSION_ROOT, 
+       {  9,   "RequestChannelCloseReject",    ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestChannelCloseReject },
-       { 10,   "MultiplexEntrySendAck",        EXTENSION_ROOT,
+       { 10,   "MultiplexEntrySendAck",        ASN1_EXTENSION_ROOT,
                        dissect_h245_MultiplexEntrySendAck },
-       { 11,   "MultiplexEntrySendReject",     EXTENSION_ROOT,
+       { 11,   "MultiplexEntrySendReject",     ASN1_EXTENSION_ROOT,
                        dissect_h245_MultiplexEntrySendReject },
-       { 12,   "RequestMultiplexEntryAck",     EXTENSION_ROOT,
+       { 12,   "RequestMultiplexEntryAck",     ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestMultiplexEntryAck },
-       { 13,   "RequestMultiplexEntryReject",  EXTENSION_ROOT,
+       { 13,   "RequestMultiplexEntryReject",  ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestMultiplexEntryReject },
-       { 14,   "RequestModeAck",               EXTENSION_ROOT,
+       { 14,   "RequestModeAck",               ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestModeAck },
-       { 15,   "RequestModeReject",            EXTENSION_ROOT, 
+       { 15,   "RequestModeReject",            ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestModeReject },
-       { 16,   "RoundTripDelayResponse",       EXTENSION_ROOT, 
+       { 16,   "RoundTripDelayResponse",       ASN1_EXTENSION_ROOT,
                        dissect_h245_RoundTripDelayResponse },
-       { 17,   "MaintenanceLoopAck",           EXTENSION_ROOT, 
+       { 17,   "MaintenanceLoopAck",           ASN1_EXTENSION_ROOT,
                        dissect_h245_MaintenanceLoopAck },
-       { 18,   "MaintenanceLoopReject",        EXTENSION_ROOT, 
+       { 18,   "MaintenanceLoopReject",        ASN1_EXTENSION_ROOT,
                        dissect_h245_MaintenanceLoopReject },
-       { 19,   "CommunicationModeResponse",    NOT_EXTENSION_ROOT,
+       { 19,   "CommunicationModeResponse",    ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_CommunicationModeResponse },
-       { 20,   "ConferenceResponse",           NOT_EXTENSION_ROOT,
+       { 20,   "ConferenceResponse",           ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_ConferenceResponse },
-       { 21,   "MultilinkResponse",            NOT_EXTENSION_ROOT,
+       { 21,   "MultilinkResponse",            ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_MultilinkResponse },
-       { 22,   "LogicalChannelRateAck",        NOT_EXTENSION_ROOT,
+       { 22,   "LogicalChannelRateAck",        ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelRateAck },
-       { 23,   "LogicalChannelRateReject",     NOT_EXTENSION_ROOT,
+       { 23,   "LogicalChannelRateReject",     ASN1_NOT_EXTENSION_ROOT,
                        dissect_h245_LogicalChannelRateReject },
        {  0, NULL, 0, NULL }
 };
 static int
 dissect_h245_ResponseMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ResponseMessage_type, ett_h245_ResponseMessage, ResponseMessage_choice, "ResponseMessage");
+       guint32 value;
+
+       offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h245_ResponseMessage_type, ett_h245_ResponseMessage, ResponseMessage_choice, "ResponseMessage", &value);
+
+       if (check_col(pinfo->cinfo, COL_INFO)){
+               if ( h245_shorttypes == TRUE )
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, ResponseMessage_short_vals, "<unknown>"));
+               }
+               else
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+                               val_to_str(value, ResponseMessage_vals, "<unknown>"));
+               }
+       }
+
+       col_set_fence(pinfo->cinfo,COL_INFO);
 
        return offset;
 }
@@ -19879,7 +19059,8 @@ dissect_h245_ResponseMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, prot
 static int
 dissect_h245_DialingInformationNumber_networkAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-NOT_DECODED_YET("DialingInformationNumber_networkAddress");
+       offset=dissect_per_NumericString(tvb, offset, pinfo, tree, hf_h245_DialingInformationNumber_networkAddress, 0, 40);
+
        return offset;
 }
 
@@ -19889,18 +19070,19 @@ NOT_DECODED_YET("DialingInformationNumber_networkAddress");
 static int
 dissect_h245_DialingInformationNumber_subAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
 {
-NOT_DECODED_YET("DialingInformationNumber_subAddress");
+       offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h245_subAddress, 0, 40);
+
        return offset;
 }
 
 
 
 static per_sequence_t DialingInformationNumber_sequence[] = {
-       { "networkAddress", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "networkAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_DialingInformationNumber_networkAddress },
-       { "subAddress", EXTENSION_ROOT, OPTIONAL,
+       { "subAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
                dissect_h245_DialingInformationNumber_subAddress },
-       { "networkType", EXTENSION_ROOT, NOT_OPTIONAL,
+       { "networkType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
                dissect_h245_networkType },
        { NULL, 0, 0, NULL }
 };
@@ -19921,31 +19103,43 @@ static const value_string MultimediaSystemControlMessage_vals[] = {
        { 0, NULL }
 };
 static per_choice_t MultimediaSystemControlMessage_choice[] = {
-       { 0,    "Request",      EXTENSION_ROOT, 
+       { 0,    "Request",      ASN1_EXTENSION_ROOT,
                        dissect_h245_RequestMessage },
-       { 1,    "Response",     EXTENSION_ROOT, 
+       { 1,    "Response",     ASN1_EXTENSION_ROOT,
                        dissect_h245_ResponseMessage },
-       { 2,    "Command",      EXTENSION_ROOT, 
+       { 2,    "Command",      ASN1_EXTENSION_ROOT,
                        dissect_h245_CommandMessage },
-       { 3,    "Indication",   EXTENSION_ROOT, 
+       { 3,    "Indication",   ASN1_EXTENSION_ROOT,
                        dissect_h245_IndicationMessage },
        { 0, NULL, 0, NULL }
 };
-static void
+void
 dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 {
        proto_item *it;
        proto_tree *tr;
        guint32 offset=0;
+       guint32 value;
 
-       if (check_col(pinfo->cinfo, COL_PROTOCOL))
+       if (check_col(pinfo->cinfo, COL_PROTOCOL)){
                col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.245");
+       }
 
        it=proto_tree_add_protocol_format(tree, proto_h245, tvb, 0, tvb_length(tvb), "H.245");
        tr=proto_item_add_subtree(it, ett_h245);
 
-       offset=dissect_per_choice(tvb, offset, pinfo, tr, hf_h245_pdu_type, ett_h245_MultimediaSystemControlMessage, MultimediaSystemControlMessage_choice, "MultimediaSystemControlMessage");
-
+       /* this code is called from at least TPKT (over TCP) and
+          MEGACO.  Over MEGACO there is no framing so we just have to assume
+          that as long as we havent run out of TVB data, there is more
+          MSCM PDUsa to decode.
+       */
+       while(tvb_length_remaining(tvb, offset>>3)>0){
+               offset=dissect_per_choice(tvb, offset, pinfo, tr, hf_h245_pdu_type, ett_h245_MultimediaSystemControlMessage, MultimediaSystemControlMessage_choice, "MultimediaSystemControlMessage", &value);
+               /* align next PDU to octet boundary */
+               if(offset&0x07){
+                       offset=(offset&0xfffffff8)+8;
+               }
+       }
 }
 
 
@@ -19956,8 +19150,7 @@ dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb, packet_info *pinfo, p
 void
 dissect_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 {
-/*XXX add desegmentation option */
-       dissect_tpkt_encap(tvb, pinfo, tree, TRUE, MultimediaSystemControlMessage_handle);
+       dissect_tpkt_encap(tvb, pinfo, tree, h245_reassembly, MultimediaSystemControlMessage_handle);
 }
 
 void
@@ -19968,18 +19161,6 @@ proto_register_h245(void)
        { &hf_h245_pdu_type,
                { "PDU Type", "h245.pdu_type", FT_UINT32, BASE_DEC,
                VALS(MultimediaSystemControlMessage_vals), 0, "Type of H.245 PDU", HFILL }},
-       { &hf_h245_extension_bit,
-               { "Extension Bit", "h245.extension_bit", FT_BOOLEAN, 8,
-               TFS(&tfs_extension_bit), 0x01, "The extension bit of an aggregate", HFILL }},
-       { &hf_h245_extension_present_bit,
-               { "Extension Present Bit", "h245.extension_present_bit", FT_BOOLEAN, 8,
-               TFS(&tfs_extension_present_bit), 0x01, "Whether this optional extension is present or not", HFILL }},
-       { &hf_h245_small_number_bit,
-               { "Small Number Bit", "h245.small_number_bit", FT_BOOLEAN, 8,
-               TFS(&tfs_small_number_bit), 0x01, "The small number bit for a section 10.6 integer", HFILL }},
-       { &hf_h245_optional_field_bit,
-               { "Optional Field Bit", "h245.optional_field_bit", FT_BOOLEAN, 8,
-               TFS(&tfs_optional_field_bit), 0x01, "This bit specifies the presence/absence of an optional field", HFILL }},
        { &hf_h245_IndicationMessage_type,
                { "Indication Type", "h245.indication_type", FT_UINT32, BASE_DEC,
                VALS(IndicationMessage_vals), 0, "Type of Indication", HFILL }},
@@ -20781,9 +19962,9 @@ proto_register_h245(void)
        { &hf_h245_MasterSlaveDetermination,
                { "MasterSlaveDetermination", "h245.MasterSlaveDetermination", FT_NONE, BASE_NONE,
                NULL, 0, "MasterSlaveDetermination sequence", HFILL }},
-       { &hf_h245_NonStandardIdentifier_h221NonStandard,
-               { "NonStandardIdentifier_h221NonStandard", "h245.NonStandardIdentifier_h221NonStandard", FT_NONE, BASE_NONE,
-               NULL, 0, "NonStandardIdentifier_h221NonStandard sequence", HFILL }},
+       { &hf_h245_h221NonStandard,
+               { "h221NonStandard", "h245.h221NonStandard", FT_NONE, BASE_NONE,
+               NULL, 0, "h221NonStandard sequence", HFILL }},
        { &hf_h245_NonStandardParameter,
                { "NonStandardParameter", "h245.NonStandardParameter", FT_NONE, BASE_NONE,
                NULL, 0, "NonStandardParameter sequence", HFILL }},
@@ -21105,15 +20286,6 @@ proto_register_h245(void)
        { &hf_h245_CRCLength,
                { "CRCLength type", "h245.CRCLength_type", FT_UINT32, BASE_DEC,
                VALS(CRCLength_vals), 0, "Type of CRCLength choice", HFILL }},
-       { &hf_h245_open_type_length,
-               { "Open Type Length", "h245.open_type_length", FT_UINT32, BASE_DEC,
-               NULL, 0, "Length of an open type encoding", HFILL }},
-       { &hf_h245_sequence_of_length,
-               { "Sequence-Of Length", "h245.sequence_of_length", FT_UINT32, BASE_DEC,
-               NULL, 0, "Number of items in the Sequence Of", HFILL }},
-       { &hf_h245_octet_string_length,
-               { "Octet String Length", "h245.octet_string_length", FT_UINT32, BASE_DEC,
-               NULL, 0, "Number of bytes in the Octet String", HFILL }},
        { &hf_h245_V76LogicalChannelParameters_mode_eRM_recovery,
                { "V76LogicalChannelParameters_mode_eRM_recovery type", "h245.V76LogicalChannelParameters_mode_eRM_recovery_type", FT_UINT32, BASE_DEC,
                VALS(V76LogicalChannelParameters_mode_eRM_recovery_vals), 0, "Type of V76LogicalChannelParameters_mode_eRM_recovery choice", HFILL }},
@@ -21885,12 +21057,6 @@ proto_register_h245(void)
        { &hf_h245_bitRateLockedToNetworkClock,
                { "bitRateLockedToNetworkClock", "h245.bitRateLockedToNetworkClock", FT_BOOLEAN, 8,
                TFS(&tfs_bitRateLockedToNetworkClock_bit), 0x01, "The bitRateLockedToNetworkClock bit", HFILL }},
-       { &hf_h245_num_sequence_extensions,
-               { "Number of Sequence Extensions", "h245.num_sequence_extensions", FT_UINT32, BASE_DEC,
-               NULL, 0, "Number of extensions encoded in this sequence", HFILL }},
-       { &hf_h245_choice_extension,
-               { "Choice Extension", "h245.choice_extension", FT_UINT32, BASE_DEC,
-               NULL, 0, "Which extension of the Choice is encoded", HFILL }},
        { &hf_h245_IS11172_BitRate,
                { "BitRate", "h245.IS11172_BitRate", FT_UINT32, BASE_DEC,
                NULL, 0, "IS11172 BitRate in kbit/s", HFILL }},
@@ -21902,7 +21068,7 @@ proto_register_h245(void)
                NULL, 0, "ATM BitRate in 64kbit/s units", HFILL }},
        { &hf_h245_t35CountryCode,
                { "t35CountryCode", "h245.t35CountryCode", FT_UINT32, BASE_DEC,
-               NULL, 0, "t35CountryCode value", HFILL }},
+               VALS(T35CountryCode_vals), 0, "t35CountryCode value", HFILL }},
        { &hf_h245_t35Extension,
                { "t35Extension", "h245.t35Extension", FT_UINT32, BASE_DEC,
                NULL, 0, "t35Extension value", HFILL }},
@@ -22462,20 +21628,17 @@ proto_register_h245(void)
                { "containedThread", "h245.containedThread", FT_UINT32, BASE_DEC,
                NULL, 0, "containedThread value", HFILL }},
        { &hf_h245_t38FaxMaxDatagram,
-               { "t38FaxMaxDatagram", "h245.t38FaxMaxDatagram", FT_UINT32, BASE_DEC,
+               { "t38FaxMaxDatagram", "h245.t38FaxMaxDatagram", FT_INT32, BASE_DEC,
                NULL, 0, "t38FaxMaxDatagram value", HFILL }},
        { &hf_h245_t38FaxMaxBuffer,
-               { "t38FaxMaxBuffer", "h245.t38FaxMaxBuffer", FT_UINT32, BASE_DEC,
+               { "t38FaxMaxBuffer", "h245.t38FaxMaxBuffer", FT_INT32, BASE_DEC,
                NULL, 0, "t38FaxMaxBuffer value", HFILL }},
        { &hf_h245_expirationTime,
                { "expirationTime", "h245.expirationTime", FT_UINT32, BASE_DEC,
                NULL, 0, "expirationTime value", HFILL }},
-       { &hf_h245_object_identifier_length,
-               { "Object Length", "h245.object_length", FT_UINT32, BASE_DEC,
-               NULL, 0, "Length of the object identifier", HFILL }},
-       { &hf_h245_GeneralString_length,
-               { "GeneralString Length", "h245.generalstring_length", FT_UINT32, BASE_DEC,
-               NULL, 0, "Length of the GeneralString", HFILL }},
+       { &hf_h245_rfc_number,
+               { "RFC", "h245.rfc_number", FT_UINT32, BASE_DEC,
+               NULL, 0, "Number of the RFC where this can be found", HFILL }},
        { &hf_h245_object,
                { "Object", "h245.object", FT_STRING, BASE_NONE,
                NULL, 0, "Object Identifier", HFILL }},
@@ -22764,7 +21927,27 @@ proto_register_h245(void)
        { &hf_h245_alphanumeric,
                { "alphanumeric", "h245.alphanumeric", FT_STRING, FT_NONE,
                NULL, 0, "alphanumeric string", HFILL }},
-
+       { &hf_h245_domainBased,
+               { "domainBased", "h245.domainBased", FT_STRING, FT_NONE,
+               NULL, 0, "String for domainBased", HFILL }},
+       { &hf_h245_subAddress,
+               { "subAddress", "h245.subAddress", FT_STRING, FT_NONE,
+               NULL, 0, "String for subAddress", HFILL }},
+       { &hf_h245_e164Address,
+               { "e164Address", "h245.e164Address", FT_STRING, FT_NONE,
+               NULL, 0, "String for e164Address", HFILL }},
+       { &hf_h245_signalType,
+               { "signalType", "h245.signalType", FT_STRING, FT_NONE,
+               NULL, 0, "String for signalType", HFILL }},
+       { &hf_h245_DialingInformationNumber_networkAddress,
+               { "networkAddress", "h245.DialingInformationNumber_networkAddress", FT_STRING, FT_NONE,
+               NULL, 0, "String for DialingInformationNumber_networkAddress", HFILL }},
+       { &hf_h245_internationalNumber,
+               { "internationalNumber", "h245.internationalNumber", FT_STRING, FT_NONE,
+               NULL, 0, "String for internationalNumber", HFILL }},
+       { &hf_h245_h221Manufacturer,
+               { "H.221 Manufacturer", "h245.h221Manufacturer", FT_UINT32, BASE_HEX,
+               VALS(H221ManufacturerCode_vals), 0, "H.221 Manufacturer", HFILL }},
        };
 
        static gint *ett[] =
@@ -23033,7 +22216,7 @@ proto_register_h245(void)
                &ett_h245_MasterSlaveDeterminationReject,
                &ett_h245_MasterSlaveDeterminationAck,
                &ett_h245_MasterSlaveDetermination,
-               &ett_h245_NonStandardIdentifier_h221NonStandard,
+               &ett_h245_h221NonStandard,
                &ett_h245_NonStandardParameter,
                &ett_h245_NonStandardMessage,
                &ett_h245_FlowControlIndication_restriction,
@@ -23249,26 +22432,36 @@ proto_register_h245(void)
                &ett_h245_lostPicture,
                &ett_h245_recoveryReferencePicture,
                &ett_h245_iPSourceRouteAddress_route,
-               &ett_h245_sequence_of_item
        };
+       module_t *h245_module;
 
-       proto_h245 = proto_register_protocol("altH245", "altH245", "alth245");
+       proto_h245 = proto_register_protocol("H245", "H245", "h245");
        proto_register_field_array(proto_h245, hf, array_length(hf));
        proto_register_subtree_array(ett, array_length(ett));
+       h245_module = prefs_register_protocol(proto_h245, NULL);
+       prefs_register_bool_preference(h245_module, "reassembly",
+               "Reassemble H.245 over TCP",
+               "Whether the dissector should reassemble H.245 PDUs spanning multiple TCP segments",
+               &h245_reassembly);
+       prefs_register_bool_preference(h245_module, "shorttypes",
+               "Show short message types",
+               "Whether the dissector should show short names or the long names from the standard",
+               &h245_shorttypes);
+       register_dissector("h245dg", dissect_h245_MultimediaSystemControlMessage, proto_h245);
+       register_dissector("h245", dissect_h245, proto_h245);
+
+       nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", FT_STRING, BASE_NONE);
+       nsp_h221_dissector_table = register_dissector_table("h245.nsp.h221", "H.245 NonStandardParameter (h221)", FT_UINT32, BASE_HEX);
 }
 
 void
 proto_reg_handoff_h245(void)
 {
-       h245_handle=create_dissector_handle(dissect_h245, proto_h245);
-       MultimediaSystemControlMessage_handle=create_dissector_handle(dissect_h245_MultimediaSystemControlMessage, proto_h245);
-
+       rtp_handle = find_dissector("rtp");
+       rtcp_handle = find_dissector("rtcp");
 
+       h245_handle=create_dissector_handle(dissect_h245, proto_h245);
        dissector_add_handle("tcp.port", h245_handle);
+       MultimediaSystemControlMessage_handle=create_dissector_handle(dissect_h245_MultimediaSystemControlMessage, proto_h245);
        dissector_add_handle("udp.port", MultimediaSystemControlMessage_handle);
-/*qqq
-       dissector_handle_t h245_handle;
-       offset=dissect_h245_MultimediaSystemControlMessage(tvb, offset, pinfo, tr);
-*/
-
 }