forked from osmocom/wireshark
[skinny] Fix ConnectionStatRes and DialedNumber Messages protocol version >20
- ConnectionStatisticsResponse Comes in three different forms - DialedNumber Message has variable length Minor: - Pass ipv4or6 connection address back to calling function (using this later on in seperate commit) - Correct spelling mistakes - Remove duplicates from DeviceType[] Change-Id: Ib1619b163c12b6a4c6c86972186d828be3fd94e2 Reviewed-on: https://code.wireshark.org/review/20056 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
6550b10422
commit
fb3a7caa17
|
@ -46,6 +46,7 @@
|
|||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/tap.h>
|
||||
#include <epan/ptvcursor.h>
|
||||
|
||||
|
@ -57,7 +58,6 @@
|
|||
void proto_register_skinny(void);
|
||||
void proto_reg_handoff_skinny(void);
|
||||
|
||||
|
||||
#define TCP_PORT_SKINNY 2000 /* Not IANA registered */
|
||||
#define SSL_PORT_SKINNY 2443 /* IANA assigned to PowerClient Central Storage Facility */
|
||||
|
||||
|
@ -264,7 +264,6 @@ static const value_string message_id[] = {
|
|||
};
|
||||
static value_string_ext message_id_ext = VALUE_STRING_EXT_INIT(message_id);
|
||||
|
||||
|
||||
/* Declare Enums and Defines */
|
||||
static const value_string DisplayLabels_36[] = {
|
||||
{ 0x00000, "Empty" },
|
||||
|
@ -480,12 +479,9 @@ static const value_string DeviceType[] = {
|
|||
{ 0x00003, "Station12SP" },
|
||||
{ 0x00004, "Station12" },
|
||||
{ 0x00005, "Station30VIP" },
|
||||
{ 0x00006, "StationTelecaster" },
|
||||
{ 0x00006, "Cisco 7910" },
|
||||
{ 0x00007, "StationTelecasterMgr" },
|
||||
{ 0x00008, "StationTelecasterBus" },
|
||||
{ 0x00008, "Cisco 7940" },
|
||||
{ 0x00009, "StationPolycom" },
|
||||
{ 0x00009, "Cisco 7935" },
|
||||
{ 0x0000a, "StationVGC" },
|
||||
{ 0x0000b, "VGCVirtualPhone" },
|
||||
|
@ -543,22 +539,19 @@ static const value_string DeviceType[] = {
|
|||
{ 0x00085, "WsmTrunk" },
|
||||
{ 0x00086, "RemoteDestination" },
|
||||
{ 0x000e3, "Cisco 7915 AddOn" },
|
||||
{ 0x000e4, "Cisco 7915 AddOn" },
|
||||
{ 0x000e4, "Cisco 7915 AddOn 24" },
|
||||
{ 0x000e5, "Cisco 7916 AddOn" },
|
||||
{ 0x000e6, "Cisco 7916 AddOn" },
|
||||
{ 0x000e6, "Cisco 7916 AddOn 24" },
|
||||
{ 0x000fd, "GenericDevice" },
|
||||
{ 0x000fe, "UnknownMGCPGateway" },
|
||||
{ 0x000ff, "NotDefined" },
|
||||
{ 0x00113, "Nokia E Series" },
|
||||
{ 0x0012e, "7989" },
|
||||
{ 0x0012e, "Cisco 7985" },
|
||||
{ 0x00133, "7911" },
|
||||
{ 0x00134, "7941G_GE" },
|
||||
{ 0x00134, "Cisco 7961 GE" },
|
||||
{ 0x00135, "7961G_GE" },
|
||||
{ 0x0014f, "MotorolaCN622" },
|
||||
{ 0x00150, "3rdPartySipBasic" },
|
||||
{ 0x0015c, "StationGoPed" },
|
||||
{ 0x0015c, "Cisco 7931" },
|
||||
{ 0x00166, "UnifiedCommunicator" },
|
||||
{ 0x0016d, "7921" },
|
||||
|
@ -595,7 +588,6 @@ static const value_string DeviceType[] = {
|
|||
{ 0x07536, "7970" },
|
||||
{ 0x07537, "7912" },
|
||||
{ 0x07538, "7902" },
|
||||
{ 0x07540, "SoftPhone" },
|
||||
{ 0x07540, "Cisco IP Communicator" },
|
||||
{ 0x07542, "7961G" },
|
||||
{ 0x07543, "7936" },
|
||||
|
@ -685,7 +677,7 @@ static const value_string DeviceStimulus[] = {
|
|||
{ 0x0008a, "EndCall" },
|
||||
{ 0x0008b, "HLog" },
|
||||
{ 0x0008f, "Queuing" },
|
||||
{ 0x0008f, "MaxStimulusValue" },
|
||||
{ 0x000ff, "MaxStimulusValue" },
|
||||
{ 0x00000, NULL }
|
||||
};
|
||||
static value_string_ext DeviceStimulus_ext = VALUE_STRING_EXT_INIT(DeviceStimulus);
|
||||
|
@ -902,7 +894,7 @@ static const value_string SoftKeySet[] = {
|
|||
{ 0x00002, "On Hold" },
|
||||
{ 0x00003, "Ring In" },
|
||||
{ 0x00004, "Off Hook" },
|
||||
{ 0x00005, "Connected Transfeable" },
|
||||
{ 0x00005, "Connected Transferable" },
|
||||
{ 0x00006, "Digits Following" },
|
||||
{ 0x00007, "Connected Conference" },
|
||||
{ 0x00008, "Ring Out" },
|
||||
|
@ -1706,7 +1698,7 @@ static const value_string CallHistoryDisposition[] = {
|
|||
{ 0x00001, "PlacedCalls" },
|
||||
{ 0x00002, "ReceivedCalls" },
|
||||
{ 0x00003, "MissedCalls" },
|
||||
{ 0xffffffff, "UnknownDisp" },
|
||||
{ 0x0ffff, "UnknownDisp" },
|
||||
{ 0x00000, NULL }
|
||||
};
|
||||
static value_string_ext CallHistoryDisposition_ext = VALUE_STRING_EXT_INIT(CallHistoryDisposition);
|
||||
|
@ -2000,6 +1992,8 @@ static int hf_skinny_maximumBitRate = -1;
|
|||
static int hf_skinny_mediaPathCapabilities = -1;
|
||||
static int hf_skinny_mediaPathEvent = -1;
|
||||
static int hf_skinny_mediaPathID = -1;
|
||||
static int hf_skinny_mediaReceptionStatus = -1;
|
||||
static int hf_skinny_mediaTransmissionStatus = -1;
|
||||
static int hf_skinny_mediaTransportType = -1;
|
||||
static int hf_skinny_mediaType = -1;
|
||||
static int hf_skinny_micMode = -1;
|
||||
|
@ -2012,7 +2006,9 @@ static int hf_skinny_modify_conf_result = -1;
|
|||
static int hf_skinny_multicastIpAddr_ipv4 = -1;
|
||||
static int hf_skinny_multicastIpAddr_ipv6 = -1;
|
||||
static int hf_skinny_multicastPortNumber = -1;
|
||||
static int hf_skinny_multimediaOpenReceiveChannelStatus = -1;
|
||||
static int hf_skinny_multicastReceptionStatus = -1;
|
||||
static int hf_skinny_multimediaReceptionStatus = -1;
|
||||
static int hf_skinny_multimediaTransmissionStatus = -1;
|
||||
static int hf_skinny_mwiControlNumber = -1;
|
||||
static int hf_skinny_mwiTargetNumber = -1;
|
||||
static int hf_skinny_mwi_notification_result = -1;
|
||||
|
@ -2036,7 +2032,6 @@ static int hf_skinny_numberOfSpeedDials = -1;
|
|||
static int hf_skinny_numberPacketsLost = -1;
|
||||
static int hf_skinny_numberPacketsReceived = -1;
|
||||
static int hf_skinny_numberPacketsSent = -1;
|
||||
static int hf_skinny_openReceiveChannelStatus = -1;
|
||||
static int hf_skinny_originalCalledParty = -1;
|
||||
static int hf_skinny_originalCalledPartyName = -1;
|
||||
static int hf_skinny_originalCdpnRedirectReason = -1;
|
||||
|
@ -2073,7 +2068,6 @@ static int hf_skinny_profile = -1;
|
|||
static int hf_skinny_promptStatus = -1;
|
||||
static int hf_skinny_protocolDependentData = -1;
|
||||
static int hf_skinny_protocolVer = -1;
|
||||
static int hf_skinny_receptionStatus = -1;
|
||||
static int hf_skinny_recording_status = -1;
|
||||
static int hf_skinny_recoveryReferencePictureCount = -1;
|
||||
static int hf_skinny_remoteIpAddr_ipv4 = -1;
|
||||
|
@ -2084,7 +2078,6 @@ static int hf_skinny_reserved_for_future_use = -1;
|
|||
static int hf_skinny_resetType = -1;
|
||||
static int hf_skinny_resourceType = -1;
|
||||
static int hf_skinny_result = -1;
|
||||
static int hf_skinny_resultCode = -1;
|
||||
static int hf_skinny_resvStyle = -1;
|
||||
static int hf_skinny_retryTimer = -1;
|
||||
static int hf_skinny_rfc2833 = -1;
|
||||
|
@ -2127,7 +2120,6 @@ static int hf_skinny_speedDialNumber = -1;
|
|||
static int hf_skinny_ssValue = -1;
|
||||
static int hf_skinny_sse = -1;
|
||||
static int hf_skinny_standard = -1;
|
||||
static int hf_skinny_startMediaTransmissionStatus = -1;
|
||||
static int hf_skinny_startingLineInstance = -1;
|
||||
static int hf_skinny_stationIpAddr = -1;
|
||||
static int hf_skinny_stationIpAddr_ipv4 = -1;
|
||||
|
@ -2163,7 +2155,6 @@ static int hf_skinny_totalSoftKeySetCount = -1;
|
|||
static int hf_skinny_transactionID = -1;
|
||||
static int hf_skinny_transmitIpAddr_ipv4 = -1;
|
||||
static int hf_skinny_transmitIpAddr_ipv6 = -1;
|
||||
static int hf_skinny_transmitPort = -1;
|
||||
static int hf_skinny_transmitPreference = -1;
|
||||
static int hf_skinny_unRegReasonCode = -1;
|
||||
static int hf_skinny_unknown = -1;
|
||||
|
@ -2195,8 +2186,8 @@ static dissector_handle_t xml_handle;
|
|||
static gint ett_skinny = -1;
|
||||
static gint ett_skinny_tree = -1;
|
||||
|
||||
/* desegmentation of SCCP */
|
||||
static gboolean skinny_desegment = TRUE;
|
||||
/* preference globals */
|
||||
static gboolean global_skinny_desegment = TRUE;
|
||||
|
||||
/* tap register id */
|
||||
static int skinny_tap = -1;
|
||||
|
@ -2209,13 +2200,13 @@ static skinny_info_t *si;
|
|||
|
||||
dissector_handle_t skinny_handle;
|
||||
|
||||
/* Get the length of a single SCCP PDU */
|
||||
/* Get the length of a single SKINNY PDU */
|
||||
static guint
|
||||
get_skinny_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
|
||||
{
|
||||
guint32 hdr_data_length;
|
||||
|
||||
/* Get the length of the SCCP packet. */
|
||||
/* Get the length of the SKINNY packet. */
|
||||
hdr_data_length = tvb_get_letohl(tvb, offset);
|
||||
|
||||
/* That length doesn't include the length of the header itself. */
|
||||
|
@ -2251,14 +2242,12 @@ dissect_skinny_xml(ptvcursor_t *cursor, int hfindex, packet_info *pinfo, guint32
|
|||
}
|
||||
|
||||
static void
|
||||
dissect_skinny_ipv4or6(ptvcursor_t *cursor, int hfindex_ipv4, int hfindex_ipv6, packet_info *pinfo)
|
||||
dissect_skinny_ipv4or6(ptvcursor_t *cursor, int hfindex_ipv4, int hfindex_ipv6)
|
||||
{
|
||||
address src_addr;
|
||||
guint32 ipversion = 0;
|
||||
guint32 offset = ptvcursor_current_offset(cursor);
|
||||
tvbuff_t *tvb = ptvcursor_tvbuff(cursor);
|
||||
guint32 hdr_version = tvb_get_letohl(tvb, 4);
|
||||
gboolean is_video = FALSE;
|
||||
|
||||
/* ProtocolVersion > 18 include and extra field to declare IPv4 (0) / IPv6 (1) */
|
||||
if (hdr_version >= V17_MSG_TYPE) {
|
||||
|
@ -2266,24 +2255,12 @@ dissect_skinny_ipv4or6(ptvcursor_t *cursor, int hfindex_ipv4, int hfindex_ipv6,
|
|||
ptvcursor_add(cursor, hf_skinny_ipv4or6, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
if (ipversion == IPADDRTYPE_IPV4) {
|
||||
guint32 ip_address;
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (guint8 *)&ip_address;
|
||||
ip_address = tvb_get_ipv4(tvb, offset);
|
||||
rtp_add_address(pinfo, PT_UDP, &src_addr, tvb_get_letohl(tvb, offset), 0, "Skinny", pinfo->num, is_video, NULL);
|
||||
ptvcursor_add(cursor, hfindex_ipv4, 4, ENC_BIG_ENDIAN);
|
||||
if (hdr_version >= V17_MSG_TYPE) {
|
||||
/* skip over the extra room for ipv6 addresses */
|
||||
ptvcursor_advance(cursor, 12);
|
||||
}
|
||||
} else if (ipversion == IPADDRTYPE_IPV6 || ipversion == IPADDRTYPE_IPV4_V6) {
|
||||
struct e_in6_addr IPv6;
|
||||
src_addr.type = AT_IPv6;
|
||||
src_addr.len = 16;
|
||||
src_addr.data = (guint8 *)&IPv6;
|
||||
tvb_get_ipv6(tvb, offset, &IPv6);
|
||||
rtp_add_address(pinfo, PT_UDP, &src_addr, tvb_get_letohl(tvb, offset), 0, "Skinny", pinfo->num, is_video, NULL);
|
||||
ptvcursor_add(cursor, hfindex_ipv6, 16, ENC_NA);
|
||||
} else {
|
||||
/* Invalid : skip over ipv6 space completely */
|
||||
|
@ -2701,7 +2678,7 @@ handle_AlarmMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
static void
|
||||
handle_MulticastMediaReceptionAckMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
||||
{
|
||||
ptvcursor_add(cursor, hf_skinny_receptionStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_multicastReceptionStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -2719,9 +2696,8 @@ handle_OpenReceiveChannelAckMessage(ptvcursor_t *cursor, packet_info * pinfo _U_
|
|||
{
|
||||
guint32 hdr_data_length = tvb_get_letohl(ptvcursor_tvbuff(cursor), 0);
|
||||
|
||||
si->openreceiveStatus = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_openReceiveChannelStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_ipAddr_ipv4, hf_skinny_ipAddr_ipv6, pinfo);
|
||||
ptvcursor_add(cursor, hf_skinny_mediaReceptionStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_ipAddr_ipv4, hf_skinny_ipAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_portNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
if (hdr_data_length > 20) {
|
||||
|
@ -2742,13 +2718,26 @@ handle_ConnectionStatisticsResMessage(ptvcursor_t *cursor, packet_info * pinfo _
|
|||
{
|
||||
guint32 hdr_data_length = tvb_get_letohl(ptvcursor_tvbuff(cursor), 0);
|
||||
guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);
|
||||
guint32 VariableDirnumSize = (hdr_version >= V18_MSG_TYPE) ? 25 : 24;
|
||||
guint32 dataSize = 0;
|
||||
|
||||
ptvcursor_add(cursor, hf_skinny_directoryNum, VariableDirnumSize, ENC_ASCII|ENC_NA);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_statsProcessingMode, 4, ENC_LITTLE_ENDIAN);
|
||||
if (hdr_version <= V16_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_directoryNum, 24, ENC_ASCII|ENC_NA);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_statsProcessingMode, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
if (hdr_version >= V17_MSG_TYPE && hdr_version <= V20_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_directoryNum, 28, ENC_ASCII|ENC_NA);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_statsProcessingMode, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
if (hdr_version >= V21_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_directoryNum, 28, ENC_ASCII|ENC_NA);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_statsProcessingMode, 1, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
ptvcursor_add(cursor, hf_skinny_numberPacketsSent, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_numberOctetsSent, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_numberPacketsReceived, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -2836,7 +2825,7 @@ handle_RegisterTokenReq(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
}
|
||||
ptvcursor_add(cursor, hf_skinny_stationIpAddr, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_deviceType, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_stationIpV6Addr_ipv4, hf_skinny_stationIpV6Addr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_stationIpV6Addr_ipv4, hf_skinny_stationIpV6Addr_ipv6);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2851,7 +2840,7 @@ handle_MediaTransmissionFailureMessage(ptvcursor_t *cursor, packet_info * pinfo
|
|||
{
|
||||
ptvcursor_add(cursor, hf_skinny_conferenceID, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -3272,12 +3261,18 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
static void
|
||||
handle_OpenMultiMediaReceiveChannelAckMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
||||
{
|
||||
ptvcursor_add(cursor, hf_skinny_multimediaOpenReceiveChannelStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_ipAddr_ipv4, hf_skinny_ipAddr_ipv6, pinfo);
|
||||
guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);
|
||||
|
||||
ptvcursor_add(cursor, hf_skinny_multimediaReceptionStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_ipAddr_ipv4, hf_skinny_ipAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_portNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
if (hdr_version >= V16_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -4174,7 +4169,7 @@ handle_PortResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_ipAddr_ipv4, hf_skinny_ipAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_ipAddr_ipv4, hf_skinny_ipAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_portNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_RTCPPortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
if (hdr_version >= V19_MSG_TYPE) {
|
||||
|
@ -4196,7 +4191,7 @@ handle_QoSResvNotifyMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_direction, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
@ -4215,7 +4210,7 @@ handle_QoSErrorNotifyMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_direction, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_errorCode, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -4468,7 +4463,7 @@ handle_StartMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pinfo _U
|
|||
|
||||
ptvcursor_add(cursor, hf_skinny_conferenceID, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_millisecondPacketSize, 4, ENC_LITTLE_ENDIAN);
|
||||
compressionType = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
|
@ -4790,7 +4785,7 @@ handle_DefineTimeDate(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
static void
|
||||
handle_StartSessionTransmissionMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
||||
{
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_sessionType, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
||||
|
@ -4804,7 +4799,7 @@ handle_StartSessionTransmissionMessage(ptvcursor_t *cursor, packet_info * pinfo
|
|||
static void
|
||||
handle_StopSessionTransmissionMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
||||
{
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_sessionType, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
||||
|
@ -4943,7 +4938,7 @@ handle_ServerResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serverIpAddr [max:5]");
|
||||
for (counter_2 = 0; counter_2 < 5; counter_2++) {
|
||||
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serverIpAddr [%d / %d]", counter_2 + 1, 5);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_stationIpAddr_ipv4, hf_skinny_stationIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_stationIpAddr_ipv4, hf_skinny_stationIpAddr_ipv6);
|
||||
ptvcursor_pop_subtree(cursor);
|
||||
/* end for loop tree: serverIpAddr */
|
||||
}
|
||||
|
@ -4980,7 +4975,7 @@ handle_StartMulticastMediaReceptionMessage(ptvcursor_t *cursor, packet_info * pi
|
|||
guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);
|
||||
ptvcursor_add(cursor, hf_skinny_conferenceID, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_multicastIpAddr_ipv4, hf_skinny_multicastIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_multicastIpAddr_ipv4, hf_skinny_multicastIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_multicastPortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_millisecondPacketSize, 4, ENC_LITTLE_ENDIAN);
|
||||
compressionType = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
|
@ -5035,7 +5030,7 @@ handle_StartMulticastMediaTransmissionMessage(ptvcursor_t *cursor, packet_info *
|
|||
guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);
|
||||
ptvcursor_add(cursor, hf_skinny_conferenceID, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_multicastIpAddr_ipv4, hf_skinny_multicastIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_multicastIpAddr_ipv4, hf_skinny_multicastIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_multicastPortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_millisecondPacketSize, 4, ENC_LITTLE_ENDIAN);
|
||||
compressionType = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
|
@ -5210,7 +5205,7 @@ handle_OpenReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
if (hdr_version >= V11_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_mixingMode, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_partyDirection, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_sourceIpAddr_ipv4, hf_skinny_sourceIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_sourceIpAddr_ipv4, hf_skinny_sourceIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_sourcePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
if (hdr_version >= V16_MSG_TYPE) {
|
||||
|
@ -5302,8 +5297,13 @@ static void
|
|||
handle_ConnectionStatisticsReqMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
||||
{
|
||||
guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);
|
||||
guint32 VariableDirnumSize = (hdr_version >= V18_MSG_TYPE) ? 25 : 24;
|
||||
ptvcursor_add(cursor, hf_skinny_directoryNum, VariableDirnumSize, ENC_ASCII|ENC_NA);
|
||||
|
||||
if (hdr_version <= V16_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_directoryNum, 24, ENC_ASCII|ENC_NA);
|
||||
}
|
||||
if (hdr_version >= V17_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_directoryNum, 28, ENC_ASCII|ENC_NA);
|
||||
}
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_statsProcessingMode, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -5637,11 +5637,21 @@ handle_DialedNumberMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
{
|
||||
guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);
|
||||
guint32 VariableDirnumSize = (hdr_version >= V18_MSG_TYPE) ? 25 : 24;
|
||||
ptvcursor_add(cursor, hf_skinny_dialedNumber, VariableDirnumSize, ENC_ASCII|ENC_NA);
|
||||
si->lineId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_lineInstance, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
|
||||
if (hdr_version <= V17_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_dialedNumber, 24, ENC_ASCII|ENC_NA);
|
||||
si->lineId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_lineInstance, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
if (hdr_version >= V18_MSG_TYPE) {
|
||||
ptvcursor_add(cursor, hf_skinny_dialedNumber, VariableDirnumSize, ENC_ASCII|ENC_NA);
|
||||
si->lineId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_lineInstance, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -6191,7 +6201,7 @@ handle_OpenMultiMediaReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pi
|
|||
ptvcursor_add(cursor, hf_skinny_streamPassThroughID, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_associatedStreamID, 4, ENC_LITTLE_ENDIAN);
|
||||
if (hdr_version >= V11_MSG_TYPE) {
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_sourceIpAddr_ipv4, hf_skinny_sourceIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_sourceIpAddr_ipv4, hf_skinny_sourceIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_sourcePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
if (hdr_version >= V16_MSG_TYPE) {
|
||||
|
@ -6219,7 +6229,7 @@ handle_StartMultiMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pin
|
|||
ptvcursor_add(cursor, hf_skinny_passthruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
compressionType = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_compressionType, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -7251,7 +7261,7 @@ handle_QoSListenMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_resvStyle, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_maxRetryNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -7289,7 +7299,7 @@ handle_QoSPathMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_resvStyle, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_maxRetryNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -7326,7 +7336,7 @@ handle_QoSTeardownMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_direction, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
@ -7345,7 +7355,7 @@ handle_UpdateDSCPMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_DSCPValue, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
@ -7364,7 +7374,7 @@ handle_QoSModifyMessage(ptvcursor_t *cursor, packet_info * pinfo _U_)
|
|||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6, pinfo);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_remoteIpAddr_ipv4, hf_skinny_remoteIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_remotePortNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_direction, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_compressionType, 4, ENC_LITTLE_ENDIAN);
|
||||
|
@ -7429,10 +7439,9 @@ handle_StartMediaTransmissionAckMessage(ptvcursor_t *cursor, packet_info * pinfo
|
|||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_transmitIpAddr_ipv4, hf_skinny_transmitIpAddr_ipv6, pinfo);
|
||||
ptvcursor_add(cursor, hf_skinny_transmitPort, 4, ENC_LITTLE_ENDIAN);
|
||||
si->startmediatransmisionStatus = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_startMediaTransmissionStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_transmitIpAddr_ipv4, hf_skinny_transmitIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_portNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_mediaTransmissionStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -7449,9 +7458,9 @@ handle_StartMultiMediaTransmissionAckMessage(ptvcursor_t *cursor, packet_info *
|
|||
ptvcursor_add(cursor, hf_skinny_passThruPartyID, 4, ENC_LITTLE_ENDIAN);
|
||||
si->callId = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
|
||||
ptvcursor_add(cursor, hf_skinny_callReference, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_transmitIpAddr_ipv4, hf_skinny_transmitIpAddr_ipv6, pinfo);
|
||||
ptvcursor_add(cursor, hf_skinny_transmitPort, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_resultCode, 4, ENC_LITTLE_ENDIAN);
|
||||
dissect_skinny_ipv4or6(cursor, hf_skinny_transmitIpAddr_ipv4, hf_skinny_transmitIpAddr_ipv6);
|
||||
ptvcursor_add(cursor, hf_skinny_portNumber, 4, ENC_LITTLE_ENDIAN);
|
||||
ptvcursor_add(cursor, hf_skinny_multimediaTransmissionStatus, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -7808,7 +7817,7 @@ static const struct opcode2handler {
|
|||
{0x8101, handle_SPCPRegisterTokenReject , "SPCPRegisterTokenReject"},
|
||||
};
|
||||
|
||||
/* Dissect a single SCCP PDU */
|
||||
/* Dissect a single SKINNY PDU */
|
||||
static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
guint offset = 0;
|
||||
|
@ -7826,11 +7835,6 @@ static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
proto_item *ti = NULL;
|
||||
|
||||
/* Initialization */
|
||||
/*
|
||||
hdr_data_length = tvb_get_letohl(tvb, offset);
|
||||
hdr_version = tvb_get_letohl(tvb, offset+4);
|
||||
data_messageid = tvb_get_letohl(tvb, offset+8);
|
||||
*/
|
||||
hdr_data_length = tvb_get_letohl(tvb, 0);
|
||||
hdr_version = tvb_get_letohl(tvb, 4);
|
||||
data_messageid = tvb_get_letohl(tvb, 8);
|
||||
|
@ -7869,15 +7873,10 @@ static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
col_add_fstr(pinfo->cinfo, COL_INFO,"%s ", si->messageName);
|
||||
col_set_fence(pinfo->cinfo, COL_INFO);
|
||||
|
||||
/*offset += 8;*/
|
||||
/*cursor = ptvcursor_new(skinny_tree, tvb, offset);*/
|
||||
|
||||
proto_tree_add_uint(skinny_tree, hf_skinny_messageId, tvb,offset+8, 4, data_messageid );
|
||||
/*ptvcursor_add(cursor, hf_skinny_messageId, 4, data_messageid);*/
|
||||
|
||||
offset += 12;
|
||||
cursor = ptvcursor_new(skinny_tree, tvb, offset);
|
||||
|
||||
cursor = ptvcursor_new(skinny_tree, tvb, offset);
|
||||
for (i = 0; i < sizeof(skinny_opcode2handler)/sizeof(struct opcode2handler) ; i++) {
|
||||
if (skinny_opcode2handler[i].opcode == data_messageid && skinny_opcode2handler[i].handler) {
|
||||
skinny_opcode2handler[i].handler(cursor, pinfo);
|
||||
|
@ -7886,6 +7885,7 @@ static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
ptvcursor_free(cursor);
|
||||
|
||||
tap_queue_packet(skinny_tap, pinfo, si);
|
||||
|
||||
return tvb_captured_length(tvb);
|
||||
}
|
||||
|
||||
|
@ -7936,7 +7936,7 @@ dissect_skinny(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
|||
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Skinny Client Control Protocol");
|
||||
|
||||
tcp_dissect_pdus(tvb, pinfo, tree, skinny_desegment, 4, get_skinny_pdu_len, dissect_skinny_pdu, data);
|
||||
tcp_dissect_pdus(tvb, pinfo, tree, global_skinny_desegment, 4, get_skinny_pdu_len, dissect_skinny_pdu, data);
|
||||
|
||||
return tvb_captured_length(tvb);
|
||||
}
|
||||
|
@ -9163,10 +9163,6 @@ proto_register_skinny(void)
|
|||
{
|
||||
"transmitIpAddr IPv6 Address", "skinny.transmitIpAddr.ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
|
||||
"ipaddress in big endian", HFILL }},
|
||||
{ &hf_skinny_transmitPort,
|
||||
{
|
||||
"transmitPort", "skinny.transmitPort", FT_UINT32, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_skinny_transmitPreference,
|
||||
{
|
||||
"transmitPreference", "skinny.transmitPreference", FT_UINT32, BASE_DEC, NULL, 0x0,
|
||||
|
@ -9402,7 +9398,7 @@ proto_register_skinny(void)
|
|||
{&hf_skinny_directoryNum,
|
||||
{
|
||||
"directoryNum", "skinny.directoryNum", FT_STRING, BASE_NONE, NULL, 0x0,
|
||||
"Directory Number", HFILL }},
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_ecValue,
|
||||
{
|
||||
"ecValue", "skinny.ecValue", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &Media_EchoCancellation_ext, 0x0,
|
||||
|
@ -9507,6 +9503,14 @@ proto_register_skinny(void)
|
|||
{
|
||||
"mediaPathID", "skinny.mediaPathID", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaPathID_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_mediaReceptionStatus,
|
||||
{
|
||||
"mediaReceptionStatus", "skinny.mediaReceptionStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_mediaTransmissionStatus,
|
||||
{
|
||||
"mediaTransmissionStatus", "skinny.mediaTransmissionStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_mediaTransportType,
|
||||
{
|
||||
"mediaTransportType", "skinny.mediaTransportType", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaTransportType_ext, 0x0,
|
||||
|
@ -9523,9 +9527,17 @@ proto_register_skinny(void)
|
|||
{
|
||||
"modify_conf_result", "skinny.modify.conf.result", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &ModifyConfResult_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_multimediaOpenReceiveChannelStatus,
|
||||
{&hf_skinny_multicastReceptionStatus,
|
||||
{
|
||||
"multimediaOpenReceiveChannelStatus", "skinny.multimediaOpenReceiveChannelStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &OpenReceiveChanStatus_ext, 0x0,
|
||||
"multicastReceptionStatus", "skinny.multicastReceptionStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MulticastMediaReceptionStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_multimediaReceptionStatus,
|
||||
{
|
||||
"multimediaReceptionStatus", "skinny.multimediaReceptionStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &OpenReceiveChanStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_multimediaTransmissionStatus,
|
||||
{
|
||||
"multimediaTransmissionStatus", "skinny.multimediaTransmissionStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_mwiControlNumber,
|
||||
{
|
||||
|
@ -9543,10 +9555,6 @@ proto_register_skinny(void)
|
|||
{
|
||||
"notify", "skinny.notify", FT_STRING, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_openReceiveChannelStatus,
|
||||
{
|
||||
"openReceiveChannelStatus", "skinny.openReceiveChannelStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_originalCalledParty,
|
||||
{
|
||||
"originalCalledParty", "skinny.originalCalledParty", FT_STRING, BASE_NONE, NULL, 0x0,
|
||||
|
@ -9587,10 +9595,6 @@ proto_register_skinny(void)
|
|||
{
|
||||
"promptStatus", "skinny.promptStatus", FT_STRING, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_receptionStatus,
|
||||
{
|
||||
"receptionStatus", "skinny.receptionStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MulticastMediaReceptionStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_recording_status,
|
||||
{
|
||||
"recording_status", "skinny.recording.status", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &RecordingStatus_ext, 0x0,
|
||||
|
@ -9611,10 +9615,6 @@ proto_register_skinny(void)
|
|||
{
|
||||
"result", "skinny.result", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &CreateConfResult_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_resultCode,
|
||||
{
|
||||
"resultCode", "skinny.resultCode", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_resvStyle,
|
||||
{
|
||||
"resvStyle", "skinny.resvStyle", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &ResvStyle_ext, 0x0,
|
||||
|
@ -9687,10 +9687,6 @@ proto_register_skinny(void)
|
|||
{
|
||||
"ssValue", "skinny.ssValue", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &Media_SilenceSuppression_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_startMediaTransmissionStatus,
|
||||
{
|
||||
"startMediaTransmissionStatus", "skinny.startMediaTransmissionStatus", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &MediaStatus_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
{&hf_skinny_statsProcessingMode,
|
||||
{
|
||||
"Stats Processing Mode", "skinny.statsProcessingMode", FT_UINT32, BASE_HEX | BASE_EXT_STRING, &StatsProcessingType_ext, 0x0,
|
||||
|
@ -9783,11 +9779,11 @@ proto_register_skinny(void)
|
|||
|
||||
skinny_module = prefs_register_protocol(proto_skinny, NULL);
|
||||
prefs_register_bool_preference(skinny_module, "desegment",
|
||||
"Reassemble SCCP messages spanning multiple TCP segments",
|
||||
"Whether the SCCP dissector should reassemble messages spanning multiple TCP segments."
|
||||
"Reassemble SKINNY messages spanning multiple TCP segments",
|
||||
"Whether the SKINNY dissector should reassemble messages spanning multiple TCP segments."
|
||||
" To use this option, you must also enable"
|
||||
" \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
|
||||
&skinny_desegment);
|
||||
&global_skinny_desegment);
|
||||
|
||||
skinny_handle = register_dissector("skinny", dissect_skinny, proto_skinny);
|
||||
|
||||
|
@ -9798,7 +9794,7 @@ void
|
|||
proto_reg_handoff_skinny(void)
|
||||
{
|
||||
/* Skinny content type and internet media type used by other dissectors are the same */
|
||||
xml_handle = find_dissector("xml");
|
||||
xml_handle = find_dissector_add_dependency("xml", proto_skinny);
|
||||
dissector_add_uint_with_preference("tcp.port", TCP_PORT_SKINNY, skinny_handle);
|
||||
ssl_dissector_add(SSL_PORT_SKINNY, skinny_handle);
|
||||
}
|
||||
|
|
|
@ -37,8 +37,8 @@
|
|||
# Using Cog.py Inplace Code Generator
|
||||
#
|
||||
# Dependencies:
|
||||
# - python
|
||||
# - cog.py: http://nedbatchelder.com/code/cog/
|
||||
# - python2.x
|
||||
# - cog.py: (pip install cogapp / http://nedbatchelder.com/code/cog/)
|
||||
# - python.xml
|
||||
# - python.xml.sax
|
||||
#
|
||||
|
@ -59,6 +59,7 @@ cog.out(' */\n')
|
|||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/tap.h>
|
||||
#include <epan/ptvcursor.h>
|
||||
|
||||
|
@ -70,7 +71,6 @@ cog.out(' */\n')
|
|||
void proto_register_skinny(void);
|
||||
void proto_reg_handoff_skinny(void);
|
||||
|
||||
|
||||
#define TCP_PORT_SKINNY 2000 /* Not IANA registered */
|
||||
#define SSL_PORT_SKINNY 2443 /* IANA assigned to PowerClient Central Storage Facility */
|
||||
|
||||
|
@ -123,7 +123,6 @@ cog.out('static value_string_ext message_id_ext = VALUE_STRING_EXT_INIT(message_
|
|||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
|
||||
/* Declare Enums and Defines */
|
||||
/* [[[cog
|
||||
for enum in skinny.enum:
|
||||
|
@ -169,8 +168,8 @@ static dissector_handle_t xml_handle;
|
|||
static gint ett_skinny = -1;
|
||||
static gint ett_skinny_tree = -1;
|
||||
|
||||
/* desegmentation of SCCP */
|
||||
static gboolean skinny_desegment = TRUE;
|
||||
/* preference globals */
|
||||
static gboolean global_skinny_desegment = TRUE;
|
||||
|
||||
/* tap register id */
|
||||
static int skinny_tap = -1;
|
||||
|
@ -183,13 +182,13 @@ static skinny_info_t *si;
|
|||
|
||||
dissector_handle_t skinny_handle;
|
||||
|
||||
/* Get the length of a single SCCP PDU */
|
||||
/* Get the length of a single SKINNY PDU */
|
||||
static guint
|
||||
get_skinny_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
|
||||
{
|
||||
guint32 hdr_data_length;
|
||||
|
||||
/* Get the length of the SCCP packet. */
|
||||
/* Get the length of the SKINNY packet. */
|
||||
hdr_data_length = tvb_get_letohl(tvb, offset);
|
||||
|
||||
/* That length doesn't include the length of the header itself. */
|
||||
|
@ -225,14 +224,12 @@ dissect_skinny_xml(ptvcursor_t *cursor, int hfindex, packet_info *pinfo, guint32
|
|||
}
|
||||
|
||||
static void
|
||||
dissect_skinny_ipv4or6(ptvcursor_t *cursor, int hfindex_ipv4, int hfindex_ipv6, packet_info *pinfo)
|
||||
dissect_skinny_ipv4or6(ptvcursor_t *cursor, int hfindex_ipv4, int hfindex_ipv6)
|
||||
{
|
||||
address src_addr;
|
||||
guint32 ipversion = 0;
|
||||
guint32 offset = ptvcursor_current_offset(cursor);
|
||||
tvbuff_t *tvb = ptvcursor_tvbuff(cursor);
|
||||
guint32 hdr_version = tvb_get_letohl(tvb, 4);
|
||||
gboolean is_video = FALSE;
|
||||
|
||||
/* ProtocolVersion > 18 include and extra field to declare IPv4 (0) / IPv6 (1) */
|
||||
if (hdr_version >= V17_MSG_TYPE) {
|
||||
|
@ -240,24 +237,12 @@ dissect_skinny_ipv4or6(ptvcursor_t *cursor, int hfindex_ipv4, int hfindex_ipv6,
|
|||
ptvcursor_add(cursor, hf_skinny_ipv4or6, 4, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
if (ipversion == IPADDRTYPE_IPV4) {
|
||||
guint32 ip_address;
|
||||
src_addr.type = AT_IPv4;
|
||||
src_addr.len = 4;
|
||||
src_addr.data = (guint8 *)&ip_address;
|
||||
ip_address = tvb_get_ipv4(tvb, offset);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset), 0, "Skinny", pinfo->num, is_video, NULL);
|
||||
ptvcursor_add(cursor, hfindex_ipv4, 4, ENC_BIG_ENDIAN);
|
||||
if (hdr_version >= V17_MSG_TYPE) {
|
||||
/* skip over the extra room for ipv6 addresses */
|
||||
ptvcursor_advance(cursor, 12);
|
||||
}
|
||||
} else if (ipversion == IPADDRTYPE_IPV6 || ipversion == IPADDRTYPE_IPV4_V6) {
|
||||
struct e_in6_addr IPv6;
|
||||
src_addr.type = AT_IPv6;
|
||||
src_addr.len = 16;
|
||||
src_addr.data = (guint8 *)&IPv6;
|
||||
tvb_get_ipv6(tvb, offset, &IPv6);
|
||||
rtp_add_address(pinfo, &src_addr, tvb_get_letohl(tvb, offset), 0, "Skinny", pinfo->num, is_video, NULL);
|
||||
ptvcursor_add(cursor, hfindex_ipv6, 16, ENC_NA);
|
||||
} else {
|
||||
/* Invalid : skip over ipv6 space completely */
|
||||
|
@ -340,7 +325,7 @@ cog.out('};\n')
|
|||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
/* Dissect a single SCCP PDU */
|
||||
/* Dissect a single SKINNY PDU */
|
||||
static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
guint offset = 0;
|
||||
|
@ -358,11 +343,6 @@ static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
proto_item *ti = NULL;
|
||||
|
||||
/* Initialization */
|
||||
/*
|
||||
hdr_data_length = tvb_get_letohl(tvb, offset);
|
||||
hdr_version = tvb_get_letohl(tvb, offset+4);
|
||||
data_messageid = tvb_get_letohl(tvb, offset+8);
|
||||
*/
|
||||
hdr_data_length = tvb_get_letohl(tvb, 0);
|
||||
hdr_version = tvb_get_letohl(tvb, 4);
|
||||
data_messageid = tvb_get_letohl(tvb, 8);
|
||||
|
@ -401,15 +381,10 @@ static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
col_add_fstr(pinfo->cinfo, COL_INFO,"%s ", si->messageName);
|
||||
col_set_fence(pinfo->cinfo, COL_INFO);
|
||||
|
||||
/*offset += 8;*/
|
||||
/*cursor = ptvcursor_new(skinny_tree, tvb, offset);*/
|
||||
|
||||
proto_tree_add_uint(skinny_tree, hf_skinny_messageId, tvb,offset+8, 4, data_messageid );
|
||||
/*ptvcursor_add(cursor, hf_skinny_messageId, 4, data_messageid);*/
|
||||
|
||||
offset += 12;
|
||||
cursor = ptvcursor_new(skinny_tree, tvb, offset);
|
||||
|
||||
cursor = ptvcursor_new(skinny_tree, tvb, offset);
|
||||
for (i = 0; i < sizeof(skinny_opcode2handler)/sizeof(struct opcode2handler) ; i++) {
|
||||
if (skinny_opcode2handler[i].opcode == data_messageid && skinny_opcode2handler[i].handler) {
|
||||
skinny_opcode2handler[i].handler(cursor, pinfo);
|
||||
|
@ -418,6 +393,7 @@ static int dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
ptvcursor_free(cursor);
|
||||
|
||||
tap_queue_packet(skinny_tap, pinfo, si);
|
||||
|
||||
return tvb_captured_length(tvb);
|
||||
}
|
||||
|
||||
|
@ -468,7 +444,7 @@ dissect_skinny(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
|||
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Skinny Client Control Protocol");
|
||||
|
||||
tcp_dissect_pdus(tvb, pinfo, tree, skinny_desegment, 4, get_skinny_pdu_len, dissect_skinny_pdu, data);
|
||||
tcp_dissect_pdus(tvb, pinfo, tree, global_skinny_desegment, 4, get_skinny_pdu_len, dissect_skinny_pdu, data);
|
||||
|
||||
return tvb_captured_length(tvb);
|
||||
}
|
||||
|
@ -524,11 +500,11 @@ proto_register_skinny(void)
|
|||
|
||||
skinny_module = prefs_register_protocol(proto_skinny, NULL);
|
||||
prefs_register_bool_preference(skinny_module, "desegment",
|
||||
"Reassemble SCCP messages spanning multiple TCP segments",
|
||||
"Whether the SCCP dissector should reassemble messages spanning multiple TCP segments."
|
||||
"Reassemble SKINNY messages spanning multiple TCP segments",
|
||||
"Whether the SKINNY dissector should reassemble messages spanning multiple TCP segments."
|
||||
" To use this option, you must also enable"
|
||||
" \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
|
||||
&skinny_desegment);
|
||||
&global_skinny_desegment);
|
||||
|
||||
skinny_handle = register_dissector("skinny", dissect_skinny, proto_skinny);
|
||||
|
||||
|
@ -539,7 +515,7 @@ void
|
|||
proto_reg_handoff_skinny(void)
|
||||
{
|
||||
/* Skinny content type and internet media type used by other dissectors are the same */
|
||||
xml_handle = find_dissector("xml");
|
||||
xml_handle = find_dissector_add_dependency("xml", proto_skinny);
|
||||
dissector_add_uint_with_preference("tcp.port", TCP_PORT_SKINNY, skinny_handle);
|
||||
ssl_dissector_add(SSL_PORT_SKINNY, skinny_handle);
|
||||
}
|
||||
|
|
|
@ -40,17 +40,29 @@
|
|||
/* Container for tapping relevant data */
|
||||
typedef struct _skinny_info_t
|
||||
{
|
||||
guint32 messId;
|
||||
guint32 maxProtocolVersion;
|
||||
guint32 lineId;
|
||||
guint32 callId;
|
||||
guint32 passThruId;
|
||||
const gchar *messageName;
|
||||
guint32 callState;
|
||||
gchar *callingParty;
|
||||
gchar *calledParty;
|
||||
gboolean hasCallInfo;
|
||||
guint openreceiveStatus;
|
||||
guint startmediatransmisionStatus;
|
||||
guint32 messId;
|
||||
guint32 maxProtocolVersion;
|
||||
guint32 lineId;
|
||||
guint32 callId;
|
||||
guint32 passThruId;
|
||||
const gchar * messageName;
|
||||
guint32 callState;
|
||||
gchar * callingParty;
|
||||
gchar * calledParty;
|
||||
gboolean hasCallInfo;
|
||||
guint32 openreceiveStatus;
|
||||
guint32 startmediatransmisionStatus;
|
||||
} skinny_info_t;
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 2
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=2 tabstop=8 expandtab:
|
||||
* :indentSize=2:tabSize=8:noTabs=true:
|
||||
*/
|
||||
|
|
|
@ -37,8 +37,8 @@
|
|||
# Using Cog.py Inplace Code Generator
|
||||
#
|
||||
# Dependencies:
|
||||
# - python
|
||||
# - cog.py: http://nedbatchelder.com/code/cog/
|
||||
# - python2.x
|
||||
# - cog.py: (pip install cogapp / http://nedbatchelder.com/code/cog/)
|
||||
# - python.xml
|
||||
# - python.xml.sax
|
||||
#
|
||||
|
@ -52,17 +52,29 @@ cog.out(' */\n')
|
|||
/* Container for tapping relevant data */
|
||||
typedef struct _skinny_info_t
|
||||
{
|
||||
guint32 messId;
|
||||
guint32 maxProtocolVersion;
|
||||
guint32 lineId;
|
||||
guint32 callId;
|
||||
guint32 passThruId;
|
||||
const gchar *messageName;
|
||||
guint32 callState;
|
||||
gchar *callingParty;
|
||||
gchar *calledParty;
|
||||
gboolean hasCallInfo;
|
||||
guint openreceiveStatus;
|
||||
guint startmediatransmisionStatus;
|
||||
guint32 messId;
|
||||
guint32 maxProtocolVersion;
|
||||
guint32 lineId;
|
||||
guint32 callId;
|
||||
guint32 passThruId;
|
||||
const gchar * messageName;
|
||||
guint32 callState;
|
||||
gchar * callingParty;
|
||||
gchar * calledParty;
|
||||
gboolean hasCallInfo;
|
||||
guint32 openreceiveStatus;
|
||||
guint32 startmediatransmisionStatus;
|
||||
} skinny_info_t;
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 2
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=2 tabstop=8 expandtab:
|
||||
* :indentSize=2:tabSize=8:noTabs=true:
|
||||
*/
|
||||
|
|
|
@ -282,10 +282,7 @@
|
|||
<entry comment="" name="DeviceType_Station12SP" text="Station12SP" value="0x00003"/>
|
||||
<entry comment="" name="DeviceType_Station12" text="Station12" value="0x00004"/>
|
||||
<entry comment="" name="DeviceType_Station30VIP" text="Station30VIP" value="0x00005"/>
|
||||
<entry comment="" name="DeviceType_StationTelecaster" text="StationTelecaster" value="0x00006"/>
|
||||
<entry comment="" name="DeviceType_StationTelecasterMgr" text="StationTelecasterMgr" value="0x00007"/>
|
||||
<entry comment="" name="DeviceType_StationTelecasterBus" text="StationTelecasterBus" value="0x00008"/>
|
||||
<entry comment="" name="DeviceType_StationPolycom" text="StationPolycom" value="0x00009"/>
|
||||
<entry comment="" name="DeviceType_StationVGC" text="StationVGC" value="0x0000a"/>
|
||||
<entry comment="" name="DeviceType_VGCVirtualPhone" text="VGCVirtualPhone" value="0x0000b"/>
|
||||
<entry comment="" name="DeviceType_StationATA186" text="StationATA186" value="0x0000c"/>
|
||||
|
@ -295,7 +292,7 @@
|
|||
<entry comment="" name="DeviceType_StationPhoneApplication" text="StationPhoneApplication" value="0x00015"/>
|
||||
<entry comment="" name="DeviceType_AnalogAccess" text="AnalogAccess" value="0x0001e"/>
|
||||
<entry comment="" name="DeviceType_DigitalAccessTitan1" text="DigitalAccessTitan1" value="0x00028"/>
|
||||
<entry comment="Digital Access T1" name="DeviceType_Digital Access T1" text="Digital Access T1" value="0x00029"/>
|
||||
<entry comment="Digital Access T1" name="DeviceType_DigitalAccessT1" text="Digital Access T1" value="0x00029"/>
|
||||
<entry comment="" name="DeviceType_DigitalAccessTitan2" text="DigitalAccessTitan2" value="0x0002a"/>
|
||||
<entry comment="" name="DeviceType_DigitalAccessLennon" text="DigitalAccessLennon" value="0x0002b"/>
|
||||
<entry comment="" name="DeviceType_AnalogAccessElvis" text="AnalogAccessElvis" value="0x0002f"/>
|
||||
|
@ -326,8 +323,8 @@
|
|||
<entry comment="" name="DeviceType_MediaTerminationPointYoko" text="MediaTerminationPointYoko" value="0x0006f"/>
|
||||
<entry comment="" name="DeviceType_MediaTerminationPointDixieLand" text="MediaTerminationPointDixieLand" value="0x00070"/>
|
||||
<entry comment="" name="DeviceType_MediaTerminationPointSummit" text="MediaTerminationPointSummit" value="0x00071"/>
|
||||
<entry comment="" name="DeviceType_7941G" text="7941G" value="0x00073"/>
|
||||
<entry comment="" name="DeviceType_7971" text="7971" value="0x00077"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7941G" text="7941G" value="0x00073"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7971" text="7971" value="0x00077"/>
|
||||
<entry comment="" name="DeviceType_MGCPStation" text="MGCPStation" value="0x00078"/>
|
||||
<entry comment="" name="DeviceType_MGCPTrunk" text="MGCPTrunk" value="0x00079"/>
|
||||
<entry comment="" name="DeviceType_RASProxy" text="RASProxy" value="0x0007a"/>
|
||||
|
@ -343,25 +340,22 @@
|
|||
<entry comment="" name="DeviceType_GenericDevice" text="GenericDevice" value="0x000fd"/>
|
||||
<entry comment="" name="DeviceType_UnknownMGCPGateway" text="UnknownMGCPGateway" value="0x000fe"/>
|
||||
<entry comment="" name="DeviceType_NotDefined" text="NotDefined" value="0x000ff"/>
|
||||
<entry comment="" name="DeviceType_7989" text="7989" value="0x0012e"/>
|
||||
<entry comment="" name="DeviceType_7911" text="7911" value="0x00133"/>
|
||||
<entry comment="" name="DeviceType_7941G_GE" text="7941G_GE" value="0x00134"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7911" text="7911" value="0x00133"/>
|
||||
<entry comment="" name="DeviceType_MotorolaCN622" text="MotorolaCN622" value="0x0014f"/>
|
||||
<entry comment="" name="DeviceType_3rdPartySipBasic" text="3rdPartySipBasic" value="0x00150"/>
|
||||
<entry comment="" name="DeviceType_StationGoPed" text="StationGoPed" value="0x0015c"/>
|
||||
<entry comment="" name="DeviceType_ThirdPartySipBasic" text="3rdPartySipBasic" value="0x00150"/>
|
||||
<entry comment="" name="DeviceType_UnifiedCommunicator" text="UnifiedCommunicator" value="0x00166"/>
|
||||
<entry comment="" name="DeviceType_7921" text="7921" value="0x0016d"/>
|
||||
<entry comment="" name="DeviceType_7906" text="7906" value="0x00171"/>
|
||||
<entry comment="" name="DeviceType_3rdPartySipAdv" text="3rdPartySipAdv" value="0x00176"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7921" text="7921" value="0x0016d"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7906" text="7906" value="0x00171"/>
|
||||
<entry comment="" name="DeviceType_ThirdPartySipAdv" text="3rdPartySipAdv" value="0x00176"/>
|
||||
<entry comment="" name="DeviceType_Telepresence" text="Telepresence" value="0x00177"/>
|
||||
<entry comment="" name="DeviceType_7962" text="7962" value="0x00194"/>
|
||||
<entry comment="" name="DeviceType_3951" text="3951" value="0x0019c"/>
|
||||
<entry comment="" name="DeviceType_7937" text="7937" value="0x001af"/>
|
||||
<entry comment="" name="DeviceType_7942" text="7942" value="0x001b2"/>
|
||||
<entry comment="" name="DeviceType_7945" text="7945" value="0x001b3"/>
|
||||
<entry comment="" name="DeviceType_7965" text="7965" value="0x001b4"/>
|
||||
<entry comment="" name="DeviceType_7975" text="7975" value="0x001b5"/>
|
||||
<entry comment="" name="DeviceType_9971_CE" text="9971_CE" value="0x001ed"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7962" text="7962" value="0x00194"/>
|
||||
<entry comment="" name="DeviceType_Cisco_3951" text="3951" value="0x0019c"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7937" text="7937" value="0x001af"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7942" text="7942" value="0x001b2"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7945" text="7945" value="0x001b3"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7965" text="7965" value="0x001b4"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7975" text="7975" value="0x001b5"/>
|
||||
<entry comment="" name="DeviceType_Cisco_9971_CE" text="9971_CE" value="0x001ed"/>
|
||||
<entry comment="" name="DeviceType_UnifiedMobileCommunicator" text="UnifiedMobileCommunicator" value="0x001d4"/>
|
||||
<entry comment="" name="DeviceType_CSF" text="CSF" value="0x001f7"/>
|
||||
<entry comment="" name="DeviceType_CiscoTelepresenceMcu" text="CiscoTelepresenceMcu" value="0x00255"/>
|
||||
|
@ -370,14 +364,13 @@
|
|||
<entry comment="" name="DeviceType_CiscoTelePresenceSoftwareConferenceBridge" text="CiscoTelePresenceSoftwareConferenceBridge" value="0x00258"/>
|
||||
<entry comment="" name="DeviceType_ASSip" text="ASSip" value="0x00277"/>
|
||||
<entry comment="" name="DeviceType_CtiRemoteDevice" text="CtiRemoteDevice" value="0x0027b"/>
|
||||
<entry comment="" name="DeviceType_7905" text="7905" value="0x04e20"/>
|
||||
<entry comment="" name="DeviceType_7920" text="7920" value="0x07532"/>
|
||||
<entry comment="" name="DeviceType_7970" text="7970" value="0x07536"/>
|
||||
<entry comment="" name="DeviceType_7912" text="7912" value="0x07537"/>
|
||||
<entry comment="" name="DeviceType_7902" text="7902" value="0x07538"/>
|
||||
<entry comment="" name="DeviceType_SoftPhone" text="SoftPhone" value="0x07540"/>
|
||||
<entry comment="" name="DeviceType_7961G" text="7961G" value="0x07542"/>
|
||||
<entry comment="" name="DeviceType_7936" text="7936" value="0x07543"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7905" text="7905" value="0x04e20"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7920" text="7920" value="0x07532"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7970" text="7970" value="0x07536"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7912" text="7912" value="0x07537"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7902" text="7902" value="0x07538"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7961G" text="7961G" value="0x07542"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7936" text="7936" value="0x07543"/>
|
||||
<entry comment="" name="DeviceType_AnalogPhone" text="AnalogPhone" value="0x0754b"/>
|
||||
<entry comment="" name="DeviceType_ISDNBRIPhone" text="ISDNBRIPhone" value="0x0754c"/>
|
||||
<entry comment="" name="DeviceType_SCCPGwVirtualPhone" text="SCCPGwVirtualPhone" value="0x07550"/>
|
||||
|
@ -389,7 +382,7 @@
|
|||
<entry comment="Cisco 7935" name="DeviceType_Cisco_7935" text="Cisco 7935" value="0x00009"/>
|
||||
<entry comment="Cisco 7940" name="DeviceType_Cisco_7940" text="Cisco 7940" value="0x00008"/>
|
||||
<entry comment="Cisco 7961 GE" name="DeviceType_Cisco_7961_GE" text="Cisco 7961 GE" value="0x00134"/>
|
||||
<entry comment="" name="DeviceType_7961G_GE" text="7961G_GE" value="0x00135"/>
|
||||
<entry comment="" name="DeviceType_Cisco_7961G_GE" text="7961G_GE" value="0x00135"/>
|
||||
<entry comment="Cisco 7985" name="DeviceType_Cisco_7985" text="Cisco 7985" value="0x0012e"/>
|
||||
<entry comment="Nokia E Series" name="DeviceType_Nokia_E_Series" text="Nokia E Series" value="0x00113"/>
|
||||
<entry comment="Cisco IP Communicator" name="DeviceType_Cisco_IP_Communicator" text="Cisco IP Communicator" value="0x07540"/>
|
||||
|
@ -411,9 +404,9 @@
|
|||
<entry comment="Cisco SPA 525G2 (5 lines / color / wifi / bluetooth)" name="DeviceType_Cisco_SPA_525G2" text="Cisco SPA 525G2" value="0x13889"/>
|
||||
<entry comment="Cisco 7914 AddOn" name="DeviceType_Cisco_7914_AddOn" text="Cisco 7914 AddOn" value="0x0007c"/>
|
||||
<entry comment="Cisco 7915 AddOn (12 Buttons)" name="DeviceType_Cisco_7915_AddOn" text="Cisco 7915 AddOn" value="0x000e3"/>
|
||||
<entry comment="Cisco 7915 AddOn (24 Buttons)" name="DeviceType_Cisco_7915_AddOn" text="Cisco 7915 AddOn" value="0x000e4"/>
|
||||
<entry comment="Cisco 7915 AddOn (24 Buttons)" name="DeviceType_Cisco_7915_AddOn_24" text="Cisco 7915 AddOn 24" value="0x000e4"/>
|
||||
<entry comment="Cisco 7916 AddOn (12 Buttons)" name="DeviceType_Cisco_7916_AddOn" text="Cisco 7916 AddOn" value="0x000e5"/>
|
||||
<entry comment="Cisco 7916 AddOn (24 Buttons)" name="DeviceType_Cisco_7916_AddOn" text="Cisco 7916 AddOn" value="0x000e6"/>
|
||||
<entry comment="Cisco 7916 AddOn (24 Buttons)" name="DeviceType_Cisco_7916_AddOn_24" text="Cisco 7916 AddOn 24" value="0x000e6"/>
|
||||
</entries>
|
||||
</enum>
|
||||
<bitfield name="PhoneFeatures">
|
||||
|
@ -579,7 +572,7 @@
|
|||
<entry comment="" name="DeviceStimulus_EndCall" text="EndCall" value="0x008a"/>
|
||||
<entry comment="" name="DeviceStimulus_HLog" text="HLog" value="0x008b"/>
|
||||
<entry comment="" name="DeviceStimulus_Queuing" text="Queuing" value="0x008f"/>
|
||||
<entry boundscheck="max" comment="" name="DeviceStimulus_MaxStimulusValue" text="MaxStimulusValue" value="0x008f"/>
|
||||
<entry boundscheck="max" comment="" name="DeviceStimulus_MaxStimulusValue" text="MaxStimulusValue" value="0x00ff"/>
|
||||
</entries>
|
||||
</enum>
|
||||
<message comment="" direction="dev2pbx" dynamic="no" name="StimulusMessage" opcode="0x0005" status="no" type="CallControl">
|
||||
|
@ -781,7 +774,7 @@
|
|||
</enum>
|
||||
<message comment="" direction="dev2pbx" dynamic="no" name="MulticastMediaReceptionAckMessage" opcode="0x0021" status="no" type="MediaControl">
|
||||
<fields beginversion="0" endversion="22">
|
||||
<enum comment="" name="receptionStatus" subtype="MulticastMediaReceptionStatus" type="uint32"/>
|
||||
<enum comment="" name="multicastReceptionStatus" subtype="MulticastMediaReceptionStatus" type="uint32"/>
|
||||
<integer comment="PassThrough PartyId" name="passThruPartyID" type="uint32"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
</fields>
|
||||
|
@ -813,9 +806,9 @@
|
|||
</enum>
|
||||
<message comment="" direction="dev2pbx" dynamic="no" name="OpenReceiveChannelAckMessage" opcode="0x0022" status="no" type="MediaControl">
|
||||
<fields>
|
||||
<enum comment="" name="openReceiveChannelStatus" subtype="MediaStatus" type="uint32"/>
|
||||
<enum comment="" name="mediaReceptionStatus" subtype="MediaStatus" type="uint32"/>
|
||||
<ipv4or6 comment="" name="ipAddr" subtype="IPV4orV6Address" type="ipaddr"/>
|
||||
<integer comment="" name="portNumber" subtype="uint32" type="ipport" use_param="ipAddr"/>
|
||||
<integer comment="" declare="yes" name="portNumber" subtype="uint32" type="ipport" use_param="ipAddr"/>
|
||||
<integer comment="PassThrough PartyId" name="passThruPartyID" type="uint32"/>
|
||||
</fields>
|
||||
<fields beginversion="0" endversion="22" size_gt="20">
|
||||
|
@ -829,10 +822,22 @@
|
|||
</entries>
|
||||
</enum>
|
||||
<message comment="" direction="dev2pbx" dynamic="no" name="ConnectionStatisticsResMessage" opcode="0x0023" status="no" type="CallControl">
|
||||
<fields>
|
||||
<string comment="Directory Number" declare="yes" name="directoryNum" size="VariableDirnumSize" type="char"/>
|
||||
<fields endversion="16" fixed="yes">
|
||||
<string comment="" name="directoryNum" size="24" type="char"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
<enum comment="Stats Processing Mode" longcomment="What do do after you send the stats" name="statsProcessingMode" subtype="StatsProcessingType" type="uint32"/>
|
||||
</fields>
|
||||
<fields beginversion="17" endversion="20" fixed="yes">
|
||||
<string comment="" name="directoryNum" size="28" type="char"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
<enum comment="Stats Processing Mode" longcomment="What do do after you send the stats" name="statsProcessingMode" subtype="StatsProcessingType" type="uint32"/>
|
||||
</fields>
|
||||
<fields beginversion="21" endversion="22" fixed="yes">
|
||||
<string comment="" name="directoryNum" size="28" type="char"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
<integer comment="Stats Processing Mode" longcomment="What do do after you send the stats" name="statsProcessingMode" subtype="StatsProcessingType" type="uint8"/>
|
||||
</fields>
|
||||
<fields>
|
||||
<integer comment="Number of Packets Sent" name="numberPacketsSent" type="uint32"/>
|
||||
<integer comment="Number of Octets Sent" name="numberOctetsSent" type="uint32"/>
|
||||
<integer comment="Number of Packets Received" name="numberPacketsReceived" type="uint32"/>
|
||||
|
@ -841,7 +846,7 @@
|
|||
<integer comment="Amount of Jitter" name="jitter" type="uint32"/>
|
||||
<integer comment="Amount of Latency" name="latency" type="uint32"/>
|
||||
</fields>
|
||||
<fields beginversion="0" endversion="22" size_gt="64">
|
||||
<fields size_gt="64">
|
||||
<integer comment="Data Size" declare="yes" name="dataSize" type="uint32"/>
|
||||
<string comment="Statistics" longcomment="variable field size (max: 600]" maxsize="600" name="data" size_fieldname="dataSize" type="char"/>
|
||||
</fields>
|
||||
|
@ -861,7 +866,7 @@
|
|||
<entry name="SoftKeySet_OnHold" text="On Hold" value="2"/>
|
||||
<entry name="SoftKeySet_Ringin" text="Ring In" value="3"/>
|
||||
<entry name="SoftKeySet_OffHook" text="Off Hook" value="4"/>
|
||||
<entry name="SoftKeySet_ConnTrans" text="Connected Transfeable" value="5"/>
|
||||
<entry name="SoftKeySet_ConnTrans" text="Connected Transferable" value="5"/>
|
||||
<entry name="SoftKeySet_DigitsFoll" text="Digits Following" value="6"/>
|
||||
<entry name="SoftKeySet_ConnConf" text="Connected Conference" value="7"/>
|
||||
<entry name="SoftKeySet_RingOut" text="Ring Out" value="8"/>
|
||||
|
@ -890,44 +895,44 @@
|
|||
<entry name="SoftKeyEvent_MeetMe" text="MeetMe" value="16"/>
|
||||
<entry name="SoftKeyEvent_PickUp" text="PickUp" value="17"/>
|
||||
<entry name="SoftKeyEvent_GrpPickup" text="GrpPickup" value="18"/>
|
||||
<entry name="SoftKeyEvent_Your current options" text="Your current options" value="19"/>
|
||||
<entry name="SoftKeyEvent_Off Hook" text="Off Hook" value="20"/>
|
||||
<entry name="SoftKeyEvent_On Hook" text="On Hook" value="21"/>
|
||||
<entry name="SoftKeyEvent_Ring out" text="Ring out" value="22"/>
|
||||
<entry name="SoftKeyEvent_YourCurrentOptions" text="Your current options" value="19"/>
|
||||
<entry name="SoftKeyEvent_OffHook" text="Off Hook" value="20"/>
|
||||
<entry name="SoftKeyEvent_OnHook" text="On Hook" value="21"/>
|
||||
<entry name="SoftKeyEvent_RingOut" text="Ring out" value="22"/>
|
||||
<entry name="SoftKeyEvent_From " text="From " value="23"/>
|
||||
<entry name="SoftKeyEvent_Connected" text="Connected" value="24"/>
|
||||
<entry name="SoftKeyEvent_Busy" text="Busy" value="25"/>
|
||||
<entry name="SoftKeyEvent_Line In Use" text="Line In Use" value="26"/>
|
||||
<entry name="SoftKeyEvent_Call Waiting" text="Call Waiting" value="27"/>
|
||||
<entry name="SoftKeyEvent_Call Transfer" text="Call Transfer" value="28"/>
|
||||
<entry name="SoftKeyEvent_Call Park" text="Call Park" value="29"/>
|
||||
<entry name="SoftKeyEvent_Call Proceed" text="Call Proceed" value="30"/>
|
||||
<entry name="SoftKeyEvent_In Use Remote" text="In Use Remote" value="31"/>
|
||||
<entry name="SoftKeyEvent_Enter number" text="Enter number" value="32"/>
|
||||
<entry name="SoftKeyEvent_Call park At" text="Call park At" value="33"/>
|
||||
<entry name="SoftKeyEvent_Primary Only" text="Primary Only" value="34"/>
|
||||
<entry name="SoftKeyEvent_Temp Fail" text="Temp Fail" value="35"/>
|
||||
<entry name="SoftKeyEvent_You Have a VoiceMail" text="You Have a VoiceMail" value="36"/>
|
||||
<entry name="SoftKeyEvent_Forwarded to" text="Forwarded to" value="37"/>
|
||||
<entry name="SoftKeyEvent_Can Not Complete Conference" text="Can Not Complete Conference" value="38"/>
|
||||
<entry name="SoftKeyEvent_No Conference Bridge" text="No Conference Bridge" value="39"/>
|
||||
<entry name="SoftKeyEvent_Can Not Hold Primary Control" text="Can Not Hold Primary Control" value="40"/>
|
||||
<entry name="SoftKeyEvent_Invalid Conference Participant" text="Invalid Conference Participant" value="41"/>
|
||||
<entry name="SoftKeyEvent_In Conference Already" text="In Conference Already" value="42"/>
|
||||
<entry name="SoftKeyEvent_No Participant Info" text="No Participant Info" value="43"/>
|
||||
<entry name="SoftKeyEvent_Exceed Maximum Parties" text="Exceed Maximum Parties" value="44"/>
|
||||
<entry name="SoftKeyEvent_Key Is Not Active" text="Key Is Not Active" value="45"/>
|
||||
<entry name="SoftKeyEvent_Error No License" text="Error No License" value="46"/>
|
||||
<entry name="SoftKeyEvent_Error DBConfig" text="Error DBConfig" value="47"/>
|
||||
<entry name="SoftKeyEvent_Error Database" text="Error Database" value="48"/>
|
||||
<entry name="SoftKeyEvent_Error Pass Limit" text="Error Pass Limit" value="49"/>
|
||||
<entry name="SoftKeyEvent_Error Unknown" text="Error Unknown" value="50"/>
|
||||
<entry name="SoftKeyEvent_Error Mismatch" text="Error Mismatch" value="51"/>
|
||||
<entry name="SoftKeyEvent_LineInUse" text="Line In Use" value="26"/>
|
||||
<entry name="SoftKeyEvent_CallWaiting" text="Call Waiting" value="27"/>
|
||||
<entry name="SoftKeyEvent_CallTransfer" text="Call Transfer" value="28"/>
|
||||
<entry name="SoftKeyEvent_CallPark" text="Call Park" value="29"/>
|
||||
<entry name="SoftKeyEvent_CallProceed" text="Call Proceed" value="30"/>
|
||||
<entry name="SoftKeyEvent_InUseRemote" text="In Use Remote" value="31"/>
|
||||
<entry name="SoftKeyEvent_EnterNumber" text="Enter number" value="32"/>
|
||||
<entry name="SoftKeyEvent_CallParkAt" text="Call park At" value="33"/>
|
||||
<entry name="SoftKeyEvent_PrimaryOnly" text="Primary Only" value="34"/>
|
||||
<entry name="SoftKeyEvent_TempFail" text="Temp Fail" value="35"/>
|
||||
<entry name="SoftKeyEvent_YouHaveAVoiceMail" text="You Have a VoiceMail" value="36"/>
|
||||
<entry name="SoftKeyEvent_ForwardedTo" text="Forwarded to" value="37"/>
|
||||
<entry name="SoftKeyEvent_CanNotCompleteConference" text="Can Not Complete Conference" value="38"/>
|
||||
<entry name="SoftKeyEvent_NoConferenceBridge" text="No Conference Bridge" value="39"/>
|
||||
<entry name="SoftKeyEvent_CanNotHoldPrimaryControl" text="Can Not Hold Primary Control" value="40"/>
|
||||
<entry name="SoftKeyEvent_InvalidConferenceParticipant" text="Invalid Conference Participant" value="41"/>
|
||||
<entry name="SoftKeyEvent_InConferenceAlready" text="In Conference Already" value="42"/>
|
||||
<entry name="SoftKeyEvent_NoParticipantInfo" text="No Participant Info" value="43"/>
|
||||
<entry name="SoftKeyEvent_ExceedMaximumParties" text="Exceed Maximum Parties" value="44"/>
|
||||
<entry name="SoftKeyEvent_KeyIsNotActive" text="Key Is Not Active" value="45"/>
|
||||
<entry name="SoftKeyEvent_ErrorNoLicense" text="Error No License" value="46"/>
|
||||
<entry name="SoftKeyEvent_ErrorDBConfig" text="Error DBConfig" value="47"/>
|
||||
<entry name="SoftKeyEvent_ErrorDatabase" text="Error Database" value="48"/>
|
||||
<entry name="SoftKeyEvent_ErrorPassLimit" text="Error Pass Limit" value="49"/>
|
||||
<entry name="SoftKeyEvent_ErrorUnknown" text="Error Unknown" value="50"/>
|
||||
<entry name="SoftKeyEvent_ErrorMismatch" text="Error Mismatch" value="51"/>
|
||||
<entry name="SoftKeyEvent_Conference" text="Conference" value="52"/>
|
||||
<entry name="SoftKeyEvent_Park Number" text="Park Number" value="53"/>
|
||||
<entry name="SoftKeyEvent_ParkNumber" text="Park Number" value="53"/>
|
||||
<entry name="SoftKeyEvent_Private" text="Private" value="54"/>
|
||||
<entry name="SoftKeyEvent_Not Enough Bandwidth" text="Not Enough Bandwidth" value="55"/>
|
||||
<entry name="SoftKeyEvent_Unknown Number" text="Unknown Number" value="56"/>
|
||||
<entry name="SoftKeyEvent_NotEnoughBandwidth" text="Not Enough Bandwidth" value="55"/>
|
||||
<entry name="SoftKeyEvent_UnknownNumber" text="Unknown Number" value="56"/>
|
||||
<entry name="SoftKeyEvent_RmLstC" text="RmLstC" value="57"/>
|
||||
<entry name="SoftKeyEvent_Voicemail" text="Voicemail" value="58"/>
|
||||
<entry name="SoftKeyEvent_ImmDiv" text="ImmDiv" value="59"/>
|
||||
|
@ -937,15 +942,15 @@
|
|||
<entry name="SoftKeyEvent_DND" text="DND" value="63"/>
|
||||
<entry name="SoftKeyEvent_DivAll" text="DivAll" value="64"/>
|
||||
<entry name="SoftKeyEvent_CallBack" text="CallBack" value="65"/>
|
||||
<entry name="SoftKeyEvent_Network congestion,rerouting" text="Network congestion,rerouting" value="66"/>
|
||||
<entry name="SoftKeyEvent_NetworkCongestionRerouting" text="Network congestion,rerouting" value="66"/>
|
||||
<entry name="SoftKeyEvent_Barge" text="Barge" value="67"/>
|
||||
<entry name="SoftKeyEvent_Failed to setup Barge" text="Failed to setup Barge" value="68"/>
|
||||
<entry name="SoftKeyEvent_Another Barge exists" text="Another Barge exists" value="69"/>
|
||||
<entry name="SoftKeyEvent_Incompatible device type" text="Incompatible device type" value="70"/>
|
||||
<entry name="SoftKeyEvent_No Park Number Available" text="No Park Number Available" value="71"/>
|
||||
<entry name="SoftKeyEvent_CallPark Reversion" text="CallPark Reversion" value="72"/>
|
||||
<entry name="SoftKeyEvent_Service is not Active" text="Service is not Active" value="73"/>
|
||||
<entry name="SoftKeyEvent_High Traffic Try Again Later" text="High Traffic Try Again Later" value="74"/>
|
||||
<entry name="SoftKeyEvent_FailedToSetupBarge" text="Failed to setup Barge" value="68"/>
|
||||
<entry name="SoftKeyEvent_AnotherBargeExists" text="Another Barge exists" value="69"/>
|
||||
<entry name="SoftKeyEvent_IncompatibleDeviceType" text="Incompatible device type" value="70"/>
|
||||
<entry name="SoftKeyEvent_NoParkNumberAvailable" text="No Park Number Available" value="71"/>
|
||||
<entry name="SoftKeyEvent_CallParkReversion" text="CallPark Reversion" value="72"/>
|
||||
<entry name="SoftKeyEvent_ServiceIsNotActive" text="Service is not Active" value="73"/>
|
||||
<entry name="SoftKeyEvent_HighTrafficTryAgainLater" text="High Traffic Try Again Later" value="74"/>
|
||||
<entry name="SoftKeyEvent_QRT" text="QRT" value="75"/>
|
||||
<entry name="SoftKeyEvent_MCID" text="MCID" value="76"/>
|
||||
<entry name="SoftKeyEvent_DirTrfr" text="DirTrfr" value="77"/>
|
||||
|
@ -953,13 +958,13 @@
|
|||
<entry name="SoftKeyEvent_ConfList" text="ConfList" value="79"/>
|
||||
<entry name="SoftKeyEvent_iDivert" text="iDivert" value="80"/>
|
||||
<entry name="SoftKeyEvent_cBarge" text="cBarge" value="81"/>
|
||||
<entry name="SoftKeyEvent_Can Not Complete Transfer" text="Can Not Complete Transfer" value="82"/>
|
||||
<entry name="SoftKeyEvent_Can Not Join Calls" text="Can Not Join Calls" value="83"/>
|
||||
<entry name="SoftKeyEvent_Mcid Successful" text="Mcid Successful" value="84"/>
|
||||
<entry name="SoftKeyEvent_Number Not Configured" text="Number Not Configured" value="85"/>
|
||||
<entry name="SoftKeyEvent_Security Error" text="Security Error" value="86"/>
|
||||
<entry name="SoftKeyEvent_Video Bandwidth Unavailable" text="Video Bandwidth Unavailable" value="87"/>
|
||||
<entry name="SoftKeyEvent_Video Mode" text="Video Mode" value="88"/>
|
||||
<entry name="SoftKeyEvent_CanNotCompleteTransfer" text="Can Not Complete Transfer" value="82"/>
|
||||
<entry name="SoftKeyEvent_CanNotJoinCalls" text="Can Not Join Calls" value="83"/>
|
||||
<entry name="SoftKeyEvent_McidSuccessful" text="Mcid Successful" value="84"/>
|
||||
<entry name="SoftKeyEvent_NumberNotConfigured" text="Number Not Configured" value="85"/>
|
||||
<entry name="SoftKeyEvent_SecurityError" text="Security Error" value="86"/>
|
||||
<entry name="SoftKeyEvent_VideoBandwidthUnavailable" text="Video Bandwidth Unavailable" value="87"/>
|
||||
<entry name="SoftKeyEvent_VideoMode" text="Video Mode" value="88"/>
|
||||
<entry name="SoftKeyEvent_Record" text="Record" value="202"/>
|
||||
<entry name="SoftKeyEvent_Dial" text="Dial" value="201"/>
|
||||
</entries>
|
||||
|
@ -1252,9 +1257,12 @@
|
|||
</enum>
|
||||
<message comment="" direction="dev2pbx" dynamic="no" name="OpenMultiMediaReceiveChannelAckMessage" opcode="0x0031" status="no" type="MediaControl">
|
||||
<fields>
|
||||
<enum comment="" name="multimediaOpenReceiveChannelStatus" subtype="OpenReceiveChanStatus" type="uint32"/>
|
||||
<enum comment="" name="multimediaReceptionStatus" subtype="OpenReceiveChanStatus" type="uint32"/>
|
||||
<ipv4or6 comment="ipaddress in big endian" endiannes="big" endianness="big" name="ipAddr" subtype="IpAddress" type="ipaddr"/>
|
||||
<integer comment="" name="portNumber" subtype="uint32" type="ipport" use_param="ipAddr"/>
|
||||
<integer comment="" declare="yes" name="portNumber" subtype="uint32" type="ipport" use_param="ipAddr"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
</fields>
|
||||
<fields beginversion="16" endversion="22">
|
||||
<integer comment="PassThrough PartyId" name="passThruPartyID" type="uint32"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
</fields>
|
||||
|
@ -2048,10 +2056,10 @@
|
|||
<entry comment="" name="DeviceTone_PRIORITY" text="PRIORITY" value="0x0064"/>
|
||||
<entry comment="" name="DeviceTone_IMMEDIATE" text="IMMEDIATE" value="0x0065"/>
|
||||
<entry comment="" name="DeviceTone_PREAMPWARN" text="PREAMPWARN" value="0x0066"/>
|
||||
<entry comment="" name="DeviceTone_2105HZ" text="2105HZ" value="0x0067"/>
|
||||
<entry comment="" name="DeviceTone_2600HZ" text="2600HZ" value="0x0068"/>
|
||||
<entry comment="" name="DeviceTone_440HZ" text="440HZ" value="0x0069"/>
|
||||
<entry comment="" name="DeviceTone_300HZ" text="300HZ" value="0x006a"/>
|
||||
<entry comment="" name="DeviceTone_Tone2105HZ" text="2105HZ" value="0x0067"/>
|
||||
<entry comment="" name="DeviceTone_Tone2600HZ" text="2600HZ" value="0x0068"/>
|
||||
<entry comment="" name="DeviceTone_Tone440HZ" text="440HZ" value="0x0069"/>
|
||||
<entry comment="" name="DeviceTone_Tone300HZ" text="300HZ" value="0x006a"/>
|
||||
<entry comment="" name="DeviceTone_Mobility_WP" text="Mobility_WP" value="0x006b"/>
|
||||
<entry comment="" name="DeviceTone_Mobility_UAC" text="Mobility_UAC" value="0x006c"/>
|
||||
<entry comment="" name="DeviceTone_Mobility_WTDN" text="Mobility_WTDN" value="0x006d"/>
|
||||
|
@ -2452,39 +2460,39 @@
|
|||
<enum name="ButtonType">
|
||||
<entries>
|
||||
<entry comment="" name="ButtonType_Unused" text="Unused" value="0x00"/>
|
||||
<entry comment="" name="ButtonType_Last Number Redial" text="Last Number Redial" value="0x01"/>
|
||||
<entry comment="" name="ButtonType_LastNumberRedial" text="Last Number Redial" value="0x01"/>
|
||||
<entry comment="" name="ButtonType_SpeedDial" text="SpeedDial" value="0x02"/>
|
||||
<entry comment="" name="ButtonType_Hold" text="Hold" value="0x03"/>
|
||||
<entry comment="" name="ButtonType_Transfer" text="Transfer" value="0x04"/>
|
||||
<entry comment="" name="ButtonType_Forward All" text="Forward All" value="0x05"/>
|
||||
<entry comment="" name="ButtonType_Forward Busy" text="Forward Busy" value="0x06"/>
|
||||
<entry comment="" name="ButtonType_Forward No Answer" text="Forward No Answer" value="0x07"/>
|
||||
<entry comment="" name="ButtonType_ForwardAll" text="Forward All" value="0x05"/>
|
||||
<entry comment="" name="ButtonType_ForwardBusy" text="Forward Busy" value="0x06"/>
|
||||
<entry comment="" name="ButtonType_ForwardNoAnswer" text="Forward No Answer" value="0x07"/>
|
||||
<entry comment="" name="ButtonType_Display" text="Display" value="0x08"/>
|
||||
<entry comment="" name="ButtonType_Line" text="Line" value="0x09"/>
|
||||
<entry comment="" name="ButtonType_T120 Chat" text="T120 Chat" value="0x0A"/>
|
||||
<entry comment="" name="ButtonType_T120 Whiteboard" text="T120 Whiteboard" value="0x0B"/>
|
||||
<entry comment="" name="ButtonType_T120 Application Sharing" text="T120 Application Sharing" value="0x0C"/>
|
||||
<entry comment="" name="ButtonType_T120 File Transfer" text="T120 File Transfer" value="0x0D"/>
|
||||
<entry comment="" name="ButtonType_T120Chat" text="T120 Chat" value="0x0A"/>
|
||||
<entry comment="" name="ButtonType_T120Whiteboard" text="T120 Whiteboard" value="0x0B"/>
|
||||
<entry comment="" name="ButtonType_T120ApplicationSharing" text="T120 Application Sharing" value="0x0C"/>
|
||||
<entry comment="" name="ButtonType_T120FileTransfer" text="T120 File Transfer" value="0x0D"/>
|
||||
<entry comment="" name="ButtonType_Video" text="Video" value="0x0E"/>
|
||||
<entry comment="" name="ButtonType_Voicemail" text="Voicemail" value="0x0F"/>
|
||||
<entry comment="" name="ButtonType_Answer Release" text="Answer Release" value="0x10"/>
|
||||
<entry comment="" name="ButtonType_Auto Answer" text="Auto Answer" value="0x11"/>
|
||||
<entry comment="" name="ButtonType_AnswerRelease" text="Answer Release" value="0x10"/>
|
||||
<entry comment="" name="ButtonType_AutoAnswer" text="Auto Answer" value="0x11"/>
|
||||
<entry comment="" name="ButtonType_Select" text="Select" value="0x12"/>
|
||||
<entry comment="" name="ButtonType_Feature" text="Feature" value="0x13"/>
|
||||
<entry comment="" name="ButtonType_ServiceURL" text="ServiceURL" value="0x14"/>
|
||||
<entry comment="" name="ButtonType_BusyLampField Speeddial" text="BusyLampField Speeddial" value="0x15"/>
|
||||
<entry comment="" name="ButtonType_Malicious Call" text="Malicious Call" value="0x1B"/>
|
||||
<entry comment="" name="ButtonType_Generic App B1" text="Generic App B1" value="0x21"/>
|
||||
<entry comment="" name="ButtonType_Generic App B2" text="Generic App B2" value="0x22"/>
|
||||
<entry comment="" name="ButtonType_Generic App B3" text="Generic App B3" value="0x23"/>
|
||||
<entry comment="" name="ButtonType_Generic App B4" text="Generic App B4" value="0x24"/>
|
||||
<entry comment="" name="ButtonType_Generic App B5" text="Generic App B5" value="0x25"/>
|
||||
<entry comment="" name="ButtonType_Monitor/Multiblink" text="Monitor/Multiblink" value="0x26"/>
|
||||
<entry comment="" name="ButtonType_Meet Me Conference" text="Meet Me Conference" value="0x7B"/>
|
||||
<entry comment="" name="ButtonType_BusyLampFieldSpeeddial" text="BusyLampField Speeddial" value="0x15"/>
|
||||
<entry comment="" name="ButtonType_MaliciousCall" text="Malicious Call" value="0x1B"/>
|
||||
<entry comment="" name="ButtonType_GenericAppB1" text="Generic App B1" value="0x21"/>
|
||||
<entry comment="" name="ButtonType_GenericAppB2" text="Generic App B2" value="0x22"/>
|
||||
<entry comment="" name="ButtonType_GenericAppB3" text="Generic App B3" value="0x23"/>
|
||||
<entry comment="" name="ButtonType_GenericAppB4" text="Generic App B4" value="0x24"/>
|
||||
<entry comment="" name="ButtonType_GenericAppB5" text="Generic App B5" value="0x25"/>
|
||||
<entry comment="" name="ButtonType_MonitorMultiblink" text="Monitor/Multiblink" value="0x26"/>
|
||||
<entry comment="" name="ButtonType_MeetMeConference" text="Meet Me Conference" value="0x7B"/>
|
||||
<entry comment="" name="ButtonType_Conference" text="Conference" value="0x7D"/>
|
||||
<entry comment="" name="ButtonType_Call Park" text="Call Park" value="0x7E"/>
|
||||
<entry comment="" name="ButtonType_Call Pickup" text="Call Pickup" value="0x7F"/>
|
||||
<entry comment="" name="ButtonType_Group Call Pickup" text="Group Call Pickup" value="0x80"/>
|
||||
<entry comment="" name="ButtonType_CallPark" text="Call Park" value="0x7E"/>
|
||||
<entry comment="" name="ButtonType_CallPickup" text="Call Pickup" value="0x7F"/>
|
||||
<entry comment="" name="ButtonType_GroupCallPickup" text="Group Call Pickup" value="0x80"/>
|
||||
<entry comment="" name="ButtonType_Mobility" text="Mobility" value="0x81"/>
|
||||
<entry comment="" name="ButtonType_DoNotDisturb" text="DoNotDisturb" value="0x82"/>
|
||||
<entry comment="" name="ButtonType_ConfList" text="ConfList" value="0x83"/>
|
||||
|
@ -2497,9 +2505,9 @@
|
|||
<entry comment="" name="ButtonType_EndCall" text="EndCall" value="0x8A"/>
|
||||
<entry comment="" name="ButtonType_HLog" text="HLog" value="0x8B"/>
|
||||
<entry comment="" name="ButtonType_Queuing" text="Queuing" value="0x8F"/>
|
||||
<entry comment="" name="ButtonType_Test E" text="Test E" value="0xC0"/>
|
||||
<entry comment="" name="ButtonType_Test F" text="Test F" value="0xC1"/>
|
||||
<entry comment="" name="ButtonType_Test I" text="Test I" value="0xC4"/>
|
||||
<entry comment="" name="ButtonType_TestE" text="Test E" value="0xC0"/>
|
||||
<entry comment="" name="ButtonType_TestF" text="Test F" value="0xC1"/>
|
||||
<entry comment="" name="ButtonType_TestI" text="Test I" value="0xC4"/>
|
||||
<entry comment="" name="ButtonType_Messages" text="Messages" value="0xC2"/>
|
||||
<entry comment="" name="ButtonType_Directory" text="Directory" value="0xC3"/>
|
||||
<entry comment="" name="ButtonType_Application" text="Application" value="0xC5"/>
|
||||
|
@ -2778,8 +2786,13 @@
|
|||
</fields>
|
||||
</message>
|
||||
<message comment="" direction="pbx2dev" dynamic="no" name="ConnectionStatisticsReqMessage" opcode="0x0107" status="no" type="CallControl">
|
||||
<fields endversion="16" fixed="yes">
|
||||
<string comment="" name="directoryNum" size="24" type="char"/>
|
||||
</fields>
|
||||
<fields beginversion="17" endversion="22" fixed="yes">
|
||||
<string comment="" name="directoryNum" size="28" type="char"/>
|
||||
</fields>
|
||||
<fields>
|
||||
<string comment="Directory Number" declare="yes" name="directoryNum" size="VariableDirnumSize" type="char"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
<enum comment="" name="statsProcessingMode" subtype="StatsProcessingType" type="uint32"/>
|
||||
</fields>
|
||||
|
@ -3067,7 +3080,12 @@
|
|||
</fields>
|
||||
</message>
|
||||
<message comment="" direction="pbx2dev" dynamic="no" name="DialedNumberMessage" opcode="0x011d" status="no" type="CallControl">
|
||||
<fields>
|
||||
<fields endversion="17" fixed="yes">
|
||||
<string comment="" name="dialedNumber" size="24" type="char"/>
|
||||
<integer comment="LineId" name="lineInstance" type="uint32"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
</fields>
|
||||
<fields beginversion="18" endversion="22" fixed="yes">
|
||||
<string comment="" declare="yes" name="dialedNumber" size="VariableDirnumSize" type="char"/>
|
||||
<integer comment="LineId" name="lineInstance" type="uint32"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
|
@ -4036,8 +4054,8 @@
|
|||
<integer comment="PassThrough PartyId" name="passThruPartyID" type="uint32"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
<ipv4or6 comment="ipaddress in big endian" endiannes="big" endianness="big" name="transmitIpAddr" subtype="IpAddress" type="ipaddr"/>
|
||||
<integer comment="" name="transmitPort" type="uint32"/>
|
||||
<enum comment="" name="startMediaTransmissionStatus" subtype="MediaStatus" type="uint32"/>
|
||||
<integer comment="transmit Port" declare="yes" name="portNumber" subtype="uint32" type="ipport"/>
|
||||
<enum comment="" name="mediaTransmissionStatus" subtype="MediaStatus" type="uint32"/>
|
||||
</fields>
|
||||
</message>
|
||||
<message comment="" direction="pbx2dev" dynamic="no" name="StartMultiMediaTransmissionAckMessage" opcode="0x0155" status="no" type="MediaControl">
|
||||
|
@ -4046,13 +4064,13 @@
|
|||
<integer comment="PassThrough PartyId" name="passThruPartyID" type="uint32"/>
|
||||
<integer comment="CallId" name="callReference" type="uint32"/>
|
||||
<ipv4or6 comment="ipaddress in big endian" endiannes="big" endianness="big" name="transmitIpAddr" subtype="IpAddress" type="ipaddr"/>
|
||||
<integer comment="" name="transmitPort" type="uint32"/>
|
||||
<enum comment="" name="resultCode" subtype="MediaStatus" type="uint32"/>
|
||||
<integer comment="transmit Port" declare="yes" name="portNumber" subtype="uint32" type="ipport"/>
|
||||
<enum comment="" name="multimediaTransmissionStatus" subtype="MediaStatus" type="uint32"/>
|
||||
</fields>
|
||||
</message>
|
||||
<enum name="CallHistoryDisposition">
|
||||
<entries>
|
||||
<entry comment="" name="CallHistoryDisposition_UnknownDisp" text="UnknownDisp" value="0xffffffff"/>
|
||||
<entry comment="" name="CallHistoryDisposition_UnknownDisp" text="UnknownDisp" value="0xffff"/>
|
||||
<entry comment="" name="CallHistoryDisposition_Ignore" text="Ignore" value="0x0000"/>
|
||||
<entry comment="" name="CallHistoryDisposition_PlacedCalls" text="PlacedCalls" value="0x0001"/>
|
||||
<entry comment="" name="CallHistoryDisposition_ReceivedCalls" text="ReceivedCalls" value="0x0002"/>
|
||||
|
|
|
@ -158,6 +158,7 @@ def xml2obj(src):
|
|||
def dissect(self):
|
||||
ret = ''
|
||||
declarations = 0
|
||||
fixed = 0
|
||||
|
||||
if (self.fields is not None):
|
||||
ret += self.indent_out("/*\n")
|
||||
|
@ -174,17 +175,15 @@ def xml2obj(src):
|
|||
ret += self.indent_out("{\n")
|
||||
self.incr_indent()
|
||||
for fields in self.fields:
|
||||
if fields.size_lt:
|
||||
if fields.size_lt or fields.size_gt:
|
||||
if self.basemessage.declared is None or "hdr_data_length" not in self.basemessage.declared:
|
||||
ret += self.indent_out("guint32 hdr_data_length = tvb_get_letohl(ptvcursor_tvbuff(cursor), 0);\n")
|
||||
self.basemessage.declared.append("hdr_data_length")
|
||||
declarations += 1
|
||||
if fields.size_gt:
|
||||
if self.basemessage.declared is None or "hdr_data_length" not in self.basemessage.declared:
|
||||
ret += self.indent_out("guint32 hdr_data_length = tvb_get_letohl(ptvcursor_tvbuff(cursor), 0);\n")
|
||||
self.basemessage.declared.append("hdr_data_length")
|
||||
declarations += 1
|
||||
if not declarations:
|
||||
if fields.fixed == "yes":
|
||||
fixed = 1
|
||||
|
||||
if not declarations or fixed == 1:
|
||||
for fields in self.fields[1:]:
|
||||
if self.basemessage.declared is None or "hdr_version" not in self.basemessage.declared:
|
||||
ret += self.indent_out("guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);\n")
|
||||
|
@ -283,9 +282,9 @@ def xml2obj(src):
|
|||
else:
|
||||
print "ERROR integer %s with type: %s, could not be found" %(self.name, self.type)
|
||||
|
||||
if self.declare == "yes":
|
||||
if self.declare == "yes" and self.type != "ipport":
|
||||
if self.basemessage.declared is None or self.name not in self.basemessage.declared:
|
||||
ret += self.indent_out('g%s %s = 0;\n' %(self.type, self.name))
|
||||
ret += self.indent_out('guint%s %s = 0;\n' %(self.intsize * 8, self.name))
|
||||
self.basemessage.declared.append(self.name)
|
||||
|
||||
global fieldsArray
|
||||
|
@ -320,7 +319,7 @@ def xml2obj(src):
|
|||
ret += self.indent_out('if (%s < %s) {\n' %(variable,self.size_fieldname))
|
||||
self.incr_indent()
|
||||
|
||||
if self.declare == "yes":
|
||||
if self.declare == "yes" and self.type != "ipport":
|
||||
if self.endianness == "big":
|
||||
if (self.intsize == 4):
|
||||
ret += self.indent_out('%s = tvb_get_ntohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));\n' %(self.name))
|
||||
|
@ -642,7 +641,7 @@ def xml2obj(src):
|
|||
return ''
|
||||
|
||||
def dissect(self):
|
||||
return self.indent_out('dissect_skinny_ipv4or6(cursor, hf_skinny_%s_ipv4, hf_skinny_%s_ipv6, pinfo);\n' %(self.name, self.name))
|
||||
return self.indent_out('dissect_skinny_ipv4or6(cursor, hf_skinny_%s_ipv4, hf_skinny_%s_ipv6);\n' %(self.name, self.name))
|
||||
|
||||
class XML(DataNode):
|
||||
def __init__(self):
|
||||
|
|
Loading…
Reference in New Issue