Support "record call" for publish

Initial call recording is set by "record call". This worked for
offer/answer but not for publish.
pull/2052/head
Orgad Shaneh 3 days ago
parent 54ce6d67f9
commit d1698e9dd0

@ -4114,6 +4114,7 @@ const char *call_publish_ng(ng_command_ctx_t *ctx, const char *addr) {
g_autoptr(call_t) call = NULL;
int ret;
const ng_parser_t *parser = ctx->parser_ctx.parser;
struct recording *recording = NULL;
call_ng_process_flags(&flags, ctx);
@ -4140,16 +4141,26 @@ const char *call_publish_ng(ng_command_ctx_t *ctx, const char *addr) {
if (ret)
ilog(LOG_ERR, "Publish error"); // XXX close call? handle errors?
update_metadata_monologue(ml, &flags);
detect_setup_recording(ml->call, &flags);
recording = call->recording;
meta_write_sdp_before(recording, &sdp_in, ml, flags.opmode);
ret = sdp_create(&sdp_out, ml, &flags);
if (!ret) {
save_last_sdp(ml, &sdp_in, &parsed, &streams);
if (ret)
return "Failed to create SDP";
save_last_sdp(ml, &sdp_in, &parsed, &streams);
if (sdp_out.len) {
ctx->ngbuf->sdp_out = sdp_out.s;
parser->dict_add_str(ctx->resp, "sdp", &sdp_out);
meta_write_sdp_after(recording, &sdp_out, ml, flags.opmode);
sdp_out = STR_NULL; // ownership passed to output
}
if (ret)
return "Failed to create SDP";
recording_response(recording, parser, ctx->resp);
dequeue_sdp_fragments(ml);

Loading…
Cancel
Save