From 0ee0764f4dc36184a5e6927a4d359b3ba3ffb074 Mon Sep 17 00:00:00 2001 From: Aurelien BOUIN Date: Wed, 3 Sep 2014 12:41:44 +0200 Subject: [PATCH 1/2] Automatic 200 OK answer also handle OPTIONS message, often use as SIP ping --- src/call.cpp | 2 +- src/socket.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/call.cpp b/src/call.cpp index 6b05a9d75..f017ae02a 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -3960,7 +3960,7 @@ call::T_AutoMode call::checkAutomaticResponseMode(char * P_recv) return E_AM_UNEXP_CANCEL; } else if (strcmp(P_recv, "PING") == 0) { return E_AM_PING; - } else if (((strcmp(P_recv, "INFO") == 0) || (strcmp(P_recv, "NOTIFY") == 0) || (strcmp(P_recv, "UPDATE") == 0)) + } else if (((strcmp(P_recv, "INFO") == 0) || (strcmp(P_recv, "NOTIFY") == 0) || (strcmp(P_recv, "UPDATE") == 0) || (strcmp(P_recv, "OPTIONS") == 0)) && (auto_answer == true)) { return E_AM_AA; } else { diff --git a/src/socket.cpp b/src/socket.cpp index 5129f8a36..d1e869519 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -1194,6 +1194,7 @@ void process_message(struct sipp_socket *socket, char *msg, ssize_t msg_size, st } else if (auto_answer && ((strstr(msg, "NOTIFY") == msg) || (strstr(msg, "INFO") == msg) || + (strstr(msg, "OPTIONS") == msg) || (strstr(msg, "UPDATE") == msg))) { // If auto answer mode, try to answer the incoming message // with automaticResponseMode From 086e8569a469ba7b7d2e84a62f8b04c39b09b0ea Mon Sep 17 00:00:00 2001 From: Aurelien BOUIN Date: Wed, 3 Sep 2014 12:41:44 +0200 Subject: [PATCH 2/2] Automatic 200 OK answer also handle OPTIONS message, often use as SIP ping --- src/call.cpp | 2 +- src/socket.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/call.cpp b/src/call.cpp index 0e52334d7..cd7e572ea 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -3988,7 +3988,7 @@ call::T_AutoMode call::checkAutomaticResponseMode(char * P_recv) return E_AM_UNEXP_CANCEL; } else if (strcmp(P_recv, "PING") == 0) { return E_AM_PING; - } else if (((strcmp(P_recv, "INFO") == 0) || (strcmp(P_recv, "NOTIFY") == 0) || (strcmp(P_recv, "UPDATE") == 0)) + } else if (((strcmp(P_recv, "INFO") == 0) || (strcmp(P_recv, "NOTIFY") == 0) || (strcmp(P_recv, "UPDATE") == 0) || (strcmp(P_recv, "OPTIONS") == 0)) && (auto_answer == true)) { return E_AM_AA; } else { diff --git a/src/socket.cpp b/src/socket.cpp index c6853c3fa..94001ad64 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -1213,6 +1213,7 @@ void process_message(struct sipp_socket *socket, char *msg, ssize_t msg_size, st } else if (auto_answer && ((strstr(msg, "NOTIFY") == msg) || (strstr(msg, "INFO") == msg) || + (strstr(msg, "OPTIONS") == msg) || (strstr(msg, "UPDATE") == msg))) { // If auto answer mode, try to answer the incoming message // with automaticResponseMode