--- /dev/null
+alert sip any any -> any any (flow:to_server; frame:pdu; content:"REGISTER"; startswith; sid:1;)
+alert sip any any -> any any (flow:to_server; frame:pdu; content:"INVITE sip"; startswith; sid:2;)
+
+alert sip any any -> any any (flow:to_client; frame:pdu; content:"SIP/2.0 200 OK|0D 0A|"; startswith; sid:11;)
+
+alert sip any any -> any any (flow:to_server; frame:request.line; content:"REGISTER"; startswith; sid:21;)
+alert sip any any -> any any (flow:to_server; frame:request.line; content:"SIP/2.0|0D 0A|"; endswith; sid:22;)
+
+alert sip any any -> any any (flow:to_server; frame:request.headers; content:"Via:"; startswith; sid:31;)
+alert sip any any -> any any (flow:to_server; frame:request.headers; content:"Via:"; startswith; content:"229|0d 0a|"; endswith; sid:32;)
+
+alert sip any any -> any any (flow:to_client; frame:response.headers; content:"Via:"; startswith; sid:41;)
+alert sip any any -> any any (flow:to_client; frame:response.headers; content:"Via:"; startswith; content:"Content-Length: 0|0d 0a|"; endswith; sid:42;)
+
+alert sip any any -> any any (flow:to_server; frame:request.body; content:"v=0"; startswith; sid:51;)
--- /dev/null
+requires:
+ min-version: 7
+
+checks:
+ - filter:
+ count: 8
+ match:
+ event_type: sip
+ - filter:
+ count: 2
+ match:
+ event_type: alert
+ alert.signature_id: 2
+ - filter:
+ count: 3
+ match:
+ event_type: alert
+ alert.signature_id: 22
+ - filter:
+ count: 3
+ match:
+ event_type: alert
+ alert.signature_id: 31
+ - filter:
+ count: 1
+ match:
+ event_type: alert
+ alert.signature_id: 32
+ frame.type: "request.headers"
+ frame.complete: true
+ frame.length: 420
+ frame.direction: toserver
+ - filter:
+ count: 5
+ match:
+ event_type: alert
+ alert.signature_id: 41
+ - filter:
+ count: 4
+ match:
+ event_type: alert
+ alert.signature_id: 42
+ - filter:
+ count: 2
+ match:
+ event_type: alert
+ alert.signature_id: 51
+ frame.type: "request.body"
+ frame.complete: true
+ frame.direction: toserver