Skip to content

Commit d1698e9

Browse files
committed
Support "record call" for publish
Initial call recording is set by "record call". This worked for offer/answer but not for publish.
1 parent 54ce6d6 commit d1698e9

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

daemon/call_interfaces.c

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4114,6 +4114,7 @@ const char *call_publish_ng(ng_command_ctx_t *ctx, const char *addr) {
41144114
g_autoptr(call_t) call = NULL;
41154115
int ret;
41164116
const ng_parser_t *parser = ctx->parser_ctx.parser;
4117+
struct recording *recording = NULL;
41174118

41184119
call_ng_process_flags(&flags, ctx);
41194120

@@ -4140,16 +4141,26 @@ const char *call_publish_ng(ng_command_ctx_t *ctx, const char *addr) {
41404141
if (ret)
41414142
ilog(LOG_ERR, "Publish error"); // XXX close call? handle errors?
41424143

4144+
update_metadata_monologue(ml, &flags);
4145+
detect_setup_recording(ml->call, &flags);
4146+
4147+
recording = call->recording;
4148+
4149+
meta_write_sdp_before(recording, &sdp_in, ml, flags.opmode);
41434150
ret = sdp_create(&sdp_out, ml, &flags);
4144-
if (!ret) {
4145-
save_last_sdp(ml, &sdp_in, &parsed, &streams);
4151+
if (ret)
4152+
return "Failed to create SDP";
4153+
4154+
save_last_sdp(ml, &sdp_in, &parsed, &streams);
4155+
if (sdp_out.len) {
41464156
ctx->ngbuf->sdp_out = sdp_out.s;
41474157
parser->dict_add_str(ctx->resp, "sdp", &sdp_out);
4158+
4159+
meta_write_sdp_after(recording, &sdp_out, ml, flags.opmode);
41484160
sdp_out = STR_NULL; // ownership passed to output
41494161
}
41504162

4151-
if (ret)
4152-
return "Failed to create SDP";
4163+
recording_response(recording, parser, ctx->resp);
41534164

41544165
dequeue_sdp_fragments(ml);
41554166

0 commit comments

Comments
 (0)