// >> START recordings-downloader-step-1
        public static void authentication()
        {
            //OAuth
            clientId     = Environment.GetEnvironmentVariable("GENESYS_CLOUD_CLIENT_ID");
            clientSecret = Environment.GetEnvironmentVariable("GENESYS_CLOUD_CLIENT_SECRET");
            // orgRegion values example: us_east_1
            string orgRegion = Environment.GetEnvironmentVariable("GENESYS_CLOUD_REGION");

            // Set Region
            PureCloudRegionHosts region = Enum.Parse <PureCloudRegionHosts>(orgRegion);

            Configuration.Default.ApiClient.setBasePath(region);

            // >> START recordings-downloader-step-3
            // >> START recordings-downloader-step-2
            // Configure SDK Settings
            var accessTokenInfo = Configuration.Default.ApiClient.PostToken(clientId, clientSecret);

            Configuration.Default.AccessToken = accessTokenInfo.AccessToken;
            // >> END recordings-downloader-step-2
            // >> END recordings-downloader-step-3
            // >> END recordings-downloader-step-1

            // >> START recordings-downloader-step-4
            // Create API instances
            conversationsApi = new ConversationsApi();
            recordingApi     = new RecordingApi();
            // >> END recordings-downloader-step-4

            Console.WriteLine("Working...");
        }
Example #2
0
        public static void authentication()
        {
            //OAuth input
            Console.Write("Enter Client ID: ");
            clientId = Console.ReadLine();
            Console.Write("Enter Client Secret: ");
            clientSecret = Console.ReadLine();

            // Get the Date Interval
            Console.Write("Enter Date Interval (YYYY-MM-DDThh:mm:ss/YYYY-MM-DDThh:mm:ss): ");
            dates = Console.ReadLine();

            Console.WriteLine("Working...");

            //Set Region
            PureCloudRegionHosts region = PureCloudRegionHosts.us_east_1;

            Configuration.Default.ApiClient.setBasePath(region);

            // Configure SDK Settings
            var accessTokenInfo = Configuration.Default.ApiClient.PostToken(clientId, clientSecret);

            Configuration.Default.AccessToken = accessTokenInfo.AccessToken;

            // Create API instances
            conversationsApi = new ConversationsApi();
            recordingApi     = new RecordingApi();
        }
Example #3
0
        public void Init()
        {
            PureCloudRegionHosts?region = getRegion(environment);

            if (region == null) //Returned in the case of default value
            {
                PureCloudPlatform.Client.V2.Client.Configuration.Default.ApiClient.setBasePath("https://api." + environment);
            }
            else
            {
                PureCloudRegionHosts regionval = region.GetValueOrDefault();
                PureCloudPlatform.Client.V2.Client.Configuration.Default.ApiClient.setBasePath(regionval);
            }
            PureCloudPlatform.Client.V2.Client.Configuration.Default.ApiClient.PostToken(clientId, clientSecret);
        }
        static void Main(string[] args)
        {
// >> START sms-notification-step-1
            // OAuth Credentials
            string clientId     = Environment.GetEnvironmentVariable("GENESYS_CLOUD_CLIENT_ID");
            string clientSecret = Environment.GetEnvironmentVariable("GENESYS_CLOUD_CLIENT_SECRET");
            // orgRegion value example: us_east_1
            string orgRegion = Environment.GetEnvironmentVariable("GENESYS_CLOUD_REGION");

            // Set Region
            PureCloudRegionHosts region = Enum.Parse <PureCloudRegionHosts>(orgRegion);

            Configuration.Default.ApiClient.setBasePath(region);
// >> END sms-notification-step-1

// >> START sms-notification-step-2
            // Configure SDK Settings
            var    accessTokenInfo = Configuration.Default.ApiClient.PostToken(clientId, clientSecret);
            string accessToken     = accessTokenInfo.AccessToken;

            PureCloudPlatform.Client.V2.Client.Configuration.Default.AccessToken = accessToken;
// >> END sms-notification-step-2

// >> START sms-notification-step-3
            // Instantiate APIs
            ConversationsApi conversationsApi = new ConversationsApi();

            // Build request body
            SendAgentlessOutboundMessageRequest request = new SendAgentlessOutboundMessageRequest();

            request.FromAddress            = "+13178723000";
            request.ToAddress              = "+15557655942";
            request.ToAddressMessengerType = SendAgentlessOutboundMessageRequest.ToAddressMessengerTypeEnum.Sms;
            request.TextBody = "Hello, this is a test notification";

            // Call to PostConversationsMessagesAgentless function of Conversations API
            SendAgentlessOutboundMessageResponse response = conversationsApi.PostConversationsMessagesAgentless(request);

            // Final Output
            Console.WriteLine(response.ToString());
// >> END sms-notification-step-3
        }
