Exemplo n.º 1
0
        private static void SetDidCallback(FlowrouteNumbersAndMessagingClient client, string DID, string url)
        {
            NumbersController numbers = client.Numbers;
            Int32             result  = numbers.SetDIDCallback(DID, url);

            Console.WriteLine(result);
        }
Exemplo n.º 2
0
        public static dynamic CreateE911Address(FlowrouteNumbersAndMessagingClient client)
        {
            E911Controller e911s = client.E911s;
            E911           body  = new E911();

            body.StreetName        = "3rd Ave";
            body.StreetNumber      = "1111";
            body.AddressType       = "Suite";
            body.AddressTypeNumber = "200";
            body.City      = "Seattle";
            body.State     = "WA";
            body.Country   = "US";
            body.FirstName = "John";
            body.LastName  = "Doe";
            body.Label     = "Potbelly";
            body.Zip       = "98101";

            try
            {
                dynamic result = e911s.CreateE911Address(body);
                Console.WriteLine(result);
                return(result);
            } catch (FlowrouteNumbersAndMessaging.Standard.Exceptions.ErrorException e) {
                Console.WriteLine(e);
                return(null);
            }
        }
Exemplo n.º 3
0
        private static void SetDidAlias(FlowrouteNumbersAndMessagingClient client, string our_number, string new_alias)
        {
            NumbersController numbers = client.Numbers;
            Int32             result  = numbers.SetDIDAlias(our_number, new_alias);

            Console.WriteLine(result);
        }
Exemplo n.º 4
0
        private static void UpdateFailoverRoute(FlowrouteNumbersAndMessagingClient client, string DID, string route_id)
        {
            RoutesController routes = client.Routes;
            string           result = routes.UpdateFailoverVoiceRouteForAPhoneNumber(DID, route_id);

            Console.WriteLine(result);
        }
Exemplo n.º 5
0
        public static dynamic CheckPortability(FlowrouteNumbersAndMessagingClient client, List <string> numbers_to_check)
        {
            PortingController porting     = client.Porting;
            dynamic           return_data = porting.CheckPortability(numbers_to_check);

            return(return_data);
        }
Exemplo n.º 6
0
        private static void GetMDRDetail(FlowrouteNumbersAndMessagingClient client, string id)
        {
            MessagesController messages = client.Messages;

            dynamic mdr_data = messages.GetLookUpAMessageDetailRecord(id);

            Console.WriteLine(mdr_data);
        }
Exemplo n.º 7
0
        public static dynamic CreateCNAM(FlowrouteNumbersAndMessagingClient client, string cnam_value)
        {
            CNAMsController cnams     = client.CNAMs;
            dynamic         cnam_data = cnams.CreateCNAM(cnam_value);

            Console.WriteLine(cnam_data);
            return(cnam_data);
        }
Exemplo n.º 8
0
        public static dynamic DeleteCNAM(FlowrouteNumbersAndMessagingClient client, string cnam_id)
        {
            CNAMsController cnams       = client.CNAMs;
            dynamic         return_data = cnams.DeleteCNAM(cnam_id);

            Console.WriteLine(return_data);
            return(return_data);
        }
Exemplo n.º 9
0
        public static dynamic GetCNAMDetail(FlowrouteNumbersAndMessagingClient client, string cnam_id)
        {
            CNAMsController cnams     = client.CNAMs;
            dynamic         cnam_data = cnams.GetCNAMDetails(cnam_id);

            Console.WriteLine(cnam_data);
            return(cnam_data);
        }
Exemplo n.º 10
0
        public static dynamic GetNumberDetails(FlowrouteNumbersAndMessagingClient client, string id)
        {
            // User the Numbers Controller from our Client
            NumbersController numbers = client.Numbers;

            Console.WriteLine("---------------------------\nList Phone Number Details:\n");
            dynamic result = numbers.GetPhoneNumberDetails(id);

            Console.WriteLine(result);
            return(result);
        }
