diff --git a/daemon/redis.c b/daemon/redis.c index 81610c569..32cb65feb 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -1397,6 +1397,7 @@ static void json_restore_call(struct redis *r, struct callmaster *m, const str * struct redis_list tags, sfds, streams, medias, maps; struct call *c = NULL; str callid; + str s; const char *err = 0; int i; @@ -1507,6 +1508,14 @@ static void json_restore_call(struct redis *r, struct callmaster *m, const str * if (json_link_maps(r, c, &maps, &sfds)) goto err8; + // presence of this key determines whether we were recording at all + if (!redis_hash_get_str(&s, &call, "recording_meta_prefix")) { + recording_start(c, s.s); + + if (!redis_hash_get_str(&s, &call, "recording_metadata")) + call_str_cpy(c, &c->recording->metadata, &s); + } + err = NULL; err8: @@ -1543,20 +1552,6 @@ err1: obj_put(c); } -static void redis_restore_recording(struct call *c, struct redis_hash *call) { - str s; - - // presence of this key determines whether we were recording at all - if (redis_hash_get_str(&s, call, "recording_meta_prefix")) - return; - - recording_start(c, s.s); - - if (!redis_hash_get_str(&s, call, "recording_metadata")) - call_str_cpy(c, &c->recording->metadata, &s); -} - - struct thread_ctx { struct callmaster *m; GQueue r_q; @@ -1728,6 +1723,7 @@ char* redis_encode_json(struct call *c) { struct intf_list *il; struct call_monologue *ml, *ml2; JsonBuilder *builder = json_builder_new (); + struct recording *rec = 0; char tmp[2048]; @@ -1751,6 +1747,11 @@ char* redis_encode_json(struct call *c) { JSON_SET_SIMPLE_CSTR("created_from",c->created_from); JSON_SET_SIMPLE_CSTR("created_from_addr",sockaddr_print_buf(&c->created_from_addr)); JSON_SET_SIMPLE("redis_hosted_db","%u",c->redis_hosted_db); + + if ((rec = c->recording)) { + JSON_SET_SIMPLE_STR("recording_metadata",&rec->metadata); + JSON_SET_SIMPLE_CSTR("recording_meta_prefix",rec->meta_prefix); + } } json_builder_end_object (builder); @@ -2040,6 +2041,8 @@ void redis_update_onekey(struct call *c, struct redis *r) { redis_pipe(r, "SET json-"PB" %s", STR(&c->callid), result); redis_pipe(r, "EXPIRE json-"PB" %i", STR(&c->callid), redis_expires_s); +//TODOO redis_update_recording(r, c); + redis_consume(r); if (result) @@ -2059,17 +2062,6 @@ err: } -static void redis_update_recording(struct redis *r, struct call *c) { - struct recording *rec; - - if (!(rec = c->recording)) - return; - - redis_pipe(r, "HMSET call-"PB" recording_metadata "PB" recording_meta_prefix %s ", - STR(&c->callid), - STR(&rec->metadata), rec->meta_prefix); -} - /* must be called lock-free */ void redis_delete(struct call *c, struct redis *r) { if (!r)