|
|
|
|
@ -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);
|
|
|
|
|
|
|
|
|
|
|