Exemplo n.º 11
0
        public static dynamic ListE911Details(FlowrouteNumbersAndMessagingClient client, string id)
        {
            // User the E911 Controller from our Client
            E911Controller e911s = client.E911s;

            Console.WriteLine("---------------------------\nList E911 Details:\n");
            dynamic result = e911s.E911Details(id);

            Console.WriteLine(result);
            return(result);
        }
Exemplo n.º 12
0
        private static Number26 PurchaseDid(FlowrouteNumbersAndMessagingClient client, string did)
        {
            NumbersController numbers = client.Numbers;

            try {
                Number26 data = numbers.CreatePurchaseAPhoneNumber(did);
                return(data);
            } catch (FlowrouteNumbersAndMessaging.Standard.Exceptions.ErrorException e) {
                Console.WriteLine(e);
                return(null);
            }
        }
Exemplo n.º 13
0
        private static void SendSMS(FlowrouteNumbersAndMessagingClient client, string from_did, string to_did, string callback = null)
        {
            Message msg = new Message();

            msg.From     = from_did;
            msg.To       = to_did; // Replace with your mobile number to receive messages sent from your Flowroute account
            msg.Body     = "Hi Chris";
            msg.Callback = callback;

            MessagesController messages = client.Messages;
            string             result   = messages.CreateSendAMessage(msg);

            Console.WriteLine(result);
        }
Exemplo n.º 14
0
        public static dynamic AssociateE911(FlowrouteNumbersAndMessagingClient client, string number_id, string e911_id)
        {
            E911Controller e911s = client.E911s;

            try
            {
                dynamic result = e911s.AssociateE911(number_id, e911_id);
                Console.WriteLine(result);
                return(result);
            } catch (FlowrouteNumbersAndMessaging.Standard.Exceptions.ErrorException e) {
                Console.WriteLine(e);
                return(null);
            }
        }
Exemplo n.º 15
0
        private static void CreateInboundRoute(FlowrouteNumbersAndMessagingClient client)
        {
            RoutesController routes = client.Routes;
            NewRoute         body   = new NewRoute();

            body.Data                         = new Data61();
            body.Data.Attributes              = new Attributes62();
            body.Data.Attributes.Alias        = "Test Route";
            body.Data.Attributes.RouteType    = RouteTypeEnum.HOST;
            body.Data.Attributes.Value        = "www.flowroute.com";
            body.Data.Attributes.EdgeStrategy = "1";

            string result = routes.CreateAnInboundRoute(body);

            Console.WriteLine(result);
        }
Exemplo n.º 16
0
        public static ArrayList GetNumbers(FlowrouteNumbersAndMessagingClient client)
        {
            ArrayList return_list = new ArrayList();

            // List all phone numbers in our account paging through them 1 at a time
            //  If you have several phone numbers, change the 'limit' variable below
            //  This example is intended to show how to page through a list of resources

            int?limit  = 100;
            int?offset = 0;

            int?startsWith = null;
            int?endsWith   = null;
            int?contains   = null;

            // User the Numbers Controller from our Client
            NumbersController numbers = client.Numbers;

            do
            {
                dynamic number_data = numbers.GetAccountPhoneNumbers(startsWith, endsWith, contains, limit, offset);

                // Iterate through each number item
                foreach (var item in number_data.data)
                {
                    Console.WriteLine("---------------------------\nPhone Number Record:\n");
                    Console.WriteLine("Attributes:{0}\nId:{1}\nLinks:{2}\nType:{3}\n", item.attributes, item.id, item.links, item.type);
                    return_list.Add((string)item.id);
                }

                // See if there is more data to process
                var links = number_data.links;
                if (links.next != null)
                {
                    // more data to pull
                    offset += limit;
                }
                else
                {
                    break;   // no more data
                }
            }while (true);

            Console.WriteLine("Processing Complete");
            return(return_list);
        }
