diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 20440f5d8..b46f87200 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -1852,6 +1852,22 @@ static void call_ng_main_flags(sdp_ng_flags *out, str *key, bencode_item_t *valu case CSH_LOOKUP("set-label"): out->set_label = s; break; + case CSH_LOOKUP("sip-message-type"): + case CSH_LOOKUP("sip_message_type"): + switch (__csh_lookup(&s)) { + case CSH_LOOKUP("sip-request"): + case CSH_LOOKUP("sip_request"): + out->message_type = SIP_REQUEST; + break; + case CSH_LOOKUP("sip-reply"): + case CSH_LOOKUP("sip_reply"): + out->message_type = SIP_REPLY; + break; + default: + ilog(LOG_WARN, "Unknown 'sip-message-type' flag encountered: '" STR_FORMAT "'", + STR_FMT(&s)); + } + break; case CSH_LOOKUP("start-pos"): out->start_pos = bencode_get_integer_str(value, out->start_pos); break; diff --git a/include/call.h b/include/call.h index 6d9faa0b3..ea5e459cc 100644 --- a/include/call.h +++ b/include/call.h @@ -52,6 +52,13 @@ enum stream_address_format { SAF_NG, SAF_ICE, }; + +enum message_type { + SIP_OTHER = 0, + SIP_REQUEST, + SIP_REPLY, +}; + enum call_opmode { OP_OFFER = 0, OP_ANSWER = 1, diff --git a/include/call_interfaces.h b/include/call_interfaces.h index 7042ef8e6..a343bab67 100644 --- a/include/call_interfaces.h +++ b/include/call_interfaces.h @@ -16,6 +16,7 @@ struct sockaddr_in6; struct sdp_ng_flags { enum call_opmode opmode; + enum message_type message_type; str call_id; str from_tag; str_q from_tags;