예제 #1
0
        public bool Login(string username, string txtPassword)
        {
            try
            {
                var userServiceUrl = settingObject["userServiceUrl"];
                var encoded        = HttpHandler.Base64Encode("ae849240-2c6d-11e6-b274-a9eec7dab26b:6145813102144258048");

                var authUrl = new Uri(userServiceUrl);

                dynamic data = new JObject();
                data.grant_type = "password";
                data.username   = username;
                data.password   = txtPassword;
                data.scope      =
                    "write_ardsresource write_notification read_myUserProfile read_requestmeta write_sysmonitoring profile_veeryaccount resourceid";


                var token      = HttpHandler.MakeRequest(userServiceUrl, "Basic " + encoded, data, "post");
                var dict       = jsonSerializer.Deserialize <Dictionary <string, dynamic> >(token);
                var tokenData1 = Jose.JWT.Payload <Dictionary <string, dynamic> >(dict["access_token"]);

                id             = tokenData1["context"]["resourceid"];
                publicIdentity = "sip:" + tokenData1["context"]["veeryaccount"]["contact"];
                id             = tokenData1["context"]["resourceid"];
                var values = tokenData1["context"]["veeryaccount"]["contact"].ToString().Split('@');
                Logger.Instance.LogMessage(Logger.LogAppender.DuoDefault, string.Format("Login Resourceid : {0}", id), Logger.LogLevel.Info);

                displayName       = values[0];
                UserName          = username;
                Password          = txtPassword;
                authorizationName = values[0];
                server            = new Server
                {
                    domain              = values[1],
                    outboundProxy       = "",
                    enableRtcwebBreaker = false,
                    token        = dict["access_token"],
                    websocketUrl = "wss://" + values[1] + ":7443",
                };
                localIPAddress = GetLocalIPAddress();
                acwTime        = ardsHandler.GetAcwTime(this);

                return(GetContactVeeryFormat() && RegisterWithArds());
            }
            catch (Exception exception)
            {
                Logger.Instance.LogMessage(Logger.LogAppender.DuoDefault, "Login fail", exception, Logger.LogLevel.Error);
                return(false);
            }
        }