Exemplo n.º 17
0
        public static dynamic SetAccountLevelCallback(FlowrouteNumbersAndMessagingClient client, string callback_type, string callback_url)
        {
            MessagesController messages = client.Messages;

            if (callback_type.Equals("sms_callback", StringComparison.InvariantCultureIgnoreCase))
            {
                try
                {
                    dynamic result = messages.SetSMSCallback(callback_url);
                    return(result);
                }
                catch (FlowrouteNumbersAndMessaging.Standard.Exceptions.ErrorException e)
                {
                    Console.WriteLine(e);
                    return(null);
                }
            }
            else if (callback_type.Equals("mms_callback", StringComparison.InvariantCultureIgnoreCase))
            {
                try
                {
                    dynamic result = messages.SetMMSCallback(callback_url);
                    return(result);
                }
                catch (FlowrouteNumbersAndMessaging.Standard.Exceptions.ErrorException e)
                {
                    Console.WriteLine(e);
                    return(null);
                }
            }
            else if (callback_type.Equals("dlr_callback", StringComparison.InvariantCultureIgnoreCase))
            {
                try
                {
                    dynamic result = messages.SetDLRCallback(callback_url);
                    return(result);
                }
                catch (FlowrouteNumbersAndMessaging.Standard.Exceptions.ErrorException e)
                {
                    Console.WriteLine(e);
                    return(null);
                }
            }
            return(null);
        }
Exemplo n.º 18
0
        private static void SendMMS(FlowrouteNumbersAndMessagingClient client, string from_did, string to_did)
        {
            MMS_Message msg = new MMS_Message();

            msg.From = from_did;
            msg.To   = to_did;
            msg.Body = "Hi Chris";
            // Create the image / media urls to add to the message
            List <string> pictures = new List <string>();

            pictures.Add("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png");
            msg.MediaUrls = pictures;

            MessagesController messages = client.Messages;
            string             result   = messages.CreateSendAMMSMessage(msg);

            Console.WriteLine(result);
        }
Exemplo n.º 19
0
        private static ArrayList GetEdgeStrategies(FlowrouteNumbersAndMessagingClient client)
        {
            ArrayList return_list = new ArrayList();

            RoutesController routes = client.Routes;

            dynamic route_data = routes.ListEdgeStrategies();

            Console.WriteLine(route_data);

            foreach (var item in route_data.data)
            {
                Console.WriteLine("---------------------------\nEdge Strategies:\n");
                Console.WriteLine("Attributes:{0}\nId:{1}\nLinks:{2}\nType:{3}\n", item.attributes, item.id, item.links, item.type);
                return_list.Add((dynamic)item);
            }

            return(return_list);
        }
Exemplo n.º 20
0
        private static ArrayList GetAvailableNumbers(FlowrouteNumbersAndMessagingClient client)
        {
            string startsWith = "206";
            string contains   = null;
            string endsWith   = null;
            string rateCenter = null;
            string state      = null;

            int?limit  = 10;
            int?offset = 0;

            ArrayList return_list = new ArrayList();
            // User the Numbers Controller from our Client
            NumbersController numbers = client.Numbers;

            do
            {
                dynamic number_data = numbers.SearchForPurchasablePhoneNumbers(startsWith, contains, endsWith, limit, offset, rateCenter, state);
                Console.WriteLine(number_data);
                // Iterate through each number item
                foreach (var item in number_data.data)
                {
                    Console.WriteLine("---------------------------\nAvailable Area Codes:\n");
                    Console.WriteLine("Attributes:{0}\nId:{1}\nLinks:{2}\nType:{3}\n", item.attributes, item.id, item.links, item.type);
                    return_list.Add((string)item.id);
                }

                // See if there is more data to process
                var links = number_data.links;
                if (links.next != null)
                {
                    // more data to pull
                    offset += limit;
                }
                else
                {
                    break;   // no more data
                }
            } while (true);

            return(return_list);
        }
