|
|
|
|
@ -1190,7 +1190,7 @@ static int rbl_cb_simple(str *s, GQueue *q, struct redis_list *list, void *ptr)
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int json_build_list(GQueue *q, struct call *c, const char *key, const str *callid,
|
|
|
|
|
static int json_build_list(GQueue *q, struct call *c, const char *key,
|
|
|
|
|
unsigned int idx, struct redis_list *list, JsonReader *root_reader)
|
|
|
|
|
{
|
|
|
|
|
return json_build_list_cb(q, c, key, idx, list, rbl_cb_simple, NULL, root_reader);
|
|
|
|
|
@ -1586,7 +1586,7 @@ static int json_link_tags(struct call *c, struct redis_list *tags, struct redis_
|
|
|
|
|
for (i = 0; i < tags->len; i++) {
|
|
|
|
|
ml = tags->ptrs[i];
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&q, c, "subscriptions-oa", &c->callid, i, tags, root_reader))
|
|
|
|
|
if (json_build_list(&q, c, "subscriptions-oa", i, tags, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
for (l = q.head; l; l = l->next) {
|
|
|
|
|
other_ml = l->data;
|
|
|
|
|
@ -1596,7 +1596,7 @@ static int json_link_tags(struct call *c, struct redis_list *tags, struct redis_
|
|
|
|
|
}
|
|
|
|
|
g_queue_clear(&q);
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&q, c, "subscriptions-noa", &c->callid, i, tags, root_reader))
|
|
|
|
|
if (json_build_list(&q, c, "subscriptions-noa", i, tags, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
for (l = q.head; l; l = l->next) {
|
|
|
|
|
other_ml = l->data;
|
|
|
|
|
@ -1613,7 +1613,7 @@ static int json_link_tags(struct call *c, struct redis_list *tags, struct redis_
|
|
|
|
|
__add_subscription(ml, other_ml, true, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&q, c, "other_tags", &c->callid, i, tags, root_reader))
|
|
|
|
|
if (json_build_list(&q, c, "other_tags", i, tags, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
for (l = q.head; l; l = l->next) {
|
|
|
|
|
other_ml = l->data;
|
|
|
|
|
@ -1623,7 +1623,7 @@ static int json_link_tags(struct call *c, struct redis_list *tags, struct redis_
|
|
|
|
|
}
|
|
|
|
|
g_queue_clear(&q);
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&q, c, "branches", &c->callid, i, tags, root_reader))
|
|
|
|
|
if (json_build_list(&q, c, "branches", i, tags, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
for (l = q.head; l; l = l->next) {
|
|
|
|
|
other_ml = l->data;
|
|
|
|
|
@ -1633,7 +1633,7 @@ static int json_link_tags(struct call *c, struct redis_list *tags, struct redis_
|
|
|
|
|
}
|
|
|
|
|
g_queue_clear(&q);
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&ml->medias, c, "medias", &c->callid, i, medias, root_reader))
|
|
|
|
|
if (json_build_list(&ml->medias, c, "medias", i, medias, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1655,10 +1655,10 @@ static int json_link_streams(struct call *c, struct redis_list *streams,
|
|
|
|
|
ps->selected_sfd = redis_list_get_ptr(sfds, &streams->rh[i], "sfd");
|
|
|
|
|
ps->rtcp_sibling = redis_list_get_ptr(streams, &streams->rh[i], "rtcp_sibling");
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&ps->sfds, c, "stream_sfds", &c->callid, i, sfds, root_reader))
|
|
|
|
|
if (json_build_list(&ps->sfds, c, "stream_sfds", i, sfds, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&q, c, "rtp_sinks", &c->callid, i, streams, root_reader))
|
|
|
|
|
if (json_build_list(&q, c, "rtp_sinks", i, streams, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
for (l = q.head; l; l = l->next) {
|
|
|
|
|
struct packet_stream *sink = l->data;
|
|
|
|
|
@ -1675,7 +1675,7 @@ static int json_link_streams(struct call *c, struct redis_list *streams,
|
|
|
|
|
__add_sink_handler(&ps->rtp_sinks, sink);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (json_build_list(&q, c, "rtcp_sinks", &c->callid, i, streams, root_reader))
|
|
|
|
|
if (json_build_list(&q, c, "rtcp_sinks", i, streams, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
for (l = q.head; l; l = l->next) {
|
|
|
|
|
struct packet_stream *sink = l->data;
|
|
|
|
|
@ -1713,9 +1713,9 @@ static int json_link_medias(struct call *c, struct redis_list *medias,
|
|
|
|
|
med->monologue = redis_list_get_ptr(tags, &medias->rh[i], "tag");
|
|
|
|
|
if (!med->monologue)
|
|
|
|
|
return -1;
|
|
|
|
|
if (json_build_list(&med->streams, c, "streams", &c->callid, i, streams, root_reader))
|
|
|
|
|
if (json_build_list(&med->streams, c, "streams", i, streams, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
if (json_build_list(&med->endpoint_maps, c, "maps", &c->callid, i, maps, root_reader))
|
|
|
|
|
if (json_build_list(&med->endpoint_maps, c, "maps", i, maps, root_reader))
|
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
|
|
if (med->media_id.s)
|
|
|
|
|
|