diff --git a/html5/verto/js/src/jquery.jsonrpcclient.js b/html5/verto/js/src/jquery.jsonrpcclient.js index e6000f084f..9422215921 100644 --- a/html5/verto/js/src/jquery.jsonrpcclient.js +++ b/html5/verto/js/src/jquery.jsonrpcclient.js @@ -71,6 +71,7 @@ login : null, /// auth login passwd : null, /// auth passwd sessid : null, + loginParams : null, getSocket : function(onmessage_cb) { return self._getSocket(onmessage_cb); } }, options); @@ -250,15 +251,18 @@ }; $.JsonRpcClient.prototype.closeSocket = function() { + var self = this; if (self.socketReady()) { - this._ws_socket.onclose = function (w) {console.log("Closing Socket");}; - this._ws_socket.close(); + self._ws_socket.onclose = function (w) {console.log("Closing Socket");}; + self._ws_socket.close(); } }; $.JsonRpcClient.prototype.loginData = function(params) { + var self = this; self.options.login = params.login; self.options.passwd = params.passwd; + self.options.loginParams = params.loginParams; }; $.JsonRpcClient.prototype.connectSocket = function(onmessage_cb) { @@ -418,7 +422,7 @@ if (!self.authing && response.error.code == -32000 && self.options.login && self.options.passwd) { self.authing = true; - this.call("login", { login: self.options.login, passwd: self.options.passwd}, + this.call("login", { login: self.options.login, passwd: self.options.passwd, loginParams: self.options.loginParams}, this._ws_callbacks[response.id].request_obj.method == "login" ? function(e) { self.authing = false; diff --git a/html5/verto/js/src/jquery.verto.js b/html5/verto/js/src/jquery.verto.js index 53deb8feef..9bb5e02ceb 100644 --- a/html5/verto/js/src/jquery.verto.js +++ b/html5/verto/js/src/jquery.verto.js @@ -73,6 +73,7 @@ tag: null, videoParams: {}, audioParams: {}, + loginParams: {}, iceServers: false, ringSleep: 6000 }, options); @@ -90,6 +91,7 @@ login: verto.options.login, passwd: verto.options.passwd, socketUrl: verto.options.socketUrl, + loginParams: verto.options.loginParams, sessid: verto.sessid, onmessage: function(e) { return verto.handleMessage(e.eventData); diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index a61f2a8185..de942f14f5 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -885,6 +885,7 @@ static switch_bool_t check_auth(jsock_t *jsock, cJSON *params, int *code, char * switch_bool_t r = SWITCH_FALSE; const char *passwd = NULL; const char *login = NULL; + cJSON *login_params = NULL; if (!params) { *code = CODE_AUTH_FAILED; @@ -940,6 +941,23 @@ static switch_bool_t check_auth(jsock_t *jsock, cJSON *params, int *code, char * switch_event_create(&req_params, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(req_params); + if ((login_params = cJSON_GetObjectItem(params, "loginParams"))) { + cJSON * i; + + for(i = login_params->child; i; i = i->next) { + if (i->type == cJSON_True) { + switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, i->string, "true"); + } else if (i->type == cJSON_False) { + switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, i->string, "false"); + } else if (!zstr(i->string) && !zstr(i->valuestring)) { + switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, i->string, i->valuestring); + } + } + + DUMP_EVENT(req_params); + + } + switch_event_add_header_string(req_params, SWITCH_STACK_BOTTOM, "action", "jsonrpc-authenticate"); if (switch_xml_locate_user_merged("id", id, domain, NULL, &x_user, req_params) != SWITCH_STATUS_SUCCESS && !jsock->profile->blind_reg) {