Example #5
0
        public void Authenticate()
        {
            PureCloudRegionHosts?region = getRegion(environment);

            if (region == null) //Returned in the case of default value
            {
                PureCloudPlatform.Client.V2.Client.Configuration.Default.ApiClient.setBasePath("https://api." + environment);
            }
            else
            {
                PureCloudRegionHosts regionval = region.GetValueOrDefault();
                PureCloudPlatform.Client.V2.Client.Configuration.Default.ApiClient.setBasePath(regionval);
            }

            var accessTokenInfo = PureCloudPlatform.Client.V2.Client.Configuration.Default.ApiClient.PostToken(clientId, clientSecret);

            PureCloudPlatform.Client.V2.Client.Configuration.Default.AccessToken = accessTokenInfo.AccessToken;

            Assert.IsNotEmpty(PureCloudPlatform.Client.V2.Client.Configuration.Default.AccessToken);
        }
Example #6
0
 /// <summary>
 /// Creates a restclient with a PureCloudRegionHost string input
 /// <returns>Returns a rest client</returns>
 public RestClient setBasePath(PureCloudRegionHosts region)
 {
     return(setBasePath(region.GetDescription()));
 }
Example #7
0
        static void Main(string[] args)
        {
            var accessTokenInfo = Configuration.Default.ApiClient.PostToken(
                "clientId",
                "clientSecret");

            Configuration.Default.AccessToken = accessTokenInfo.AccessToken;

            PureCloudRegionHosts region = PureCloudRegionHosts.us_east_1;

            Configuration.Default.ApiClient.setBasePath(region);

            var usersApi = new UsersApi();
            var userId   = "<REPLACE_WITH_TEST_USER_ID>";

            var handler = new NotificationHandler();
            var topic   = $"v2.users.{userId}.conversations";

            handler.AddSubscription(topic, typeof(ConversationEventTopicConversation));
            Console.WriteLine($"Subscribed to {topic} topic");

            handler.NotificationReceived += (data) =>
            {
                if (data.GetType() == typeof(NotificationData <ConversationEventTopicConversation>))
                {
                    var conversation    = (NotificationData <ConversationEventTopicConversation>)data;
                    var conversationId  = conversation.EventBody.Id;
                    var eventRawJson    = JsonConvert.SerializeObject(data, Formatting.Indented);
                    var eventJsonAsDict = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(eventRawJson);

                    Console.WriteLine("\n-----------------------------------------------");
                    Console.WriteLine($"Notification for Conversation ID: {conversation.EventBody.Id}");

                    var eventBodyJsonAsDict = eventJsonAsDict["EventBody"];
                    var participants        = conversation.EventBody.Participants.ToArray();
                    for (var i = 0; i < participants.Length; i++)
                    {
                        var participant           = participants[i];
                        var participantJsonAsDict = eventBodyJsonAsDict["participants"][i];

                        if (participant.Purpose == "agent")
                        {
                            Console.WriteLine($"Participant ID: {participant.UserId}");
                            Console.WriteLine($"Calls:");
                            var participantCalls = participant.Calls.ToArray();
                            for (var j = 0; j < participantCalls.Length; j++)
                            {
                                var call = participantCalls[j];
                                var participantCallJson = participantJsonAsDict["calls"][j];
                                var stateJson           = participantCallJson["state"];
                                Console.WriteLine($" -Call Id: {call.Id}, State (as Deserialized): {(int)call.State}, State (in JSON): {stateJson}");
                            }
                            var participantRawJson = JsonConvert.SerializeObject(participantJsonAsDict, Formatting.Indented);
                            Console.WriteLine($"Participant RawJSON (from Event):\n{participantRawJson}");
                        }
                    }
                    Console.WriteLine("-----------------------------------------------");
                }
            };

            Console.WriteLine("Websocket connected, awaiting messages...");
            Console.WriteLine("Press any key to stop and remove all subscriptions");
            Console.ReadKey(true);

            handler.RemoveAllSubscriptions();
            Console.WriteLine("All subscriptions removed, exiting...");
        }
