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