diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 625041dfd..7a479a2bc 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -711,6 +711,9 @@ static void call_ng_flags_replace(struct sdp_ng_flags *out, str *s, void *dummy) static void call_ng_flags_supports(struct sdp_ng_flags *out, str *s, void *dummy) { if (!str_cmp(s, "load limit")) out->supports_load_limit = 1; + else + ilog(LOG_INFO | LOG_FLAG_LIMIT, "Optional feature '" STR_FORMAT "' not supported", + STR_FMT(s)); } static str *str_dup_escape(const str *s) { str *ret = str_dup(s); @@ -987,13 +990,13 @@ static void call_ng_codec_flags(struct sdp_ng_flags *out, str *key, bencode_item switch (__csh_lookup(key)) { case CSH_LOOKUP("strip"): call_ng_flags_list(out, value, call_ng_flags_esc_str_list, &out->codec_strip); - break; + return; case CSH_LOOKUP("offer"): call_ng_flags_list(out, value, call_ng_flags_esc_str_list, &out->codec_offer); - break; + return; case CSH_LOOKUP("except"): call_ng_flags_list(out, value, call_ng_flags_str_ht, &out->codec_except); - break; + return; } #ifdef WITH_TRANSCODING if (out->opmode == OP_OFFER || out->opmode == OP_REQUEST || out->opmode == OP_PUBLISH) { @@ -1001,22 +1004,34 @@ static void call_ng_codec_flags(struct sdp_ng_flags *out, str *key, bencode_item case CSH_LOOKUP("transcode"): call_ng_flags_list(out, value, call_ng_flags_esc_str_list, &out->codec_transcode); - break; + return; case CSH_LOOKUP("mask"): call_ng_flags_list(out, value, call_ng_flags_esc_str_list, &out->codec_mask); - break; + return; case CSH_LOOKUP("set"): call_ng_flags_list(out, value, call_ng_flags_str_ht_split, &out->codec_set); - break; + return; case CSH_LOOKUP("accept"): call_ng_flags_list(out, value, call_ng_flags_esc_str_list, &out->codec_accept); - break; + return; case CSH_LOOKUP("consume"): call_ng_flags_list(out, value, call_ng_flags_esc_str_list, &out->codec_consume); - break; + return; + } + } + else { + // silence warnings + switch (__csh_lookup(key)) { + case CSH_LOOKUP("transcode"): + case CSH_LOOKUP("mask"): + case CSH_LOOKUP("set"): + case CSH_LOOKUP("accept"): + case CSH_LOOKUP("consume"): + return; } } #endif + ilog(LOG_WARN, "Unknown 'codec' operation encountered: '" STR_FORMAT "'", STR_FMT(key)); } static void call_ng_parse_block_mode(str *s, enum block_dtmf_mode *output) { switch (__csh_lookup(s)) { @@ -1344,6 +1359,9 @@ static void call_ng_main_flags(struct sdp_ng_flags *out, str *key, bencode_item_ case CSH_LOOKUP("both"): out->media_echo = MEO_BOTH; break; + default: + ilog(LOG_WARN, "Unknown 'media-echo' flag encountered: '" STR_FORMAT "'", + STR_FMT(&s)); } break; case CSH_LOOKUP("frequency"): @@ -1414,6 +1432,10 @@ static void call_ng_main_flags(struct sdp_ng_flags *out, str *key, bencode_item_ out->delay_buffer = bencode_get_integer_str(value, out->delay_buffer); break; #endif + case CSH_LOOKUP("command"): + break; + default: + ilog(LOG_WARN, "Unknown dictionary key encountered: '" STR_FORMAT "'", STR_FMT(key)); } }