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