Exemplo n.º 21
0
        // --------------------------- CNAM Functions --------------------------------------
        public static dynamic GetCNAMRecords(FlowrouteNumbersAndMessagingClient client)
        {
            ArrayList return_list = new ArrayList();

            // List all E911 records in our account paging through them 1 at a time
            //  If you have several phone numbers, change the 'limit' variable below
            //  This example is intended to show how to page through a list of resources

            int limit  = 10;
            int offset = 0;

            CNAMsController cnams = client.CNAMs;

            do
            {
                dynamic cnam_data = cnams.GetAccountCNAMS(null, null, null, true, limit, offset);

                // Iterate through each number item
                foreach (var item in cnam_data.data)
                {
                    Console.WriteLine("---------------------------\nCNAM Record:\n");
                    Console.WriteLine("Attributes:{0}\nId:{1}\nLinks:{2}\nType:{3}\n", item.attributes, item.id, item.links, item.type);
                    return_list.Add((string)item.id);
                }

                // See if there is more data to process
                var links = cnam_data.links;
                if (links.next != null)
                {
                    // more data to pull
                    offset += limit;
                }
                else
                {
                    break;   // no more data
                }
            }while (true);

            Console.WriteLine("Processing Complete");
            return(return_list);
        }
Exemplo n.º 22
0
        public static dynamic ValidateE911(FlowrouteNumbersAndMessagingClient client)
        {
            E911Controller e911s = client.E911s;
            E911           body  = new E911();

            body.StreetName        = "N Vassault";
            body.StreetNumber      = "3901";
            body.AddressType       = null;
            body.AddressTypeNumber = null;
            body.City      = "Tacoma";
            body.State     = "WA";
            body.Country   = "US";
            body.FirstName = "John";
            body.LastName  = "Doe";
            body.Label     = "Home";
            body.Zip       = "98407";

            dynamic result = e911s.ValidateE911(body);

            Console.WriteLine(result);
            return(result);
        }
Exemplo n.º 23
0
        private static ArrayList GetAvailableAreaCodes(FlowrouteNumbersAndMessagingClient client)
        {
            ArrayList return_list = new ArrayList();

            int?   limit        = 100;
            int?   offset       = 0;
            double?maxSetupCost = 10.00;

            // User the Numbers Controller from our Client
            NumbersController numbers = client.Numbers;

            do
            {
                Console.WriteLine("Offset is {0}", offset);
                dynamic areacode_data = numbers.ListAvailableAreaCodes(limit, offset, maxSetupCost);
                Console.WriteLine(areacode_data);

                foreach (var item in areacode_data.data)
                {
                    Console.WriteLine("---------------------------\nAvailable Area Code:\n");
                    Console.WriteLine("Attributes:{0}\nId:{1}\nLinks:{2}\nType:{3}\n", item.attributes, item.id, item.links, item.type);
                    return_list.Add((string)item.id);
                }

                // See if there is more data to process
                var links = areacode_data.links;
                if (links.next != null)
                {
                    // more data to pull
                    offset += limit;
                }
                else
                {
                    break;   // no more data
                }
            } while (true);

            return(return_list);
        }
Exemplo n.º 24
0
        public static dynamic UpdateE911Address(FlowrouteNumbersAndMessagingClient client, string e911_id, string new_label)
        {
            E911Controller e911s  = client.E911s;
            dynamic        result = e911s.E911Details(e911_id);

            string jsonstring = result.ToString();

            Newtonsoft.Json.Linq.JObject j = Newtonsoft.Json.Linq.JObject.Parse(jsonstring);
            string old_label = (string)j["data"]["attributes"]["label"];
            E911   body      = new E911();

            body.AddressType       = (string)j["data"]["attributes"]["address_type"];
            body.AddressTypeNumber = (string)j["data"]["attributes"]["address_type_number"];
            body.AdressNumber      = (string)j["data"]["attributes"]["street_number"];
            body.City         = (string)j["data"]["attributes"]["city"];
            body.Country      = (string)j["data"]["attributes"]["country"];
            body.FirstName    = (string)j["data"]["attributes"]["first_name"];
            body.Id           = (string)j["data"]["id"];
            body.LastName     = (string)j["data"]["attributes"]["last_name"];
            body.State        = (string)j["data"]["attributes"]["state"];
            body.StreetName   = (string)j["data"]["attributes"]["street_name"];
            body.StreetNumber = (string)j["data"]["attributes"]["street_number"];
            body.Zip          = (string)j["data"]["attributes"]["zip"];
            body.Label        = (string)new_label;

            try
            {
                dynamic submissin_result = e911s.UpdateE911Address(body);
                Console.WriteLine(result);
                return(result);
            }
            catch (FlowrouteNumbersAndMessaging.Standard.Exceptions.ErrorException e)
            {
                Console.WriteLine(e);
                return(null);
            }
        }
Exemplo n.º 25
0
        public static ArrayList GetMessages(FlowrouteNumbersAndMessagingClient client)
        {
            ArrayList return_list = new ArrayList();
            int?      limit       = 20;
            int?      offset      = 0;

            // Find all messages since January 1, 2017
            DateTime startDate = new DateTime(2017, 1, 1);
            DateTime?endDate   = null;

            do
            {
                MessagesController messages     = client.Messages;
                dynamic            message_data = messages.GetLookUpASetOfMessages(startDate, endDate, limit, offset);

                // Iterate through each number item
                foreach (var item in message_data.data)
                {
                    Console.WriteLine("---------------------------\nSMS MDR:\n");
                    Console.WriteLine("Attributes:{0}\nId:{1}\nLinks:{2}\nType:{3}\n", item.attributes, item.id, item.links, item.type);
                    return_list.Add((string)item.id);
                }

                // See if there is more data to process
                var links = message_data.links;
                if (links.next != null)
                {
                    // more data to pull
                    offset += limit;
                }
                else
                {
                    break;   // no more data
                }
            }while (true);
            return(return_list);
        }
Exemplo n.º 26
0
        private static ArrayList GetInboundRoutes(FlowrouteNumbersAndMessagingClient client)
        {
            ArrayList return_list = new ArrayList();

            int?limit  = 10;
            int?offset = 0;

            RoutesController routes = client.Routes;

            do
            {
                dynamic route_data = routes.ListInboundRoutes(limit, offset);
                Console.WriteLine(route_data);

                foreach (var item in route_data.data)
                {
                    Console.WriteLine("---------------------------\nInbound Routes:\n");
                    Console.WriteLine("Attributes:{0}\nId:{1}\nLinks:{2}\nType:{3}\n", item.attributes, item.id, item.links, item.type);
                    return_list.Add((dynamic)item);
                }

                // See if there is more data to process
                var links = route_data.links;
                if (links.next != null)
                {
                    // more data to pull
                    offset += limit;
                }
                else
                {
                    break;   // no more data
                }
            }while (true);

            return(return_list);
        }
Exemplo n.º 27
0
        private static void Main(string[] args)
        {
            // Create Basic Authentication Object - client - from our Configuration Settings
            FlowrouteNumbersAndMessagingClient client = new FlowrouteNumbersAndMessagingClient(FlowrouteNumbersAndMessaging.Standard.Configuration.BasicAuthUserName,
                                                                                               FlowrouteNumbersAndMessaging.Standard.Configuration.BasicAuthPassword);
            // List all our numbers
            ArrayList our_numbers = GetNumbers(client);

            // Find details for a specific number
            dynamic number_details = GetNumberDetails(client, (string)our_numbers[0]);

            // Find purchasable numbers
            ArrayList available_numbers = GetAvailableNumbers(client);

            // Purchase a DID
            Number26 did_detail = PurchaseDid(client, (string)available_numbers[0]);

            // Release a DID
            if (did_detail != null)
            {
                ReleaseDid(client, did_detail.Data.Id);
            }

            // List Available Area Codes
            ArrayList available_areacodes = GetAvailableAreaCodes(client);

            // List available Exchange Codes
            ArrayList available_exchange_codes = GetAvailableExchangeCodes(client);

            // List Inbound Routes
            ArrayList inbound_routes = GetInboundRoutes(client);

            // List available Edge Strategies
            ArrayList edge_strategies = GetEdgeStrategies(client);

            // Create an Inbound Route
            CreateInboundRoute(client);

            // Update Primary Route for a DID
            string route_id = "";

            foreach (JObject item in inbound_routes)
            {
                route_id = (string)item.GetValue("id");
                break;
            }
            UpdatePrimaryRoute(client, (string)our_numbers[0], (string)route_id);

            // Update the Failover Route for a DID
            for (int i = 1; i < inbound_routes.Count;)
            {
                JObject item = (JObject)inbound_routes[i];
                route_id = (string)item.GetValue("id");
                break;
            }
            UpdateFailoverRoute(client, (string)our_numbers[0], route_id);

            // Set an Alias for a DID
            SetDidAlias(client, (string)our_numbers[0], "Our DID");

            // Set DID Callback
            SetDidCallback(client, (string)our_numbers[0], "http://www.example.com/callback");

            //-------------------- E911 --------------------------
            // List E911 Records
            ArrayList our_e911s = GetE911Records(client);

            // Show E911 Details
            //ListE911Details(client, (string)our_e911s[0]);

            // Validate an E911 Address
            ValidateE911(client);

            // Create an E911 Address
            CreateE911Address(client);

            // Update an E911 Address
            UpdateE911Address(client, (string)our_e911s[0], "New Address");

            // Associate an E911 Address with a DID
            AssociateE911(client, (string)our_numbers[0], (string)our_e911s[0]);

            // List all DIDs associated with a specific E911 Record
            ListE911Associations(client, (string)our_e911s[0]);

            // Unassociate an E911 Address from a DID
            UnassociateE911(client, (string)our_numbers[0]);

            // Remove an E911 Record
            DeleteE911(client, (string)our_e911s[0]);

            //----------------- Messaging --------------------------

            // List all our SMS Messages
            ArrayList our_messages = GetMessages(client);

            string target_number = "YOUR MOBILE NUMBER HERE";

            // Send an SMS Message from our account
            SendSMS(client, (string)our_numbers[0], target_number);

            // Send an MMS Message from our account
            SendMMS(client, (string)our_numbers[0], target_number);

            // Look up a specific MDR
            GetMDRDetail(client, (string)our_messages[0]);

            // Set Account Level Callback URL for SMS
            SetAccountLevelCallback(client, "SMS_callback", "http://www.example/com/sms");

            // Set Account Level Callback URL for MMS
            SetAccountLevelCallback(client, "MMS_callback", "http://www.example/com/sms");

            // Set Account Level DLR Callback URL
            SetAccountLevelCallback(client, "DLR_callback", "http://www.example/com/sms");

            // Send an SMS Message and specify a custom DLR URL
            SendSMS(client, (string)our_numbers[0], target_number, "http://httpbin.org/status/:code");

            //----------------- CNAM --------------------------

            // Get all CNAM Records
            ArrayList our_cnams = GetCNAMRecords(client);

            // Get details about a single CNAM Record
            GetCNAMDetail(client, (string)our_cnams[0]);

            // Create a CNAM Record
            CreateCNAM(client, "Flowroute");

            // Associate a CNAM Record
            AssociateCNAM(client, (string)our_numbers[0], (string)our_cnams[0]);

            // Unassociate a CNAM
            UnassociateCNAM(client, (string)our_numbers[0]);

            // Delete a CNAM record
            DeleteCNAM(client, (string)our_cnams[0]);

            //----------------- Portability -----------------------

            // Check number portability
            List <string> numbers_to_check = new List <string>();

            numbers_to_check.Add("+14254664444");
            numbers_to_check.Add("+18827833439");
            var result = CheckPortability(client, numbers_to_check);
        }
Exemplo n.º 28
0
        private static void ReleaseDid(FlowrouteNumbersAndMessagingClient client, string did)
        {
            NumbersController numbers = client.Numbers;

            numbers.ReleaseDID(did);
        }