From 1b9955e9ef7cda3c1aef997f6db502690da23433 Mon Sep 17 00:00:00 2001 From: Damir Franusic Date: Wed, 29 May 2019 17:12:32 +0200 Subject: Added PUBLISH/SUBSCRIBE methods to SIP --- src/lib/protocols/sip.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/lib/protocols/sip.c') diff --git a/src/lib/protocols/sip.c b/src/lib/protocols/sip.c index 1436b2cec..80fd175f0 100644 --- a/src/lib/protocols/sip.c +++ b/src/lib/protocols/sip.c @@ -123,6 +123,20 @@ void ndpi_search_sip_handshake(struct ndpi_detection_module_struct return; } + if ((memcmp(packet_payload, "PUBLISH ", 8) == 0 || memcmp(packet_payload, "publish ", 8) == 0) + && (memcmp(&packet_payload[8], "SIP:", 4) == 0 || memcmp(&packet_payload[8], "sip:", 4) == 0)) { + NDPI_LOG_INFO(ndpi_struct, "found sip PUBLISH\n"); + ndpi_int_sip_add_connection(ndpi_struct, flow, 0); + return; + } + + if ((memcmp(packet_payload, "SUBSCRIBE ", 10) == 0 || memcmp(packet_payload, "subscribe ", 10) == 0) + && (memcmp(&packet_payload[10], "SIP:", 4) == 0 || memcmp(&packet_payload[10], "sip:", 4) == 0)) { + NDPI_LOG_INFO(ndpi_struct, "found sip SUBSCRIBE\n"); + ndpi_int_sip_add_connection(ndpi_struct, flow, 0); + return; + } + /* Courtesy of Miguel Quesada */ if ((memcmp(packet_payload, "OPTIONS ", 8) == 0 || memcmp(packet_payload, "options ", 8) == 0) -- cgit v1.2.3 From 5c7e0a0319d97f8d0eb8c60bcfa5676dac6b90be Mon Sep 17 00:00:00 2001 From: Damir Franusic Date: Fri, 31 May 2019 15:19:07 +0200 Subject: SIP Message extension * RFC 3248 --- src/lib/protocols/sip.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/lib/protocols/sip.c') diff --git a/src/lib/protocols/sip.c b/src/lib/protocols/sip.c index 80fd175f0..2583dbfdf 100644 --- a/src/lib/protocols/sip.c +++ b/src/lib/protocols/sip.c @@ -136,6 +136,14 @@ void ndpi_search_sip_handshake(struct ndpi_detection_module_struct ndpi_int_sip_add_connection(ndpi_struct, flow, 0); return; } + + /* SIP message extension RFC 3248 */ + if ((memcmp(packet_payload, "MESSAGE ", 8) == 0 || memcmp(packet_payload, "message ", 8) == 0) + && (memcmp(&packet_payload[8], "SIP:", 4) == 0 || memcmp(&packet_payload[8], "sip:", 4) == 0)) { + NDPI_LOG_INFO(ndpi_struct, "found sip MESSAGE\n"); + ndpi_int_sip_add_connection(ndpi_struct, flow, 0); + return; + } /* Courtesy of Miguel Quesada */ if ((memcmp(packet_payload, "OPTIONS ", 8) == 0 -- cgit v1.2.3