|
|
|
@ -2145,7 +2145,7 @@ static const char *call_offer_answer_ng(ng_parser_ctx_t *ctx, enum call_opmode o |
|
|
|
|
|
|
|
if (flags.loop_protect && sdp_is_duplicate(&parsed)) { |
|
|
|
ilog(LOG_INFO, "Ignoring message as SDP has already been processed by us"); |
|
|
|
bencode_dictionary_add_str(output, "sdp", &flags.sdp); |
|
|
|
ctx->parser->dict_add_str(output, "sdp", &flags.sdp); |
|
|
|
errstr = NULL; |
|
|
|
goto out; |
|
|
|
} |
|
|
|
@ -2271,7 +2271,7 @@ static const char *call_offer_answer_ng(ng_parser_ctx_t *ctx, enum call_opmode o |
|
|
|
goto out; |
|
|
|
|
|
|
|
if (chopper->output->len) |
|
|
|
bencode_dictionary_add_str(output, "sdp", &STR_LEN(chopper->output->str, chopper->output->len)); |
|
|
|
ctx->parser->dict_add_str(output, "sdp", &STR_LEN(chopper->output->str, chopper->output->len)); |
|
|
|
|
|
|
|
errstr = NULL; |
|
|
|
out: |
|
|
|
@ -2450,7 +2450,7 @@ static void ng_stats_media(const ng_parser_t *parser, bencode_item_t *list, cons |
|
|
|
dict = bencode_list_add_dictionary(list); |
|
|
|
|
|
|
|
bencode_dictionary_add_integer(dict, "index", m->index); |
|
|
|
bencode_dictionary_add_str(dict, "type", &m->type); |
|
|
|
parser->dict_add_str(dict, "type", &m->type); |
|
|
|
if (m->protocol) |
|
|
|
parser->dict_add_string(dict, "protocol", m->protocol->name); |
|
|
|
if (rtp_pt) |
|
|
|
@ -2519,11 +2519,11 @@ static void ng_stats_monologue(const ng_parser_t *parser, bencode_item_t *dict, |
|
|
|
sub = bencode_dictionary_add_dictionary(dict, buf); |
|
|
|
} |
|
|
|
|
|
|
|
bencode_dictionary_add_str(sub, "tag", &ml->tag); |
|
|
|
parser->dict_add_str(sub, "tag", &ml->tag); |
|
|
|
if (ml->viabranch.s) |
|
|
|
bencode_dictionary_add_str(sub, "via-branch", &ml->viabranch); |
|
|
|
parser->dict_add_str(sub, "via-branch", &ml->viabranch); |
|
|
|
if (ml->label.s) |
|
|
|
bencode_dictionary_add_str(sub, "label", &ml->label); |
|
|
|
parser->dict_add_str(sub, "label", &ml->label); |
|
|
|
bencode_dictionary_add_integer(sub, "created", ml->created); |
|
|
|
|
|
|
|
bencode_item_t *b_subscriptions = bencode_dictionary_add_list(sub, "subscriptions"); |
|
|
|
@ -2541,7 +2541,7 @@ static void ng_stats_monologue(const ng_parser_t *parser, bencode_item_t *dict, |
|
|
|
struct media_subscription * ms = subscription->data; |
|
|
|
if (!g_queue_find(&mls_subscriptions, ms->monologue)) { |
|
|
|
bencode_item_t *sub1 = bencode_list_add_dictionary(b_subscriptions); |
|
|
|
bencode_dictionary_add_str(sub1, "tag", &ms->monologue->tag); |
|
|
|
parser->dict_add_str(sub1, "tag", &ms->monologue->tag); |
|
|
|
parser->dict_add_string(sub1, "type", ms->attrs.offer_answer ? "offer/answer" : "pub/sub"); |
|
|
|
g_queue_push_tail(&mls_subscriptions, ms->monologue); |
|
|
|
} |
|
|
|
@ -2553,7 +2553,7 @@ static void ng_stats_monologue(const ng_parser_t *parser, bencode_item_t *dict, |
|
|
|
struct media_subscription * ms = subscriber->data; |
|
|
|
if (!g_queue_find(&mls_subscribers, ms->monologue)) { |
|
|
|
bencode_item_t *sub1 = bencode_list_add_dictionary(b_subscribers); |
|
|
|
bencode_dictionary_add_str(sub1, "tag", &ms->monologue->tag); |
|
|
|
parser->dict_add_str(sub1, "tag", &ms->monologue->tag); |
|
|
|
parser->dict_add_string(sub1, "type", ms->attrs.offer_answer ? "offer/answer" : "pub/sub"); |
|
|
|
g_queue_push_tail(&mls_subscribers, ms->monologue); |
|
|
|
} |
|
|
|
@ -2573,7 +2573,7 @@ static void ng_stats_monologue(const ng_parser_t *parser, bencode_item_t *dict, |
|
|
|
const char *type = dtmf_trigger_types[state->type]; |
|
|
|
if (type) |
|
|
|
parser->dict_add_string(vsc, "type", type); |
|
|
|
bencode_dictionary_add_str(vsc, "trigger", &state->trigger); |
|
|
|
parser->dict_add_str(vsc, "trigger", &state->trigger); |
|
|
|
bencode_dictionary_add_integer(vsc, "active", !state->inactive); |
|
|
|
} |
|
|
|
|
|
|
|
@ -3672,7 +3672,7 @@ const char *call_publish_ng(ng_parser_ctx_t *ctx, |
|
|
|
if (!ret) { |
|
|
|
save_last_sdp(ml, &sdp_in, &parsed, &streams); |
|
|
|
bencode_buffer_destroy_add(ctx->resp->buffer, g_free, sdp_out.s); |
|
|
|
bencode_dictionary_add_str(ctx->resp, "sdp", &sdp_out); |
|
|
|
ctx->parser->dict_add_str(ctx->resp, "sdp", &sdp_out); |
|
|
|
sdp_out = STR_NULL; // ownership passed to output |
|
|
|
} |
|
|
|
|
|
|
|
@ -3735,7 +3735,7 @@ const char *call_subscribe_request_ng(ng_parser_ctx_t *ctx) { |
|
|
|
/* place return output SDP */ |
|
|
|
if (sdp_out.len) { |
|
|
|
bencode_buffer_destroy_add(output->buffer, g_free, sdp_out.s); |
|
|
|
bencode_dictionary_add_str(output, "sdp", &sdp_out); |
|
|
|
ctx->parser->dict_add_str(output, "sdp", &sdp_out); |
|
|
|
sdp_out = STR_NULL; /* ownership passed to output */ |
|
|
|
} |
|
|
|
|
|
|
|
@ -3759,9 +3759,9 @@ const char *call_subscribe_request_ng(ng_parser_ctx_t *ctx) { |
|
|
|
bencode_list_add_str_dup(from_list, &source_ml->tag); |
|
|
|
if (tag_medias) { |
|
|
|
bencode_item_t *tag_label = bencode_list_add_dictionary(tag_medias); |
|
|
|
bencode_dictionary_add_str(tag_label, "tag", &source_ml->tag); |
|
|
|
ctx->parser->dict_add_str(tag_label, "tag", &source_ml->tag); |
|
|
|
if (source_ml->label.len) |
|
|
|
bencode_dictionary_add_str(tag_label, "label", &source_ml->label); |
|
|
|
ctx->parser->dict_add_str(tag_label, "label", &source_ml->label); |
|
|
|
bencode_item_t *medias = bencode_dictionary_add_list(tag_label, "medias"); |
|
|
|
for (unsigned int i = 0; i < source_ml->medias->len; i++) { |
|
|
|
struct call_media *media = source_ml->medias->pdata[i]; |
|
|
|
@ -3769,18 +3769,18 @@ const char *call_subscribe_request_ng(ng_parser_ctx_t *ctx) { |
|
|
|
continue; |
|
|
|
bencode_item_t *med_ent = bencode_list_add_dictionary(medias); |
|
|
|
bencode_dictionary_add_integer(med_ent, "index", media->index); |
|
|
|
bencode_dictionary_add_str(med_ent, "type", &media->type); |
|
|
|
bencode_dictionary_add_str(med_ent, "label", &media->label); |
|
|
|
ctx->parser->dict_add_str(med_ent, "type", &media->type); |
|
|
|
ctx->parser->dict_add_str(med_ent, "label", &media->label); |
|
|
|
ctx->parser->dict_add_string(med_ent, "mode", sdp_get_sendrecv(media)); |
|
|
|
|
|
|
|
if (media_labels) { |
|
|
|
bencode_item_t *label = |
|
|
|
bencode_dictionary_add_dictionary(media_labels, media->label.s); |
|
|
|
bencode_dictionary_add_str(label, "tag", &source_ml->tag); |
|
|
|
ctx->parser->dict_add_str(label, "tag", &source_ml->tag); |
|
|
|
bencode_dictionary_add_integer(label, "index", media->index); |
|
|
|
bencode_dictionary_add_str(label, "type", &media->type); |
|
|
|
ctx->parser->dict_add_str(label, "type", &media->type); |
|
|
|
if (source_ml->label.len) |
|
|
|
bencode_dictionary_add_str(label, "label", &source_ml->label); |
|
|
|
ctx->parser->dict_add_str(label, "label", &source_ml->label); |
|
|
|
ctx->parser->dict_add_string(label, "mode", sdp_get_sendrecv(media)); |
|
|
|
} |
|
|
|
} |
|
|
|
|