Example #8
0
        public void CreateChat(string displayName, string firstName, string lastName, string phoneNumber, string email, string queue)
        {
            this.queueName = queue;

            PureCloudRegionHosts region = PureCloudRegionHosts.eu_west_1;

            Configuration.Default.ApiClient.setBasePath(region);

            CreateWebChatConversationRequest request = new CreateWebChatConversationRequest()
            {
                OrganizationId = this.organizationId,
                DeploymentId   = this.deploymentId,
                RoutingTarget  = new WebChatRoutingTarget()
                {
                    TargetType    = WebChatRoutingTarget.TargetTypeEnum.Queue,
                    TargetAddress = this.queueName
                },
                MemberInfo = new GuestMemberInfo()
                {
                    DisplayName  = displayName,
                    CustomFields = new Dictionary <string, string>()
                }
            };

            request.MemberInfo.CustomFields.Add("firstName", firstName);
            request.MemberInfo.CustomFields.Add("lastName", lastName);
            request.MemberInfo.CustomFields.Add("phoneNumber", phoneNumber);
            request.MemberInfo.CustomFields.Add("email", email);
            request.MemberInfo.CustomFields.Add("bookingLocator", "B2W12Z");
            request.MemberInfo.CustomFields.Add("oldName", "havi");
            request.MemberInfo.CustomFields.Add("newName", "Javier");


            try
            {
                // Create an ACD chat conversation from an external customer.
                CreateWebChatConversationResponse result = apiInstance.PostWebchatGuestConversations(request);
                this.conversationId = result.Id;
                this.memberId       = result.Member.Id;
                Configuration.Default.ApiKey.Add("Authorization", "Bearer " + result.Jwt);
                WebSocket ws = new WebSocket(result.EventStreamUri);



                ws.SslConfiguration.EnabledSslProtocols = System.Security.Authentication.SslProtocols.Tls12;
                ws.OnOpen += (sender, e) => {
                    Console.WriteLine("Connection Opened");
                };

                ws.OnMessage += (sender, e) =>
                {
                    Dictionary <string, object> notification = JsonConvert.DeserializeObject <Dictionary <string, object> >(e.Data);
                    object metadata;
                    if (notification.TryGetValue("metadata", out metadata))
                    {
                        Dictionary <string, object> mdObject = ((JObject)metadata).ToObject <Dictionary <string, object> >();
                        object type;
                        if (mdObject.TryGetValue("type", out type))
                        {
                            switch (type.ToString())
                            {
                            case "message":
                                ProcessMessage(notification);
                                break;

                            case "member-join":
                                break;

                            default:
                                break;
                            }
                        }
                    }
                };

                ws.OnError += (sender, e) => {
                    Console.WriteLine("Error: " + e.Message);
                };

                ws.OnClose += (sender, e) => {
                    Console.WriteLine("Closed ");
                };
                ws.Connect();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception when calling WebChatApi.PostWebchatGuestConversations: " + e.Message);
            }
        }