diff --git a/html5/verto/demo/verto.js b/html5/verto/demo/verto.js index 9e47946077..79ca2f2ac7 100644 --- a/html5/verto/demo/verto.js +++ b/html5/verto/demo/verto.js @@ -159,6 +159,9 @@ var callbacks = { } } break; + case $.verto.enum.message.clientReady: +// console.error("clientReady", data); + break; case $.verto.enum.message.info: var body = data.body; diff --git a/html5/verto/js/src/jquery.verto.js b/html5/verto/js/src/jquery.verto.js index fe770491cf..b379904c26 100644 --- a/html5/verto/js/src/jquery.verto.js +++ b/html5/verto/js/src/jquery.verto.js @@ -606,6 +606,11 @@ break; + case 'verto.clientReady': + verto.callbacks.onMessage(verto, null, $.verto.enum.message.clientReady, data.params); + console.debug("CLIENT READY", data.params); + break; + default: console.error("INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED", data.method); break; @@ -2682,7 +2687,7 @@ $.verto.enum.state = $.verto.ENUM("new requesting trying recovering ringing answering early active held hangup destroy purge"); $.verto.enum.direction = $.verto.ENUM("inbound outbound"); - $.verto.enum.message = $.verto.ENUM("display info pvtEvent"); + $.verto.enum.message = $.verto.ENUM("display info pvtEvent clientReady"); $.verto.enum = Object.freeze($.verto.enum); diff --git a/html5/verto/verto_communicator/src/vertoService/services/vertoService.js b/html5/verto/verto_communicator/src/vertoService/services/vertoService.js index 6ae35994ec..509182d9a5 100644 --- a/html5/verto/verto_communicator/src/vertoService/services/vertoService.js +++ b/html5/verto/verto_communicator/src/vertoService/services/vertoService.js @@ -639,6 +639,11 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora case $.verto.enum.message.display: $rootScope.$apply(function() {}); break; + case $.verto.enum.message.clientReady: + $rootScope.$emit('clientReady', { + reattached_sessions: params.reattached_sessions, + }); + break; default: console.warn('Got a not implemented message:', msg, dialog, params); break; diff --git a/html5/verto/video_demo-live_canvas/verto.js b/html5/verto/video_demo-live_canvas/verto.js index 71d823b392..9894fb2414 100644 --- a/html5/verto/video_demo-live_canvas/verto.js +++ b/html5/verto/video_demo-live_canvas/verto.js @@ -750,6 +750,9 @@ var callbacks = { } } break; + case $.verto.enum.message.clientReady: +// console.error("clientReady", data); + break; case $.verto.enum.message.info: if (data.msg) { data = data.msg; diff --git a/html5/verto/video_demo/verto.js b/html5/verto/video_demo/verto.js index 9041468a54..4c60aba78d 100644 --- a/html5/verto/video_demo/verto.js +++ b/html5/verto/video_demo/verto.js @@ -441,6 +441,9 @@ var callbacks = { } } break; + case $.verto.enum.message.clientReady: +// console.error("clientReady", data); + break; case $.verto.enum.message.info: if (data.msg) { data = data.msg; diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index afb000a7cf..f7c94afd8b 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -1232,6 +1232,11 @@ static void drop_detached(void) static void attach_calls(jsock_t *jsock) { verto_pvt_t *tech_pvt; + cJSON *msg = NULL; + cJSON *params = NULL; + cJSON *reattached_sessions = NULL; + + reattached_sessions = cJSON_CreateArray(); switch_thread_rwlock_rdlock(verto_globals.tech_rwlock); for(tech_pvt = verto_globals.tech_head; tech_pvt; tech_pvt = tech_pvt->next) { @@ -1241,9 +1246,14 @@ static void attach_calls(jsock_t *jsock) } tech_reattach(tech_pvt, jsock); + cJSON_AddItemToArray(reattached_sessions, cJSON_CreateString(jsock->uuid_str)); } } switch_thread_rwlock_unlock(verto_globals.tech_rwlock); + + msg = jrpc_new_req("verto.clientReady", NULL, ¶ms); + cJSON_AddItemToObject(params, "reattached_sessions", reattached_sessions); + jsock_queue_event(jsock, &msg, SWITCH_TRUE); } static void detach_calls(jsock_t *jsock)