|
|
@ -692,11 +692,11 @@ INLINE void ng_sdp_attr_manipulations(struct sdp_manipulations_common ** sm_ptr,
|
|
|
|
for (bencode_item_t *it_v = command_value->child; it_v; it_v = it_v->sibling)
|
|
|
|
for (bencode_item_t *it_v = command_value->child; it_v; it_v = it_v->sibling)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* detect command value */
|
|
|
|
/* detect command value */
|
|
|
|
str command_value;
|
|
|
|
str child_value;
|
|
|
|
if (!bencode_get_str(it_v, &command_value))
|
|
|
|
if (!bencode_get_str(it_v, &child_value))
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
str * s_copy = str_dup_escape(&command_value);
|
|
|
|
str * s_copy = str_dup_escape(&child_value);
|
|
|
|
g_queue_push_tail(q_ptr, s_copy);
|
|
|
|
g_queue_push_tail(q_ptr, s_copy);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -725,11 +725,11 @@ INLINE void ng_sdp_attr_manipulations(struct sdp_manipulations_common ** sm_ptr,
|
|
|
|
for (bencode_item_t *it_v = command_value->child; it_v; it_v = it_v->sibling)
|
|
|
|
for (bencode_item_t *it_v = command_value->child; it_v; it_v = it_v->sibling)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* detect command value */
|
|
|
|
/* detect command value */
|
|
|
|
str command_value;
|
|
|
|
str child_value;
|
|
|
|
if (!bencode_get_str(it_v, &command_value))
|
|
|
|
if (!bencode_get_str(it_v, &child_value))
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
str *s_copy = str_dup_escape(&command_value);
|
|
|
|
str *s_copy = str_dup_escape(&child_value);
|
|
|
|
g_hash_table_replace(*ht, s_copy, s_copy);
|
|
|
|
g_hash_table_replace(*ht, s_copy, s_copy);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -1413,8 +1413,8 @@ static void call_ng_main_flags(struct sdp_ng_flags *out, str *key, bencode_item_
|
|
|
|
if (value->type != BENCODE_LIST)
|
|
|
|
if (value->type != BENCODE_LIST)
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
int diridx = 0;
|
|
|
|
int diridx = 0;
|
|
|
|
for (bencode_item_t *it = value->child; it && diridx < 2; it = it->sibling)
|
|
|
|
for (bencode_item_t *cit = value->child; cit && diridx < 2; cit = cit->sibling)
|
|
|
|
bencode_get_str(it, &out->direction[diridx++]);
|
|
|
|
bencode_get_str(cit, &out->direction[diridx++]);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case CSH_LOOKUP("sdp-attr"):
|
|
|
|
case CSH_LOOKUP("sdp-attr"):
|
|
|
|
case CSH_LOOKUP("SDP-attr"):
|
|
|
|
case CSH_LOOKUP("SDP-attr"):
|
|
|
@ -2406,8 +2406,8 @@ static void ng_stats_ssrc(bencode_item_t *dict, struct ssrc_hash *ht) {
|
|
|
|
if (sb->reported.tv_sec < next_step)
|
|
|
|
if (sb->reported.tv_sec < next_step)
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
next_step += interval;
|
|
|
|
next_step += interval;
|
|
|
|
bencode_item_t *ent = bencode_list_add_dictionary(entlist);
|
|
|
|
bencode_item_t *cent = bencode_list_add_dictionary(entlist);
|
|
|
|
ng_stats_ssrc_mos_entry(ent, sb);
|
|
|
|
ng_stats_ssrc_mos_entry(cent, sb);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -2454,8 +2454,8 @@ stats:
|
|
|
|
ml = call_get_monologue(call, match_tag);
|
|
|
|
ml = call_get_monologue(call, match_tag);
|
|
|
|
if (ml) {
|
|
|
|
if (ml) {
|
|
|
|
ng_stats_monologue(tags, ml, totals, ssrc);
|
|
|
|
ng_stats_monologue(tags, ml, totals, ssrc);
|
|
|
|
for (GList *l = ml->subscriptions.head; l; l = l->next) {
|
|
|
|
for (GList *k = ml->subscriptions.head; k; k = k->next) {
|
|
|
|
struct call_subscription *cs = l->data;
|
|
|
|
struct call_subscription *cs = k->data;
|
|
|
|
ng_stats_monologue(tags, cs->monologue, totals, ssrc);
|
|
|
|
ng_stats_monologue(tags, cs->monologue, totals, ssrc);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2724,11 +2724,11 @@ static const char *media_block_match_mult(struct call **call, GQueue *mls,
|
|
|
|
// handle from-tag list
|
|
|
|
// handle from-tag list
|
|
|
|
for (GList *l = flags->from_tags.head; l; l = l->next) {
|
|
|
|
for (GList *l = flags->from_tags.head; l; l = l->next) {
|
|
|
|
str *s = l->data;
|
|
|
|
str *s = l->data;
|
|
|
|
struct call_monologue *ml = call_get_monologue(*call, s);
|
|
|
|
struct call_monologue *mlf = call_get_monologue(*call, s);
|
|
|
|
if (!ml)
|
|
|
|
if (!mlf)
|
|
|
|
ilog(LOG_WARN, "Given from-tag " STR_FORMAT_M " not found", STR_FMT_M(s));
|
|
|
|
ilog(LOG_WARN, "Given from-tag " STR_FORMAT_M " not found", STR_FMT_M(s));
|
|
|
|
else
|
|
|
|
else
|
|
|
|
add_ml_to_sub_list(mls, ml);
|
|
|
|
add_ml_to_sub_list(mls, mlf);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!mls->length)
|
|
|
|
if (!mls->length)
|
|
|
|