Skip to content

Issue#708 Add PhoneNumber Regex for SMS/Voice and USSD #1806

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
May 12, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -33,6 +33,9 @@
SELECT * FROM restcomm_incoming_phone_numbers;
</select>

<select id="getIncomingPhoneNumbersRegex" resultType="hashmap">
SELECT * FROM restcomm_incoming_phone_numbers WHERE phone_number like '%*%' or phone_number like '%#%' or phone_number like '%^%' or phone_number like '%|%' or phone_number like '%.%' or phone_number like '%$%' or phone_number like '%\%' or phone_number like '%[%' or phone_number like '%]%' ;
</select>
<!--
<select id="getIncomingPhoneNumbersByFriendlyName" parameterType="string" resultType="hashmap">
SELECT * FROM restcomm_incoming_phone_numbers WHERE account_sid=#{accountSid}
Original file line number Diff line number Diff line change
@@ -31,6 +31,10 @@
<select id="getAllIncomingPhoneNumbers" resultType="hashmap">
SELECT * FROM "restcomm_incoming_phone_numbers";
</select>
<!-- Does a search in the DB and find phone numbers that contain characters different from -->
<select id="getIncomingPhoneNumbersRegex" resultType="hashmap">
SELECT * FROM "restcomm_incoming_phone_numbers" WHERE "phone_number" like '%*%' or "phone_number" like '%#%' or "phone_number" like '%^%' or "phone_number" like '%|%' or "phone_number" like '%.%' or "phone_number" like '%$%' or "phone_number" like '%\%' or "phone_number" like '%[%' or "phone_number" like '%]%' ;
</select>

<!--
<select id="getIncomingPhoneNumbersByFriendlyName" parameterType="string" resultType="hashmap">
@@ -84,4 +88,4 @@
"ussd_fallback_url"=#{ussd_fallback_url}, "ussd_fallback_method"=#{ussd_fallback_method}, "ussd_application_sid"=#{ussd_application_sid},
"refer_url"=#{refer_url}, "refer_method"=#{refer_method}, "refer_application_sid"=#{refer_application_sid} WHERE "sid"=#{sid};
</update>
</mapper>
</mapper>
Original file line number Diff line number Diff line change
@@ -47,4 +47,5 @@ public interface IncomingPhoneNumbersDao {
void updateIncomingPhoneNumber(IncomingPhoneNumber incomingPhoneNumber);

List<IncomingPhoneNumber> getAllIncomingPhoneNumbers();
List<IncomingPhoneNumber> getIncomingPhoneNumbersRegex();
}
Original file line number Diff line number Diff line change
@@ -24,9 +24,12 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;
import org.joda.time.DateTime;
import org.restcomm.connect.dao.DaoUtils;
import org.restcomm.connect.dao.IncomingPhoneNumbersDao;
@@ -43,6 +46,7 @@
public final class MybatisIncomingPhoneNumbersDao implements IncomingPhoneNumbersDao {
private static final String namespace = "org.mobicents.servlet.sip.restcomm.dao.IncomingPhoneNumbersDao.";
private final SqlSessionFactory sessions;
private final Logger logger = Logger.getLogger(MybatisIncomingPhoneNumbersDao.class.getName());

public MybatisIncomingPhoneNumbersDao(final SqlSessionFactory sessions) {
super();
@@ -70,19 +74,83 @@ public IncomingPhoneNumber getIncomingPhoneNumber(final String phoneNumber) {
return getIncomingPhoneNumber("getIncomingPhoneNumberByValue", phoneNumber);
}

private IncomingPhoneNumber getIncomingPhoneNumber(final String selector, Object parameter) {
private IncomingPhoneNumber getIncomingPhoneNumber(final String selector, Object parameter) {
final SqlSession session = sessions.openSession();
try {
String inboundPhoneNumber = null;
try {
final Map<String, Object> result = session.selectOne(namespace + selector, parameter);
if (result != null) {
if (result != null ) {
return toIncomingPhoneNumber(result);
} else {
return null;
}
} finally {
//check if there is a Regex match only if parameter is a String aka phone Number
if(!(parameter instanceof Sid)){
// inboundPhoneNumber = parameter.toString().replace("+1", "");
if (logger.isInfoEnabled()) {
logger.info("About to check for REGEX incoming phone number for phoneNumber : " + inboundPhoneNumber);
}
return checkIncomingPhoneNumberRegexMatch(selector, inboundPhoneNumber);
}

}finally {
session.close();
}
return null;

}

public IncomingPhoneNumber checkIncomingPhoneNumberRegexMatch ( String selector, String inBoundPhoneNumber){
final SqlSession session = sessions.openSession();
String phoneRegexPattern = null;
try {
List<IncomingPhoneNumber> listPhones = getIncomingPhoneNumbersRegex();
if (logger.isInfoEnabled()) {
String msg = String.format("Found %d Regex IncomingPhone numbers",listPhones.size());
logger.info(msg);
}
for (IncomingPhoneNumber listPhone : listPhones){
if (listPhone.getPhoneNumber().startsWith("+")){
phoneRegexPattern = listPhone.getPhoneNumber().replace("+", "/+");
}else if (listPhone.getPhoneNumber().startsWith("*")){
phoneRegexPattern = listPhone.getPhoneNumber().replace("*", "/*");
}else{
phoneRegexPattern = listPhone.getPhoneNumber();
}
Pattern p = Pattern.compile(phoneRegexPattern);
Matcher m = p.matcher(inBoundPhoneNumber);
if (m.find()) {
final Map<String, Object> resultRestcommRegexHostedNumber = session.selectOne(namespace + selector, phoneRegexPattern);
if (resultRestcommRegexHostedNumber != null) {
if (logger.isInfoEnabled()) {
String msg = String.format("Pattern \"%s\" matched the phone number \"%s\"",phoneRegexPattern, inBoundPhoneNumber);
logger.info(msg);
}
return toIncomingPhoneNumber(resultRestcommRegexHostedNumber);
} else{
if (logger.isInfoEnabled()) {
String msg = String.format("Error, Regex \"%s\" cannot be matched for phone number \"%s\"", phoneRegexPattern, inBoundPhoneNumber);
logger.info(msg);
}
}
} else {
if (logger.isInfoEnabled()) {
String msg = String.format("Error, Regex \"%s\" cannot be matched for phone number \"%s\"", phoneRegexPattern, inBoundPhoneNumber);
logger.info(msg);
}
}
}
logger.info("No matching phone number found, make sure your Restcomm Regex phone number is correctly defined");
} catch (Exception e) {
if (logger.isDebugEnabled()) {
String msg = String.format("Exception while trying to match for a REGEX incoming phone number");
logger.debug(msg);
}
}
finally {
session.close();
}
}
return null;

}

@Override
public List<IncomingPhoneNumber> getIncomingPhoneNumbers(final Sid accountSid) {
@@ -119,6 +187,23 @@ public List<IncomingPhoneNumber> getAllIncomingPhoneNumbers() {
}
}

@Override
public List<IncomingPhoneNumber> getIncomingPhoneNumbersRegex() {
final SqlSession session = sessions.openSession();
try {
final List<Map<String, Object>> results = session.selectList(namespace + "getIncomingPhoneNumbersRegex");
final List<IncomingPhoneNumber> incomingPhoneNumbers = new ArrayList<IncomingPhoneNumber>();
if (results != null && !results.isEmpty()) {
for (final Map<String, Object> result : results) {
incomingPhoneNumbers.add(toIncomingPhoneNumber(result));
}
}
return incomingPhoneNumbers;
} finally {
session.close();
}
}

@Override
public List<IncomingPhoneNumber> getIncomingPhoneNumbersByFilter(IncomingPhoneNumberFilter filter) {
final SqlSession session = sessions.openSession();
Original file line number Diff line number Diff line change
@@ -462,6 +462,7 @@ private void invite(final Object message) throws IOException, NumberParseExcepti
SipURI outboundIntf = outboundInterface(transport);

if(logger.isInfoEnabled()) {
logger.info("ToUser: " + toUser);
logger.info("ToHost: " + toHost);
logger.info("ruri: " + ruri);
logger.info("myHostIp: " + myHostIp);
@@ -972,9 +973,16 @@ private boolean redirectToHostedVoiceApp(final ActorRef self, final SipServletRe
// Format the destination to an E.164 phone number.
final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
String formatedPhone = null;
try {
formatedPhone = phoneNumberUtil.format(phoneNumberUtil.parse(phone, "US"), PhoneNumberFormat.E164);
} catch (Exception e) {
//Don't format to E.164 if contains# or * as this is
//for a Regex or USSD call
if (phone.contains("*") || phone.contains("#")){
formatedPhone = phone;
}else{
try {
formatedPhone = phoneNumberUtil.format(phoneNumberUtil.parse(phone, "US"), PhoneNumberFormat.E164);
} catch (NumberParseException e) {
logger.error("Exception when try to format : " + e);
}
}
IncomingPhoneNumber number = null;
try {
@@ -1051,7 +1059,7 @@ private boolean redirectToHostedVoiceApp(final ActorRef self, final SipServletRe
if (number != null) {
errMsg = "The number " + number.getPhoneNumber() + " does not have a Restcomm hosted application attached";
} else {
errMsg = "The number does not have a Restcomm hosted application attached";
errMsg = "The number does not exist" + notANumber;
}
sendNotification(errMsg, 11007, "error", false);
logger.warning(errMsg, notANumber);

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE "restcomm_instance_id"("instance_id" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL, "host" VARCHAR(255) NOT NULL)
CREATE MEMORY TABLE "restcomm_accounts"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"email_address" LONGVARCHAR NOT NULL,"friendly_name" VARCHAR(64) NOT NULL,"parent_sid" VARCHAR(34),"type" VARCHAR(8) NOT NULL,"status" VARCHAR(16) NOT NULL,"auth_token" VARCHAR(32) NOT NULL,"role" VARCHAR(64) NOT NULL,"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_announcements"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"account_sid" VARCHAR(34),"gender" VARCHAR(8) NOT NULL,"language" VARCHAR(16) NOT NULL,"text" VARCHAR(32) NOT NULL,"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_available_phone_numbers"("friendly_name" VARCHAR(64) NOT NULL,"phone_number" VARCHAR(15) NOT NULL PRIMARY KEY,"lata" SMALLINT,"rate_center" VARCHAR(32),"latitude" DOUBLE,"longitude" DOUBLE,"region" VARCHAR(2),"postal_code" INTEGER,"iso_country" VARCHAR(2) NOT NULL,"voice_capable" BOOLEAN, "sms_capable" BOOLEAN, "mms_capable" BOOLEAN, "fax_capable" BOOLEAN,"cost" VARCHAR(10))
CREATE MEMORY TABLE "restcomm_outgoing_caller_ids"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"friendly_name" VARCHAR(64) NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"phone_number" VARCHAR(15) NOT NULL,"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_http_cookies"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"comment" LONGVARCHAR,"domain" LONGVARCHAR,"expiration_date" DATETIME,"name" LONGVARCHAR NOT NULL,"path" LONGVARCHAR,"value" LONGVARCHAR,"version" INT)
CREATE MEMORY TABLE "restcomm_incoming_phone_numbers"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"friendly_name" VARCHAR(64) NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"phone_number" VARCHAR(30) NOT NULL,"api_version" VARCHAR(10) NOT NULL,"voice_caller_id_lookup" BOOLEAN NOT NULL,"voice_url" LONGVARCHAR,"voice_method" VARCHAR(4),"voice_fallback_url" LONGVARCHAR,"voice_fallback_method" VARCHAR(4),"status_callback" LONGVARCHAR,"status_callback_method" VARCHAR(4),"voice_application_sid" VARCHAR(34),"sms_url" LONGVARCHAR,"sms_method" VARCHAR(4),"sms_fallback_url" LONGVARCHAR,"sms_fallback_method" VARCHAR(4),"sms_application_sid" VARCHAR(34),"uri" LONGVARCHAR NOT NULL, "voice_capable" BOOLEAN, "sms_capable" BOOLEAN, "mms_capable" BOOLEAN, "fax_capable" BOOLEAN, "pure_sip" BOOLEAN,"cost" VARCHAR(10), "ussd_url" LONGVARCHAR, "ussd_method" VARCHAR(4), "ussd_fallback_url" LONGVARCHAR, "ussd_fallback_method" VARCHAR(4), "ussd_application_sid" VARCHAR(34), "refer_url" LONGVARCHAR, "refer_method" VARCHAR(4), "refer_application_sid" VARCHAR(34))
CREATE MEMORY TABLE "restcomm_applications"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"friendly_name" VARCHAR(64) NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"api_version" VARCHAR(10) NOT NULL,"voice_caller_id_lookup" BOOLEAN NOT NULL,"uri" LONGVARCHAR NOT NULL,"rcml_url" LONGVARCHAR, "kind" VARCHAR(5))
CREATE MEMORY TABLE "restcomm_call_detail_records"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"parent_call_sid" VARCHAR(34),"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"sender" VARCHAR(30) NOT NULL,"recipient" VARCHAR(64) NOT NULL,"phone_number_sid" VARCHAR(34),"status" VARCHAR(20) NOT NULL,"start_time" DATETIME,"end_time" DATETIME,"duration" INTEGER,"price" VARCHAR(8),"direction" VARCHAR(20) NOT NULL,"answered_by" VARCHAR(64),"api_version" VARCHAR(10) NOT NULL,"forwarded_from" VARCHAR(30),"caller_name" VARCHAR(50),"uri" LONGVARCHAR NOT NULL, "call_path" VARCHAR(255),"ring_duration" INTEGER, "instanceid" VARCHAR(255) NOT NULL, "conference_sid" VARCHAR(34),"muted" BOOLEAN, "start_conference_on_enter" BOOLEAN, "end_conference_on_exit" BOOLEAN, "on_hold" BOOLEAN, "ms_id" VARCHAR(34))
CREATE MEMORY TABLE "restcomm_conference_detail_records" ( "sid" VARCHAR(34) NOT NULL PRIMARY KEY, "date_created" DATETIME NOT NULL, "date_updated" DATETIME NOT NULL, "account_sid" VARCHAR(34) NOT NULL, "status" VARCHAR(100) NOT NULL, "friendly_name" VARCHAR(60), "api_version" VARCHAR(10) NOT NULL, "uri" LONGVARCHAR NOT NULL, "master_ms_id" VARCHAR(34),"master_conference_endpoint_id" VARCHAR(20),"master_present" BOOLEAN DEFAULT TRUE, "master_ivr_endpoint_id" VARCHAR(20),"master_ivr_endpoint_session_id" VARCHAR(200),"master_bridge_endpoint_id" VARCHAR(20),"master_bridge_endpoint_session_id" VARCHAR(200),"master_bridge_conn_id" VARCHAR(200),"master_ivr_conn_id" VARCHAR(200))
CREATE MEMORY TABLE "restcomm_clients"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"api_version" VARCHAR(10) NOT NULL,"friendly_name" VARCHAR(64) NOT NULL,"login" VARCHAR(64) NOT NULL,"password" VARCHAR(64) NOT NULL,"status" INTEGER NOT NULL,"voice_url" LONGVARCHAR,"voice_method" VARCHAR(4),"voice_fallback_url" LONGVARCHAR,"voice_fallback_method" VARCHAR(4),"voice_application_sid" VARCHAR(34),"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_registrations"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"date_expires" DATETIME NOT NULL,"address_of_record" LONGVARCHAR NOT NULL,"display_name" VARCHAR(255),"user_name" VARCHAR(64) NOT NULL,"user_agent" LONGVARCHAR,"ttl" INTEGER NOT NULL,"location" LONGVARCHAR NOT NULL, "webrtc" BOOLEAN DEFAULT FALSE, "instanceid" VARCHAR(255), "isLBPresent" BOOLEAN DEFAULT FALSE)
CREATE MEMORY TABLE "restcomm_short_codes"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"friendly_name" VARCHAR(64) NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"short_code" INTEGER NOT NULL,"api_version" VARCHAR(10) NOT NULL,"sms_url" LONGVARCHAR,"sms_method" VARCHAR(4),"sms_fallback_url" LONGVARCHAR,"sms_fallback_method" VARCHAR(4),"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_sms_messages"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"date_sent" DATETIME,"account_sid" VARCHAR(34) NOT NULL,"sender" VARCHAR(15) NOT NULL,"recipient" VARCHAR(64) NOT NULL,"body" VARCHAR(999) NOT NULL,"status" VARCHAR(20) NOT NULL,"direction" VARCHAR(14) NOT NULL,"price" VARCHAR(8) NOT NULL,"api_version" VARCHAR(10) NOT NULL,"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_recordings"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"call_sid" VARCHAR(34) NOT NULL,"duration" DOUBLE NOT NULL,"api_version" VARCHAR(10) NOT NULL,"uri" LONGVARCHAR NOT NULL, "file_uri" LONGVARCHAR)
CREATE MEMORY TABLE "restcomm_transcriptions"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"status" VARCHAR(11) NOT NULL,"recording_sid" VARCHAR(34) NOT NULL,"duration" DOUBLE NOT NULL,"transcription_text" LONGVARCHAR,"price" VARCHAR(8) NOT NULL,"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_notifications"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"account_sid" VARCHAR(34) NOT NULL,"call_sid" VARCHAR(34),"api_version" VARCHAR(10) NOT NULL,"log" TINYINT NOT NULL,"error_code" SMALLINT NOT NULL,"more_info" LONGVARCHAR NOT NULL,"message_text" LONGVARCHAR NOT NULL,"message_date" DATETIME NOT NULL,"request_url" LONGVARCHAR NOT NULL,"request_method" VARCHAR(4) NOT NULL,"request_variables" LONGVARCHAR NOT NULL,"response_headers" LONGVARCHAR,"response_body" LONGVARCHAR,"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_sand_boxes"("date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"pin" VARCHAR(8) NOT NULL,"account_sid" VARCHAR(34) NOT NULL PRIMARY KEY,"phone_number" VARCHAR(15) NOT NULL,"application_sid" VARCHAR(34) NOT NULL,"api_version" VARCHAR(10) NOT NULL,"voice_url" LONGVARCHAR,"voice_method" VARCHAR(4),"sms_url" LONGVARCHAR,"sms_method" VARCHAR(4),"status_callback" LONGVARCHAR,"status_callback_method" VARCHAR(4),"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_gateways"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"date_created" DATETIME NOT NULL,"date_updated" DATETIME NOT NULL,"friendly_name" VARCHAR(255),"user_name" VARCHAR(255),"password" VARCHAR(255),"proxy" LONGVARCHAR NOT NULL,"register" BOOLEAN NOT NULL,"ttl" INT NOT NULL,"uri" LONGVARCHAR NOT NULL)
CREATE MEMORY TABLE "restcomm_media_servers" ( "ms_id" INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL, "local_ip" VARCHAR(34) NOT NULL, "local_port" INT NOT NULL, "remote_ip" VARCHAR(34) NOT NULL UNIQUE, "remote_port" INT NOT NULL, "compatibility" VARCHAR(34) DEFAULT 'rms', "response_timeout" VARCHAR(34), "external_address" VARCHAR(34))
CREATE MEMORY TABLE "restcomm_media_resource_broker_entity" ("conference_sid" VARCHAR(34) NOT NULL, "slave_ms_id" VARCHAR(34) NOT NULL, "slave_ms_bridge_ep_id" VARCHAR(34),"slave_ms_cnf_ep_id" VARCHAR(34),"is_bridged_together" BOOLEAN DEFAULT FALSE,PRIMARY KEY ("conference_sid" , "slave_ms_id"))
CREATE MEMORY TABLE PUBLIC."restcomm_extensions_configuration"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"extension" VARCHAR(255) NOT NULL,"configuration_data" VARCHAR(16777216),"configuration_type" VARCHAR(255) NOT NULL,"date_created" TIMESTAMP NOT NULL,"date_updated" TIMESTAMP)
CREATE MEMORY TABLE PUBLIC."restcomm_extensions_configuration_specific"("sid" VARCHAR(34) NOT NULL PRIMARY KEY,"specific_sid" VARCHAR(34) NOT NULL, "extension" VARCHAR(255) NOT NULL,"configuration_data" VARCHAR(16777216),"configuration_type" VARCHAR(255) NOT NULL,"date_created" TIMESTAMP NOT NULL,"date_updated" TIMESTAMP)
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 10
SET SCHEMA PUBLIC
INSERT INTO "restcomm_accounts" VALUES('ACae6e420f425248d6a26948c17a9e2acf','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','administrator@company.com','Default Administrator Account',NULL,'Full','active','77f8c12cc7b8f8423e5c38b035249166','Administrator','/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf')
INSERT INTO "restcomm_accounts" VALUES('ACae6e420f425248d6a26948c17a9e2acg','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','subadministrator@company.com','Sub Administrator Account','ACae6e420f425248d6a26948c17a9e2acf','Full','active','77f8c12cc7b8f8423e5c38b035249166','Administrator','/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acg')
INSERT INTO "restcomm_clients" VALUES('CLa2b99142e111427fbb489c3de357f60a','2013-11-04 12:52:44.144000000','2013-11-04 12:52:44.144000000','ACae6e420f425248d6a26948c17a9e2acf','2012-04-24','alice','alice','1234',1,NULL,'POST',NULL,'POST',NULL,'/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/Clients/CLa2b99142e111427fbb489c3de357f60a')
INSERT INTO "restcomm_clients" VALUES('CLa2b99142e111427fbb489c3de357f60b','2013-11-04 12:52:44.144000000','2013-11-04 12:52:44.144000000','ACae6e420f425248d6a26948c17a9e2acg','2012-04-24','subaccountclient','subaccountclient','1234',1,NULL,'POST',NULL,'POST',NULL,'/restcomm/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acg/Clients/CLa2b99142e111427fbb489c3de357f60b')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2aca','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number0','ACae6e420f425248d6a26948c17a9e2acf','1313','2012-04-24',FALSE,'http://127.0.0.1:8090/1313','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2aca')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2acf','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number1','ACae6e420f425248d6a26948c17a9e2acf','7777|8888','2012-04-24',FALSE,'http://127.0.0.1:8090/regex','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2acf')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2acg','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number 2','ACae6e420f425248d6a26948c17a9e2acf','^*77...33#$','2012-04-24',FALSE,'http://127.0.0.1:8090/regex','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2acg')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2ach','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number 3','ACae6e420f425248d6a26948c17a9e2acf','^[12]2233#$','2012-04-24',FALSE,'http://127.0.0.1:8090/regex','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2ach')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2aci','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number 4','ACae6e420f425248d6a26948c17a9e2acf','^*222*...*...*500#$','2012-04-24',FALSE,'http://127.0.0.1:8090/regex','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2aci')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2acj','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number 5','ACae6e420f425248d6a26948c17a9e2acf','[45]234[23]','2012-04-24',FALSE,'http://127.0.0.1:8090/regex','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2acj')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2awx','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number 6','ACae6e420f425248d6a26948c17a9e2acf','999...','2012-04-24',FALSE,'http://127.0.0.1:8090/regex','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2awx')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2awe','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','Test Number 7','ACae6e420f425248d6a26948c17a9e2acf','*','2012-04-24',FALSE,'http://127.0.0.1:8090/regexAll','GET',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2awe')
INSERT INTO "restcomm_incoming_phone_numbers" VALUES('PHae6e420f425248d6a26948c17a9e2awl','2012-04-24 22:51:29.372000000','2012-04-24 22:51:29.372000000','UssdPullTestNumber1','ACae6e420f425248d6a26948c17a9e2acf','*777#','2012-04-24',FALSE,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/2012-04-24/Accounts/ACae6e420f425248d6a26948c17a9e2acf/IncomingPhoneNumbers/PHae6e420f425248d6a26948c17a9e2awl',NULL,NULL,NULL,NULL, TRUE,'0.0','http://127.0.0.1:8090/ussd','GET')
351 changes: 351 additions & 0 deletions restcomm/restcomm.testsuite/src/test/resources/restcomm_callRegex.xml

Large diffs are not rendered by default.