Added STC(settings-container) and LTT(lead temp table) message playback options for the VD_amd.agi script

git-svn-id: svn://192.168.202.10@3235 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2020-04-25 06:29:14 +00:00
parent 2f86c68068
commit b72ebbc9df
16 changed files with 598 additions and 19 deletions
+11 -1
View File
@@ -4300,6 +4300,16 @@ index (event_time),
index (remote_address)
) ENGINE=MyISAM;
CREATE TABLE vicidial_lead_messages (
lead_id INT(9) UNSIGNED NOT NULL,
call_date DATETIME,
user VARCHAR(20) DEFAULT NULL,
played TINYINT(3) default '0',
message_entry MEDIUMTEXT,
index (lead_id),
index (call_date)
) ENGINE=MyISAM;
ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
@@ -4628,4 +4638,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1593',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1594',db_schema_update_date=NOW(),reload_timestamp=NOW();
+12
View File
@@ -1226,3 +1226,15 @@ index (remote_address)
) ENGINE=MyISAM;
UPDATE system_settings SET db_schema_version='1593',db_schema_update_date=NOW() where db_schema_version < 1593;
CREATE TABLE vicidial_lead_messages (
lead_id INT(9) UNSIGNED NOT NULL,
call_date DATETIME,
user VARCHAR(20) DEFAULT NULL,
played TINYINT(3) default '0',
message_entry MEDIUMTEXT,
index (lead_id),
index (call_date)
) ENGINE=MyISAM;
UPDATE system_settings SET db_schema_version='1594',db_schema_update_date=NOW() where db_schema_version < 1594;
+462
View File
@@ -0,0 +1,462 @@
<?php
# vdc_LTT_generate.php
#
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# This script is designed to generate a list of wav audio files to play and then
# insert a record into the vicidial_lead_messages table
#
# !!! IMPORTANT !!! You must customize this script to your needs!
#
### Example line to put in the campaign WEBFORM field:
# http://127.0.0.1/agc/vdc_LTT_generate.php
#
# CHANGELOG:
# 200424-2013 - First build of script
#
$version = '2.14-1';
$build = '200424-2013';
require_once("dbconnect_mysqli.php");
require_once("functions.php");
$query_string = getenv("QUERY_STRING");
if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];}
elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];}
if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];}
elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];}
if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];}
elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];}
if (strlen($vendor_lead_code) < 1) {$vendor_lead_code = $vendor_id;}
if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];}
elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];}
if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];}
elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];}
if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];}
elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];}
if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];}
elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];}
if (isset($_GET["title"])) {$title=$_GET["title"];}
elseif (isset($_POST["title"])) {$title=$_POST["title"];}
if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];}
elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];}
if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];}
elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];}
if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];}
elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];}
if (isset($_GET["address1"])) {$address1=$_GET["address1"];}
elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];}
if (isset($_GET["address2"])) {$address2=$_GET["address2"];}
elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];}
if (isset($_GET["address3"])) {$address3=$_GET["address3"];}
elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];}
if (isset($_GET["city"])) {$city=$_GET["city"];}
elseif (isset($_POST["city"])) {$city=$_POST["city"];}
if (isset($_GET["state"])) {$state=$_GET["state"];}
elseif (isset($_POST["state"])) {$state=$_POST["state"];}
if (isset($_GET["province"])) {$province=$_GET["province"];}
elseif (isset($_POST["province"])) {$province=$_POST["province"];}
if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];}
elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];}
if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];}
elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];}
if (isset($_GET["gender"])) {$gender=$_GET["gender"];}
elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];}
if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];}
elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];}
if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];}
elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];}
if (isset($_GET["email"])) {$email=$_GET["email"];}
elseif (isset($_POST["email"])) {$email=$_POST["email"];}
if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];}
elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];}
if (isset($_GET["comments"])) {$comments=$_GET["comments"];}
elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];}
if (isset($_GET["user"])) {$user=$_GET["user"];}
elseif (isset($_POST["user"])) {$user=$_POST["user"];}
if (isset($_GET["pass"])) {$pass=$_GET["pass"];}
elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];}
if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];}
elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];}
if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];}
elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];}
if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];}
elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];}
if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];}
elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];}
if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];}
elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];}
if (isset($_GET["closer"])) {$closer=$_GET["closer"];}
elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];}
if (isset($_GET["group"])) {$group=$_GET["group"];}
elseif (isset($_POST["group"])) {$group=$_POST["group"];}
if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];}
elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];}
if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];}
elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];}
if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];}
elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];}
if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];}
elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];}
if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];}
elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];}
if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];}
elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];}
if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];}
elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];}
if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];}
elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];}
if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];}
elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];}
if (isset($_GET["phone"])) {$phone=$_GET["phone"];}
elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];}
if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];}
elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];}
if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];}
elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];}
if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];}
elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];}
if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];}
elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];}
if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];}
elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];}
if (isset($_GET["rank"])) {$rank=$_GET["rank"];}
elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];}
if (isset($_GET["owner"])) {$owner=$_GET["owner"];}
elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];}
if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];}
elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];}
if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];}
elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];}
if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];}
elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];}
if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];}
elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];}
if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];}
elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];}
if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];}
elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];}
if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];}
elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];}
if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];}
elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];}
if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];}
elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];}
if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];}
elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];}
if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];}
elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];}
if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];}
elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];}
if (isset($_GET["talk_time"])) {$talk_time=$_GET["talk_time"];}
elseif (isset($_POST["talk_time"])) {$talk_time=$_POST["talk_time"];}
if (isset($_GET["talk_time_min"])) {$talk_time_min=$_GET["talk_time_min"];}
elseif (isset($_POST["talk_time_min"])) {$talk_time_min=$_POST["talk_time_min"];}
if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];}
elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];}
if (isset($_GET["dispo_name"])) {$dispo_name=$_GET["dispo_name"];}
elseif (isset($_POST["dispo_name"])) {$dispo_name=$_POST["dispo_name"];}
if (isset($_GET["event"])) {$event=$_GET["event"];}
elseif (isset($_POST["event"])) {$event=$_POST["event"];}
if (isset($_GET["message"])) {$message=$_GET["message"];}
elseif (isset($_POST["message"])) {$message=$_POST["message"];}
if (isset($_GET["counter"])) {$counter=$_GET["counter"];}
elseif (isset($_POST["counter"])) {$counter=$_POST["counter"];}
if (isset($_GET["DB"])) {$DB=$_GET["DB"];}
elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];}
header ("Content-type: text/html; charset=utf-8");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
$txt = '.txt';
$StarTtime = date("U");
$NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s");
$CIDdate = date("mdHis");
$ENTRYdate = date("YmdHis");
$MT[0]='';
if ($non_latin < 1)
{
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
$pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass);
$length_in_sec = preg_replace("/[^0-9]/","",$length_in_sec);
$phone_code = preg_replace("/[^0-9]/","",$phone_code);
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
$counter = preg_replace("/[^0-9]/","",$counter);
}
else
{
$user = preg_replace("/\'|\"|\\\\|;/","",$user);
$pass = preg_replace("/\'|\"|\\\\|;/","",$pass);
}
$DB=preg_replace("/[^-_0-9a-zA-Z]/","",$DB);
if (strlen($lead_id) < 1)
{
echo "ERROR: invalid lead_id: |$lead_id|\n";
}
else
{
# EXAMPLE SCRIPT:
# Hello, this is a call from ACME Shipping, your order number A1234567 from account 876543 was shipped on December 1st and is insured for $123456.78.
# If you have any questions, please call us back at 3125551212. Goodbye.
#
# VARIABLES:
# address3 = 'ACME Shipping' (company name)
# vendor_lead_code = 'A1234567' (order number)
# owner = '876543' (account number)
# province = '2020-12-01' (shipping date)
# security_phrase = '123456.78' (insured amount)
# alt_phone = '3125551212' (callback phone number)
#
# STATIC PRIMPTS:
# EXship01.wav = 'Hello, this is a call from'
# EXship02.wav = 'your order number'
# EXship03.wav = 'from account'
# EXship04.wav = 'was shipped on'
# EXship05.wav = 'and is insured for'
# EXship06.wav = 'cents. If you have any questions, please call us back at'
# EXship07.wav = 'Goodbye'
#
# TEST URL: http://127.0.0.1/agc/vdc_LTT_generate.php?lead_id=101&user=6666&address3=ACME+Shipping&vendor_lead_code=A1234567&owner=876543&province=2020-12-01&security_phrase=123456.78&alt_phone=3125551212
# SAMPLE WEBFORM URL:
# VARhttp://127.0.0.1/agc/vdc_LTT_generate.php?lead_id=--A--lead_id--B--&user=--A--user--B--&address3=--A--address3--B--&vendor_lead_code=--A--vendor_lead_code--B--&owner=--A--owner--B--&province=--A--province--B--&security_phrase=--A--security_phrase--B--&alt_phone=--A--alt_phone--B--
#
if ($address3 == 'ACME Shipping') {$EXship01a = 'EXshipACME.wav';}
if ($address3 == 'International Parcel Shipping') {$EXship01a = 'EXshipIPS.wav';}
if ($address3 == 'United States Postal Service') {$EXship01a = 'EXshipUSPS.wav';}
$EXship02a = convertWordToSpell($DB,"$vendor_lead_code");
$owner = strtolower($owner);
$EXship03a = convertWordToSpell($DB,"$owner");
$provinceMONTH = date("n", strtotime("$province"));
$provinceDAY = date("j", strtotime("$province"));
$EXship04a = convertNumberToMonth($DB,"$provinceMONTH");
$EXship04b = convertNumberToOrder($DB,"$provinceDAY");
$security_phraseARY = explode('.',$security_phrase);
if ($security_phraseARY[0] == '0') {$EXship05a = 'digits/0.wav|';}
else
{
$EXship05a = convertNumberToNumberSpeak("$security_phraseARY[0]");
$EXship05a = preg_replace("/ | | | /",' ',$EXship05a);
$EXship05a = preg_replace("/^ | $/",'',$EXship05a);
$EXship05a = preg_replace("/ /",'.wav|digits/',$EXship05a);
$EXship05a = "digits/".$EXship05a.".wav|";
}
$EXship05a .= 'digits/dollars.wav|';
if ($security_phraseARY[1] == '0') {$EXship05b = 'digits/0.wav|';}
else
{
$EXship05b = convertNumberToNumberSpeak("$security_phraseARY[1]");
$EXship05b = preg_replace("/ | | | /",' ',$EXship05b);
$EXship05b = preg_replace("/^ | $/",'',$EXship05b);
$EXship05b = preg_replace("/ /",'.wav|digits/',$EXship05b);
$EXship05b = "digits/".$EXship05b.".wav|";
}
$EXship05b .= 'cents.wav|';
$EXship06a = convertWordToSpell($DB,"$alt_phone");
$message_entry = 'EXship01.wav|';
$message_entry .= "$EXship01a|";
$message_entry .= "EXship02.wav|";
$message_entry .= "$EXship02a";
$message_entry .= "EXship03.wav|";
$message_entry .= "$EXship03a";
$message_entry .= "EXship04.wav|";
$message_entry .= "$EXship04a$EXship04b";
$message_entry .= "EXship05.wav|";
$message_entry .= "$EXship05a$EXship05b";
$message_entry .= "EXship06.wav|";
$message_entry .= "$EXship06a";
$message_entry .= "EXship07.wav|";
$message_entry = preg_replace("/\.wav/",'',$message_entry);
print "$message_entry \n";
$stmt="INSERT INTO vicidial_lead_messages (lead_id,call_date,user,message_entry) values('$lead_id',NOW(),'$user','$message_entry');";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$affected_rows = mysqli_affected_rows($link);
}
exit;
### SUBROUTINES ###
function convertWordToSpell($DB,$word)
{
if (strlen($word) < 1)
{
if ($DB > 0) {print "DEBUG ERROR: ($word)";}
return false;
}
$orderARY = str_split($word);
$orderARY_ct = count($orderARY);
if ($DB > 0) {print "DEBUG: ($word $orderARY_ct)";}
$i=0; $spell='';
while($orderARY_ct > $i)
{
if (preg_match('/^[0-9]/',$orderARY[$i])) {$spell .= "digits/".$orderARY[$i].".wav|";}
if (preg_match('/^[a-zA-Z]/',$orderARY[$i]))
{
$orderARY[$i] = strtolower($orderARY[$i]);
$spell .= "letters/".$orderARY[$i].".wav|";
}
if ($orderARY[$i] == '#') {$spell .= "digits/pound.wav|";}
if ($orderARY[$i] == '*') {$spell .= "digits/star.wav|";}
if ($orderARY[$i] == '-') {$spell .= "letters/dash.wav|";}
if ($orderARY[$i] == ' ') {$spell .= "letters/space.wav|";}
if ($orderARY[$i] == '/') {$spell .= "letters/slash.wav|";}
if ($orderARY[$i] == '+') {$spell .= "letters/plus.wav|";}
if ($orderARY[$i] == '!') {$spell .= "letters/exclaimation-point.wav|";}
if ($orderARY[$i] == '=') {$spell .= "letters/equals.wav|";}
if ($orderARY[$i] == '@') {$spell .= "letters/at.wav|";}
if ($orderARY[$i] == '.') {$spell .= "letters/dot.wav|";}
$i++;
}
return $spell;
}
function convertNumberToOrder($DB,$num)
{
if (strlen($num) < 1)
{
if ($DB > 0) {print "DEBUG ERROR: ($num)";}
return false;
}
if ($DB > 0) {print "DEBUG: ($num)";}
$order='';
if ( ($num >= 1) and ($num <= 20) ) {$order .= "digits/h-".$num.".wav|";}
if ( ($num >= 21) and ($num <= 99) )
{
if (substr($num, -1) == '0') {$order .= "digits/h-".$num.".wav|";}
else {$order .= "digits/".substr($num,0,1)."0.wav|digits/h-".substr($num, -1).".wav|";}
}
return $order;
}
function convertNumberToMonth($DB,$num)
{
if (strlen($num) < 1)
{
if ($DB > 0) {print "DEBUG ERROR: ($num)";}
return false;
}
if ($DB > 0) {print "DEBUG: ($num)";}
$file_month='';
if ( ($num >= 1) and ($num <= 12) )
{
$num = ($num -1);
$file_month = "digits/mon-".$num.".wav|";
}
return $file_month;
}
function convertNumberToWord($num = false)
{
$num = str_replace(array(',', ' '), '' , trim($num));
if(! $num)
{
return false;
}
$num = (int) $num;
$words = array();
$list1 = array('', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven',
'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'
);
$list2 = array('', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety', 'hundred');
$list3 = array('', 'thousand', 'million', 'billion', 'trillion', 'quadrillion', 'quintillion', 'sextillion', 'septillion',
'octillion', 'nonillion', 'decillion', 'undecillion', 'duodecillion', 'tredecillion', 'quattuordecillion',
'quindecillion', 'sexdecillion', 'septendecillion', 'octodecillion', 'novemdecillion', 'vigintillion'
);
$num_length = strlen($num);
$levels = (int) (($num_length + 2) / 3);
$max_length = $levels * 3;
$num = substr('00' . $num, -$max_length);
$num_levels = str_split($num, 3);
for ($i = 0; $i < count($num_levels); $i++)
{
$levels--;
$hundreds = (int) ($num_levels[$i] / 100);
$hundreds = ($hundreds ? ' ' . $list1[$hundreds] . ' hundred' . ' ' : '');
$tens = (int) ($num_levels[$i] % 100);
$singles = '';
if ( $tens < 20 )
{
$tens = ($tens ? ' ' . $list1[$tens] . ' ' : '' );
}
else
{
$tens = (int)($tens / 10);
$tens = ' ' . $list2[$tens] . ' ';
$singles = (int) ($num_levels[$i] % 10);
$singles = ' ' . $list1[$singles] . ' ';
}
$words[] = $hundreds . $tens . $singles . ( ( $levels && ( int ) ( $num_levels[$i] ) ) ? ' ' . $list3[$levels] . ' ' : '' );
}
$commas = count($words);
if ($commas > 1)
{
$commas = $commas - 1;
}
return implode(' ', $words);
}
function convertNumberToNumberSpeak($num = false)
{
$num = str_replace(array(',', ' '), '' , trim($num));
if(! $num)
{
return false;
}
$num = (int) $num;
$words = array();
$list1 = array('', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11','12', '13', '14', '15', '16', '17', '18', '19');
$list2 = array('', '10', '20', '30', '40', '50', '60', '70', '80', '90', 'hundred');
$list3 = array('', 'thousand', 'million', 'billion', 'trillion');
$num_length = strlen($num);
$levels = (int) (($num_length + 2) / 3);
$max_length = $levels * 3;
$num = substr('00' . $num, -$max_length);
$num_levels = str_split($num, 3);
for ($i = 0; $i < count($num_levels); $i++)
{
$levels--;
$hundreds = (int) ($num_levels[$i] / 100);
$hundreds = ($hundreds ? ' ' . $list1[$hundreds] . ' hundred' . ' ' : '');
$tens = (int) ($num_levels[$i] % 100);
$singles = '';
if ( $tens < 20 )
{
$tens = ($tens ? ' ' . $list1[$tens] . ' ' : '' );
}
else
{
$tens = (int)($tens / 10);
$tens = ' ' . $list2[$tens] . ' ';
$singles = (int) ($num_levels[$i] % 10);
$singles = ' ' . $list1[$singles] . ' ';
}
$words[] = $hundreds . $tens . $singles . ( ( $levels && ( int ) ( $num_levels[$i] ) ) ? ' ' . $list3[$levels] . ' ' : '' );
}
$commas = count($words);
if ($commas > 1)
{
$commas = $commas - 1;
}
return implode(' ', $words);
}
?>