# H.245 conformation file # Copyright 2005 Anders Broman anders.broman[at]ericsson.com # $Id$ #---------------------------------------------------------------------------------------- #.EXPORTS #---------------------------------------------------------------------------------------- T38FaxProfile DataProtocolCapability NO_PROT_PREFIX OpenLogicalChannel #.PDU OpenLogicalChannel #---------------------------------------------------------------------------------------- #.FN_BODY MultiplexEntryDescriptor /*MultiplexEntryDescriptor*/ h223_me = NULL; h223_mc = 0; %(DEFAULT_BODY)s if(h223_set_mc_handle) (*h223_set_mc_handle)(pinfo, h223_mc, h223_me); /* stuff */ #.END #---------------------------------------------------------------------------------------- #.FN_PARS MultiplexTableEntryNumber VAL_PTR = &value #.FN_BODY MultiplexTableEntryNumber guint32 value; %(DEFAULT_BODY)s h223_mc = value & 0xf; #.END #---------------------------------------------------------------------------------------- #.FN_BODY MultiplexEntryDescriptor/elementList /* create a h223_mux_element to hold onto the head of the list, since * h223_me will track the tail */ h223_mux_element dummy_me; h223_me = &dummy_me; %(DEFAULT_BODY)s /* set h223_me to the head of the list for MEDescriptor to pick up */ h223_me = dummy_me.next; #.END #---------------------------------------------------------------------------------------- #.FN_HDR MultiplexElement /*MultiplexElement*/ h223_mux_element* me = se_alloc(sizeof(h223_mux_element)); h223_me->next = me; h223_me = me; h223_me->next = NULL; #.END #---------------------------------------------------------------------------------------- #.FN_PARS MultiplexElement/type/logicalChannelNumber VAL_PTR = &value #.FN_BODY MultiplexElement/type/logicalChannelNumber /*MultiplexElement/type/logicalChannelNumber*/ guint32 value; %(DEFAULT_BODY)s h223_me->sublist = NULL; h223_me->vc = value & 0xffff; #.END #---------------------------------------------------------------------------------------- #.FN_BODY MultiplexElement/type/subElementList h223_mux_element dummy_me, *parent_me = h223_me; h223_me = &dummy_me; %(DEFAULT_BODY)s parent_me->sublist = dummy_me.next; h223_me = parent_me; h223_me->vc = 0; #.END #---------------------------------------------------------------------------------------- #.FN_FTR MultiplexElement/repeatCount/untilClosingFlag h223_me->repeat_count = 0; #.END #---------------------------------------------------------------------------------------- #.FN_PARS MultiplexElement/repeatCount/finite VAL_PTR = &value #.FN_BODY MultiplexElement/repeatCount/finite guint32 value; %(DEFAULT_BODY)s h223_me->repeat_count = value & 0xffff; #.END #---------------------------------------------------------------------------------------- # OpenLogicalChannel .FN_FTR is also declared, line 460ish #.FN_BODY OpenLogicalChannel gint32 temp; h223_fw_lc_num = 0; h223_lc_params_temp = NULL; %(DEFAULT_BODY)s if(h223_fw_lc_num != 0 && h223_fw_lc_params) { h223_pending_olc *pending = se_alloc(sizeof(h223_pending_olc)); pending->fw_channel_params = h223_fw_lc_params; pending->rev_channel_params = h223_rev_lc_params; temp = h223_fw_lc_num; if (pinfo->p2p_dir > -1) g_hash_table_insert(h223_pending_olc_reqs[pinfo->p2p_dir], GINT_TO_POINTER(temp), pending); } #.END #---------------------------------------------------------------------------------------- #.FN_PARS LogicalChannelNumber VAL_PTR = &value #.FN_BODY LogicalChannelNumber guint32 value; %(DEFAULT_BODY)s h245_lc_temp = value & 0xfff; #.END #---------------------------------------------------------------------------------------- #.FN_FTR OpenLogicalChannel/forwardLogicalChannelNumber h223_fw_lc_num = h245_lc_temp; #.END #---------------------------------------------------------------------------------------- #.FN_BODY OpenLogicalChannel/forwardLogicalChannelParameters h245_lc_dissector = NULL; %(DEFAULT_BODY)s if(h223_lc_params_temp && h245_lc_dissector) h223_lc_params_temp->subdissector = h245_lc_dissector; else if(h223_lc_params_temp) h223_lc_params_temp->subdissector = data_handle; #.END #---------------------------------------------------------------------------------------- #.FN_HDR OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters h223_fw_lc_params = se_alloc(sizeof(h223_lc_params)); h223_fw_lc_params->al_type = al_nonStandard; h223_fw_lc_params->al_params = NULL; h223_fw_lc_params->segmentable = 0; h223_fw_lc_params->subdissector = NULL; h223_lc_params_temp = h223_fw_lc_params; #.END #---------------------------------------------------------------------------------------- #.FN_HDR OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters h223_rev_lc_params = se_alloc(sizeof(h223_lc_params)); h223_rev_lc_params->al_type = al_nonStandard; h223_rev_lc_params->al_params = NULL; h223_rev_lc_params->segmentable = 0; h223_rev_lc_params->subdissector = NULL; h223_lc_params_temp = h223_rev_lc_params; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al1Framed if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1Framed; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al1NotFramed if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1NotFramed; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al2WithoutSequenceNumbers if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2WithoutSequenceNumbers; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al2WithSequenceNumbers if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2WithSequenceNumbers; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al3 if(h223_lc_params_temp) { h223_lc_params_temp->al_type = al3; h223_lc_params_temp->al_params = se_alloc(sizeof(h223_al3_params)); } #.END #---------------------------------------------------------------------------------------- #.FN_PARS Al3/controlFieldOctets VAL_PTR = &value #.FN_BODY Al3/controlFieldOctets guint32 value; %(DEFAULT_BODY)s if(h223_lc_params_temp && h223_lc_params_temp->al_params) ((h223_al3_params*)h223_lc_params_temp->al_params)->control_field_octets = value & 3 ; #.END #---------------------------------------------------------------------------------------- #.FN_PARS Al3/sendBufferSize VAL_PTR = &value #.FN_BODY Al3/sendBufferSize guint32 value; %(DEFAULT_BODY)s if(h223_lc_params_temp && h223_lc_params_temp->al_params) ((h223_al3_params*)h223_lc_params_temp->al_params)->send_buffer_size = value & 0xfffff; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al1M if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1M; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al2M if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2M; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H223LogicalChannelParameters/adaptationLayerType/al3M if(h223_lc_params_temp) h223_lc_params_temp->al_type = al3M; #.END #---------------------------------------------------------------------------------------- #.FN_PARS H223LogicalChannelParameters/segmentableFlag VAL_PTR = &value #.FN_BODY H223LogicalChannelParameters/segmentableFlag guint32 value; %(DEFAULT_BODY)s if(h223_lc_params_temp) h223_lc_params_temp->segmentable = value & 1; #.END #---------------------------------------------------------------------------------------- # OpenLogicalChannelAck .FN_FTR is also declared, line 460ish #.FN_BODY OpenLogicalChannelAck guint32 temp; int p2p_dir; h223_pending_olc *pend; h223_fw_lc_num = 0; h223_rev_lc_num = 0; %(DEFAULT_BODY)s temp = h223_fw_lc_num; p2p_dir = pinfo->p2p_dir; if(pinfo->p2p_dir == P2P_DIR_SENT) pinfo->p2p_dir = P2P_DIR_RECV; else pinfo->p2p_dir = P2P_DIR_SENT; pend = g_hash_table_lookup( h223_pending_olc_reqs[pinfo->p2p_dir], GINT_TO_POINTER(temp) ); if (pend) { DISSECTOR_ASSERT( ( h223_rev_lc_num && pend->rev_channel_params) || (!h223_rev_lc_num && !pend->rev_channel_params) ); if(h223_add_lc_handle) { (*h223_add_lc_handle)( pinfo, h223_fw_lc_num, pend->fw_channel_params ); if(h223_rev_lc_num) (*h223_add_lc_handle)( pinfo, h223_rev_lc_num, pend->rev_channel_params ); } } else { /* we missed the OpenLogicalChannel packet */ } pinfo->p2p_dir = p2p_dir; #.END #---------------------------------------------------------------------------------------- #.FN_FTR OpenLogicalChannelAck/forwardLogicalChannelNumber h223_fw_lc_num = h245_lc_temp; #.END #---------------------------------------------------------------------------------------- #.FN_FTR OpenLogicalChannelAck/reverseLogicalChannelParamaters/reverseLogicalChannelNumber h223_rev_lc_num = h245_lc_temp; #.END #---------------------------------------------------------------------------------------- #.FN_FTR H263VideoCapability h245_lc_dissector = h263_handle; #.END #---------------------------------------------------------------------------------------- #.FN_BODY RequestMessage VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s if (check_col(pinfo->cinfo, COL_INFO)){ if ( h245_shorttypes == TRUE ) { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_RequestMessage_short_vals, "")); } else { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_RequestMessage_vals, "")); } } 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); /* Add to packet info */ /* if it is TCS*/ if ((codec_type != NULL) && ( value == 2)) g_snprintf(h245_pi->frame_label, 50, "%%s (%%s) ",val_to_str(value, h245_RequestMessage_short_vals, "UKN"), h245_pi->frame_label); else g_snprintf(h245_pi->frame_label, 50, "%%s ", val_to_str(value, h245_RequestMessage_short_vals, "UKN")); g_snprintf(h245_pi->comment, 50, "%%s %%s ", h245_pi->comment, val_to_str(value, h245_RequestMessage_vals, "")); /* if it is OLC or RM*/ if ((codec_type != NULL) && (( value == 3) || ( value == 8))) g_snprintf(h245_pi->frame_label, 50, "%%s (%%s) ", h245_pi->frame_label, codec_type); #.END #---------------------------------------------------------------------------------------- #.FN_BODY ResponseMessage VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s if (check_col(pinfo->cinfo, COL_INFO)){ if ( h245_shorttypes == TRUE ) { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_ResponseMessage_short_vals, "")); } else { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_ResponseMessage_vals, "")); } } col_set_fence(pinfo->cinfo,COL_INFO); /* Add to packet info */ g_snprintf(h245_pi->frame_label, 50, "%%s %%s ", h245_pi->frame_label, val_to_str(value, h245_ResponseMessage_short_vals, "UKN")); g_snprintf(h245_pi->comment, 50, "%%s %%s ", h245_pi->comment, val_to_str(value, h245_ResponseMessage_vals, "")); #.END #---------------------------------------------------------------------------------------- #.FN_BODY IndicationMessage VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s if (check_col(pinfo->cinfo, COL_INFO)){ if ( h245_shorttypes == TRUE ) { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_IndicationMessage_short_vals, "")); } else { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_IndicationMessage_vals, "")); } } col_set_fence(pinfo->cinfo,COL_INFO); /* Add to packet info */ g_snprintf(h245_pi->frame_label, 50, "%%s %%s ", h245_pi->frame_label, val_to_str(value, h245_IndicationMessage_short_vals, "UKN")); g_snprintf(h245_pi->comment, 50, "%%s %%s ", h245_pi->comment, val_to_str(value, h245_IndicationMessage_vals, "")); #.END #---------------------------------------------------------------------------------------- #.FN_BODY CommandMessage VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s if (check_col(pinfo->cinfo, COL_INFO)){ if ( h245_shorttypes == TRUE ) { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_CommandMessage_short_vals, "")); } else { col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(value, h245_CommandMessage_vals, "")); } } col_set_fence(pinfo->cinfo,COL_INFO); /* Add to packet info */ g_snprintf(h245_pi->frame_label, 50, "%%s %%s ", h245_pi->frame_label, val_to_str(value, h245_CommandMessage_short_vals, "UKN")); g_snprintf(h245_pi->comment, 50, "%%s %%s ", h245_pi->comment, val_to_str(value, h245_CommandMessage_vals, "")); #.END #---------------------------------------------------------------------------------------- #.FN_BODY AudioCapability VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s codec_type = val_to_str(value, h245_AudioCapability_short_vals, ""); if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%%s %%s", h245_pi->frame_label, val_to_str(value, h245_AudioCapability_short_vals, "ukn")); #.END #---------------------------------------------------------------------------------------- #.FN_BODY VideoCapability VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s codec_type = val_to_str(value, h245_VideoCapability_vals, ""); if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%%s %%s", h245_pi->frame_label, codec_type); #.END #---------------------------------------------------------------------------------------- #.FN_BODY Application VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s codec_type = val_to_str(value, h245_Application_vals, ""); if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%%s %%s", h245_pi->frame_label, codec_type); #.END #---------------------------------------------------------------------------------------- #.FN_BODY AudioMode VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s codec_type = val_to_str(value, h245_AudioMode_vals, ""); if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%%s %%s", h245_pi->frame_label, val_to_str(value, h245_AudioMode_vals, "ukn")); #.END #---------------------------------------------------------------------------------------- #.FN_BODY VideoMode VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s codec_type = val_to_str(value, h245_VideoMode_vals, ""); if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%%s %%s", h245_pi->frame_label, val_to_str(value, h245_VideoMode_vals, "ukn")); #.END #---------------------------------------------------------------------------------------- #.FN_BODY DataModeApplication VAL_PTR = &value guint32 value; %(DEFAULT_BODY)s codec_type = val_to_str(value, h245_DataModeApplication_vals, ""); if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%%s %%s", h245_pi->frame_label, val_to_str(value, h245_DataModeApplication_vals, "ukn")); #.END #---------------------------------------------------------------------------------------- #.FN_FTR MasterSlaveDeterminationAck h245_pi->msg_type = H245_MastSlvDetAck; #.END #---------------------------------------------------------------------------------------- #.FN_FTR MasterSlaveDeterminationReject h245_pi->msg_type = H245_MastSlvDetRjc; #.END #---------------------------------------------------------------------------------------- #.FN_FTR OpenLogicalChannelReject h245_pi->msg_type = H245_OpenLogChnRjc; #.END #---------------------------------------------------------------------------------------- #.FN_FTR CloseLogicalChannel h245_pi->msg_type = H245_CloseLogChn; #.END #---------------------------------------------------------------------------------------- #.FN_FTR CloseLogicalChannelAck h245_pi->msg_type = H245_CloseLogChnAck; #.END #---------------------------------------------------------------------------------------- #.FN_FTR OpenLogicalChannelConfirm h245_pi->msg_type = H245_OpenLogChnCnf; #.END #---------------------------------------------------------------------------------------- #.FN_FTR TerminalCapabilitySetAck h245_pi->msg_type = H245_TermCapSetAck; #.END #---------------------------------------------------------------------------------------- #.FN_FTR MasterSlaveDetermination h245_pi->msg_type = H245_MastSlvDet; #.END #---------------------------------------------------------------------------------------- #.FN_FTR TerminalCapabilitySetReject h245_pi->msg_type = H245_TermCapSetRjc; #.END #---------------------------------------------------------------------------------------- #.FN_FTR MasterSlaveDeterminationRelease h245_pi->msg_type = H245_MastSlvDetRls; #.END #---------------------------------------------------------------------------------------- #.FN_FTR TerminalCapabilitySet h245_pi->msg_type = H245_TermCapSet; #.END #---------------------------------------------------------------------------------------- #.FN_FTR TerminalCapabilitySetRelease h245_pi->msg_type = H245_TermCapSetRls; #.END #---------------------------------------------------------------------------------------- # OpenLogicalChannel .FN_BODY is also declared, line 70ish #.FN_FTR OpenLogicalChannel if (h245_pi != NULL) h245_pi->msg_type = H245_OpenLogChn; #.END #---------------------------------------------------------------------------------------- # OpenLogicalChannelAck .FN_BODY is also declared, line 200ish #.FN_FTR OpenLogicalChannelAck h245_pi->msg_type = H245_OpenLogChnAck; #.END #---------------------------------------------------------------------------------------- #.FN_PARS CapabilityIdentifier/standard FN_VARIANT = _str VAL_PTR = &standard_oid_str #.FN_FTR CapabilityIdentifier/standard if(!h245_lc_dissector && strcmp(standard_oid_str,"0.0.8.245.1.1.1") == 0) h245_lc_dissector = amr_handle; #.END #---------------------------------------------------------------------------------------- #.FN_HDR GenericMessage/subMessageIdentifer guint32 subMessageIdentifer; #.FN_PARS GenericMessage/subMessageIdentifer VAL_PTR = &subMessageIdentifer #.END #---------------------------------------------------------------------------------------- #.FN_BODY UnicastAddress/iPAddress/network VAL_PTR = &value_tvb tvbuff_t *value_tvb; %(DEFAULT_BODY)s if ( media_channel ) ipv4_address = tvb_get_ipv4(value_tvb, 0); if ( media_control_channel ) rtcp_ipv4_address = tvb_get_ipv4(value_tvb, 0); #.END #---------------------------------------------------------------------------------------- #.FN_BODY UnicastAddress/iPAddress/tsapIdentifier VAL_PTR = &tsapIdentifier guint32 tsapIdentifier; %(DEFAULT_BODY)s if ( media_channel ) ipv4_port = tsapIdentifier; if ( media_control_channel ) rtcp_ipv4_port = tsapIdentifier; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H2250LogicalChannelAckParameters/mediaChannel media_channel = TRUE; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H2250LogicalChannelParameters/mediaChannel media_channel = TRUE; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H2250LogicalChannelAckParameters/mediaControlChannel media_control_channel = TRUE; #.END #---------------------------------------------------------------------------------------- #.FN_HDR H2250LogicalChannelParameters/mediaControlChannel media_control_channel = TRUE; #.END #---------------------------------------------------------------------------------------- #.FN_FTR H2250LogicalChannelAckParameters/mediaChannel media_channel = FALSE; #.END #---------------------------------------------------------------------------------------- #.FN_FTR H2250LogicalChannelAckParameters/mediaControlChannel media_control_channel = FALSE; #.END #---------------------------------------------------------------------------------------- #.FN_FTR H2250LogicalChannelParameters/mediaChannel media_channel = FALSE; #.END #---------------------------------------------------------------------------------------- #.FN_FTR H2250LogicalChannelParameters/mediaControlChannel media_control_channel = FALSE; #.END #---------------------------------------------------------------------------------------- #.FN_HDR OpenLogicalChannelAck/forwardMultiplexAckParameters media_channel = FALSE; media_control_channel = FALSE; #.END #---------------------------------------------------------------------------------------- #.FN_FTR OpenLogicalChannelAck/forwardMultiplexAckParameters if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtp_handle){ address src_addr; src_addr.type=AT_IPv4; src_addr.len=4; src_addr.data=(guint8*)&ipv4_address; rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num, NULL); } if((!pinfo->fd->flags.visited) && rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){ address src_addr; src_addr.type=AT_IPv4; src_addr.len=4; src_addr.data=(guint8*)&rtcp_ipv4_address; rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num); } #.END #---------------------------------------------------------------------------------------- #.FN_HDR OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters media_channel = FALSE; media_control_channel = FALSE; #.END #---------------------------------------------------------------------------------------- #.FN_FTR OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtp_handle){ address src_addr; src_addr.type=AT_IPv4; src_addr.len=4; src_addr.data=(guint8*)&ipv4_address; rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num, NULL); } if((!pinfo->fd->flags.visited) && rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){ address src_addr; src_addr.type=AT_IPv4; src_addr.len=4; src_addr.data=(guint8*)&rtcp_ipv4_address; rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num); } #.END #--- NonStandardParameter --------------------------------------------------------------- #.FN_PARS NonStandardIdentifier/object FN_VARIANT = _str VAL_PTR = &nsiOID #.END #.FN_BODY NonStandardIdentifier VAL_PTR = &value guint32 value; nsiOID = ""; h221NonStandard = 0; %(DEFAULT_BODY)s switch (value) { case 0 : /* object */ nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID); break; case 1 : /* h221NonStandard */ nsp_handle = dissector_get_port_handle(nsp_h221_dissector_table, h221NonStandard); break; default : nsp_handle = NULL; } #.END #.FN_HDR NonStandardIdentifier/h221NonStandard t35CountryCode = 0; t35Extension = 0; manufacturerCode = 0; #.FN_FTR NonStandardIdentifier/h221NonStandard h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode; proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard); #.FN_PARS NonStandardIdentifier/h221NonStandard/t35CountryCode VAL_PTR = &t35CountryCode NonStandardIdentifier/h221NonStandard/t35Extension VAL_PTR = &t35Extension NonStandardIdentifier/h221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode #.END #.FN_HDR NonStandardParameter nsp_handle = NULL; #.FN_BODY NonStandardParameter/data VAL_PTR = &next_tvb tvbuff_t *next_tvb = NULL; %(DEFAULT_BODY)s if (next_tvb && tvb_length(next_tvb)) { call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, pinfo, tree); } #.END #---------------------------------------------------------------------------------------- #.TYPE_RENAME NewATMVCCommand/aal Cmd_aal NewATMVCCommand/aal/aal1 Cmd_aal1 NewATMVCCommand/aal/aal5 Cmd_aal5 NewATMVCCommand/aal/aal1/clockRecovery Cmd_clockRecovery NewATMVCCommand/aal/aal1/errorCorrection Cmd_errorCorrection NewATMVCCommand/multiplex Cmd_multiplex NewATMVCCommand/reverseParameters Cmd_reverseParameters NewATMVCCommand/reverseParameters/multiplex CmdR_multiplex NewATMVCIndication/aal Ind_aal NewATMVCIndication/aal/aal1 Ind_aal1 NewATMVCIndication/aal/aal5 Ind_aal5 NewATMVCIndication/aal/aal1/clockRecovery Ind_clockRecovery NewATMVCIndication/aal/aal1/errorCorrection Ind_errorCorrection NewATMVCIndication/multiplex Ind_multiplex NewATMVCIndication/reverseParameters Ind_reverseParameters NewATMVCIndication/reverseParameters/multiplex IndR_multiplex MultilinkRequest/callInformation CallInformationReq MultilinkRequest/addConnection AddConnectionReq MultilinkRequest/removeConnection RemoveConnectionReq MultilinkRequest/maximumHeaderInterval MaximumHeaderIntervalReq MultilinkResponse/callInformation CallInformationResp MultilinkResponse/addConnection AddConnectionResp MultilinkResponse/removeConnection RemoveConnectionResp MultilinkResponse/maximumHeaderInterval MaximumHeaderIntervalResp MasterSlaveDeterminationReject/cause MasterSlaveDeterminationRejectCause TerminalCapabilitySetReject/cause TerminalCapabilitySetRejectCause OpenLogicalChannelReject/cause OpenLogicalChannelRejectCause RequestChannelCloseReject/cause RequestChannelCloseRejectCause MultiplexEntryRejectionDescriptions/cause MultiplexEntryRejectionDescriptionsCause RequestMultiplexEntryRejectionDescriptions/cause RequestMultiplexEntryRejectionDescriptionsCause RequestModeReject/cause RequestModeRejectCause MaintenanceLoopReject/cause MaintenanceLoopRejectCause FunctionNotSupported/cause FunctionNotSupportedCause AudioMode/g7231 Mode_g7231 DataMode/application DataModeApplication DataMode/application/t38fax T38faxApp FECData/rfc2733 RFC2733Data IS13818AudioMode/audioLayer IS13818AudioLayer IS13818AudioMode/audioSampling IS13818AudioSampling IS13818AudioMode/multichannelType IS13818MultichannelType H223ModeParameters/adaptationLayerType AdaptationLayerType H223AL1MParameters/headerFEC AL1HeaderFEC H223AL1MParameters/crcLength AL1CrcLength H223AL2MParameters/headerFEC AL2HeaderFEC H223AL3MParameters/crcLength AL3CrcLength H261VideoMode/resolution H261Resolution H263VideoMode/resolution H263Resolution UnicastAddress/iPAddress/network Ipv4_network MulticastAddress/iPAddress MIPAddress MulticastAddress/iP6Address MIP6Address NonStandardIdentifier/h221NonStandard H221NonStandardID OpenLogicalChannel/forwardLogicalChannelNumber OLC_fw_lcn OpenLogicalChannelAck/forwardLogicalChannelNumber OLC_ack_fw_lcn OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters OLC_forw_multiplexParameters OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters OLC_rev_multiplexParameters OpenLogicalChannel/reverseLogicalChannelParameters OLC_reverseLogicalChannelParameters OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters OLC_fw_h223_params OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters OLC_rev_h223_params OpenLogicalChannelAck/reverseLogicalChannelParameters OLC_ack_reverseLogicalChannelParameters CloseLogicalChannel/reason Clc_reason VCCapability/availableBitRates/type Avb_type MultiplexElement/type Me_type RedundancyEncodingDTModeElement/type Re_type MaintenanceLoopRequest/type Mlr_type MaintenanceLoopAck/type Mla_type MaintenanceLoopReject/type Mlrej_type MiscellaneousCommand/type Mc_type MiscellaneousIndication/type Mi_type V76LogicalChannelParameters/mode V76LCP_mode FECData/rfc2733/mode FECdata_mode FECMode/rfc2733Mode/mode FEC_mode IS11172AudioMode/multichannelType IS11172_multichannelType MultiplexElement/repeatCount/finite ME_finiteRepeatCount MultiplexElement/repeatCount ME_repeatCount FECCapability/rfc2733 FECC_rfc2733 RequestModeAck/response Req_mode_ack_response UserInputIndication/signalUpdate/rtp Si_rtp UnicastAddress/iPAddress/tsapIdentifier TsapIdentifier H2250LogicalChannelAckParameters/mediaChannel Ack_mediaChannel H2250LogicalChannelAckParameters/mediaControlChannel Ack_mediaControlChannel CommunicationModeTableEntry/mediaChannel Cm_mediaChannel #---------------------------------------------------------------------------------------- #.FIELD_RENAME #---------------------------------------------------------------------------------------- NewATMVCCommand/aal cmd_aal NewATMVCCommand/aal/aal1 cmd_aal1 NewATMVCCommand/aal/aal5 cmd_aal5 NewATMVCCommand/aal/aal1/clockRecovery cmd_clockRecovery NewATMVCCommand/aal/aal1/errorCorrection cmd_errorCorrection NewATMVCCommand/multiplex cmd_multiplex NewATMVCCommand/reverseParameters cmd_reverseParameters NewATMVCCommand/reverseParameters/multiplex cmdr_multiplex NewATMVCIndication/aal ind_aal NewATMVCIndication/aal/aal1 ind_aal1 NewATMVCIndication/aal/aal5 ind_aal5 NewATMVCIndication/aal/aal1/clockRecovery ind_clockRecovery NewATMVCIndication/aal/aal1/errorCorrection ind_errorCorrection NewATMVCIndication/multiplex ind_multiplex NewATMVCIndication/reverseParameters ind_reverseParameters NewATMVCIndication/reverseParameters/multiplex indr_multiplex MultilinkRequest/callInformation callInformationReq MultilinkRequest/addConnection addConnectionReq MultilinkRequest/removeConnection removeConnectionReq MultilinkRequest/maximumHeaderInterval maximumHeaderIntervalReq MultilinkResponse/callInformation callInformationResp MultilinkResponse/addConnection addConnectionResp MultilinkResponse/removeConnection removeConnectionResp MultilinkResponse/maximumHeaderInterval maximumHeaderIntervalResp MultiplexElement/type/logicalChannelNumber logicalChannelNum ConnectionIdentifier/sequenceNumber sequenceNum RequestMessage/nonStandard nonStandardMsg ResponseMessage/nonStandard nonStandardMsg CommandMessage/nonStandard nonStandardMsg IndicationMessage/nonStandard nonStandardMsg MultilinkRequest/nonStandard nonStandardMsg MultilinkResponse/nonStandard nonStandardMsg MultilinkIndication/nonStandard nonStandardMsg DialingInformation/nonStandard nonStandardMsg DialingInformationNetworkType/nonStandard nonStandardMsg UserInputCapability/nonStandard ui_nonStandard H2250LogicalChannelParameters/nonStandard nonStandardParams H2250LogicalChannelAckParameters/nonStandard nonStandardParams CommunicationModeTableEntry/nonStandard nonStandardParams ConferenceCapability/nonStandardData nonStandardParams UnicastAddress/iPXAddress/tsapIdentifier ipx_tsapIdentifier NonStandardParameter/data nsd_data NonStandardIdentifier/h221NonStandard h221NonStandardID AudioMode/g711Alaw64k g711Alaw64k_mode AudioMode/g711Alaw56k g711Alaw56k_mode AudioMode/g711Ulaw64k g711Ulaw64k_mode AudioMode/g711Ulaw56k g711Ulaw56k_mode AudioMode/g722-64k g722_64k_mode AudioMode/g722-56k g722_56k_mode AudioMode/g722-48k g722_48k_mode AudioMode/g728 g728_mode AudioMode/g729 g729_mode AudioMode/g729AnnexA g729AnnexA_mode AudioMode/g7231 g7231_mode AudioMode/vbd vbd_mode IS11172AudioMode/audioLayer/audioLayer1 audioLayer1Mode IS11172AudioMode/audioLayer/audioLayer2 audioLayer2Mode IS11172AudioMode/audioLayer/audioLayer3 audioLayer3Mode IS11172AudioMode/audioSampling/audioSampling32k audioSampling32kMode IS11172AudioMode/audioSampling/audioSampling44k1 audioSampling44k1Mode IS11172AudioMode/audioSampling/audioSampling48k audioSampling48kMode IS11172AudioMode/multichannelType/singleChannel singleChannelMode IS13818AudioMode/audioLayer audioLayerMode IS13818AudioMode/audioLayer/audioLayer1 audioLayer1Mode IS13818AudioMode/audioLayer/audioLayer2 audioLayer2Mode IS13818AudioMode/audioLayer/audioLayer3 audioLayer3Mode IS13818AudioMode/audioSampling audioSamplingMode IS13818AudioMode/audioSampling/audioSampling16k audioSampling16kMode IS13818AudioMode/audioSampling/audioSampling22k05 audioSampling22k05Mode IS13818AudioMode/audioSampling/audioSampling24k audioSampling24kMode IS13818AudioMode/audioSampling/audioSampling32k audioSampling32kMode IS13818AudioMode/audioSampling/audioSampling44k1 audioSampling44k1Mode IS13818AudioMode/audioSampling/audioSampling48k audioSampling48kMode IS13818AudioMode/multichannelType/singleChannel singleChannelMode IS13818AudioMode/multichannelType/threeChannels2-1 threeChannels2_1Mode IS13818AudioMode/multichannelType/threeChannels3-0 threeChannels3_0Mode IS13818AudioMode/multichannelType/fourChannels2-0-2-0 fourChannels2_0_2_0Mode IS13818AudioMode/multichannelType/fourChannels2-2 fourChannels2_2Mode IS13818AudioMode/multichannelType/fourChannels3-1 fourChannels3_1Mode IS13818AudioMode/multichannelType/fiveChannels3-0-2-0 fiveChannels3_0_2_0Mode IS13818AudioMode/multichannelType/fiveChannels3-2 fiveChannels3_2Mode H262VideoMode/profileAndLevel/profileAndLevel-SPatML profileAndLevel_SPatMLMode H262VideoMode/profileAndLevel/profileAndLevel-MPatLL profileAndLevel_MPatLLMode H262VideoMode/profileAndLevel/profileAndLevel-MPatML profileAndLevel_MPatMLMode H262VideoMode/profileAndLevel/profileAndLevel-MPatH-14 profileAndLevel_MPatH-14Mode H262VideoMode/profileAndLevel/profileAndLevel-MPatHL profileAndLevel_MPatHLMode H262VideoMode/profileAndLevel/profileAndLevel-SNRatLL profileAndLevel_SNRatLLMode H262VideoMode/profileAndLevel/profileAndLevel-SNRatML profileAndLevel_SNRatMLMode H262VideoMode/profileAndLevel/profileAndLevel-SpatialatH-14 profileAndLevel_SpatialatH-14Mode H262VideoMode/profileAndLevel/profileAndLevel-HPatML profileAndLevel_HPatMLMode H262VideoMode/profileAndLevel/profileAndLevel-HPatH-14 profileAndLevel_HPatH-14Mode H262VideoMode/profileAndLevel/profileAndLevel-HPatHL profileAndLevel_HPatHLMode RedundancyEncodingMode/secondaryEncoding/audioData audioMode UnicastAddress/iPAddress/network ip4_network UnicastAddress/iP6Address/network ip6_network MulticastAddress/iP6Address/network mip6_network MulticastAddress/iPAddress mIPAddress MulticastAddress/iP6Address mIP6Address MulticastAddress/iPAddress/network mip4_network RTPPayloadType/payloadDescriptor/nonStandardIdentifier nonStandard T84Profile/t84Restricted/cif cif_bool T84Profile/t84Restricted/qcif qcif_bool H223ModeParameters/adaptationLayerType adaptationLayer H261VideoMode/resolution h261_resolution H263VideoMode/resolution h263_resolution H263VideoMode/resolution/custom custom_res CommunicationModeTableEntry/dataType entryDataType VCCapability/transportStream transportStream_bool MultiplexEntrySendAck/multiplexTableEntryNumber multiplexTableEntryNumbers MultiplexEntrySendRelease/multiplexTableEntryNumber multiplexTableEntryNumbers CapabilityIdentifier/standard standardOid MiscellaneousIndication/type/videoNotDecodedMBs/temporalReference temporalReference_0_255 CloseLogicalChannel/source cLC_source FECCapability/rfc2733/separateStream separateStreamBool FECCapability/rfc2733/separateStream/samePort samePortBool VCCapability/aal1/srtsClockRecovery srtsClockRecovery_bool VCCapability/aal1ViaGateway/srtsClockRecovery srtsClockRecoveryflag DataMode/application/t84 t84DataProtocolCapability DataMode/application/t38fax t38faxDataProtocolCapability H2250LogicalChannelParameters/sessionID sessionID_0_255 H223Capability/mobileOperationTransmitCapability/h223AnnexADoubleFlag h223AnnexADoubleFlagFlag SendTerminalCapabilitySet/genericRequest genericRequestFlag H2250LogicalChannelParameters/mediaPacketization/h261aVideoPacketization h261aVideoPacketizationFlag RemoteMCResponse/reject/functionNotSupported functionNotSupportedFlag NewATMVCCommand/aal/aal1/errorCorrection/longInterleaver longInterleaverFlag NewATMVCIndication/aal/aal1/errorCorrection/longInterleaver longInterleaverFlag MiscellaneousCommand/type/videoFastUpdateMB/firstGOB firstGOB_0_255 H263VideoCapability/sqcifMPI sqcifMPI_1_32 EnhancementOptions/sqcifMPI sqcifMPI_1_32 NewATMVCCommand/aal/aal1/errorCorrection/shortInterleaver shortInterleaverFlag NewATMVCIndication/aal/aal1/errorCorrection/shortInterleaver shortInterleaverFlag NewATMVCCommand/multiplex/programStream programStreamFlag NewATMVCCommand/reverseParameters/multiplex/programStream programStreamFlag NewATMVCIndication/multiplex/programStream programStreamFlag NewATMVCIndication/reverseParameters/multiplex/programStream programStreamFlag H263ModeComboFlags/enhancedReferencePicSelect enhancedReferencePicSelectBool NewATMVCCommand/aal/aal1/errorCorrection/errorCorrectionOnly errorCorrectionOnlyFlag NewATMVCIndication/aal/aal1/errorCorrection/errorCorrectionOnly errorCorrectionOnlyFlag UserInputCapability/extendedAlphanumeric extendedAlphanumericFlag MultiplexElement/repeatCount/finite me_repeatCount_finite MiscellaneousCommand/type/videoFastUpdateMB/firstMB firstMB_1_8192 MiscellaneousIndication/type/videoNotDecodedMBs/firstMB firstMB_1_8192 H261VideoCapability/cifMPI cifMPI_1_4 CustomPictureClockFrequency/cifMPI cifMPI2_1_2048 H263VideoCapability/cif16MPI cif16MPI_1_32 EnhancementOptions/cif16MPI cif16MPI_1_32 H263VideoCapability/cif4MPI cif4MPI_1_32 EnhancementOptions/cif4MPI cif4MPI_1_32 H263Version3Options/pictureNumber pictureNumberBoolean MiscellaneousCommand/type/videoBadMBs/numberOfMBs numberOfMBs1_1_9216 MiscellaneousCommand/type/lostPartialPicture/numberOfMBs numberOfMBs1_1_9216 DataApplicationCapability/maxBitRate maxBitRate2_0_4294967295 GenericCapability/maxBitRate maxBitRate2_0_4294967295 H261VideoCapability/maxBitRate maxBitRate_1_19200 IS13818AudioCapability/bitRate bitRate2_1_1130 IS13818AudioMode/bitRate bitRate2_1_1130 IS11172AudioCapability/bitRate bitRate_1_448 IS11172AudioMode/bitRate bitRate_1_448 DataMode/bitRate bitRate_0_4294967295 H223Capability/bitRate bitRate_1_19200 H261VideoMode/bitRate bitRate_1_19200 H263VideoMode/bitRate bitRate_1_19200 DialingInformationNumber/networkAddress networkAddressNum NewATMVCCommand/aal/aal1/clockRecovery/adaptiveClockRecovery adaptiveClockRecoveryFlag NewATMVCIndication/aal/aal1/clockRecovery/adaptiveClockRecovery adaptiveClockRecoveryFlag NewATMVCCommand/aal/aal1/clockRecovery/nullClockRecovery nullClockRecoveryflag NewATMVCIndication/aal/aal1/clockRecovery/nullClockRecovery nullClockRecoveryflag NewATMVCCommand/aal/aal1/errorCorrection/nullErrorCorrection nullErrorCorrectionFlag NewATMVCIndication/aal/aal1/errorCorrection/nullErrorCorrection nullErrorCorrectionFlag H223AL2MParameters/headerFEC aL2HeaderFEC H223AL1MParameters/headerFEC aL1HeaderFEC H223AL1MParameters/crcLength crcLength2 H223AL3MParameters/crcLength crlength2 SendTerminalCapabilitySet/specificRequest/multiplexCapability multiplexCapabilityBool FECCapability/rfc2733/redundancyEncoding redundancyEncodingBool FECData/rfc2733/mode/redundancyEncoding redundancyEncodingFlag Moderfc2733/redundancyEncoding redundancyEncodingFlag FECMode/rfc2733Mode/mode/redundancyEncoding redundancyEncodingFlag H261VideoCapability/qcifMPI qcifMPI_1_4 CustomPictureClockFrequency/qcifMPI qcifMPI_1_2048 DataMode/application datamodeapplication MasterSlaveDeterminationReject/cause msd_rej_cause OpenLogicalChannelReject/cause olc_rej_cause RequestMultiplexEntryRejectionDescriptions/cause req_mux_rej_cause RequestModeReject/cause req_rej_cause MultiplexEntryRejectionDescriptions/cause mux_rej_cause RequestChannelCloseReject/cause req_chan_clos_rej_cause TerminalCapabilitySetReject/cause tcs_rej_cause MaintenanceLoopReject/cause maintloop_rej_cause FunctionNotSupported/cause fns_cause Restriction/maximumBitRate res_maximumBitRate RedundancyEncodingDTMode/primary prmary_dtmode RedundancyEncoding/rtpRedundancyEncoding/primary primary FECMode/rfc2733Mode/mode fec_mode FECData/rfc2733/mode fec_data_mode V76LogicalChannelParameters/mode v76_mode OpenLogicalChannelAck/reverseLogicalChannelParameters/multiplexParameters olc_ack_multiplexParameters OpenLogicalChannel/forwardLogicalChannelNumber olc_fw_lcn OpenLogicalChannelAck/forwardLogicalChannelNumber olc_ack_fw_lcn OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters olc_forw_multiplexParameters OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters olc_rev_multiplexParameter IS11172AudioMode/multichannelType is11172multichannelType IS13818AudioMode/multichannelType is13818MultichannelType CloseLogicalChannel/reason clc_reason MultiplexElement/repeatCount me_repeatCount FECCapability/rfc2733 fecc_rfc2733 RequestModeAck/response req_mode_ack_response UserInputIndication/signalUpdate/rtp si_rtp VCCapability/availableBitRates/type avb_type MultiplexElement/type me_type RedundancyEncodingDTModeElement/type re_type MaintenanceLoopRequest/type mlr_type MaintenanceLoopAck/type mla_type MaintenanceLoopReject/type mlrej_type MiscellaneousCommand/type mc_type MiscellaneousIndication/type mi_type VBDMode/type vbd_type VBDCapability/type vbd_cap_type OpenLogicalChannelAck/reverseLogicalChannelParameters olc_ack_reverseLogicalChannelParameters H2250LogicalChannelAckParameters/mediaChannel ack_mediaChannel H2250LogicalChannelAckParameters/mediaControlChannel ack_mediaControlChannel UnicastAddress/iP6Address/tsapIdentifier ipv6_tsapIdentifier UnicastAddress/iPSourceRouteAddress/tsapIdentifier iPSrcRoute_tsapIdentifier MulticastAddress/iPAddress/tsapIdentifier multicast_tsapIdentifier MulticastAddress/iP6Address/tsapIdentifier multicast_IPv6_tsapIdentifier CommunicationModeTableEntry/mediaChannel cm_mediaChannel CommunicationModeTableEntry/mediaControlChannel cm_mediaControlChannel OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters olc_rev_h223_params OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters/h223LogicalChannelParameters olc_fw_h223_params H223LogicalChannelParameters/adaptationLayerType/al1Framed h223_al_type_al1Framed H223LogicalChannelParameters/adaptationLayerType/al1NotFramed h223_al_type_al1NotFramed H223LogicalChannelParameters/adaptationLayerType/al2WithoutSequenceNumbers h223_al_type_al2WithoutSequenceNumbers H223LogicalChannelParameters/adaptationLayerType/al2WithSequenceNumbers h223_al_type_al2WithSequenceNumbers H223LogicalChannelParameters/adaptationLayerType/al3 h223_al_type_al3 Al3/sendBufferSize al3_sendBufferSize H223LogicalChannelParameters/adaptationLayerType/al1M h223_al_type_al1M H223LogicalChannelParameters/adaptationLayerType/al2M h223_al_type_al2M H223LogicalChannelParameters/adaptationLayerType/al3M h223_al_type_al3M H223LogicalChannelParameters/segmentableFlag h223_lc_segmentableFlag #---------------------------------------------------------------------------------------- #.TYPE_ATTR UnicastAddress/iPAddress/network TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL UnicastAddress/iP6Address/network TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL MulticastAddress/iPAddress/network TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL MulticastAddress/iP6Address/network TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL RTPPayloadType/payloadDescriptor/rfc-number TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(h245_RFC_number_vals) NonStandardIdentifier/h221NonStandard/t35CountryCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(T35CountryCode_vals) VendorIdentification/productNumber TYPE = FT_STRING DISPLAY = BASE_HEX STRINGS = NULL VendorIdentification/versionNumber TYPE = FT_STRING DISPLAY = BASE_HEX STRINGS = NULL #---------------------------------------------------------------------------------------- #.FIELD_ATTR AlternativeCapabilitySet/_item NAME = "alternativeCapability" #---------------------------------------------------------------------------------------- # vim:set ts=4 sts=2 sw=2: