Skip to content
Snippets Groups Projects
Commit 22fe4e03 authored by sven4ask's avatar sven4ask
Browse files

Merge branch 'hotfix_1.6.11'

parents 4ab9a917 0389ff42
No related branches found
Tags 1.6.10
No related merge requests found
DialogHandler
https://github.com/almende/dialog/
27-3-2015 version 1.6.11
- feature: buy multiple twilio numbers when creating the adapter
20-3-2015 version 1.6.10
- feature: buy twilio number when creating the adapter
......
package com.almende.dialog.adapter.tools;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.almende.dialog.Settings;
......@@ -9,8 +11,10 @@ import com.twilio.sdk.TwilioRestException;
import com.twilio.sdk.resource.factory.CallFactory;
import com.twilio.sdk.resource.factory.IncomingPhoneNumberFactory;
import com.twilio.sdk.resource.instance.Account;
import com.twilio.sdk.resource.instance.AvailablePhoneNumber;
import com.twilio.sdk.resource.instance.Call;
import com.twilio.sdk.resource.instance.IncomingPhoneNumber;
import com.twilio.sdk.resource.list.AvailablePhoneNumberList;
public class Twilio {
......@@ -90,4 +94,20 @@ public class Twilio {
return null;
}
public List<String> getFreePhoneNumbers(String countryCode, String contains) {
HashMap<String, String> params = new HashMap<String, String>();
if(contains!=null) {
params.put( "Contains", contains );
}
List<String> availableNumbers = new ArrayList<String>();
AvailablePhoneNumberList numbers = client.getAccount().getAvailablePhoneNumbers(params, countryCode, "Local");
for (AvailablePhoneNumber number : numbers) {
availableNumbers.add( number.getPhoneNumber() );
}
return availableNumbers;
}
}
......@@ -258,6 +258,28 @@ public class AdapterAgent extends Agent implements AdapterAgentInterface {
return newConfig.getConfigId();
}
public Map<String, String> createMultipleTwilioAdapters(@Name("accountSid") String accountSid, @Name("authToken") String authToken,
@Name("count") Integer count, @Name("countryCode") String countryCode,
@Name("contains") @Optional String contains, @Name("preferredLanguage") @Optional String preferredLanguage,
@Name("accountId") @Optional String accountId, @Name("anonymous") @Optional Boolean anonymous) throws Exception {
Map<String, String> boughtNumbers = new HashMap<String,String>();
Twilio twilio = new Twilio(accountSid, authToken);
List<String> availableNumbers = twilio.getFreePhoneNumbers( countryCode, contains );
if(availableNumbers.size()<count) {
throw new Exception("Can't buy more then: "+availableNumbers.size()+" numbers");
}
for(int i=0; i<count; i++) {
String number = availableNumbers.get(i);
String id = createTwilioAdapter(number, accountSid, authToken, preferredLanguage, accountId, anonymous);
boughtNumbers.put( id, number );
}
return boughtNumbers;
}
/**
* Adds a new broadsoft adapter
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment