Browse Source

Fixes redis recording flag in onekey concept

pull/323/head
Frederic-Philippe Metz 9 years ago
parent
commit
6985784cea
1 changed files with 17 additions and 25 deletions
  1. +17
    -25
      daemon/redis.c

+ 17
- 25
daemon/redis.c View File

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


Loading…
Cancel
Save