public void GetMMSSettingTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "GET",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/messaging/features/mms",
                    ContentToSend = new StringContent(TestXmlStrings.MmsFeatureResponse, Encoding.UTF8, "application/xml")
                }
            }))
            {
                var client = Helper.CreateClient();
                var r      = SipPeer.GetMMSSetting(siteId, sipPeerId).Result;
                if (server.Error != null)
                {
                    throw server.Error;
                }

                Assert.IsNotNull(r.MmsFeature);
                Assert.AreEqual("OFF", r.MmsFeature.Protocols.MM4.Tls);
                Assert.AreEqual(1, r.MmsFeature.Protocols.MM4.MmsMM4TermHosts.TermHosts.Length);
                Assert.AreEqual("206.107.248.58", r.MmsFeature.Protocols.MM4.MmsMM4TermHosts.TermHosts[0].HostName);

                Assert.AreEqual(2, r.MmsFeature.Protocols.MM4.MmsMM4OrigHosts.OrigHosts.Length);
                Assert.AreEqual("30.239.72.55", r.MmsFeature.Protocols.MM4.MmsMM4OrigHosts.OrigHosts[0].HostName);
                Assert.AreEqual(8726, r.MmsFeature.Protocols.MM4.MmsMM4OrigHosts.OrigHosts[0].Port);
                Assert.AreEqual(0, r.MmsFeature.Protocols.MM4.MmsMM4OrigHosts.OrigHosts[0].Priority);
            }
        }
        public void UpdateMMSSettingTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            var MmsFeature = new MmsFeature
            {
                Protocols = new Protocols
                {
                    MM4 = new MM4
                    {
                        Tls = "OFF"
                    }
                }
            };

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "PUT",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/messaging/features/mms",
                    ContentToSend = new StringContent(TestXmlStrings.SipPeerSmsFeatureResponse, Encoding.UTF8, "application/xml")
                }
            }))
            {
                var client = Helper.CreateClient();
                SipPeer.UpdateMMSSettings(siteId, sipPeerId, MmsFeature).Wait();
                if (server.Error != null)
                {
                    throw server.Error;
                }
            }
        }
        public void UpdateTerminationSettingsTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            var SipPeerTerminationSettings = new SipPeerTerminationSettings
            {
                VoiceProtocol = "HTTP",
                HttpSettings  = new HttpSettings
                {
                    HttpVoiceV2AppId = "469ebbac-4459-4d98-bc19-a038960e787f"
                }
            };

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "PUT",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/termination/settings",
                }
            }))
            {
                var client = Helper.CreateClient();
                SipPeer.UpdateTerminationSettings(client, siteId, sipPeerId, SipPeerTerminationSettings).Wait();
                if (server.Error != null)
                {
                    throw server.Error;
                }
            }
        }
예제 #4
0
        static async Task SipPeerDemo()
        {
            var sipPeerHost = ConfigurationManager.AppSettings["sipPeerHost"];
            var newSipPeer  = await SipPeer.Create(_client, new SipPeer()
            {
                IsDefaultPeer          = true,
                ShortMessagingProtocol = "SMPP",
                SiteId     = ConfigurationManager.AppSettings["selectedSiteId"],
                VoiceHosts = new []
                {
                    new HostData
                    {
                        HostName = sipPeerHost
                    }
                },
                SmsHosts = new []
                {
                    new HostData
                    {
                        HostName = sipPeerHost
                    }
                },
                TerminationHosts = new TerminationHost[]
                {
                    new TerminationHost()
                    {
                        HostName = sipPeerHost,
                        Port     = 5060
                    }
                }
            });

            Console.WriteLine("New SipPeer Created, ID: {0}", newSipPeer.PeerId);
        }
        public void UpdateApplicationSettingTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            var ApplicationSettings = new ApplicationsSettings
            {
                HttpMessagingV2AppId = "c3b0f805-06ab-4d36-8bf4-8baff7623398"
            };

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "PUT",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/messaging/applicationSettings",
                    ContentToSend = new StringContent(TestXmlStrings.ApplicationSettingsResponse, Encoding.UTF8, "application/xml")
                }
            }))
            {
                var client = Helper.CreateClient();
                SipPeer.UpdateApplicationSettings(siteId, sipPeerId, ApplicationSettings).Wait();
                if (server.Error != null)
                {
                    throw server.Error;
                }
            }
        }
        public void GetTerminationSettingsTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "GET",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/termination/settings",
                    ContentToSend = new StringContent(TestXmlStrings.SipPeerTerminationSettingResponse, Encoding.UTF8, "application/xml")
                }
            }))
            {
                var client = Helper.CreateClient();
                var r      = SipPeer.GetTerminationSetting(siteId, sipPeerId).Result;
                if (server.Error != null)
                {
                    throw server.Error;
                }

                Assert.IsNotNull(r.SipPeerTerminationSettings);
                Assert.AreEqual("HTTP", r.SipPeerTerminationSettings.VoiceProtocol);
                Assert.AreEqual("469ebbac-4459-4d98-bc19-a038960e787f", r.SipPeerTerminationSettings.HttpSettings.HttpVoiceV2AppId);
            }
        }
 public void GetTns2WithXmlTest()
 {
     using (var server = new HttpServer(new RequestHandler
     {
         EstimatedMethod = "GET",
         EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers/10/tns?page=1&size=50000", Helper.AccountId),
         ContentToSend = new StringContent(TestXmlStrings.ValidSipPeerTnsResponseXml, Encoding.UTF8, "application/xml")
     }))
     {
         var client = Helper.CreateClient();
         var peer   = new SipPeer
         {
             Id     = "10",
             SiteId = "1"
         };
         peer.SetClient(client);
         var result = peer.GetTns().Result;
         if (server.Error != null)
         {
             throw server.Error;
         }
         Assert.AreEqual(17, result.Length);
         Assert.AreEqual("3034162216", result[0].FullNumber);
         Assert.AreEqual("3034162218", result[1].FullNumber);
     }
 }
        public void UpdateTnsTest()
        {
            var item = new SipPeerTelephoneNumber
            {
                FullNumber  = "Number",
                RewriteUser = "******"
            };

            using (var server = new HttpServer(new RequestHandler
            {
                EstimatedMethod = "PUT",
                EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers/10/tns/00", Helper.AccountId),
                EstimatedContent = Helper.ToXmlString(item)
            }))
            {
                var client = Helper.CreateClient();
                var peer   = new SipPeer
                {
                    Id     = "10",
                    SiteId = "1"
                };
                peer.SetClient(client);
                peer.UpdateTns("00", item).Wait();
                if (server.Error != null)
                {
                    throw server.Error;
                }
            }
        }
        public void GetTnsTest()
        {
            var item = new SipPeerTelephoneNumber
            {
                FullNumber  = "Number",
                RewriteUser = "******"
            };
            var response = new SipPeerTelephoneNumberResponse
            {
                SipPeerTelephoneNumber = item
            };

            using (var server = new HttpServer(new RequestHandler
            {
                EstimatedMethod = "GET",
                EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers/10/tns/00", Helper.AccountId),
                ContentToSend = Helper.CreateXmlContent(response)
            }))
            {
                var client = Helper.CreateClient();
                var peer   = new SipPeer
                {
                    Id     = "10",
                    SiteId = "1"
                };
                peer.SetClient(client);
                var result = peer.GetTns("00").Result;
                if (server.Error != null)
                {
                    throw server.Error;
                }
                Helper.AssertObjects(item, result);
            }
        }
예제 #10
0
        /// <summary>
        /// This method will create a Bandwidth
        ///
        /// Site which on the Bandwidth Console is a Subaccount
        ///
        /// SipPeer which on the Bandwidth Console is a location
        /// </summary>
        /// <returns></returns>
        static async Task createSiteAndSipPeer()
        {
            site = await Site.Create(client, new Site
            {
                Name    = "BandwidthApplicationSubAccount",
                Address = new Address
                {
                    City         = "RALEIGH",
                    HouseNumber  = "900",
                    StateCode    = "NC",
                    StreetName   = "Main Campus Dr",
                    StreetSuffix = "DR",
                    Zip          = "27606",
                    AddressType  = "Billing"
                }
            });

            Console.WriteLine($"Created Site/Subaccount with ID: {site.Id}");

            sipPeer = await SipPeer.Create(client, new SipPeer
            {
                SiteId        = site.Id,
                Name          = "BandwidthApplicationLocation",
                IsDefaultPeer = true
            });

            Console.WriteLine($"Created SipPeer/Location with ID: {sipPeer.Id}");
        }
        public void GetWithDefaultClientTest()
        {
            var item = new SipPeer
            {
                Id            = "10",
                SiteId        = "1",
                Name          = "test",
                IsDefaultPeer = true
            };

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "GET",
                    EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers/10", Helper.AccountId),
                    ContentToSend = Helper.CreateXmlContent(new SipPeerResponse {
                        SipPeer = item
                    })
                }
            }))
            {
                var r = SipPeer.Get("1", "10").Result;
                if (server.Error != null)
                {
                    throw server.Error;
                }
                Helper.AssertObjects(item, r);
            }
        }
        public void GetApplicationSettingTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "GET",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/messaging/applicationSettings",
                    ContentToSend = new StringContent(TestXmlStrings.ApplicationSettingsResponse, Encoding.UTF8, "application/xml")
                }
            }))
            {
                var client = Helper.CreateClient();
                var r      = SipPeer.GetApplicationSetting(siteId, sipPeerId).Result;
                if (server.Error != null)
                {
                    throw server.Error;
                }

                Assert.IsNotNull(r.ApplicationsSettings);
                Assert.AreEqual("4a4ca6c1-156b-4fca-84e9-34e35e2afc32", r.ApplicationsSettings.HttpMessagingV2AppId);
            }
        }
        public void UpdateSMSSettingTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            var SipPeerSmsFeature = new SipPeerSmsFeature
            {
                SipPeerSmsFeatureSettings = new SipPeerSmsFeatureSettings
                {
                    TollFree = true
                },
                SmppHosts = new SmppHost[]
                {
                    new SmppHost
                    {
                        HostName = "Host"
                    }
                }
            };

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "PUT",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/messaging/features/sms",
                    ContentToSend = new StringContent(TestXmlStrings.SipPeerSmsFeatureResponse, Encoding.UTF8, "application/xml")
                }
            }))
            {
                var client = Helper.CreateClient();
                var r      = SipPeer.UpdateSMSSettings(siteId, sipPeerId, SipPeerSmsFeature).Result;
                if (server.Error != null)
                {
                    throw server.Error;
                }

                Assert.IsNotNull(r.SipPeerSmsFeature);
                Assert.AreEqual(true, r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.TollFree);
                Assert.AreEqual(true, r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.ShortCode);
                Assert.AreEqual("DefaultOff", r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.A2pLongCode);
                Assert.AreEqual("SomeMessageClass", r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.A2pMessageClass);
                Assert.AreEqual("SomeCampaignId", r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.A2pCampaignId);
                Assert.AreEqual("SMPP", r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.Protocol);
                Assert.AreEqual(true, r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.Zone1);
                Assert.AreEqual(true, r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.Zone2);
                Assert.AreEqual(true, r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.Zone3);
                Assert.AreEqual(true, r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.Zone4);
                Assert.AreEqual(true, r.SipPeerSmsFeature.SipPeerSmsFeatureSettings.Zone5);

                Assert.AreEqual(2, r.SipPeerSmsFeature.SmppHosts.Length);
                Assert.AreEqual("RECEIVER_ONLY", r.SipPeerSmsFeature.SmppHosts[0].ConnectionType);
                Assert.AreEqual("54.10.88.146", r.SipPeerSmsFeature.SmppHosts[0].HostName);
                Assert.AreEqual(0, r.SipPeerSmsFeature.SmppHosts[0].Priority);
            }
        }
예제 #14
0
        /// <summary>
        /// Using the Site and SipPeer created in the createSiteAndSipPeer()
        /// this method will create a Messaging application and associate it with
        /// the newly created SipPeer (location).
        /// It will also add the SMS and MMS features toteh SipPeer (location)
        /// This makes it possible for the SipPeer (location) to be used by a Messaging Application
        /// </summary>
        /// <returns></returns>
        static async Task createMessageApplication()
        {
            var appMsg = await Application.Create(client, new Application
            {
                AppName        = "BandwidthMsgApplication",
                ServiceType    = "Messaging-V2",
                MsgCallbackUrl = "https://yourcallback.com"
            });

            Console.WriteLine($"Created Messaging Application with ID: {appMsg.Application.ApplicationId}");

            var featureSmsMsg = await SipPeer.CreateSMSSettings(client, site.Id, sipPeer.Id, new SipPeerSmsFeature
            {
                SipPeerSmsFeatureSettings = new SipPeerSmsFeatureSettings
                {
                    TollFree  = false,
                    ShortCode = false,
                    Protocol  = "HTTP",
                    Zone1     = true,
                    Zone2     = false,
                    Zone3     = false,
                    Zone4     = false,
                    Zone5     = false,
                },
                HttpSettings = new HttpSettings
                {
                }
            });

            Console.WriteLine("Updated SipPeer/Location with SMS Settings.");

            var featureMmsMsg = await SipPeer.CreateMMSSettings(client, site.Id, sipPeer.Id, new MmsFeature
            {
                MmsSettings = new MmsSettings
                {
                    Protocol = "HTTP"
                },
                Protocols = new Protocols
                {
                    HTTP = new HTTP {
                        HttpSettings = new HttpSettings
                        {
                        }
                    }
                }
            });

            Console.WriteLine("Updated SipPeer/Location with MMS Settings.");

            await SipPeer.UpdateApplicationSettings(client, site.Id, sipPeer.Id, new ApplicationsSettings
            {
                HttpMessagingV2AppId = appMsg.Application.ApplicationId
            });

            Console.WriteLine("Updated SipPeer/Location with Messaging Application");
        }
예제 #15
0
        public void CreateSipPeerTest()
        {
            var item = new SipPeer
            {
                Name          = "test",
                IsDefaultPeer = true
            };
            var createdItem = new SipPeer
            {
                Id            = "1",
                SiteId        = "1",
                Name          = "test",
                IsDefaultPeer = true
            };

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "POST",
                    EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers", Helper.AccountId),
                    EstimatedContent = Helper.ToXmlString(item),
                    HeadersToSend = new Dictionary <string, string>
                    {
                        { "Location", string.Format("/v1.0/accounts/{0}/sites/1/sippeers/10", Helper.AccountId) }
                    },
                    StatusCodeToSend = 201
                },
                new RequestHandler
                {
                    EstimatedMethod = "GET",
                    EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers/10", Helper.AccountId),
                    ContentToSend = Helper.CreateXmlContent(new SipPeerResponse {
                        SipPeer = createdItem
                    })
                }
            }))
            {
                var client = Helper.CreateClient();
                var i      = new Site {
                    Id = "1"
                };
                i.SetClient(client);
                var r = i.CreateSipPeer(item).Result;
                Helper.AssertObjects(createdItem, r);
                if (server.Error != null)
                {
                    throw server.Error;
                }
            }
        }
        public void ListTest()
        {
            var items = new[] {
                new SipPeer
                {
                    Id            = "10",
                    SiteId        = "1",
                    Name          = "test",
                    IsDefaultPeer = true
                },
                new SipPeer
                {
                    Id            = "11",
                    SiteId        = "1",
                    Name          = "test2",
                    IsDefaultPeer = false
                }
            };

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "GET",
                    EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers", Helper.AccountId),
                    ContentToSend = Helper.CreateXmlContent(new SipPeersResponse {
                        SipPeers = items
                    })
                }
            }))
            {
                var client = Helper.CreateClient();
                var r      = SipPeer.List(client, "1").Result;
                if (server.Error != null)
                {
                    throw server.Error;
                }
                Helper.AssertObjects(items[0], r[0]);
                Helper.AssertObjects(items[1], r[1]);
            }
        }
예제 #17
0
        /// <summary>
        /// Using the Site and SipPeer created in the createSiteAndSipPeer()
        /// this method will create a Voice application and associate it with
        /// the newly created SipPeer (location).
        /// This is done through the SipPeer by setting the Origination Settings
        /// </summary>
        /// <returns></returns>
        static async Task createVoiceApplication()
        {
            var appVoice = await Application.Create(client, new Application
            {
                AppName     = "BandwidthVoiceApplication",
                ServiceType = "Voice-V2",
                CallInitiatedCallbackUrl = "https://yourcallback.com"
            });

            Console.WriteLine($"Created Voice Application with ID: {appVoice.Application.ApplicationId}");

            var featureVoice = await SipPeer.SetOriginationSettings(client, site.Id, sipPeer.Id, new SipPeerOriginationSettings
            {
                VoiceProtocol = "HTTP",
                HttpSettings  = new HttpSettings
                {
                    HttpVoiceV2AppId = appVoice.Application.ApplicationId
                }
            });

            Console.WriteLine("Updated SipPeer/Location with Voice Application")
        }
        public void DeleteMMSSettingTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "DELETE",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/messaging/features/mms",
                }
            }))
            {
                var client = Helper.CreateClient();
                SipPeer.DeleteMMSSettings(siteId, sipPeerId).Wait();
                if (server.Error != null)
                {
                    throw server.Error;
                }
            }
        }
        public void RemoveApplicationSettingsTest()
        {
            string siteId    = "1";
            string sipPeerId = "test";

            using (var server = new HttpServer(new[]
            {
                new RequestHandler
                {
                    EstimatedMethod = "PUT",
                    EstimatedPathAndQuery = $"/v1.0/accounts/{Helper.AccountId}/sites/{siteId}/sippeers/{sipPeerId}/products/messaging/applicationSettings",
                    EstimatedContent = TestXmlStrings.RemoveApplicationResponse
                }
            }))
            {
                var client = Helper.CreateClient();
                SipPeer.RemoveApplicationSettings(siteId, sipPeerId).Wait();
                if (server.Error != null)
                {
                    throw server.Error;
                }
            }
        }
 public void MoveTnsTest()
 {
     using (var server = new HttpServer(new RequestHandler
     {
         EstimatedMethod = "POST",
         EstimatedPathAndQuery = string.Format("/v1.0/accounts/{0}/sites/1/sippeers/10/movetns", Helper.AccountId),
         EstimatedContent = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<SipPeerTelephoneNumbers>\r\n  <FullNumber>111</FullNumber>\r\n  <FullNumber>222</FullNumber>\r\n</SipPeerTelephoneNumbers>"
     }))
     {
         var client = Helper.CreateClient();
         var peer   = new SipPeer
         {
             Id     = "10",
             SiteId = "1"
         };
         peer.SetClient(client);
         peer.MoveTns("111", "222").Wait();
         if (server.Error != null)
         {
             throw server.Error;
         }
     }
 }