Added SC_CALL_URL option to add post headers to AST_send_URL.pl

git-svn-id: svn://192.168.202.10@3733 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2023-06-05 12:48:51 +00:00
parent 3f92901023
commit ebb617095f
+34 -6
View File
@@ -31,6 +31,7 @@
# 210519-2208 - Added DB disconnect and reconnect to save DB connections on long response time URLs
# 230204-2145 - Added ability to use ALT na_call_url entries, added status input
# 230531-1139 - Added option to send any URL as POST if "POST" is at the end of the $function var
# 230605-0836 - Added SC_CALL_URL option to add post headers
#
$|++;
@@ -55,6 +56,7 @@ my ($campaign, $lead_id, $phone_number, $call_type, $user, $uniqueid, $alt_dial,
my $FULL_LOG = 1;
$url_function = 'other';
$US='_';
$post_headers='';
### begin parsing run-time options ###
if (scalar @ARGV) {
@@ -235,6 +237,8 @@ if (length($lead_id) > 0)
if ($function =~ /SC_CALL_URL/)
{
$sc_call_url='';
$post_headers='';
$sc_container_entry='';
$stmtH= "SELECT container_entry from vicidial_settings_containers where container_id='$container';";
$sthA = $dbhA->prepare($stmtH) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -243,11 +247,35 @@ if (length($lead_id) > 0)
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$sc_call_url = $aryA[0];
$sc_container_entry = $aryA[0];
}
else
{$no_container=2;}
$sthA->finish();
if (length($sc_container_entry) > 3)
{
@container_lines = split(/\n/,$sc_container_entry);
$c=0;
foreach(@container_lines)
{
if ($container_lines[$c] =~ /; POST-HEADER=/)
{
$container_lines[$c] =~ s/; POST-HEADER=|\r|\t//gi;
$post_headers .= " --header=\"$container_lines[$c]\"";
}
else
{
$container_lines[$c] =~ s/;.*|\r|\t//gi;
if (length($container_lines[$c]) > 0)
{
$sc_call_url .= $container_lines[$c];
}
}
$c++;
}
}
}
if ( ($function =~ /NA_CALL_URL/) && (length($list_id) > 1) )
@@ -1169,7 +1197,7 @@ if (length($lead_id) > 0)
$sc_call_url =~ s/--A--talk_time--B--/$talk_time/gi;
$sc_call_url =~ s/--A--talk_time_min--B--/$talk_time_min/gi;
$sc_call_url =~ s/--A--SQLdate--B--/$now_date/gi;
$sc_call_url =~ s/ /+/gi;
if ($function !~ /POST$/) {$sc_call_url =~ s/ /+/gi;}
$sc_call_url =~ s/&/\\&/gi;
$parse_url = $sc_call_url;
@@ -1393,14 +1421,14 @@ if (length($lead_id) > 0)
$url =~ s/"/\\"/gi;
$post_data=''; $post_note='';
if ( ($function =~ /POST$/) && ($url =~ /\?/) )
if ( ($function =~ /POST$/) && ( ($url =~ /\?/) || (length($post_headers) > 5) ) )
{
@url_split = split(/\?/,$url);
$url = $url_split[0];
$postvars = $url_split[1];
$post_data = "--post-data=\"$postvars\"";
if ($DB) {print "Send-as-POST: |$url|$post_data| \n";}
$post_note='|HTTP-POST';
$post_note="|HTTP-POST|$post_headers";
}
my $secW = time();
@@ -1409,9 +1437,9 @@ if (length($lead_id) > 0)
$dbhA->disconnect();
# request the web URL
`$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url $post_data `;
`$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url $post_data $post_headers `;
# $post_note .= "|$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url $post_data ";
# $post_note .= "|$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url $post_data $post_headers ";
# reconnect to the database to log response and response time
$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass")