This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Feb 1, 2024. It is now read-only.

Repository files navigation

Bandwidth C# IRIS Client

Installing

Bandwidth C# SDK uses Nuget for Package Management

Run

nuget install Bandwidth.Iris

Or install Bandwidth.Iris via UI in Visual Studio

Getting Started

  • Install Bandwidth.Iris
  • Get an account ID, user name and password from Bandwidth for your account
  • Configure the Client
varclient=Client.GetInstance("accountId","username","password","apiEndpoint")//Or//Uses the System Environment Variables as detailed belowvarclient=Client.GetInstance()
Environment VariableDefinition
BANDWIDTH_API_ACCOUNT_IDYour Bandwidth Account Id
BANDWIDTH_API_USERNAMEYour Bandwidth username
BANDWIDTH_API_PASSWORDYour Bandwidth password
BANDWIDTH_API_ENDPOINThttps://dashboard.bandwidth.com/api
BANDWIDTH_API_VERSIONv1.0

Usage

All static functions support 2 ways to be called: With a client instance as the first arg or without the client instance (default client instance will then be used)

varsite=awaitSite.get(client,"siteId");//Orvarsite=awaitSite.get("siteId");//This will use the default client where supported

API Objects

General Principles

When using the objects, there are generally static methods for Create, Get and List of each entity. Once you have an instance of any entity, you can call the instance methods of that entity to perform additional operations.

varsites=awaitSite.List(client);varsite=awaitSite.Get(client,"siteId");varnewSite=awaitSite.Create(client,newSite(){Name="MyTest Site"});varsipPeers=awaitsite.GetSipPeers();site.Delete();

Error Handling Tips

When making making API calls the client can throw an AggregateException this will normally contain a BandwidthIrisException. A suggested way to handle the API calls is to catch the AggregateException that API calls can create and #Handle the BandwidthIrisException. Example:

try{varsite=awaitSite.Get(client,"siteId");}catch(AggregateExceptione){e.Handle((x)=>{if(xisBandwidthIrisException){//Do something returntrue;}returnfalse;});}

Available NpaNxx

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varitems=awaitAvailableNpaNxx.List(_client,query);foreach(AvailableNpaNxxnpaNxxinitems){Console.WriteLine(string.Format("NpaNxx: {0}",npaNxx.Npa+npaNxx.Nxx));}

Available Numbers

varquery=newDictionary<string,object>();query.Add("areaCode","805");query.Add("quantity",3);varresult=awaitAvailableNumbers.List(_client,query);foreach(stringnumberinresult.TelephoneNumberList){Console.WriteLine(string.Format("Number: {0}",number));}

Cities

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitCity.List(_client,query);foreach(Citycityinresult){Console.WriteLine("City Name: {0}",city.Name);}

Rate Centers

varquery=newDictionary<string,object>();query.Add("state","CA");query.Add("available",true);varresult=awaitRateCenter.List(query);foreach(RateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Covered Rate Centers

varquery=newDictionary<string,object>();query.Add("zip","27609");varresult=awaitCoveredRateCenter.List(_client,query);foreach(CoveredRateCenterrateCenterinresult){Console.WriteLine("RateCenter Name: {0}",rateCenter.Name);}

Orders

Create Order

varresult=awaitOrder.Create(_client,newOrder{Name="Test Order",SiteId="SiteId",CustomerOrderId="SomeCustomerId",LataSearchAndOrderType=newLataSearchAndOrderType{Lata="224",Quantity=1}});

Get Order

varorder=awaitOrder.Get("orderId");

Order Instance Methods

order.Update()
order.AddNote(varnote);order.GetNotes();order.GetAreaCodes();order.GetNpaNxx();order.GetTotals();order.GetTns();order.GetHistory();

List Orders

varquery=newDictionary<string,object>();query.Add("page","1");query.Add("size","10");query.Add("zip","27516");OrderListResponseorderListResponse=awaitOrder.List(client,query);

OrderListResponse

orderListResponse.Orders.TotalCount;orderListResponse.Orders.Links.First;orderListResponse.Orders.Links.Next;orderListResponse.Orders.Links.Last;orderListResponse.Orders.OrderDetails.Count;orderListResponse.Orders.OrderDetails[0].CountOfTns;orderListResponse.Orders.OrderDetails[0].OrderStatus;orderListResponse.Orders.OrderDetails[0].OrderId;orderListResponse.Orders.OrderDetails[0].LastModifiedDate;orderListResponse.Orders.OrderDetails[0].OrderDate;orderListResponse.Orders.OrderDetails[0].UserId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.States[0].State;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.RateCenters[0].RateCenter;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Cities[0].City;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Tiers[0].Tier;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors.Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].Count;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorId;orderListResponse.Orders.OrderDetails[0].TelephoneNumberDetailsWithCount.Vendors[0].VendorName;

Applications

Create Application

varapplication=newApplication{ApplicationId="d3e418e9-1833-49c1-b6c7-ca1700f79586",ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.Create(client,application);

List Applications

varresponse=awaitApplication.List(client);

Get Application

varresponse=awaitApplication.Get(client,applicationId);

Partial Update Application

varapplication=newApplication{AppName="XgRIdP"};varresponse=awaitApplication.PartialUpdate(client,applicationId,application);

Full Update Application

varapplication=newApplication{ServiceType="Voice-V2",AppName="v1",CallbackCreds=newCallbackCreds{UserId="login123"},CallStatusMethod="GET",CallInitiatedMethod="GET",CallInitiatedCallbackUrl="https://a.com",CallStatusCallbackUrl="https://b.com"};varresponse=awaitApplication.FullUpdate(client,applicationId,application);

Delete Application

varresponse=awaitApplication.Delete(client,applicationId);

List Application's Associated Peers

varresponse=awaitApplication.ListAssociatedSippeers(client,applicationId);

Port Ins

Port In Check

For LNP Checker, send one number at a time when using the C# SDK.

Example request and error handling iterating over each error in the response.

try{varresult=awaitLnpChecker.Check(client,newstring[]{"555555"});Console.WriteLine(result);}catch(Bandwidth.Iris.BandwidthIrisExceptionerror){Console.WriteLine(error.Message);}catch(Exceptione){ExceptioninnerEx=e;while(innerEx!=null){stringmsg=innerEx.Message;Console.WriteLine(msg);innerEx=innerEx.InnerException;}}

Create PortIn

vardata=newPortIn{BillingTelephoneNumber="+1-202-555-0158",Subscriber=newSubscriber{SubscriberType="BUSINESS",BusinessName="Company",FirstName="John",LastName="Doe",ServiceAddress=newAddress{City="City",StateCode="State",Country="Country"}},PeerId=sipPeer.Id,SiteId=site.Id};varorder=awaitPortIn.Create(_client,data);

Get PortIn

varportInOrder=PortIn.Get("orderId");

Put File Metadata

varportIn=newPortIn{Id="1"};portIn.SetClient(client);varfileMetadata=newFileMetadata{DocumentType="INVOICE",DocumentName="docName"};varr=portIn.PutFileMetadata("test",fileMetadata).Result;

PortIn Instance Methods

portInOrder.Update();portInOrder.Delete();portInOrder.AddNote(Noten);portInOrder.GetNotes();

Port In LOA Management

portInOrder.CreateFile(Streams,stringmediaType);portInOrder.CreateFile(byte[]buffer,stringmediaType);portInOrder.UpdateFile(stringfileName,Streams,stringmediaType);portInOrder.UpdateFile(stringfileName,byte[]buffer,stringmediaType);portInOrder.GetFileMetaData(stringfileName);PutFileMetadata(stringfileName,FileMetadatafileMetadata);portInOrder.DeleteFile(stringfileName);portInOrder.GetFiles(boolmetaData);portInOrder.GetFile(stringfileName);

Sites

Create Site

varnewSite=awaitSite.Create(_client,newSite(){Name="Csharp Test Site",Description="A site from the C# Example",Address=newAddress(){HouseNumber="123",StreetName="Anywhere St",City="Raleigh",StateCode="NC",Zip="27609",AddressType="Service"}});

List all sites

varsites=awaiteSite.List();

Deleting a Site

site.Delete();

Sip Peers

Create a Sip Peer

varsipPeerHost="1.2.3.4";varnewSipPeer=awaitSipPeer.Create(_client,newSipPeer(){IsDefaultPeer=true,ShortMessagingProtocol="SMPP",SiteId= "SiteId,
VoiceHosts=new[]{newHostData{HostName=sipPeerHost}},SmsHosts=new[]{newHostData{HostName=sipPeerHost}},TerminationHosts=newTerminationHost[]{newTerminationHost(){HostName=sipPeerHost,Port=5060}}});

Get Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");

Delete Sip Peer

varsipPeer=awaitSipPeer.Get("sipPeerId");sipPeer.Delete();

Sip Peer TN Methods

sipPeer.GetTn(number);sipPeer.UpdateTns(number,data);sipPeer.MoveTns(newstring[] numbers);

Get Origination Settings for Sip Peer

varsipPeerOriginationSettingsResponse=awaitSipPeer.GetOriginationSettings(siteId,sipPeerId);

Set Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerOriginationSettingsResponse=awaitSipPeer.SetOriginationSettings(siteId,sipPeerId,sipPeerOriginationSettings);

Update Origination Settings for Sip Peer

varsipPeerOriginationSettings=newSipPeerOriginationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateOriginationSettings(siteId,sipPeerId,SipPeerOriginationSettings).Wait();

Get Termination Settings for Sip Peer

varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId);

Set Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};varsipPeerTerminationSettingsResponse=awaitSipPeer.GetTerminationSetting(siteId,sipPeerId,sipPeerTerminationSettings);

Update Termination Settings for Sip Peer

varsipPeerTerminationSettings=newSipPeerTerminationSettings{VoiceProtocol="HTTP",HttpSettings=newHttpSettings{HttpVoiceV2AppId="469ebbac-4459-4d98-bc19-a038960e787f"}};SipPeer.UpdateTerminationSettings(client,siteId,sipPeerId,SipPeerTerminationSettings).Wait();

Get SMS Feature Settings for Sip Peer

varsipPeerSmsFeatureResponse=awaitSipPeer.GetSMSSetting(siteId,sipPeerId);

Set SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.CreateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Update SMS Feature Setting for Sip Peer

varsipPeerSmsFeature=newSipPeerSmsFeature{SipPeerSmsFeatureSettings=newSipPeerSmsFeatureSettings{TollFree=true},SmppHosts=newSmppHost[]{newSmppHost{HostName="Host"}}};varsipPeerSmsFeatureResponse=awaitSipPeer.UpdateSMSSettings(siteId,sipPeerId,sipPeerSmsFeature);

Delete SMS Feature Settings for Sip Peer

SipPeer.DeleteSMSSettings(siteId,sipPeerId).Wait();

Get MMS Feature Settings for Sip Peer

varMmsFeatureResponse=awaitSipPeer.GetMMSSetting(siteId,sipPeerId);

Set MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};varMmsFeatureResponse=awaitSipPeer.CreateMMSSettings(siteId,sipPeerId,mmsFeature);

Update MMS Feature Setting for Sip Peer

varmmsFeature=newMmsFeature{Protocols=newProtocols{MM4=newMM4{Tls="OFF"}}};SipPeer.UpdateMMSSettings(siteId,sipPeerId,MmsFeature).Wait();

Delete MMS Feature Settings for Sip Peer

SipPeer.DeleteMMSSettings(siteId,sipPeerId).Wait();

Get Application Settings

varapplicationsSettingsResponse=awaitSipPeer.GetApplicationSetting(siteId,sipPeerId);

Update Application Settings

varapplicationSettings=newApplicationsSettings{HttpMessagingV2AppId="c3b0f805-06ab-4d36-8bf4-8baff7623398"};SipPeer.UpdateApplicationSettings(siteId,sipPeerId,applicationSettings).Wait();

Remove Application Settings

SipPeer.RemoveApplicationSettings(siteId,sipPeerId).Wait();

Subscriptions

Create Subscription

varsubscription=awaitSubscription.Create(newSubscription(){OrderType="orders",OrderId="100",EmailSubscription=newEmailSubscription{Email="test@test",DigestRequested="NONE"}};

Get Subscription

varsubscription=awaitSubscription.Get("subscriptionId");

List Subscriptions

var list = await Subscription.List(new Dictionary<string,object>{{"orderType", "orders"}})

Subscription Instance Methods

subscription.Update();subscription.Delete();

TNs

Get TN Details

varresult=awaitTn.Get("9195551212");vardetails=awaitresult.GetDetails();

List TNs

varresult=awaitTn.List(newDictionary<string,object>{{{"npa","919"}})

TN Reservation

Create TN Reservation

varitem=awaitTnReservation.Create(newTnReservation(){AccountId="accountId",ReservedTn="9195551212",ReservationExpires=0};

Get TN Reservation

varreservation=awaitTnReservation.Get("Id");

Delete TN Reservation

reservation.Delete();

Dlda

Create Ddla

vardlda=newDlda{CustomerOrderId="Your Order Id",DldaTnGroups=new[]{newDldaTnGroup{TelephoneNumbers=newTelephoneNumbers{Numbers=new[]{"9195551212"}},SubscriberType="RESIDENTIAL",ListingType="LISTED",ListingName=newListingName{FirstName="John",LastName="Smith"},ListAddress=true,Address=newAddress{HouseNumber="123",StreetName="Elm",StreetSuffix="Ave",City="Carpinteria",StateCode="CA",Zip="93013",AddressType="DLDA"}}}};awaitDlda.Create(dlda);

Get Dlda

vardlda=awaitDlda.Get(id);

Get Dlda History

varlist=awaitDlda.GetHistory();

Lidb

Create

varitem=newLidb{CustomerOrderId="A Test order",LidbTnGroups=new[]{newLidbTnGroup{TelephoneNumbers=new[]{"8048030097","8045030098"},SubscriberInformation="Joes Grarage",UseType="RESIDENTIAL",Visibility="PUBLIC"}}};awaitLidb.Create(item);

Get Lidb

varitem=awaitLidb.Get(id);

List Lidbs

varlist=awaitLidb.List();

LineOptionOrder

Create an order

varitem=newTnLineOptions{TelephoneNumber="5209072451",CallingNameDisplay="off"};varnumbers=awaitLineOptionOrder.Create(item);

InServiceNumber

List

varlist=awaitInServiceNumber.List(newDictionary<string,object>{{"city","Cary"}});

Get totals

vartotals=awaitInServiceNumber.GetTotals();

DiscNumber

List numbers

varlist=awaitDiscNumber.List(newDictionary<string,object>{{"type","NPA"}});

Get totals

vartotals=awaitDiscNumber.GetTotals();

Host

List hosts

varlist=awaitHost.List(newDictionary<string,object>{{"type","SMS"}});

ImportTnOrders

Create A ImportTnOrders Reqeust

varorder=newImportTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account",SipPeerId=1,SiteId=2};varresponse=awaitImportTnOrder.Create(client,order);

Retrieve ImportOrders List

varresponse=awaitImportTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get ImportOrder by OrderId

varresponse=awaitImportTnOrder.Get(client,orderId);

Get ImportOrder History by OrderId

varresponse=awaitImportTnOrder.GetHistory(client,orderId)

RemoveImportedTnOrders

Create A ImportTnOrders Reqeust

varorder=newRemoveImportedTnOrder{OrderId="fbd17609-be44-48e7-a301-90bd6cf42248",AccountId="account"};varresponse=awaitRemoveImportedTnOrder.Create(client,order);

Retrieve RemoveImportedTnOrders List

varresponse=awaitRemoveImportedTnOrder.List(client,newDictionary<string,object>{{"accountId","1"}});

Get RemoveImportedTnOrder by OrderId

varresponse=awaitRemoveImportedTnOrder.Get(client,orderId);

Get RemoveImportedTnOrder History by OrderId

varresponse=awaitRemoveImportedTnOrder.GetHistory(client,orderId)

ImportTnChecker

Request Portability Information on a Set of TNs

varpayload=newImportTnCheckerPayload{TelephoneNumbers=newTelephoneNumber[]{newTelephoneNumber{FullNumber="3032281000"}}};varresponse=awaitImportTnChecker.Create(client,payload);

Csrs

Create Csrs Order

varcsr=newCsr{AccountId="accountId"//Additional information};varresponse=awaitCsr.Create(client,csr);

Get Csr Order

varresponse=awaitCsr.Get(client,orderId);

Replace Csr Order

varcsr=newCsr{AccountId="new accountId"//Additional information};varresponse=awaitCsr.Replace(client,orderId,csr);

List Notes on Csr Order

varresponse=awaitCsr.ListNotes(client,orderId);

Create Note on Csr Order

varnote=newNote{Description="Description goes here"};Csr.CreateNote(client,orderId,note);

Update Note on Csr Order

varnote=newNote{Description="Updated description goes here"};Csr.UpdateNote(client,orderId,noteId,note);

Emergency Notifications

Get Recipients

varresult=awaitEmergencyNotification.GetRecipients(client,orderId);

List Recipients

varresult=awaitEmergencyNotification.ListRecipients(client,newDictionary<string,Object>{{"EnrNotificationType","SMS"}});

Create Recipients

varresult=awaitEmergencyNotification.CreateRecipients(client,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Update Recipients

varresult=awaitEmergencyNotification.UpdateRecipients(client,id,newEmergencyNotificationRecipient{ModifiedByUser="testuser",Type="EMAIL",EmailAddress="test@example.com"});

Delete Recipients

EmergencyNotification.DeleteRecipients(client,id).Wait();

Get Group Orders

varresult=awaitEmergencyNotification.GetGroupOrders(client,id);

List Group Orders

varresult=awaitEmergencyNotification.ListGroupOrders(client,newDictionary<string,Object>{{"EnrNotificationType","TTS"}});

Create Group Order

varresult=awaitEmergencyNotification.CreateGroupOrders(client,newEmergencyNotificationGroupOrder{CustomerOrderId="test",AddedEmergencyNotificationGroup=newEmergencyNotificationGroup{CreatedBy="samwise"}});

Get Groups

varresult=awaitEmergencyNotification.GetGroups(client,id);

List Groups

varresult=awaitEmergencyNotification.ListGroups(client,newDictionary<string,Object>{{"EnrDetails","true"},{"EnrEmailAddress","test@example.com"}});

Get Endpoint Order

varresult=awaitEmergencyNotification.GetEndpointOrders(client,id);

List Endpoint Orders

varresult=awaitEmergencyNotification.ListEndpointOrders(client,newDictionary<string,Object>{{"EepTns","404"}});

Create Endpoint Order

varresult=awaitEmergencyNotification.CreateEndpointOrders(client,endpointOrder);

Aeuis

Get Aeui

varresponse=awaitAeui.Get(client,id);

List Aeui

varresponse=awaitAeui.List(client);

TN Options

Create TN Option

Create TN Option order(s) to assign line features to the telephone number

Add PortOutPasscode

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{PortOutPasscode="a1b2c3",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Enable SMS

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{Sms="on",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Add CallForward Number

varorder=newTnOptionOrder{CustomerOrderId="customerOrderId",TnOptionGroups=newList<TnOptionGroup>{newTnOptionGroup{CallForward="6042661720",TelephoneNumbers=newList<string>{"2018551020","2018551025"}}}};varresult=awaitTnOptions.Create(client,order);

Get Tn Option Order

Get Tn Option Order (No Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){//No error thrown}Console.WriteLine(response.OrderCreateDate);//"2016-01-15T11:22:58.789Z"

Get Tn Option Order (With Error)

TnOptionOrderresponse=null;try{response=awaitTnOptions.Get(client,orderId);}catch(Exceptionex){if(ex.InnerExceptionisBandwidthIrisException){varexInner=(BandwidthIrisException)ex.InnerException;Console.WriteLine(exInner.Message);//"Telephone number is not available"Console.WriteLine(exInner.Body);// <TnOptionOrders><TotalCount>2</TotalCount><TnOptionOrder>..........</TnOptionOrder></TnOptionOrders>}}

List Tn Option Orders

varresult=awaitTnOptions.List(client,newDictionary<string,Object>{{"status","9199918388"}});

About

Dot Net SDK for Bandwidth's Phone Number Dashboard (AKA Dashboard, Iris)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages