Fixes for PJSIP compatibility

Updated VCA SQL tables
deprecated closer-fronter_popup scripts
Added check of empty phone dialplan extensions when building conf files

git-svn-id: svn://192.168.202.10@3973 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2026-03-27 13:07:49 +00:00
parent c711a58aa3
commit 8d8e366c07
6 changed files with 101 additions and 1158 deletions
+70 -25
View File
@@ -179,9 +179,10 @@
# 251011-1000 - Added archiving of recording_dtmf_muting_log, disabled purging of recording_live_log after 7 days
# 251024-2222 - Added crashed table detection
# 260126-1334 - Added check of reserved_extensions against dialplan numbers when building conf files
# 260327-0846 - Added check of empty phone dialplan extensions when building conf files
#
$build = '260126-1334';
$build = '260327-0846';
$DB=0; # Debug flag
$teodDB=0; # flag to log Timeclock End of Day processes to log file
@@ -3923,13 +3924,24 @@ if ( ($active_asterisk_server =~ /Y/) && ($generate_vicidial_conf =~ /Y/) && ($r
}
### check against $reserved_extensions before building dialplan entry for this phone
$tempdp = $dialplan[$i];
if ($reserved_extensions =~ /,$tempdp,/)
if ( ($reserved_extensions =~ /,$tempdp,/) || (length($tempdp) < 1) )
{
# reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "RESERVED MATCH IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; RESERVED MATCH IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if (length($tempdp) < 1)
{
# empty extension found, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "EMPTY EXTEN IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "EMPTY EXTEN IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; EMPTY EXTEN IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
}
else
{
# reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "RESERVED MATCH IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; RESERVED MATCH IAX SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
}
}
else
{
@@ -4101,13 +4113,24 @@ if ( ($active_asterisk_server =~ /Y/) && ($generate_vicidial_conf =~ /Y/) && ($r
}
### check against $reserved_extensions before building dialplan entry for this phone
$tempdp = $dialplan[$i];
if ($reserved_extensions =~ /,$tempdp,/)
if ( ($reserved_extensions =~ /,$tempdp,/) || (length($tempdp) < 1) )
{
# $reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "RESERVED MATCH SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; RESERVED MATCH SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if (length($tempdp) < 1)
{
# empty extension found, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "EMPTY EXTEN SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "EMPTY EXTEN SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; EMPTY EXTEN SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
}
else
{
# $reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "RESERVED MATCH SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; RESERVED MATCH SIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
}
}
else
{
@@ -4306,13 +4329,24 @@ if ( ($active_asterisk_server =~ /Y/) && ($generate_vicidial_conf =~ /Y/) && ($r
### Dialplan generation :
### check against $reserved_extensions before building dialplan entry for this phone
$tempdp = $dialplan[$i];
if ($reserved_extensions =~ /,$tempdp,/)
if ( ($reserved_extensions =~ /,$tempdp,/) || (length($tempdp) < 1) )
{
# $reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "RESERVED MATCH PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; RESERVED MATCH PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if (length($tempdp) < 1)
{
# empty extension found, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "EMPTY EXTEN PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "EMPTY EXTEN PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; EMPTY EXTEN PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
}
else
{
# $reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
if ($DBX) {print "RESERVED MATCH PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";}
$Pext .= "; RESERVED MATCH PJSIP SKIP! dialplan: $dialplan[$i] phone: $extension[$i] server: $server_ip\n";
}
}
else
{
@@ -4395,13 +4429,24 @@ if ( ($active_asterisk_server =~ /Y/) && ($generate_vicidial_conf =~ /Y/) && ($r
}
### check against $reserved_extensions before building dialplan entry for this phone
$tempdp = $CXdialplan[$i];
if ($reserved_extensions =~ /,$tempdp,/)
if ( ($reserved_extensions =~ /,$tempdp,/) || (length($tempdp) < 1) )
{
# $reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";
if ($DBX) {print "RESERVED MATCH CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";}
$Pext .= "; RESERVED MATCH CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";
if (length($tempdp) < 1)
{
# empty extension found, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "EMPTY EXTEN CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";
if ($DBX) {print "EMPTY EXTEN CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";}
$Pext .= "; EMPTY EXTEN CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";
}
else
{
# $reserved_extensions match, do not build dialplan, collect data for error to populate in admin log
$reserved_exten_skip++;
$reserved_exten_message .= "RESERVED MATCH CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";
if ($DBX) {print "RESERVED MATCH CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";}
$Pext .= "; RESERVED MATCH CX SKIP! dialplan: $CXdialplan[$i] phone: $CXextension[$i] server: $CXserver_ip[$i]\n";
}
}
else
{
+7 -1
View File
@@ -25,7 +25,7 @@
# exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
#
#
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2026 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGELOG:
# 61010-1007 - First test build
@@ -104,6 +104,7 @@
# 241020-1929 - Added khomp campaign settings options
# 241028-0958 - Added vicidial_khomp_log logging of container used
# 250928-1556 - Added hosted_settings dialplan variable
# 260327-0824 - Fixes for PJSIP compatibility
#
# defaults for PreFork
@@ -807,6 +808,7 @@ sub process_request
{
if ($AGILOG) {$agi_string = "Adding \"X-CIDNAME: $camp_opensips_cid_name\" header to INVITE"; &agi_output;}
$header = "X-CIDNAME: " . $camp_opensips_cid_name;
$AGI->exec("EXEC Set(__OSCIDNAME=\"$camp_opensips_cid_name\")");
$AGI->exec("EXEC SIPAddHeader(\"$header\")");
}
}
@@ -839,6 +841,10 @@ sub process_request
# add the SIP tracking header
$header = "X-" . $khomp_header . ": " . $khomp_id;
$kp_header = "X-" . $khomp_header;
$kp_header_value = $khomp_id;
$AGI->exec("EXEC Set(__KPHEADER=$kp_header)");
$AGI->exec("EXEC Set(__KPHEADERVALUE=$kp_header_value)");
$AGI->exec("EXEC SIPAddHeader(\"$header\")");
if ($AGILOG) {$agi_string = "|KHOMP SIP Header= $header|$khomp_id_format|"; &agi_output;}