]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7312 #resolve #comment added feature NEEDS_DOC
authorAnthony Minessale <anthm@freeswitch.org>
Sat, 21 Feb 2015 18:11:24 +0000 (12:11 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Sun, 22 Feb 2015 00:15:04 +0000 (18:15 -0600)
html5/verto/js/src/jquery.jsonrpcclient.js
html5/verto/js/src/jquery.verto.js
src/mod/endpoints/mod_verto/mod_verto.c

index e6000f084f25370a21221fc5067504c8057c7e47..94222159217ec6a5aeb261ede8138ea539947828 100644 (file)
@@ -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);
 
     };
 
     $.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) {
                     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;
index 53deb8feef2ef1f5302368e48e3aa8531258a464..9bb5e02ceb820b2783fbaa3bf6da0759cb715b16 100644 (file)
@@ -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);
index a61f2a8185ca44091ee81dd16b5e2d419318500f..de942f14f5e428958da8a9bed7b36b8cfac8f373 100644 (file)
@@ -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) {