Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/scapy/layers/skinny.py: 92%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

12 statements  

1# SPDX-License-Identifier: GPL-2.0-only 

2# This file is part of Scapy 

3# See https://scapy.net/ for more information 

4# Copyright (C) Philippe Biondi <phil@secdev.org> 

5 

6""" 

7Skinny Call Control Protocol (SCCP) 

8""" 

9 

10from scapy.packet import Packet, bind_layers 

11from scapy.fields import LEIntField, LEIntEnumField 

12from scapy.layers.inet import TCP 

13 

14# shamelessly ripped from Ethereal dissector 

15skinny_messages = { 

16 # Station -> Callmanager 

17 0x0000: "KeepAliveMessage", 

18 0x0001: "RegisterMessage", 

19 0x0002: "IpPortMessage", 

20 0x0003: "KeypadButtonMessage", 

21 0x0004: "EnblocCallMessage", 

22 0x0005: "StimulusMessage", 

23 0x0006: "OffHookMessage", 

24 0x0007: "OnHookMessage", 

25 0x0008: "HookFlashMessage", 

26 0x0009: "ForwardStatReqMessage", 

27 0x000A: "SpeedDialStatReqMessage", 

28 0x000B: "LineStatReqMessage", 

29 0x000C: "ConfigStatReqMessage", 

30 0x000D: "TimeDateReqMessage", 

31 0x000E: "ButtonTemplateReqMessage", 

32 0x000F: "VersionReqMessage", 

33 0x0010: "CapabilitiesResMessage", 

34 0x0011: "MediaPortListMessage", 

35 0x0012: "ServerReqMessage", 

36 0x0020: "AlarmMessage", 

37 0x0021: "MulticastMediaReceptionAck", 

38 0x0022: "OpenReceiveChannelAck", 

39 0x0023: "ConnectionStatisticsRes", 

40 0x0024: "OffHookWithCgpnMessage", 

41 0x0025: "SoftKeySetReqMessage", 

42 0x0026: "SoftKeyEventMessage", 

43 0x0027: "UnregisterMessage", 

44 0x0028: "SoftKeyTemplateReqMessage", 

45 0x0029: "RegisterTokenReq", 

46 0x002A: "MediaTransmissionFailure", 

47 0x002B: "HeadsetStatusMessage", 

48 0x002C: "MediaResourceNotification", 

49 0x002D: "RegisterAvailableLinesMessage", 

50 0x002E: "DeviceToUserDataMessage", 

51 0x002F: "DeviceToUserDataResponseMessage", 

52 0x0030: "UpdateCapabilitiesMessage", 

53 0x0031: "OpenMultiMediaReceiveChannelAckMessage", 

54 0x0032: "ClearConferenceMessage", 

55 0x0033: "ServiceURLStatReqMessage", 

56 0x0034: "FeatureStatReqMessage", 

57 0x0035: "CreateConferenceResMessage", 

58 0x0036: "DeleteConferenceResMessage", 

59 0x0037: "ModifyConferenceResMessage", 

60 0x0038: "AddParticipantResMessage", 

61 0x0039: "AuditConferenceResMessage", 

62 0x0040: "AuditParticipantResMessage", 

63 0x0041: "DeviceToUserDataVersion1Message", 

64 # Callmanager -> Station */ 

65 0x0081: "RegisterAckMessage", 

66 0x0082: "StartToneMessage", 

67 0x0083: "StopToneMessage", 

68 0x0085: "SetRingerMessage", 

69 0x0086: "SetLampMessage", 

70 0x0087: "SetHkFDetectMessage", 

71 0x0088: "SetSpeakerModeMessage", 

72 0x0089: "SetMicroModeMessage", 

73 0x008A: "StartMediaTransmission", 

74 0x008B: "StopMediaTransmission", 

75 0x008C: "StartMediaReception", 

76 0x008D: "StopMediaReception", 

77 0x008F: "CallInfoMessage", 

78 0x0090: "ForwardStatMessage", 

79 0x0091: "SpeedDialStatMessage", 

80 0x0092: "LineStatMessage", 

81 0x0093: "ConfigStatMessage", 

82 0x0094: "DefineTimeDate", 

83 0x0095: "StartSessionTransmission", 

84 0x0096: "StopSessionTransmission", 

85 0x0097: "ButtonTemplateMessage", 

86 0x0098: "VersionMessage", 

87 0x0099: "DisplayTextMessage", 

88 0x009A: "ClearDisplay", 

89 0x009B: "CapabilitiesReqMessage", 

90 0x009C: "EnunciatorCommandMessage", 

91 0x009D: "RegisterRejectMessage", 

92 0x009E: "ServerResMessage", 

93 0x009F: "Reset", 

94 0x0100: "KeepAliveAckMessage", 

95 0x0101: "StartMulticastMediaReception", 

96 0x0102: "StartMulticastMediaTransmission", 

97 0x0103: "StopMulticastMediaReception", 

98 0x0104: "StopMulticastMediaTransmission", 

99 0x0105: "OpenReceiveChannel", 

100 0x0106: "CloseReceiveChannel", 

101 0x0107: "ConnectionStatisticsReq", 

102 0x0108: "SoftKeyTemplateResMessage", 

103 0x0109: "SoftKeySetResMessage", 

104 0x0110: "SelectSoftKeysMessage", 

105 0x0111: "CallStateMessage", 

106 0x0112: "DisplayPromptStatusMessage", 

107 0x0113: "ClearPromptStatusMessage", 

108 0x0114: "DisplayNotifyMessage", 

109 0x0115: "ClearNotifyMessage", 

110 0x0116: "ActivateCallPlaneMessage", 

111 0x0117: "DeactivateCallPlaneMessage", 

112 0x0118: "UnregisterAckMessage", 

113 0x0119: "BackSpaceReqMessage", 

114 0x011A: "RegisterTokenAck", 

115 0x011B: "RegisterTokenReject", 

116 0x0042: "DeviceToUserDataResponseVersion1Message", 

117 0x011C: "StartMediaFailureDetection", 

118 0x011D: "DialedNumberMessage", 

119 0x011E: "UserToDeviceDataMessage", 

120 0x011F: "FeatureStatMessage", 

121 0x0120: "DisplayPriNotifyMessage", 

122 0x0121: "ClearPriNotifyMessage", 

123 0x0122: "StartAnnouncementMessage", 

124 0x0123: "StopAnnouncementMessage", 

125 0x0124: "AnnouncementFinishMessage", 

126 0x0127: "NotifyDtmfToneMessage", 

127 0x0128: "SendDtmfToneMessage", 

128 0x0129: "SubscribeDtmfPayloadReqMessage", 

129 0x012A: "SubscribeDtmfPayloadResMessage", 

130 0x012B: "SubscribeDtmfPayloadErrMessage", 

131 0x012C: "UnSubscribeDtmfPayloadReqMessage", 

132 0x012D: "UnSubscribeDtmfPayloadResMessage", 

133 0x012E: "UnSubscribeDtmfPayloadErrMessage", 

134 0x012F: "ServiceURLStatMessage", 

135 0x0130: "CallSelectStatMessage", 

136 0x0131: "OpenMultiMediaChannelMessage", 

137 0x0132: "StartMultiMediaTransmission", 

138 0x0133: "StopMultiMediaTransmission", 

139 0x0134: "MiscellaneousCommandMessage", 

140 0x0135: "FlowControlCommandMessage", 

141 0x0136: "CloseMultiMediaReceiveChannel", 

142 0x0137: "CreateConferenceReqMessage", 

143 0x0138: "DeleteConferenceReqMessage", 

144 0x0139: "ModifyConferenceReqMessage", 

145 0x013A: "AddParticipantReqMessage", 

146 0x013B: "DropParticipantReqMessage", 

147 0x013C: "AuditConferenceReqMessage", 

148 0x013D: "AuditParticipantReqMessage", 

149 0x013F: "UserToDeviceDataVersion1Message", 

150} 

151 

152 

153class Skinny(Packet): 

154 name = "Skinny" 

155 fields_desc = [LEIntField("len", 0), 

156 LEIntField("res", 0), 

157 LEIntEnumField("msg", 0, skinny_messages)] 

158 

159 

160bind_layers(TCP, Skinny, dport=2000) 

161bind_layers(TCP, Skinny, sport=2000) 

162bind_layers(TCP, Skinny, dport=2000, sport=2000)