[2026-02-18 00:00:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018099_20260218_000030.XML
[2026-02-18 00:00:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018099_20260218_000030.XML for user: 68f1466aed072ad4a
[2026-02-18 00:00:30] [INFO] File size: 5372 bytes
[2026-02-18 00:00:30] [INFO] Created FTPFiles record with ID: 6995011ed34901add
[2026-02-18 00:00:30] [INFO] About to extract fields from XML. File size: 5372 bytes
[2026-02-18 00:00:30] [INFO] Number of mappings: 28
[2026-02-18 00:00:30] [INFO] Starting XML parsing. Content length: 5372
[2026-02-18 00:00:30] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 00:00:30] [INFO] Processing 28 field mappings
[2026-02-18 00:00:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 00:00:30] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 00:00:30] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 00:00:30] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-18 00:00:30] [INFO]   -> Found value: AFD
EMS
APD
[2026-02-18 00:00:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD"
[2026-02-18 00:00:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 00:00:30] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-18 00:00:30] [INFO]   -> Found value: 2026000077
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentInternalId' = "2026000077"
[2026-02-18 00:00:30] [INFO]   -> Set field 'dispatchRunNumber' = "2026000077"
[2026-02-18 00:00:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 00:00:30] [INFO]   -> Found value: CHEST PAIN
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-02-18 00:00:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 00:00:30] [INFO]   -> Found value: 300
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 300
[2026-02-18 00:00:30] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 00:00:30] [INFO]   -> Found value: TN
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 00:00:30] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 00:00:30] [INFO]   -> Found value: 38506
[2026-02-18 00:00:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-18 00:00:30] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 00:00:30] [INFO]   -> Found value: E2
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentLocationApt' = "E2"
[2026-02-18 00:00:30] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 00:00:30] [INFO]   -> Found value: 36.19892
[2026-02-18 00:00:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1989200000000010959411156363785266876220703125
[2026-02-18 00:00:30] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 00:00:30] [INFO]   -> Found value: -85.45725
[2026-02-18 00:00:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4572500000000019326762412674725055694580078125
[2026-02-18 00:00:30] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 00:00:30] [INFO]   -> Found value: 2026-02-17 17:59:30
[2026-02-18 00:00:30] [INFO]   -> Set field 'alarm' = "2026-02-17 17:59:30"
[2026-02-18 00:00:30] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 00:00:30] [INFO]   -> Found value: 2026-02-17 18:00:24
[2026-02-18 00:00:30] [INFO]   -> Set field 'dispatched' = "2026-02-17 18:00:24"
[2026-02-18 00:00:30] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 00:00:30] [INFO]   -> Found value: QUINLAND LAKE RD
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentLocationCross' = "QUINLAND LAKE RD"
[2026-02-18 00:00:30] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 00:00:30] [INFO]   -> Found value: AFR
[2026-02-18 00:00:30] [INFO]   -> Set field 'cADVehicleID' = "AFR"
[2026-02-18 00:00:30] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 00:00:30] [INFO]   -> Found value: 2026-02-17 18:00:24
[2026-02-18 00:00:30] [INFO]   -> Set field 'timedispatch' = "2026-02-17 18:00:24"
[2026-02-18 00:00:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 00:00:30] [INFO]   -> No value found (null or empty)
[2026-02-18 00:00:30] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 00:00:30] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 00:00:30] [INFO]   -> Found value: 20260018099
[2026-02-18 00:00:30] [INFO]   -> Set field 'policeReportNumber' = "20260018099"
[2026-02-18 00:00:30] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 00:00:30] [INFO]   -> Found value: [EMS] UDTS: SEMI-RESPONSIVE  [02/17/26 17:59:55 KBEATY] [EMS] JAMES HILL  [02/17/26 17:59:49 KBEATY]...
[2026-02-18 00:00:30] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: SEMI-RESPONSIVE  [02\/17\/26 17:59:55 KBEATY] [EMS] JAMES HILL  [02\/17\/26 17:59:49 KBEATY] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 17:59:41 BAHARRIS] Event spawned from CHEST PAIN.  [02\/17\/2026 17:59:30 KBEATY]"
[2026-02-18 00:00:30] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: SEMI-RESPONSIVE  [02\/17\/26 17:59:55 KBEATY] [EMS] JAMES HILL  [02\/17\/26 17:59:49 KBEATY] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 17:59:41 BAHARRIS] Event spawned from CHEST PAIN.  [02\/17\/2026 17:59:30 KBEATY]"
[2026-02-18 00:00:30] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 00:00:30] [INFO]   -> Found value: ALGOOD
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-18 00:00:30] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 00:00:30] [INFO]   -> Found value: QUINLAND LAKE
[2026-02-18 00:00:30] [INFO]   -> Set field 'streetName' = "QUINLAND LAKE"
[2026-02-18 00:00:30] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 00:00:30] [INFO]   -> Found value: CT
[2026-02-18 00:00:30] [INFO]   -> Set field 'streetType' = "CT"
[2026-02-18 00:00:30] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 00:00:30] [INFO]   -> Found value: 300-E2 QUINLAND LAKE CT
[2026-02-18 00:00:30] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "300-E2 QUINLAND LAKE CT"
[2026-02-18 00:00:30] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-18 00:00:30] [INFO] Concatenating street name and type
[2026-02-18 00:00:30] [INFO]   -> Combined street name: QUINLAND LAKE CT
[2026-02-18 00:00:30] [INFO] Built locationCoordinates from lat/lng: 36.19892,-85.45725
[2026-02-18 00:00:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD","incidentInternalId":"2026000077","dispatchRunNumber":"2026000077","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":300,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"incidentLocationApt":"E2","nERISIncidentLatitude":36.1989200000000010959411156363785266876220703125,"nERISIncidentLongitude":-85.4572500000000019326762412674725055694580078125,"alarm":"2026-02-17 17:59:30","dispatched":"2026-02-17 18:00:24","incidentLocationCross":"QUINLAND LAKE RD","cADVehicleID":"AFR","timedispatch":"2026-02-17 18:00:24","policeReportNumber":"20260018099","dispatchNotes":"[EMS] UDTS: SEMI-RESPONSIVE  [02\/17\/26 17:59:55 KBEATY] [EMS] JAMES HILL  [02\/17\/26 17:59:49 KBEATY] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 17:59:41 BAHARRIS] Event spawned from CHEST PAIN.  [02\/17\/2026 17:59:30 KBEATY]","cADLog":"[EMS] UDTS: SEMI-RESPONSIVE  [02\/17\/26 17:59:55 KBEATY] [EMS] JAMES HILL  [02\/17\/26 17:59:49 KBEATY] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 17:59:41 BAHARRIS] Event spawned from CHEST PAIN.  [02\/17\/2026 17:59:30 KBEATY]","incidentLocationCity":"ALGOOD","streetName":"QUINLAND LAKE CT","incidentAddressTextVersionStreet":"300-E2 QUINLAND LAKE CT","locationCoordinates":"36.19892,-85.45725"}
[2026-02-18 00:00:30] [INFO] Number of extracted fields: 22
[2026-02-18 00:00:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD'
[2026-02-18 00:00:30] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
APD', Parsed IDs = ["AFD","EMS","APD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-18 00:00:30] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD"]
[2026-02-18 00:00:30] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-18 00:00:31] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-18 00:00:31] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD"]
[2026-02-18 00:00:31] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-18 00:00:31] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-18 00:00:31] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-18 00:00:31] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-02-18 00:00:31] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-18 00:00:31] [INFO] Found existing IncidentTypeMapping with ID: 69448a5c00a999345
[2026-02-18 00:00:37] [INFO] Created new Dispatches record with ID: 6995012040c9bf1b9
[2026-02-18 00:00:37] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 00:00:37] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 00:00:40] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 00:00:40] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018099_20260218_000030.XML: Failed to upload file to V2 FTP server: /AFD_20260018099_20260218_000030.XML
[2026-02-18 00:00:40] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 00:51:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018107_20260218_005100.XML
[2026-02-18 00:51:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018107_20260218_005100.XML for user: 68f1466aed072ad4a
[2026-02-18 00:51:00] [INFO] File size: 4778 bytes
[2026-02-18 00:51:01] [INFO] Created FTPFiles record with ID: 69950cf5342469103
[2026-02-18 00:51:01] [INFO] About to extract fields from XML. File size: 4778 bytes
[2026-02-18 00:51:01] [INFO] Number of mappings: 28
[2026-02-18 00:51:01] [INFO] Starting XML parsing. Content length: 4778
[2026-02-18 00:51:01] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 00:51:01] [INFO] Processing 28 field mappings
[2026-02-18 00:51:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 00:51:01] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 00:51:01] [INFO]   -> Found value: AFD
[2026-02-18 00:51:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-02-18 00:51:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 00:51:01] [INFO]   -> Found value: 2026000078
[2026-02-18 00:51:01] [INFO]   -> Set field 'incidentInternalId' = "2026000078"
[2026-02-18 00:51:01] [INFO]   -> Set field 'dispatchRunNumber' = "2026000078"
[2026-02-18 00:51:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 00:51:01] [INFO]   -> Found value: CARBON MONOXIDE ALARM
[2026-02-18 00:51:01] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON MONOXIDE ALARM"
[2026-02-18 00:51:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 00:51:01] [INFO]   -> Found value: 2929
[2026-02-18 00:51:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2929
[2026-02-18 00:51:01] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 00:51:01] [INFO]   -> Found value: TN
[2026-02-18 00:51:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 00:51:01] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 00:51:01] [INFO]   -> Found value: 38506
[2026-02-18 00:51:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-18 00:51:01] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 00:51:01] [INFO]   -> Found value: 36.17898
[2026-02-18 00:51:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17898000000000280351741821505129337310791015625
[2026-02-18 00:51:01] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 00:51:01] [INFO]   -> Found value: -85.44814
[2026-02-18 00:51:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.448139999999995097823557443916797637939453125
[2026-02-18 00:51:01] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 00:51:01] [INFO]   -> Found value: 2026-02-17 18:49:57
[2026-02-18 00:51:01] [INFO]   -> Set field 'alarm' = "2026-02-17 18:49:57"
[2026-02-18 00:51:01] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 00:51:01] [INFO]   -> Found value: 2026-02-17 18:50:46
[2026-02-18 00:51:01] [INFO]   -> Set field 'dispatched' = "2026-02-17 18:50:46"
[2026-02-18 00:51:01] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 00:51:01] [INFO]   -> Found value: CARSON CIR
[2026-02-18 00:51:01] [INFO]   -> Set field 'incidentLocationCross' = "CARSON CIR"
[2026-02-18 00:51:01] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 00:51:01] [INFO]   -> Found value: AEN1
[2026-02-18 00:51:01] [INFO]   -> Set field 'cADVehicleID' = "AEN1"
[2026-02-18 00:51:01] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 00:51:01] [INFO]   -> Found value: 2026-02-17 18:50:46
[2026-02-18 00:51:01] [INFO]   -> Set field 'timedispatch' = "2026-02-17 18:50:46"
[2026-02-18 00:51:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 00:51:01] [INFO]   -> No value found (null or empty)
[2026-02-18 00:51:01] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 00:51:01] [INFO]   -> Found value: 20260018107
[2026-02-18 00:51:01] [INFO]   -> Set field 'policeReportNumber' = "20260018107"
[2026-02-18 00:51:01] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 00:51:01] [INFO]   -> Found value: zone 9 hallway  [02/17/26 18:50:41 KBEATY]
[2026-02-18 00:51:01] [INFO]   -> Set field 'dispatchNotes' = "zone 9 hallway  [02\/17\/26 18:50:41 KBEATY]"
[2026-02-18 00:51:01] [INFO]   -> Set field 'cADLog' = "zone 9 hallway  [02\/17\/26 18:50:41 KBEATY]"
[2026-02-18 00:51:01] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 00:51:01] [INFO]   -> Found value: ALGOOD
[2026-02-18 00:51:01] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-18 00:51:01] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 00:51:01] [INFO]   -> Found value: OLD WALTON
[2026-02-18 00:51:01] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-02-18 00:51:01] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 00:51:01] [INFO]   -> Found value: CIR
[2026-02-18 00:51:01] [INFO]   -> Set field 'streetType' = "CIR"
[2026-02-18 00:51:01] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 00:51:01] [INFO]   -> Found value: 2929 OLD WALTON CIR
[2026-02-18 00:51:01] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2929 OLD WALTON CIR"
[2026-02-18 00:51:01] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 00:51:01] [INFO] Concatenating street name and type
[2026-02-18 00:51:01] [INFO]   -> Combined street name: OLD WALTON CIR
[2026-02-18 00:51:01] [INFO] Built locationCoordinates from lat/lng: 36.17898,-85.44814
[2026-02-18 00:51:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000078","dispatchRunNumber":"2026000078","incidentTypeValue1":"CARBON MONOXIDE ALARM","incidentLocationStreetNumber":2929,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.17898000000000280351741821505129337310791015625,"nERISIncidentLongitude":-85.448139999999995097823557443916797637939453125,"alarm":"2026-02-17 18:49:57","dispatched":"2026-02-17 18:50:46","incidentLocationCross":"CARSON CIR","cADVehicleID":"AEN1","timedispatch":"2026-02-17 18:50:46","policeReportNumber":"20260018107","dispatchNotes":"zone 9 hallway  [02\/17\/26 18:50:41 KBEATY]","cADLog":"zone 9 hallway  [02\/17\/26 18:50:41 KBEATY]","incidentLocationCity":"ALGOOD","streetName":"OLD WALTON CIR","incidentAddressTextVersionStreet":"2929 OLD WALTON CIR","locationCoordinates":"36.17898,-85.44814"}
[2026-02-18 00:51:01] [INFO] Number of extracted fields: 21
[2026-02-18 00:51:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-02-18 00:51:01] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-18 00:51:01] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-02-18 00:51:01] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-18 00:51:01] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-18 00:51:01] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-18 00:51:01] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-18 00:51:01] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-18 00:51:01] [INFO] Found existing IncidentTypeMapping with ID: 6976ce31c76bcebaf
[2026-02-18 00:51:06] [INFO] Created new Dispatches record with ID: 69950cf62502c536f
[2026-02-18 00:51:06] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 00:51:07] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 00:51:10] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 00:51:10] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018107_20260218_005100.XML: Failed to upload file to V2 FTP server: /AFD_20260018107_20260218_005100.XML
[2026-02-18 00:51:10] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 04:54:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018163_20260218_045402.XML
[2026-02-18 04:54:02] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018163_20260218_045402.XML for user: 68f1466aed072ad4a
[2026-02-18 04:54:02] [INFO] File size: 5200 bytes
[2026-02-18 04:54:02] [INFO] Created FTPFiles record with ID: 699545ea7e0f819ca
[2026-02-18 04:54:02] [INFO] About to extract fields from XML. File size: 5200 bytes
[2026-02-18 04:54:02] [INFO] Number of mappings: 28
[2026-02-18 04:54:02] [INFO] Starting XML parsing. Content length: 5200
[2026-02-18 04:54:02] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 04:54:02] [INFO] Processing 28 field mappings
[2026-02-18 04:54:02] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 04:54:02] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 04:54:02] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 04:54:02] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-18 04:54:02] [INFO]   -> Found value: PCFD
EMS
MFD
[2026-02-18 04:54:02] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD"
[2026-02-18 04:54:02] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 04:54:02] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-18 04:54:02] [INFO]   -> Found value: 2026000465
[2026-02-18 04:54:02] [INFO]   -> Set field 'incidentInternalId' = "2026000465"
[2026-02-18 04:54:02] [INFO]   -> Set field 'dispatchRunNumber' = "2026000465"
[2026-02-18 04:54:02] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 04:54:02] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-02-18 04:54:02] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-02-18 04:54:02] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 04:54:02] [INFO]   -> Found value: 209
[2026-02-18 04:54:02] [INFO]   -> Set field 'incidentLocationStreetNumber' = 209
[2026-02-18 04:54:02] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 04:54:02] [INFO]   -> Found value: TN
[2026-02-18 04:54:02] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 04:54:02] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 04:54:02] [INFO]   -> Found value: 38574
[2026-02-18 04:54:02] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-18 04:54:02] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 04:54:02] [INFO]   -> Found value: 36.14907
[2026-02-18 04:54:02] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14907000000000181216819328255951404571533203125
[2026-02-18 04:54:02] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 04:54:02] [INFO]   -> Found value: -85.26981
[2026-02-18 04:54:02] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.269810000000006766640581190586090087890625
[2026-02-18 04:54:02] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 04:54:02] [INFO]   -> Found value: 2026-02-17 22:53:57
[2026-02-18 04:54:02] [INFO]   -> Set field 'alarm' = "2026-02-17 22:53:57"
[2026-02-18 04:54:02] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 04:54:02] [INFO]   -> Found value: 2026-02-17 22:53:57
[2026-02-18 04:54:02] [INFO]   -> Set field 'dispatched' = "2026-02-17 22:53:57"
[2026-02-18 04:54:02] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 04:54:02] [INFO]   -> Found value: N POPLAR ST/S WALNUT ST
[2026-02-18 04:54:02] [INFO]   -> Set field 'incidentLocationCross' = "N POPLAR ST\/S WALNUT ST"
[2026-02-18 04:54:02] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 04:54:02] [INFO]   -> Found value: PCFR
[2026-02-18 04:54:02] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-18 04:54:02] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 04:54:02] [INFO]   -> Found value: 2026-02-17 22:53:57
[2026-02-18 04:54:02] [INFO]   -> Set field 'timedispatch' = "2026-02-17 22:53:57"
[2026-02-18 04:54:02] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 04:54:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:02] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 04:54:02] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 04:54:02] [INFO]   -> Found value: 20260018163
[2026-02-18 04:54:02] [INFO]   -> Set field 'policeReportNumber' = "20260018163"
[2026-02-18 04:54:02] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 04:54:02] [INFO]   -> Found value: Event spawned from ABDOMINAL PAIN.  [02/17/2026 22:53:57 EALMENDAREZ] Event spawned from ABDOMINAL P...
[2026-02-18 04:54:02] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:57 EALMENDAREZ] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]"
[2026-02-18 04:54:02] [INFO]   -> Set field 'cADLog' = "Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:57 EALMENDAREZ] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]"
[2026-02-18 04:54:02] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 04:54:02] [INFO]   -> Found value: MONTEREY
[2026-02-18 04:54:02] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-18 04:54:02] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 04:54:02] [INFO]   -> Found value: COMMERCIAL
[2026-02-18 04:54:02] [INFO]   -> Set field 'streetName' = "COMMERCIAL"
[2026-02-18 04:54:02] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 04:54:02] [INFO]   -> Found value: AVE
[2026-02-18 04:54:02] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-18 04:54:02] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 04:54:02] [INFO]   -> Found value: 209 W COMMERCIAL AVE
[2026-02-18 04:54:02] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "209 W COMMERCIAL AVE"
[2026-02-18 04:54:02] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 04:54:02] [INFO] Concatenating street name and type
[2026-02-18 04:54:02] [INFO]   -> Combined street name: COMMERCIAL AVE
[2026-02-18 04:54:02] [INFO] Built locationCoordinates from lat/lng: 36.14907,-85.26981
[2026-02-18 04:54:02] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD","incidentInternalId":"2026000465","dispatchRunNumber":"2026000465","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":209,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.14907000000000181216819328255951404571533203125,"nERISIncidentLongitude":-85.269810000000006766640581190586090087890625,"alarm":"2026-02-17 22:53:57","dispatched":"2026-02-17 22:53:57","incidentLocationCross":"N POPLAR ST\/S WALNUT ST","cADVehicleID":"PCFR","timedispatch":"2026-02-17 22:53:57","policeReportNumber":"20260018163","dispatchNotes":"Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:57 EALMENDAREZ] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]","cADLog":"Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:57 EALMENDAREZ] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]","incidentLocationCity":"MONTEREY","streetName":"COMMERCIAL AVE","incidentAddressTextVersionStreet":"209 W COMMERCIAL AVE","locationCoordinates":"36.14907,-85.26981"}
[2026-02-18 04:54:02] [INFO] Number of extracted fields: 21
[2026-02-18 04:54:02] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD'
[2026-02-18 04:54:02] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD', Parsed IDs = ["PCFD","EMS","MFD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-18 04:54:02] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD"]
[2026-02-18 04:54:02] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 04:54:02] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 04:54:02] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD"]
[2026-02-18 04:54:02] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 04:54:02] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 04:54:02] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-18 04:54:02] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-18 04:54:02] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 04:54:02] [INFO] Found existing IncidentTypeMapping with ID: 6950ee4041befee87
[2026-02-18 04:54:12] [INFO] Created new Dispatches record with ID: 699545eb46d3ea0b8
[2026-02-18 04:54:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 04:54:12] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 04:54:15] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 04:54:15] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018163_20260218_045402.XML: Failed to upload file to V2 FTP server: /PCFD_20260018163_20260218_045402.XML
[2026-02-18 04:54:15] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 04:54:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018162_20260218_045441.XML
[2026-02-18 04:54:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018162_20260218_045441.XML for user: 68f1466aed072ad4a
[2026-02-18 04:54:41] [INFO] File size: 5382 bytes
[2026-02-18 04:54:42] [INFO] Created FTPFiles record with ID: 699546123bdcd488e
[2026-02-18 04:54:42] [INFO] About to extract fields from XML. File size: 5382 bytes
[2026-02-18 04:54:42] [INFO] Number of mappings: 28
[2026-02-18 04:54:42] [INFO] Starting XML parsing. Content length: 5382
[2026-02-18 04:54:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 04:54:42] [INFO] Processing 28 field mappings
[2026-02-18 04:54:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 04:54:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 04:54:42] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 04:54:42] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-18 04:54:42] [INFO]   -> Found value: MFD
EMS
PCFD
RESC
[2026-02-18 04:54:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nPCFD\nRESC"
[2026-02-18 04:54:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 04:54:42] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-18 04:54:42] [INFO]   -> Found value: 2026000061
[2026-02-18 04:54:42] [INFO]   -> Set field 'incidentInternalId' = "2026000061"
[2026-02-18 04:54:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000061"
[2026-02-18 04:54:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 04:54:42] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-02-18 04:54:42] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-02-18 04:54:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 04:54:42] [INFO]   -> Found value: 209
[2026-02-18 04:54:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 209
[2026-02-18 04:54:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 04:54:42] [INFO]   -> Found value: TN
[2026-02-18 04:54:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 04:54:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 04:54:42] [INFO]   -> Found value: 38574
[2026-02-18 04:54:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-18 04:54:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 04:54:42] [INFO]   -> Found value: 36.14907
[2026-02-18 04:54:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14907000000000181216819328255951404571533203125
[2026-02-18 04:54:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 04:54:42] [INFO]   -> Found value: -85.26981
[2026-02-18 04:54:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.269810000000006766640581190586090087890625
[2026-02-18 04:54:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 04:54:42] [INFO]   -> Found value: 2026-02-17 22:53:46
[2026-02-18 04:54:42] [INFO]   -> Set field 'alarm' = "2026-02-17 22:53:46"
[2026-02-18 04:54:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 04:54:42] [INFO]   -> Found value: 2026-02-17 22:54:33
[2026-02-18 04:54:42] [INFO]   -> Set field 'dispatched' = "2026-02-17 22:54:33"
[2026-02-18 04:54:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 04:54:42] [INFO]   -> Found value: N POPLAR ST/S WALNUT ST
[2026-02-18 04:54:42] [INFO]   -> Set field 'incidentLocationCross' = "N POPLAR ST\/S WALNUT ST"
[2026-02-18 04:54:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 04:54:42] [INFO]   -> Found value: MFR
[2026-02-18 04:54:42] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-18 04:54:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 04:54:42] [INFO]   -> Found value: 2026-02-17 22:54:33
[2026-02-18 04:54:42] [INFO]   -> Set field 'timedispatch' = "2026-02-17 22:54:33"
[2026-02-18 04:54:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 04:54:42] [INFO]   -> No value found (null or empty)
[2026-02-18 04:54:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 04:54:42] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 04:54:42] [INFO]   -> Found value: 20260018162
[2026-02-18 04:54:42] [INFO]   -> Set field 'policeReportNumber' = "20260018162"
[2026-02-18 04:54:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 04:54:42] [INFO]   -> Found value: [EMS] THROWING UP &quot;BROWN STUFF&quot;  [02/17/26 22:54:04 JDICK] Event spawned from ABDOMINAL PA...
[2026-02-18 04:54:42] [INFO]   -> Set field 'dispatchNotes' = "[EMS] THROWING UP &quot;BROWN STUFF&quot;  [02\/17\/26 22:54:04 JDICK] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]"
[2026-02-18 04:54:42] [INFO]   -> Set field 'cADLog' = "[EMS] THROWING UP &quot;BROWN STUFF&quot;  [02\/17\/26 22:54:04 JDICK] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]"
[2026-02-18 04:54:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 04:54:42] [INFO]   -> Found value: MONTEREY
[2026-02-18 04:54:42] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-18 04:54:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 04:54:42] [INFO]   -> Found value: COMMERCIAL
[2026-02-18 04:54:42] [INFO]   -> Set field 'streetName' = "COMMERCIAL"
[2026-02-18 04:54:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 04:54:42] [INFO]   -> Found value: AVE
[2026-02-18 04:54:42] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-18 04:54:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 04:54:42] [INFO]   -> Found value: 209 W COMMERCIAL AVE
[2026-02-18 04:54:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "209 W COMMERCIAL AVE"
[2026-02-18 04:54:42] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 04:54:42] [INFO] Concatenating street name and type
[2026-02-18 04:54:42] [INFO]   -> Combined street name: COMMERCIAL AVE
[2026-02-18 04:54:42] [INFO] Built locationCoordinates from lat/lng: 36.14907,-85.26981
[2026-02-18 04:54:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nPCFD\nRESC","incidentInternalId":"2026000061","dispatchRunNumber":"2026000061","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":209,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.14907000000000181216819328255951404571533203125,"nERISIncidentLongitude":-85.269810000000006766640581190586090087890625,"alarm":"2026-02-17 22:53:46","dispatched":"2026-02-17 22:54:33","incidentLocationCross":"N POPLAR ST\/S WALNUT ST","cADVehicleID":"MFR","timedispatch":"2026-02-17 22:54:33","policeReportNumber":"20260018162","dispatchNotes":"[EMS] THROWING UP &quot;BROWN STUFF&quot;  [02\/17\/26 22:54:04 JDICK] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]","cADLog":"[EMS] THROWING UP &quot;BROWN STUFF&quot;  [02\/17\/26 22:54:04 JDICK] Event spawned from ABDOMINAL PAIN.  [02\/17\/2026 22:53:46 JDICK] STOMACH PAIN- 26 YOF  [02\/17\/26 22:53:11 JDICK]]","incidentLocationCity":"MONTEREY","streetName":"COMMERCIAL AVE","incidentAddressTextVersionStreet":"209 W COMMERCIAL AVE","locationCoordinates":"36.14907,-85.26981"}
[2026-02-18 04:54:42] [INFO] Number of extracted fields: 21
[2026-02-18 04:54:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
PCFD
RESC'
[2026-02-18 04:54:42] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
PCFD
RESC', Parsed IDs = ["MFD","EMS","PCFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-18 04:54:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","PCFD","RESC"]
[2026-02-18 04:54:42] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-18 04:54:42] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-18 04:54:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD","RESC"]
[2026-02-18 04:54:42] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-18 04:54:42] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-18 04:54:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-18 04:54:42] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-18 04:54:42] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-18 04:54:42] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"ABDOMINAL PAIN","saasclientId":"68e67aaba2bb4565e","name":"ABDOMINAL PAIN"}
[2026-02-18 04:54:42] [INFO] Created new IncidentTypeMapping with ID: 69954612e39d14933
[2026-02-18 04:54:45] [INFO] Created new Dispatches record with ID: 699546133e7034a48
[2026-02-18 04:54:45] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 04:54:45] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 04:54:48] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 04:54:48] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018162_20260218_045441.XML: Failed to upload file to V2 FTP server: /MFD_20260018162_20260218_045441.XML
[2026-02-18 04:54:48] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 04:56:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018167_20260218_045602.XML
[2026-02-18 04:56:02] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018167_20260218_045602.XML for user: 68f1466aed072ad4a
[2026-02-18 04:56:02] [INFO] File size: 5493 bytes
[2026-02-18 04:56:02] [INFO] Created FTPFiles record with ID: 699546628b6f0703c
[2026-02-18 04:56:02] [INFO] About to extract fields from XML. File size: 5493 bytes
[2026-02-18 04:56:02] [INFO] Number of mappings: 28
[2026-02-18 04:56:02] [INFO] Starting XML parsing. Content length: 5493
[2026-02-18 04:56:02] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 04:56:02] [INFO] Processing 28 field mappings
[2026-02-18 04:56:02] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 04:56:02] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 04:56:02] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 04:56:02] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-18 04:56:02] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-18 04:56:02] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-18 04:56:02] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 04:56:02] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-18 04:56:02] [INFO]   -> Found value: 2026000466
[2026-02-18 04:56:02] [INFO]   -> Set field 'incidentInternalId' = "2026000466"
[2026-02-18 04:56:02] [INFO]   -> Set field 'dispatchRunNumber' = "2026000466"
[2026-02-18 04:56:02] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 04:56:02] [INFO]   -> Found value: CHEST PAIN
[2026-02-18 04:56:02] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-02-18 04:56:02] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 04:56:02] [INFO]   -> Found value: 4300
[2026-02-18 04:56:02] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4300
[2026-02-18 04:56:02] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 04:56:02] [INFO]   -> Found value: TN
[2026-02-18 04:56:02] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 04:56:02] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 04:56:02] [INFO]   -> Found value: 38506
[2026-02-18 04:56:02] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-18 04:56:02] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 04:56:02] [INFO]   -> Found value: 36.09668
[2026-02-18 04:56:02] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.09667999999999921101334621198475360870361328125
[2026-02-18 04:56:02] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 04:56:02] [INFO]   -> Found value: -85.55800
[2026-02-18 04:56:02] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5580000000000069348971010185778141021728515625
[2026-02-18 04:56:02] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 04:56:02] [INFO]   -> Found value: 2026-02-17 22:54:44
[2026-02-18 04:56:02] [INFO]   -> Set field 'alarm' = "2026-02-17 22:54:44"
[2026-02-18 04:56:02] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 04:56:02] [INFO]   -> Found value: 2026-02-17 22:55:57
[2026-02-18 04:56:02] [INFO]   -> Set field 'dispatched' = "2026-02-17 22:55:57"
[2026-02-18 04:56:02] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 04:56:02] [INFO]   -> Found value: TOP RD/HENRY RICE RD
[2026-02-18 04:56:02] [INFO]   -> Set field 'incidentLocationCross' = "TOP RD\/HENRY RICE RD"
[2026-02-18 04:56:02] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 04:56:02] [INFO]   -> Found value: PCFR
[2026-02-18 04:56:02] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-18 04:56:02] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 04:56:02] [INFO]   -> Found value: 2026-02-17 22:55:57
[2026-02-18 04:56:02] [INFO]   -> Set field 'timedispatch' = "2026-02-17 22:55:57"
[2026-02-18 04:56:02] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 04:56:02] [INFO]   -> No value found (null or empty)
[2026-02-18 04:56:02] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 04:56:02] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 04:56:02] [INFO]   -> Found value: 20260018167
[2026-02-18 04:56:02] [INFO]   -> Set field 'policeReportNumber' = "20260018167"
[2026-02-18 04:56:02] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 04:56:02] [INFO]   -> Found value: [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [02/17/26 22:55:23 BAHARRIS] [EMS] 74 YOM-  HX O...
[2026-02-18 04:56:02] [INFO]   -> Set field 'dispatchNotes' = "[LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [02\/17\/26 22:55:23 BAHARRIS] [EMS] 74 YOM-  HX OPEN HEART SURGERY  [02\/17\/26 22:55:05 JDICK] Event spawned from CHEST PAIN.  [02\/17\/2026 22:54:44 JDICK]"
[2026-02-18 04:56:02] [INFO]   -> Set field 'cADLog' = "[LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [02\/17\/26 22:55:23 BAHARRIS] [EMS] 74 YOM-  HX OPEN HEART SURGERY  [02\/17\/26 22:55:05 JDICK] Event spawned from CHEST PAIN.  [02\/17\/2026 22:54:44 JDICK]"
[2026-02-18 04:56:02] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 04:56:02] [INFO]   -> Found value: COOKEVILLE
[2026-02-18 04:56:02] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-18 04:56:02] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 04:56:02] [INFO]   -> Found value: VERBLE SHERRELL
[2026-02-18 04:56:02] [INFO]   -> Set field 'streetName' = "VERBLE SHERRELL"
[2026-02-18 04:56:02] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 04:56:02] [INFO]   -> Found value: RD
[2026-02-18 04:56:02] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-18 04:56:02] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 04:56:02] [INFO]   -> Found value: 4300 VERBLE SHERRELL RD
[2026-02-18 04:56:02] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4300 VERBLE SHERRELL RD"
[2026-02-18 04:56:02] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 04:56:02] [INFO] Concatenating street name and type
[2026-02-18 04:56:02] [INFO]   -> Combined street name: VERBLE SHERRELL RD
[2026-02-18 04:56:02] [INFO] Built locationCoordinates from lat/lng: 36.09668,-85.558
[2026-02-18 04:56:02] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000466","dispatchRunNumber":"2026000466","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":4300,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.09667999999999921101334621198475360870361328125,"nERISIncidentLongitude":-85.5580000000000069348971010185778141021728515625,"alarm":"2026-02-17 22:54:44","dispatched":"2026-02-17 22:55:57","incidentLocationCross":"TOP RD\/HENRY RICE RD","cADVehicleID":"PCFR","timedispatch":"2026-02-17 22:55:57","policeReportNumber":"20260018167","dispatchNotes":"[LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [02\/17\/26 22:55:23 BAHARRIS] [EMS] 74 YOM-  HX OPEN HEART SURGERY  [02\/17\/26 22:55:05 JDICK] Event spawned from CHEST PAIN.  [02\/17\/2026 22:54:44 JDICK]","cADLog":"[LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [02\/17\/26 22:55:23 BAHARRIS] [EMS] 74 YOM-  HX OPEN HEART SURGERY  [02\/17\/26 22:55:05 JDICK] Event spawned from CHEST PAIN.  [02\/17\/2026 22:54:44 JDICK]","incidentLocationCity":"COOKEVILLE","streetName":"VERBLE SHERRELL RD","incidentAddressTextVersionStreet":"4300 VERBLE SHERRELL RD","locationCoordinates":"36.09668,-85.558"}
[2026-02-18 04:56:02] [INFO] Number of extracted fields: 21
[2026-02-18 04:56:02] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-18 04:56:02] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-18 04:56:02] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-18 04:56:02] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 04:56:02] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 04:56:02] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-18 04:56:02] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 04:56:02] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 04:56:02] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-18 04:56:02] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-18 04:56:02] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 04:56:03] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-02-18 04:56:12] [INFO] Created new Dispatches record with ID: 699546634e42dd80a
[2026-02-18 04:56:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 04:56:12] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 04:56:15] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 04:56:15] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018167_20260218_045602.XML: Failed to upload file to V2 FTP server: /PCFD_20260018167_20260218_045602.XML
[2026-02-18 04:56:15] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 07:59:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:58:59Z.xml
[2026-02-18 07:59:00] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:58:59Z.xml
[2026-02-18 07:59:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:58:59Z.xml
[2026-02-18 07:59:01] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:58:59Z.xml
[2026-02-18 07:59:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:59:00Z.xml
[2026-02-18 07:59:02] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:59:00Z.xml
[2026-02-18 07:59:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:59:00Z.xml
[2026-02-18 07:59:02] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:59:00Z.xml
[2026-02-18 07:59:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:59:03Z.xml
[2026-02-18 07:59:05] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 01:59:03Z.xml
[2026-02-18 08:00:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:03Z.xml
[2026-02-18 08:00:05] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:03Z.xml
[2026-02-18 08:00:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:04Z.xml
[2026-02-18 08:00:05] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:04Z.xml
[2026-02-18 08:00:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:09Z.xml
[2026-02-18 08:00:11] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:09Z.xml
[2026-02-18 08:00:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:10Z.xml
[2026-02-18 08:00:12] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:10Z.xml
[2026-02-18 08:00:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:11Z.xml
[2026-02-18 08:00:12] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:00:11Z.xml
[2026-02-18 08:04:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:04:49Z.xml
[2026-02-18 08:04:51] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:04:49Z.xml
[2026-02-18 08:06:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:06:03Z.xml
[2026-02-18 08:06:05] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:06:03Z.xml
[2026-02-18 08:06:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:06:27Z.xml
[2026-02-18 08:06:28] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:06:27Z.xml
[2026-02-18 08:06:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:06:27Z.xml
[2026-02-18 08:06:29] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:06:27Z.xml
[2026-02-18 08:08:44] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:43Z.xml
[2026-02-18 08:08:44] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:43Z.xml
[2026-02-18 08:08:45] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:43Z.xml
[2026-02-18 08:08:45] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:43Z.xml
[2026-02-18 08:08:45] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:44Z.xml
[2026-02-18 08:08:45] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:44Z.xml
[2026-02-18 08:08:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:44Z.xml
[2026-02-18 08:08:46] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:44Z.xml
[2026-02-18 08:08:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:45Z.xml
[2026-02-18 08:08:47] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:45Z.xml
[2026-02-18 08:08:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:47Z.xml
[2026-02-18 08:08:49] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:08:47Z.xml
[2026-02-18 08:09:26] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:09:24Z.xml
[2026-02-18 08:09:26] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:09:24Z.xml
[2026-02-18 08:09:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:09:37Z.xml
[2026-02-18 08:09:39] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:09:37Z.xml
[2026-02-18 08:10:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:10:39Z.xml
[2026-02-18 08:10:41] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:10:39Z.xml
[2026-02-18 08:10:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:10:40Z.xml
[2026-02-18 08:10:41] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:10:40Z.xml
[2026-02-18 08:18:35] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:18:33Z.xml
[2026-02-18 08:18:35] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:18:33Z.xml
[2026-02-18 08:18:35] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:18:33Z.xml
[2026-02-18 08:18:35] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:18:33Z.xml
[2026-02-18 08:35:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:51Z.xml
[2026-02-18 08:35:55] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:51Z.xml
[2026-02-18 08:35:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:54Z.xml
[2026-02-18 08:35:55] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:54Z.xml
[2026-02-18 08:35:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:54Z.xml
[2026-02-18 08:35:56] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:54Z.xml
[2026-02-18 08:35:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:55Z.xml
[2026-02-18 08:35:56] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:55Z.xml
[2026-02-18 08:35:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:55Z.xml
[2026-02-18 08:35:57] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:55Z.xml
[2026-02-18 08:35:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:56Z.xml
[2026-02-18 08:35:57] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:56Z.xml
[2026-02-18 08:36:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:58Z.xml
[2026-02-18 08:36:00] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:58Z.xml
[2026-02-18 08:36:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:59Z.xml
[2026-02-18 08:36:00] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:59Z.xml
[2026-02-18 08:36:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:59Z.xml
[2026-02-18 08:36:01] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:35:59Z.xml
[2026-02-18 08:36:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:04Z.xml
[2026-02-18 08:36:06] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:04Z.xml
[2026-02-18 08:36:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:21Z.xml
[2026-02-18 08:36:23] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:21Z.xml
[2026-02-18 08:36:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:21Z.xml
[2026-02-18 08:36:23] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:21Z.xml
[2026-02-18 08:36:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:22Z.xml
[2026-02-18 08:36:24] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:22Z.xml
[2026-02-18 08:36:58] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:56Z.xml
[2026-02-18 08:36:58] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:36:56Z.xml
[2026-02-18 08:37:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:44Z.xml
[2026-02-18 08:37:46] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:44Z.xml
[2026-02-18 08:37:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:45Z.xml
[2026-02-18 08:37:47] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:45Z.xml
[2026-02-18 08:37:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:45Z.xml
[2026-02-18 08:37:47] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:45Z.xml
[2026-02-18 08:37:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:50Z.xml
[2026-02-18 08:37:52] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:50Z.xml
[2026-02-18 08:37:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:50Z.xml
[2026-02-18 08:37:52] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:37:50Z.xml
[2026-02-18 08:38:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:38:09Z.xml
[2026-02-18 08:38:11] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-007647_2026-02-18 02:38:09Z.xml
[2026-02-18 14:11:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018232_20260218_141128.XML
[2026-02-18 14:11:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018232_20260218_141128.XML for user: 68f1466aed072ad4a
[2026-02-18 14:11:28] [INFO] File size: 5350 bytes
[2026-02-18 14:11:29] [INFO] Created FTPFiles record with ID: 6995c8910c697fd2e
[2026-02-18 14:11:29] [INFO] About to extract fields from XML. File size: 5350 bytes
[2026-02-18 14:11:29] [INFO] Number of mappings: 28
[2026-02-18 14:11:29] [INFO] Starting XML parsing. Content length: 5350
[2026-02-18 14:11:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 14:11:29] [INFO] Processing 28 field mappings
[2026-02-18 14:11:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 14:11:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 14:11:29] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 14:11:29] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-18 14:11:29] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-18 14:11:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-18 14:11:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 14:11:29] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-18 14:11:29] [INFO]   -> Found value: 2026000467
[2026-02-18 14:11:29] [INFO]   -> Set field 'incidentInternalId' = "2026000467"
[2026-02-18 14:11:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000467"
[2026-02-18 14:11:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 14:11:29] [INFO]   -> Found value: UNCONSCIOUS
[2026-02-18 14:11:29] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-02-18 14:11:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 14:11:29] [INFO]   -> Found value: 2102
[2026-02-18 14:11:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2102
[2026-02-18 14:11:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 14:11:29] [INFO]   -> Found value: TN
[2026-02-18 14:11:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 14:11:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 14:11:29] [INFO]   -> Found value: 38506
[2026-02-18 14:11:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-18 14:11:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 14:11:29] [INFO]   -> Found value: 36.08376
[2026-02-18 14:11:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0837599999999980582288117147982120513916015625
[2026-02-18 14:11:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 14:11:29] [INFO]   -> Found value: -85.55506
[2026-02-18 14:11:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.555059999999997444319888018071651458740234375
[2026-02-18 14:11:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 14:11:29] [INFO]   -> Found value: 2026-02-18 08:11:09
[2026-02-18 14:11:29] [INFO]   -> Set field 'alarm' = "2026-02-18 08:11:09"
[2026-02-18 14:11:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 14:11:29] [INFO]   -> Found value: 2026-02-18 08:11:23
[2026-02-18 14:11:29] [INFO]   -> Set field 'dispatched' = "2026-02-18 08:11:23"
[2026-02-18 14:11:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 14:11:29] [INFO]   -> Found value: HOOPER BURGESS RD
[2026-02-18 14:11:29] [INFO]   -> Set field 'incidentLocationCross' = "HOOPER BURGESS RD"
[2026-02-18 14:11:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 14:11:29] [INFO]   -> Found value: PCFR
[2026-02-18 14:11:29] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-18 14:11:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 14:11:29] [INFO]   -> Found value: 2026-02-18 08:11:23
[2026-02-18 14:11:29] [INFO]   -> Set field 'timedispatch' = "2026-02-18 08:11:23"
[2026-02-18 14:11:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 14:11:29] [INFO]   -> No value found (null or empty)
[2026-02-18 14:11:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 14:11:29] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 14:11:29] [INFO]   -> Found value: 20260018232
[2026-02-18 14:11:29] [INFO]   -> Set field 'policeReportNumber' = "20260018232"
[2026-02-18 14:11:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 14:11:29] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [02/18/2026 08:11:09 MCLAYBURN2] SON NOT RESPONDING  [02/18/26 08:1...
[2026-02-18 14:11:29] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [02\/18\/2026 08:11:09 MCLAYBURN2] SON NOT RESPONDING  [02\/18\/26 08:11:04 MCLAYBURN2]]"
[2026-02-18 14:11:29] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [02\/18\/2026 08:11:09 MCLAYBURN2] SON NOT RESPONDING  [02\/18\/26 08:11:04 MCLAYBURN2]]"
[2026-02-18 14:11:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 14:11:29] [INFO]   -> Found value: COOKEVILLE
[2026-02-18 14:11:29] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-18 14:11:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 14:11:29] [INFO]   -> Found value: AMBER MEADOWS
[2026-02-18 14:11:29] [INFO]   -> Set field 'streetName' = "AMBER MEADOWS"
[2026-02-18 14:11:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 14:11:29] [INFO]   -> Found value: RD
[2026-02-18 14:11:29] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-18 14:11:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 14:11:29] [INFO]   -> Found value: 2102 AMBER MEADOWS RD
[2026-02-18 14:11:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2102 AMBER MEADOWS RD"
[2026-02-18 14:11:29] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 14:11:29] [INFO] Concatenating street name and type
[2026-02-18 14:11:29] [INFO]   -> Combined street name: AMBER MEADOWS RD
[2026-02-18 14:11:29] [INFO] Built locationCoordinates from lat/lng: 36.08376,-85.55506
[2026-02-18 14:11:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000467","dispatchRunNumber":"2026000467","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2102,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0837599999999980582288117147982120513916015625,"nERISIncidentLongitude":-85.555059999999997444319888018071651458740234375,"alarm":"2026-02-18 08:11:09","dispatched":"2026-02-18 08:11:23","incidentLocationCross":"HOOPER BURGESS RD","cADVehicleID":"PCFR","timedispatch":"2026-02-18 08:11:23","policeReportNumber":"20260018232","dispatchNotes":"Event spawned from UNCONSCIOUS.  [02\/18\/2026 08:11:09 MCLAYBURN2] SON NOT RESPONDING  [02\/18\/26 08:11:04 MCLAYBURN2]]","cADLog":"Event spawned from UNCONSCIOUS.  [02\/18\/2026 08:11:09 MCLAYBURN2] SON NOT RESPONDING  [02\/18\/26 08:11:04 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"AMBER MEADOWS RD","incidentAddressTextVersionStreet":"2102 AMBER MEADOWS RD","locationCoordinates":"36.08376,-85.55506"}
[2026-02-18 14:11:29] [INFO] Number of extracted fields: 21
[2026-02-18 14:11:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-18 14:11:29] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-18 14:11:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-18 14:11:29] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 14:11:29] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 14:11:29] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-18 14:11:29] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 14:11:29] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 14:11:29] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-18 14:11:29] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-18 14:11:29] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 14:11:29] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-02-18 14:11:40] [INFO] Created new Dispatches record with ID: 6995c891c9d908426
[2026-02-18 14:11:40] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 14:11:40] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 14:11:43] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 14:11:43] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018232_20260218_141128.XML: Failed to upload file to V2 FTP server: /PCFD_20260018232_20260218_141128.XML
[2026-02-18 14:11:43] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 14:19:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018235_20260218_141918.XML
[2026-02-18 14:19:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018235_20260218_141918.XML for user: 68f1466aed072ad4a
[2026-02-18 14:19:18] [INFO] File size: 5052 bytes
[2026-02-18 14:19:18] [INFO] Created FTPFiles record with ID: 6995ca66dae29cde6
[2026-02-18 14:19:18] [INFO] About to extract fields from XML. File size: 5052 bytes
[2026-02-18 14:19:18] [INFO] Number of mappings: 28
[2026-02-18 14:19:18] [INFO] Starting XML parsing. Content length: 5052
[2026-02-18 14:19:18] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 14:19:18] [INFO] Processing 28 field mappings
[2026-02-18 14:19:18] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 14:19:18] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 14:19:18] [INFO]   -> Found value: AFD
[2026-02-18 14:19:18] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-02-18 14:19:18] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 14:19:18] [INFO]   -> Found value: 2026000079
[2026-02-18 14:19:18] [INFO]   -> Set field 'incidentInternalId' = "2026000079"
[2026-02-18 14:19:18] [INFO]   -> Set field 'dispatchRunNumber' = "2026000079"
[2026-02-18 14:19:18] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 14:19:18] [INFO]   -> Found value: FIRE ALARM
[2026-02-18 14:19:18] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-02-18 14:19:18] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 14:19:18] [INFO]   -> Found value: 455
[2026-02-18 14:19:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 455
[2026-02-18 14:19:18] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 14:19:18] [INFO]   -> Found value: TN
[2026-02-18 14:19:18] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 14:19:18] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 14:19:18] [INFO]   -> Found value: 38506
[2026-02-18 14:19:18] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-18 14:19:18] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 14:19:18] [INFO]   -> Found value: REI
[2026-02-18 14:19:18] [INFO]   -> Set field 'businessName' = "REI"
[2026-02-18 14:19:18] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 14:19:18] [INFO]   -> Found value: 36.17942
[2026-02-18 14:19:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17942000000000035697667044587433338165283203125
[2026-02-18 14:19:18] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 14:19:18] [INFO]   -> Found value: -85.45581
[2026-02-18 14:19:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4558099999999996043698047287762165069580078125
[2026-02-18 14:19:18] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 14:19:18] [INFO]   -> Found value: 2026-02-18 08:16:21
[2026-02-18 14:19:18] [INFO]   -> Set field 'alarm' = "2026-02-18 08:16:21"
[2026-02-18 14:19:18] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 14:19:18] [INFO]   -> Found value: 2026-02-18 08:19:04
[2026-02-18 14:19:18] [INFO]   -> Set field 'dispatched' = "2026-02-18 08:19:04"
[2026-02-18 14:19:18] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 14:19:18] [INFO]   -> Found value: DRY VALLEY RD/BURTON BRANCH RD
[2026-02-18 14:19:18] [INFO]   -> Set field 'incidentLocationCross' = "DRY VALLEY RD\/BURTON BRANCH RD"
[2026-02-18 14:19:18] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 14:19:18] [INFO]   -> Found value: AEN1
[2026-02-18 14:19:18] [INFO]   -> Set field 'cADVehicleID' = "AEN1"
[2026-02-18 14:19:18] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 14:19:18] [INFO]   -> Found value: 2026-02-18 08:19:04
[2026-02-18 14:19:18] [INFO]   -> Set field 'timedispatch' = "2026-02-18 08:19:04"
[2026-02-18 14:19:18] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 14:19:18] [INFO]   -> No value found (null or empty)
[2026-02-18 14:19:18] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 14:19:18] [INFO]   -> Found value: 20260018235
[2026-02-18 14:19:18] [INFO]   -> Set field 'policeReportNumber' = "20260018235"
[2026-02-18 14:19:18] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 14:19:18] [INFO]   -> Found value: REF # HP016901  [02/18/26 08:18:22 KBURTON] 931-644-4077 IS CHRIS BROWNING`S NUMBER  [02/18/26 08:18...
[2026-02-18 14:19:18] [INFO]   -> Set field 'dispatchNotes' = "REF # HP016901  [02\/18\/26 08:18:22 KBURTON] 931-644-4077 IS CHRIS BROWNING`S NUMBER  [02\/18\/26 08:18:12 KBURTON] COMMERICAL FIRE ALARM  RESEARCH ELECTRONICS INTERNATIONAL  ZONE FIRE ALARM STORAGE S.E  931-537-6032 : PREMISE  CHIRS BROWNING  [02\/18\/26 08:17:41 KBURTON]"
[2026-02-18 14:19:18] [INFO]   -> Set field 'cADLog' = "REF # HP016901  [02\/18\/26 08:18:22 KBURTON] 931-644-4077 IS CHRIS BROWNING`S NUMBER  [02\/18\/26 08:18:12 KBURTON] COMMERICAL FIRE ALARM  RESEARCH ELECTRONICS INTERNATIONAL  ZONE FIRE ALARM STORAGE S.E  931-537-6032 : PREMISE  CHIRS BROWNING  [02\/18\/26 08:17:41 KBURTON]"
[2026-02-18 14:19:18] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 14:19:18] [INFO]   -> Found value: ALGOOD
[2026-02-18 14:19:18] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-18 14:19:18] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 14:19:18] [INFO]   -> Found value: SECURITY
[2026-02-18 14:19:18] [INFO]   -> Set field 'streetName' = "SECURITY"
[2026-02-18 14:19:18] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 14:19:18] [INFO]   -> Found value: DR
[2026-02-18 14:19:18] [INFO]   -> Set field 'streetType' = "DR"
[2026-02-18 14:19:18] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 14:19:18] [INFO]   -> Found value: 455 SECURITY DR
[2026-02-18 14:19:18] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "455 SECURITY DR"
[2026-02-18 14:19:18] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-18 14:19:18] [INFO] Concatenating street name and type
[2026-02-18 14:19:18] [INFO]   -> Combined street name: SECURITY DR
[2026-02-18 14:19:18] [INFO] Built locationCoordinates from lat/lng: 36.17942,-85.45581
[2026-02-18 14:19:18] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000079","dispatchRunNumber":"2026000079","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":455,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"REI","nERISIncidentLatitude":36.17942000000000035697667044587433338165283203125,"nERISIncidentLongitude":-85.4558099999999996043698047287762165069580078125,"alarm":"2026-02-18 08:16:21","dispatched":"2026-02-18 08:19:04","incidentLocationCross":"DRY VALLEY RD\/BURTON BRANCH RD","cADVehicleID":"AEN1","timedispatch":"2026-02-18 08:19:04","policeReportNumber":"20260018235","dispatchNotes":"REF # HP016901  [02\/18\/26 08:18:22 KBURTON] 931-644-4077 IS CHRIS BROWNING`S NUMBER  [02\/18\/26 08:18:12 KBURTON] COMMERICAL FIRE ALARM  RESEARCH ELECTRONICS INTERNATIONAL  ZONE FIRE ALARM STORAGE S.E  931-537-6032 : PREMISE  CHIRS BROWNING  [02\/18\/26 08:17:41 KBURTON]","cADLog":"REF # HP016901  [02\/18\/26 08:18:22 KBURTON] 931-644-4077 IS CHRIS BROWNING`S NUMBER  [02\/18\/26 08:18:12 KBURTON] COMMERICAL FIRE ALARM  RESEARCH ELECTRONICS INTERNATIONAL  ZONE FIRE ALARM STORAGE S.E  931-537-6032 : PREMISE  CHIRS BROWNING  [02\/18\/26 08:17:41 KBURTON]","incidentLocationCity":"ALGOOD","streetName":"SECURITY DR","incidentAddressTextVersionStreet":"455 SECURITY DR","locationCoordinates":"36.17942,-85.45581"}
[2026-02-18 14:19:18] [INFO] Number of extracted fields: 22
[2026-02-18 14:19:18] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-02-18 14:19:18] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-18 14:19:18] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-02-18 14:19:18] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-18 14:19:19] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-18 14:19:19] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-18 14:19:19] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-18 14:19:19] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-18 14:19:19] [INFO] Found existing IncidentTypeMapping with ID: 6978e351e0f80c4f5
[2026-02-18 14:19:24] [INFO] Created new Dispatches record with ID: 6995ca67c9bc3a59a
[2026-02-18 14:19:24] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 14:19:24] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 14:19:27] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 14:19:27] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260018235_20260218_141918.XML: Failed to upload file to V2 FTP server: /AFD_20260018235_20260218_141918.XML
[2026-02-18 14:19:27] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 14:48:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018242_20260218_144851.XML
[2026-02-18 14:48:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018242_20260218_144851.XML for user: 68f1466aed072ad4a
[2026-02-18 14:48:51] [INFO] File size: 4966 bytes
[2026-02-18 14:48:51] [INFO] Created FTPFiles record with ID: 6995d153b6833e168
[2026-02-18 14:48:51] [INFO] About to extract fields from XML. File size: 4966 bytes
[2026-02-18 14:48:51] [INFO] Number of mappings: 28
[2026-02-18 14:48:51] [INFO] Starting XML parsing. Content length: 4966
[2026-02-18 14:48:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 14:48:51] [INFO] Processing 28 field mappings
[2026-02-18 14:48:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 14:48:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 14:48:51] [INFO]   -> Found value: PCFD
[2026-02-18 14:48:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-02-18 14:48:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 14:48:51] [INFO]   -> Found value: 2026000468
[2026-02-18 14:48:51] [INFO]   -> Set field 'incidentInternalId' = "2026000468"
[2026-02-18 14:48:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000468"
[2026-02-18 14:48:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 14:48:51] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-02-18 14:48:51] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-02-18 14:48:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 14:48:51] [INFO]   -> Found value: 3405
[2026-02-18 14:48:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3405
[2026-02-18 14:48:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 14:48:51] [INFO]   -> Found value: TN
[2026-02-18 14:48:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 14:48:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 14:48:51] [INFO]   -> Found value: 38506
[2026-02-18 14:48:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-18 14:48:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 14:48:51] [INFO]   -> Found value: 36.10473
[2026-02-18 14:48:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1047300000000035424818634055554866790771484375
[2026-02-18 14:48:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 14:48:51] [INFO]   -> Found value: -85.57355
[2026-02-18 14:48:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5735499999999973397279973141849040985107421875
[2026-02-18 14:48:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 14:48:51] [INFO]   -> Found value: 2026-02-18 08:46:56
[2026-02-18 14:48:51] [INFO]   -> Set field 'alarm' = "2026-02-18 08:46:56"
[2026-02-18 14:48:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 14:48:51] [INFO]   -> Found value: 2026-02-18 08:48:43
[2026-02-18 14:48:51] [INFO]   -> Set field 'dispatched' = "2026-02-18 08:48:43"
[2026-02-18 14:48:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 14:48:51] [INFO]   -> Found value: RIVEROAKS DR/BROOKSTONE CT
[2026-02-18 14:48:51] [INFO]   -> Set field 'incidentLocationCross' = "RIVEROAKS DR\/BROOKSTONE CT"
[2026-02-18 14:48:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 14:48:51] [INFO]   -> Found value: AT13
[2026-02-18 14:48:51] [INFO]   -> Set field 'cADVehicleID' = "AT13"
[2026-02-18 14:48:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 14:48:51] [INFO]   -> Found value: 2026-02-18 08:48:43
[2026-02-18 14:48:51] [INFO]   -> Set field 'timedispatch' = "2026-02-18 08:48:43"
[2026-02-18 14:48:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 14:48:51] [INFO]   -> No value found (null or empty)
[2026-02-18 14:48:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 14:48:51] [INFO]   -> Found value: 20260018242
[2026-02-18 14:48:51] [INFO]   -> Set field 'policeReportNumber' = "20260018242"
[2026-02-18 14:48:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 14:48:51] [INFO]   -> Found value: FLAMES COMING FROM THE BRUSH AND THEY ARE PICKING UP  [02/18/26 08:48:33 MCLAYBURN2] 100 FOOT FROM E...
[2026-02-18 14:48:51] [INFO]   -> Set field 'dispatchNotes' = "FLAMES COMING FROM THE BRUSH AND THEY ARE PICKING UP  [02\/18\/26 08:48:33 MCLAYBURN2] 100 FOOT FROM EACH HOUSE  [02\/18\/26 08:47:49 MCLAYBURN2] LEFT A FIRE SMOLDERING BUT WIND HAS STARTED IT BACK UP  [02\/18\/26 08:47:28 MCLAYBURN2]]"
[2026-02-18 14:48:51] [INFO]   -> Set field 'cADLog' = "FLAMES COMING FROM THE BRUSH AND THEY ARE PICKING UP  [02\/18\/26 08:48:33 MCLAYBURN2] 100 FOOT FROM EACH HOUSE  [02\/18\/26 08:47:49 MCLAYBURN2] LEFT A FIRE SMOLDERING BUT WIND HAS STARTED IT BACK UP  [02\/18\/26 08:47:28 MCLAYBURN2]]"
[2026-02-18 14:48:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 14:48:51] [INFO]   -> Found value: COOKEVILLE
[2026-02-18 14:48:51] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-18 14:48:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 14:48:51] [INFO]   -> Found value: BROOKSTONE
[2026-02-18 14:48:51] [INFO]   -> Set field 'streetName' = "BROOKSTONE"
[2026-02-18 14:48:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 14:48:51] [INFO]   -> Found value: DR
[2026-02-18 14:48:51] [INFO]   -> Set field 'streetType' = "DR"
[2026-02-18 14:48:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 14:48:51] [INFO]   -> Found value: 3405 BROOKSTONE DR
[2026-02-18 14:48:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3405 BROOKSTONE DR"
[2026-02-18 14:48:51] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 14:48:51] [INFO] Concatenating street name and type
[2026-02-18 14:48:51] [INFO]   -> Combined street name: BROOKSTONE DR
[2026-02-18 14:48:51] [INFO] Built locationCoordinates from lat/lng: 36.10473,-85.57355
[2026-02-18 14:48:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000468","dispatchRunNumber":"2026000468","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":3405,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1047300000000035424818634055554866790771484375,"nERISIncidentLongitude":-85.5735499999999973397279973141849040985107421875,"alarm":"2026-02-18 08:46:56","dispatched":"2026-02-18 08:48:43","incidentLocationCross":"RIVEROAKS DR\/BROOKSTONE CT","cADVehicleID":"AT13","timedispatch":"2026-02-18 08:48:43","policeReportNumber":"20260018242","dispatchNotes":"FLAMES COMING FROM THE BRUSH AND THEY ARE PICKING UP  [02\/18\/26 08:48:33 MCLAYBURN2] 100 FOOT FROM EACH HOUSE  [02\/18\/26 08:47:49 MCLAYBURN2] LEFT A FIRE SMOLDERING BUT WIND HAS STARTED IT BACK UP  [02\/18\/26 08:47:28 MCLAYBURN2]]","cADLog":"FLAMES COMING FROM THE BRUSH AND THEY ARE PICKING UP  [02\/18\/26 08:48:33 MCLAYBURN2] 100 FOOT FROM EACH HOUSE  [02\/18\/26 08:47:49 MCLAYBURN2] LEFT A FIRE SMOLDERING BUT WIND HAS STARTED IT BACK UP  [02\/18\/26 08:47:28 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"BROOKSTONE DR","incidentAddressTextVersionStreet":"3405 BROOKSTONE DR","locationCoordinates":"36.10473,-85.57355"}
[2026-02-18 14:48:51] [INFO] Number of extracted fields: 21
[2026-02-18 14:48:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-02-18 14:48:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-18 14:48:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-02-18 14:48:51] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 14:48:51] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 14:48:52] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 14:48:52] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 14:48:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 14:48:52] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-02-18 14:49:03] [INFO] Created new Dispatches record with ID: 6995d154885854eb2
[2026-02-18 14:49:03] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 14:49:03] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 14:49:06] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 14:49:06] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018242_20260218_144851.XML: Failed to upload file to V2 FTP server: /PCFD_20260018242_20260218_144851.XML
[2026-02-18 14:49:06] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 16:38:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018301_20260218_163821.XML
[2026-02-18 16:38:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018301_20260218_163821.XML for user: 68f1466aed072ad4a
[2026-02-18 16:38:21] [INFO] File size: 5244 bytes
[2026-02-18 16:38:22] [INFO] Created FTPFiles record with ID: 6995eafe5c61dd41c
[2026-02-18 16:38:22] [INFO] About to extract fields from XML. File size: 5244 bytes
[2026-02-18 16:38:22] [INFO] Number of mappings: 28
[2026-02-18 16:38:22] [INFO] Starting XML parsing. Content length: 5244
[2026-02-18 16:38:22] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 16:38:22] [INFO] Processing 28 field mappings
[2026-02-18 16:38:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 16:38:22] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 16:38:22] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 16:38:22] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-02-18 16:38:22] [INFO]   -> Found value: BFD
EMS
[2026-02-18 16:38:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-02-18 16:38:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 16:38:22] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-02-18 16:38:22] [INFO]   -> Found value: 2026000054
[2026-02-18 16:38:22] [INFO]   -> Set field 'incidentInternalId' = "2026000054"
[2026-02-18 16:38:22] [INFO]   -> Set field 'dispatchRunNumber' = "2026000054"
[2026-02-18 16:38:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 16:38:22] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-02-18 16:38:22] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-02-18 16:38:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 16:38:22] [INFO]   -> Found value: 407
[2026-02-18 16:38:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 407
[2026-02-18 16:38:22] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 16:38:22] [INFO]   -> Found value: TN
[2026-02-18 16:38:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 16:38:22] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 16:38:22] [INFO]   -> Found value: 38544
[2026-02-18 16:38:22] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-18 16:38:22] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 16:38:22] [INFO]   -> Found value: UNKNOWN
[2026-02-18 16:38:22] [INFO]   -> Set field 'businessName' = "UNKNOWN"
[2026-02-18 16:38:22] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 16:38:22] [INFO]   -> Found value: 36.15420
[2026-02-18 16:38:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.15420000000000300133251585066318511962890625
[2026-02-18 16:38:22] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 16:38:22] [INFO]   -> Found value: -85.64787
[2026-02-18 16:38:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6478699999999975034370436333119869232177734375
[2026-02-18 16:38:22] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 16:38:22] [INFO]   -> Found value: 2026-02-18 10:37:33
[2026-02-18 16:38:22] [INFO]   -> Set field 'alarm' = "2026-02-18 10:37:33"
[2026-02-18 16:38:22] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 16:38:22] [INFO]   -> Found value: 2026-02-18 10:38:12
[2026-02-18 16:38:22] [INFO]   -> Set field 'dispatched' = "2026-02-18 10:38:12"
[2026-02-18 16:38:22] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 16:38:22] [INFO]   -> Found value: APPLE ST/GRANDVIEW DR
[2026-02-18 16:38:22] [INFO]   -> Set field 'incidentLocationCross' = "APPLE ST\/GRANDVIEW DR"
[2026-02-18 16:38:22] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 16:38:22] [INFO]   -> Found value: BEN2
[2026-02-18 16:38:22] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-02-18 16:38:22] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 16:38:22] [INFO]   -> Found value: 2026-02-18 10:38:12
[2026-02-18 16:38:22] [INFO]   -> Set field 'timedispatch' = "2026-02-18 10:38:12"
[2026-02-18 16:38:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 16:38:22] [INFO]   -> No value found (null or empty)
[2026-02-18 16:38:22] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 16:38:22] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 16:38:22] [INFO]   -> Found value: 20260018301
[2026-02-18 16:38:22] [INFO]   -> Set field 'policeReportNumber' = "20260018301"
[2026-02-18 16:38:22] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 16:38:22] [INFO]   -> Found value: [EMS] KENNETH COLLINS 12-13-1961  [02/18/26 10:38:05 MCLAYBURN2] [EMS] INCOHERENT  [02/18/26 10:37:4...
[2026-02-18 16:38:22] [INFO]   -> Set field 'dispatchNotes' = "[EMS] KENNETH COLLINS 12-13-1961  [02\/18\/26 10:38:05 MCLAYBURN2] [EMS] INCOHERENT  [02\/18\/26 10:37:48 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 10:37:33 MCLAYBURN2] HUSBAND BEEN SICK UNABLE TO MOVE  FAINTED  TURNED YELLOW  [02\/18\/26 10:37:30 MCLAYBURN2]]"
[2026-02-18 16:38:22] [INFO]   -> Set field 'cADLog' = "[EMS] KENNETH COLLINS 12-13-1961  [02\/18\/26 10:38:05 MCLAYBURN2] [EMS] INCOHERENT  [02\/18\/26 10:37:48 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 10:37:33 MCLAYBURN2] HUSBAND BEEN SICK UNABLE TO MOVE  FAINTED  TURNED YELLOW  [02\/18\/26 10:37:30 MCLAYBURN2]]"
[2026-02-18 16:38:22] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 16:38:22] [INFO]   -> Found value: BAXTER
[2026-02-18 16:38:22] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-18 16:38:22] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 16:38:22] [INFO]   -> Found value: GRACE
[2026-02-18 16:38:22] [INFO]   -> Set field 'streetName' = "GRACE"
[2026-02-18 16:38:22] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 16:38:22] [INFO]   -> Found value: AVE
[2026-02-18 16:38:22] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-18 16:38:22] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 16:38:22] [INFO]   -> Found value: 407 GRACE AVE
[2026-02-18 16:38:22] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "407 GRACE AVE"
[2026-02-18 16:38:22] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-18 16:38:22] [INFO] Concatenating street name and type
[2026-02-18 16:38:22] [INFO]   -> Combined street name: GRACE AVE
[2026-02-18 16:38:22] [INFO] Built locationCoordinates from lat/lng: 36.1542,-85.64787
[2026-02-18 16:38:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000054","dispatchRunNumber":"2026000054","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":407,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"UNKNOWN","nERISIncidentLatitude":36.15420000000000300133251585066318511962890625,"nERISIncidentLongitude":-85.6478699999999975034370436333119869232177734375,"alarm":"2026-02-18 10:37:33","dispatched":"2026-02-18 10:38:12","incidentLocationCross":"APPLE ST\/GRANDVIEW DR","cADVehicleID":"BEN2","timedispatch":"2026-02-18 10:38:12","policeReportNumber":"20260018301","dispatchNotes":"[EMS] KENNETH COLLINS 12-13-1961  [02\/18\/26 10:38:05 MCLAYBURN2] [EMS] INCOHERENT  [02\/18\/26 10:37:48 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 10:37:33 MCLAYBURN2] HUSBAND BEEN SICK UNABLE TO MOVE  FAINTED  TURNED YELLOW  [02\/18\/26 10:37:30 MCLAYBURN2]]","cADLog":"[EMS] KENNETH COLLINS 12-13-1961  [02\/18\/26 10:38:05 MCLAYBURN2] [EMS] INCOHERENT  [02\/18\/26 10:37:48 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 10:37:33 MCLAYBURN2] HUSBAND BEEN SICK UNABLE TO MOVE  FAINTED  TURNED YELLOW  [02\/18\/26 10:37:30 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"GRACE AVE","incidentAddressTextVersionStreet":"407 GRACE AVE","locationCoordinates":"36.1542,-85.64787"}
[2026-02-18 16:38:22] [INFO] Number of extracted fields: 22
[2026-02-18 16:38:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-02-18 16:38:22] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-02-18 16:38:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-02-18 16:38:22] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-18 16:38:22] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-18 16:38:22] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-02-18 16:38:31] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-18 16:38:31] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-18 16:38:31] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-02-18 16:38:31] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-02-18 16:38:31] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-18 16:38:32] [INFO] Found existing IncidentTypeMapping with ID: 694ed9c2182bd5df6
[2026-02-18 16:38:44] [INFO] Created new Dispatches record with ID: 6995eb11d080d79ae
[2026-02-18 16:38:44] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 16:38:45] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 16:38:48] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 16:38:48] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018301_20260218_163821.XML: Failed to upload file to V2 FTP server: /BFD_20260018301_20260218_163821.XML
[2026-02-18 16:38:48] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 16:43:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018304_20260218_164351.XML
[2026-02-18 16:43:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018304_20260218_164351.XML for user: 68f1466aed072ad4a
[2026-02-18 16:43:51] [INFO] File size: 5286 bytes
[2026-02-18 16:43:51] [INFO] Created FTPFiles record with ID: 6995ec47cfe7deef1
[2026-02-18 16:43:51] [INFO] About to extract fields from XML. File size: 5286 bytes
[2026-02-18 16:43:51] [INFO] Number of mappings: 28
[2026-02-18 16:43:51] [INFO] Starting XML parsing. Content length: 5286
[2026-02-18 16:43:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 16:43:51] [INFO] Processing 28 field mappings
[2026-02-18 16:43:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 16:43:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 16:43:51] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 16:43:51] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-02-18 16:43:51] [INFO]   -> Found value: BFD
EMS
[2026-02-18 16:43:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-02-18 16:43:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 16:43:51] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-02-18 16:43:51] [INFO]   -> Found value: 2026000055
[2026-02-18 16:43:51] [INFO]   -> Set field 'incidentInternalId' = "2026000055"
[2026-02-18 16:43:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000055"
[2026-02-18 16:43:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 16:43:51] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-02-18 16:43:51] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-02-18 16:43:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 16:43:51] [INFO]   -> Found value: 110
[2026-02-18 16:43:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 110
[2026-02-18 16:43:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 16:43:51] [INFO]   -> Found value: TN
[2026-02-18 16:43:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 16:43:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 16:43:51] [INFO]   -> Found value: 38544
[2026-02-18 16:43:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-18 16:43:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 16:43:51] [INFO]   -> Found value: LOVES TRUCK STOP
[2026-02-18 16:43:51] [INFO]   -> Set field 'businessName' = "LOVES TRUCK STOP"
[2026-02-18 16:43:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 16:43:51] [INFO]   -> Found value: 36.13976
[2026-02-18 16:43:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13976000000000254885890171863138675689697265625
[2026-02-18 16:43:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 16:43:51] [INFO]   -> Found value: -85.63028
[2026-02-18 16:43:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.630279999999999063220457173883914947509765625
[2026-02-18 16:43:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 16:43:51] [INFO]   -> Found value: 2026-02-18 10:42:58
[2026-02-18 16:43:51] [INFO]   -> Set field 'alarm' = "2026-02-18 10:42:58"
[2026-02-18 16:43:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 16:43:51] [INFO]   -> Found value: 2026-02-18 10:43:44
[2026-02-18 16:43:51] [INFO]   -> Set field 'dispatched' = "2026-02-18 10:43:44"
[2026-02-18 16:43:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 16:43:51] [INFO]   -> Found value: FIRST AVE S
[2026-02-18 16:43:51] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S"
[2026-02-18 16:43:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 16:43:51] [INFO]   -> Found value: BEN1
[2026-02-18 16:43:51] [INFO]   -> Set field 'cADVehicleID' = "BEN1"
[2026-02-18 16:43:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 16:43:51] [INFO]   -> Found value: 2026-02-18 10:43:44
[2026-02-18 16:43:51] [INFO]   -> Set field 'timedispatch' = "2026-02-18 10:43:44"
[2026-02-18 16:43:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 16:43:51] [INFO]   -> No value found (null or empty)
[2026-02-18 16:43:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 16:43:51] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 16:43:51] [INFO]   -> Found value: 20260018304
[2026-02-18 16:43:51] [INFO]   -> Set field 'policeReportNumber' = "20260018304"
[2026-02-18 16:43:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 16:43:51] [INFO]   -> Found value: [EMS] UDTS: NAUSEA  &amp; VOMITING  [02/18/26 10:43:41 MCLAYBURN2] [EMS] FEVER  [02/18/26 10:43:34 M...
[2026-02-18 16:43:51] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: NAUSEA  &amp; VOMITING  [02\/18\/26 10:43:41 MCLAYBURN2] [EMS] FEVER  [02\/18\/26 10:43:34 MCLAYBURN2] [EMS] IN FRONT OF THE PUMPS\/\/ WHITE INTERNATIONAL TRUCK  [02\/18\/26 10:43:14 MCLAYBURN2] Event spawned from ABDOMINAL PAIN.  [02\/18\/2026 10:42:58 MCLAYBURN2] UNABLE TO DRIVE IMMENSED PAIN ON LEFT SIDE IN TRUCK  [02\/18\/26 10:42:36 MCLAYBURN2]]"
[2026-02-18 16:43:51] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: NAUSEA  &amp; VOMITING  [02\/18\/26 10:43:41 MCLAYBURN2] [EMS] FEVER  [02\/18\/26 10:43:34 MCLAYBURN2] [EMS] IN FRONT OF THE PUMPS\/\/ WHITE INTERNATIONAL TRUCK  [02\/18\/26 10:43:14 MCLAYBURN2] Event spawned from ABDOMINAL PAIN.  [02\/18\/2026 10:42:58 MCLAYBURN2] UNABLE TO DRIVE IMMENSED PAIN ON LEFT SIDE IN TRUCK  [02\/18\/26 10:42:36 MCLAYBURN2]]"
[2026-02-18 16:43:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 16:43:51] [INFO]   -> Found value: BAXTER
[2026-02-18 16:43:51] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-18 16:43:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 16:43:51] [INFO]   -> Found value: FAST
[2026-02-18 16:43:51] [INFO]   -> Set field 'streetName' = "FAST"
[2026-02-18 16:43:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 16:43:51] [INFO]   -> Found value: LN
[2026-02-18 16:43:51] [INFO]   -> Set field 'streetType' = "LN"
[2026-02-18 16:43:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 16:43:51] [INFO]   -> Found value: 110 FAST LN
[2026-02-18 16:43:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "110 FAST LN"
[2026-02-18 16:43:51] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-18 16:43:51] [INFO] Concatenating street name and type
[2026-02-18 16:43:51] [INFO]   -> Combined street name: FAST LN
[2026-02-18 16:43:51] [INFO] Built locationCoordinates from lat/lng: 36.13976,-85.63028
[2026-02-18 16:43:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000055","dispatchRunNumber":"2026000055","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"LOVES TRUCK STOP","nERISIncidentLatitude":36.13976000000000254885890171863138675689697265625,"nERISIncidentLongitude":-85.630279999999999063220457173883914947509765625,"alarm":"2026-02-18 10:42:58","dispatched":"2026-02-18 10:43:44","incidentLocationCross":"FIRST AVE S","cADVehicleID":"BEN1","timedispatch":"2026-02-18 10:43:44","policeReportNumber":"20260018304","dispatchNotes":"[EMS] UDTS: NAUSEA  &amp; VOMITING  [02\/18\/26 10:43:41 MCLAYBURN2] [EMS] FEVER  [02\/18\/26 10:43:34 MCLAYBURN2] [EMS] IN FRONT OF THE PUMPS\/\/ WHITE INTERNATIONAL TRUCK  [02\/18\/26 10:43:14 MCLAYBURN2] Event spawned from ABDOMINAL PAIN.  [02\/18\/2026 10:42:58 MCLAYBURN2] UNABLE TO DRIVE IMMENSED PAIN ON LEFT SIDE IN TRUCK  [02\/18\/26 10:42:36 MCLAYBURN2]]","cADLog":"[EMS] UDTS: NAUSEA  &amp; VOMITING  [02\/18\/26 10:43:41 MCLAYBURN2] [EMS] FEVER  [02\/18\/26 10:43:34 MCLAYBURN2] [EMS] IN FRONT OF THE PUMPS\/\/ WHITE INTERNATIONAL TRUCK  [02\/18\/26 10:43:14 MCLAYBURN2] Event spawned from ABDOMINAL PAIN.  [02\/18\/2026 10:42:58 MCLAYBURN2] UNABLE TO DRIVE IMMENSED PAIN ON LEFT SIDE IN TRUCK  [02\/18\/26 10:42:36 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"FAST LN","incidentAddressTextVersionStreet":"110 FAST LN","locationCoordinates":"36.13976,-85.63028"}
[2026-02-18 16:43:51] [INFO] Number of extracted fields: 22
[2026-02-18 16:43:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-02-18 16:43:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-02-18 16:43:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-02-18 16:43:51] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-18 16:43:52] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-18 16:43:52] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-02-18 16:43:52] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-18 16:43:52] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-18 16:43:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-02-18 16:43:52] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-02-18 16:43:52] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-18 16:43:52] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-02-18 16:43:55] [INFO] Created new Dispatches record with ID: 6995ec48e78e459d2
[2026-02-18 16:43:55] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 16:43:55] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 16:43:59] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 16:43:59] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018304_20260218_164351.XML: Failed to upload file to V2 FTP server: /BFD_20260018304_20260218_164351.XML
[2026-02-18 16:43:59] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 17:11:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018320_20260218_171151.XML
[2026-02-18 17:11:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018320_20260218_171151.XML for user: 68f1466aed072ad4a
[2026-02-18 17:11:51] [INFO] File size: 5322 bytes
[2026-02-18 17:11:52] [INFO] Created FTPFiles record with ID: 6995f2d8683a88b7f
[2026-02-18 17:11:52] [INFO] About to extract fields from XML. File size: 5322 bytes
[2026-02-18 17:11:52] [INFO] Number of mappings: 28
[2026-02-18 17:11:52] [INFO] Starting XML parsing. Content length: 5322
[2026-02-18 17:11:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 17:11:52] [INFO] Processing 28 field mappings
[2026-02-18 17:11:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 17:11:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 17:11:52] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 17:11:52] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-18 17:11:52] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-18 17:11:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-18 17:11:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 17:11:52] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-18 17:11:52] [INFO]   -> Found value: 2026000469
[2026-02-18 17:11:52] [INFO]   -> Set field 'incidentInternalId' = "2026000469"
[2026-02-18 17:11:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000469"
[2026-02-18 17:11:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 17:11:52] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-02-18 17:11:52] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-02-18 17:11:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 17:11:52] [INFO]   -> Found value: 1643
[2026-02-18 17:11:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1643
[2026-02-18 17:11:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 17:11:52] [INFO]   -> Found value: TN
[2026-02-18 17:11:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 17:11:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 17:11:52] [INFO]   -> Found value: 38574
[2026-02-18 17:11:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-18 17:11:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 17:11:52] [INFO]   -> Found value: 36.04566
[2026-02-18 17:11:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.045659999999998035491444170475006103515625
[2026-02-18 17:11:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 17:11:52] [INFO]   -> Found value: -85.25786
[2026-02-18 17:11:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.25785999999999376086634583771228790283203125
[2026-02-18 17:11:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 17:11:52] [INFO]   -> Found value: 2026-02-18 11:11:38
[2026-02-18 17:11:52] [INFO]   -> Set field 'alarm' = "2026-02-18 11:11:38"
[2026-02-18 17:11:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 17:11:52] [INFO]   -> Found value: 2026-02-18 11:11:48
[2026-02-18 17:11:52] [INFO]   -> Set field 'dispatched' = "2026-02-18 11:11:48"
[2026-02-18 17:11:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 17:11:52] [INFO]   -> Found value: CHINKAPIN TRL/INDIAN PARK RD
[2026-02-18 17:11:52] [INFO]   -> Set field 'incidentLocationCross' = "CHINKAPIN TRL\/INDIAN PARK RD"
[2026-02-18 17:11:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 17:11:52] [INFO]   -> Found value: PCFR
[2026-02-18 17:11:52] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-18 17:11:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 17:11:52] [INFO]   -> Found value: 2026-02-18 11:11:48
[2026-02-18 17:11:52] [INFO]   -> Set field 'timedispatch' = "2026-02-18 11:11:48"
[2026-02-18 17:11:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 17:11:52] [INFO]   -> No value found (null or empty)
[2026-02-18 17:11:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 17:11:52] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 17:11:52] [INFO]   -> Found value: 20260018320
[2026-02-18 17:11:52] [INFO]   -> Set field 'policeReportNumber' = "20260018320"
[2026-02-18 17:11:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 17:11:52] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [02/18/2026 11:11:38 MCLAYBURN2] CONFUSED  [02/18/26 11:11:0...
[2026-02-18 17:11:52] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 11:11:38 MCLAYBURN2] CONFUSED  [02\/18\/26 11:11:09 MCLAYBURN2] FELL 3 TIMES IN LAST 12 HOURS DEMENTIA  [02\/18\/26 11:10:52 MCLAYBURN2]"
[2026-02-18 17:11:52] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 11:11:38 MCLAYBURN2] CONFUSED  [02\/18\/26 11:11:09 MCLAYBURN2] FELL 3 TIMES IN LAST 12 HOURS DEMENTIA  [02\/18\/26 11:10:52 MCLAYBURN2]"
[2026-02-18 17:11:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 17:11:52] [INFO]   -> Found value: MONTEREY
[2026-02-18 17:11:52] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-18 17:11:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 17:11:52] [INFO]   -> Found value: OVERLOOK
[2026-02-18 17:11:52] [INFO]   -> Set field 'streetName' = "OVERLOOK"
[2026-02-18 17:11:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 17:11:52] [INFO]   -> Found value: RD
[2026-02-18 17:11:52] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-18 17:11:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 17:11:52] [INFO]   -> Found value: 1643 E OVERLOOK RD
[2026-02-18 17:11:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1643 E OVERLOOK RD"
[2026-02-18 17:11:52] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 17:11:52] [INFO] Concatenating street name and type
[2026-02-18 17:11:52] [INFO]   -> Combined street name: OVERLOOK RD
[2026-02-18 17:11:52] [INFO] Built locationCoordinates from lat/lng: 36.04566,-85.25786
[2026-02-18 17:11:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000469","dispatchRunNumber":"2026000469","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":1643,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.045659999999998035491444170475006103515625,"nERISIncidentLongitude":-85.25785999999999376086634583771228790283203125,"alarm":"2026-02-18 11:11:38","dispatched":"2026-02-18 11:11:48","incidentLocationCross":"CHINKAPIN TRL\/INDIAN PARK RD","cADVehicleID":"PCFR","timedispatch":"2026-02-18 11:11:48","policeReportNumber":"20260018320","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 11:11:38 MCLAYBURN2] CONFUSED  [02\/18\/26 11:11:09 MCLAYBURN2] FELL 3 TIMES IN LAST 12 HOURS DEMENTIA  [02\/18\/26 11:10:52 MCLAYBURN2]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 11:11:38 MCLAYBURN2] CONFUSED  [02\/18\/26 11:11:09 MCLAYBURN2] FELL 3 TIMES IN LAST 12 HOURS DEMENTIA  [02\/18\/26 11:10:52 MCLAYBURN2]","incidentLocationCity":"MONTEREY","streetName":"OVERLOOK RD","incidentAddressTextVersionStreet":"1643 E OVERLOOK RD","locationCoordinates":"36.04566,-85.25786"}
[2026-02-18 17:11:52] [INFO] Number of extracted fields: 21
[2026-02-18 17:11:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-18 17:11:52] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-18 17:11:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-18 17:11:52] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 17:11:52] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 17:11:52] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-18 17:11:52] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 17:11:52] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 17:11:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-18 17:11:52] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-18 17:11:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 17:11:52] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-02-18 17:12:03] [INFO] Created new Dispatches record with ID: 6995f2d9446b0c7c5
[2026-02-18 17:12:03] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 17:12:03] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 17:12:07] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 17:12:07] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018320_20260218_171151.XML: Failed to upload file to V2 FTP server: /PCFD_20260018320_20260218_171151.XML
[2026-02-18 17:12:07] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 17:21:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018328_20260218_172131.XML
[2026-02-18 17:21:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018328_20260218_172131.XML for user: 68f1466aed072ad4a
[2026-02-18 17:21:31] [INFO] File size: 5405 bytes
[2026-02-18 17:21:32] [INFO] Created FTPFiles record with ID: 6995f51c03b061cb4
[2026-02-18 17:21:32] [INFO] About to extract fields from XML. File size: 5405 bytes
[2026-02-18 17:21:32] [INFO] Number of mappings: 28
[2026-02-18 17:21:32] [INFO] Starting XML parsing. Content length: 5405
[2026-02-18 17:21:32] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 17:21:32] [INFO] Processing 28 field mappings
[2026-02-18 17:21:32] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 17:21:32] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 17:21:32] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 17:21:32] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-18 17:21:32] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-18 17:21:32] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-18 17:21:32] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 17:21:32] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-18 17:21:32] [INFO]   -> Found value: 2026000470
[2026-02-18 17:21:32] [INFO]   -> Set field 'incidentInternalId' = "2026000470"
[2026-02-18 17:21:32] [INFO]   -> Set field 'dispatchRunNumber' = "2026000470"
[2026-02-18 17:21:32] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 17:21:32] [INFO]   -> Found value: MVC WITH INJURY
[2026-02-18 17:21:32] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-02-18 17:21:32] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 17:21:32] [INFO]   -> Found value: 14230
[2026-02-18 17:21:32] [INFO]   -> Set field 'incidentLocationStreetNumber' = 14230
[2026-02-18 17:21:32] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 17:21:32] [INFO]   -> Found value: TN
[2026-02-18 17:21:32] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 17:21:32] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 17:21:32] [INFO]   -> Found value: 38582
[2026-02-18 17:21:32] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-02-18 17:21:32] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 17:21:32] [INFO]   -> Found value: 36.09092
[2026-02-18 17:21:32] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0909199999999970032149576582014560699462890625
[2026-02-18 17:21:32] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 17:21:32] [INFO]   -> Found value: -85.71784
[2026-02-18 17:21:32] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.717839999999995370671967975795269012451171875
[2026-02-18 17:21:32] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 17:21:32] [INFO]   -> Found value: 2026-02-18 11:20:57
[2026-02-18 17:21:32] [INFO]   -> Set field 'alarm' = "2026-02-18 11:20:57"
[2026-02-18 17:21:32] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 17:21:32] [INFO]   -> Found value: 2026-02-18 11:21:22
[2026-02-18 17:21:32] [INFO]   -> Set field 'dispatched' = "2026-02-18 11:21:22"
[2026-02-18 17:21:32] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 17:21:32] [INFO]   -> Found value: HERALD RD/SMITHVILLE HWY
[2026-02-18 17:21:32] [INFO]   -> Set field 'incidentLocationCross' = "HERALD RD\/SMITHVILLE HWY"
[2026-02-18 17:21:32] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 17:21:32] [INFO]   -> Found value: EN33
[2026-02-18 17:21:32] [INFO]   -> Set field 'cADVehicleID' = "EN33"
[2026-02-18 17:21:32] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 17:21:32] [INFO]   -> Found value: 2026-02-18 11:21:22
[2026-02-18 17:21:32] [INFO]   -> Set field 'timedispatch' = "2026-02-18 11:21:22"
[2026-02-18 17:21:32] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 17:21:32] [INFO]   -> No value found (null or empty)
[2026-02-18 17:21:32] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 17:21:32] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 17:21:32] [INFO]   -> Found value: 20260018328
[2026-02-18 17:21:32] [INFO]   -> Set field 'policeReportNumber' = "20260018328"
[2026-02-18 17:21:32] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 17:21:32] [INFO]   -> Found value: Event spawned from MVC WITH INJURY.  [02/18/2026 11:20:57 KBURTON] SILVER CAR  [02/18/26 11:20:16 KB...
[2026-02-18 17:21:32] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from MVC WITH INJURY.  [02\/18\/2026 11:20:57 KBURTON] SILVER CAR  [02\/18\/26 11:20:16 KBURTON] MADILYN  17 YO  [02\/18\/26 11:20:03 KBURTON]"
[2026-02-18 17:21:32] [INFO]   -> Set field 'cADLog' = "Event spawned from MVC WITH INJURY.  [02\/18\/2026 11:20:57 KBURTON] SILVER CAR  [02\/18\/26 11:20:16 KBURTON] MADILYN  17 YO  [02\/18\/26 11:20:03 KBURTON]"
[2026-02-18 17:21:32] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 17:21:32] [INFO]   -> Found value: SILVER POINT
[2026-02-18 17:21:32] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-02-18 17:21:32] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 17:21:32] [INFO]   -> Found value: OLD BAXTER
[2026-02-18 17:21:32] [INFO]   -> Set field 'streetName' = "OLD BAXTER"
[2026-02-18 17:21:32] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 17:21:32] [INFO]   -> Found value: RD
[2026-02-18 17:21:32] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-18 17:21:32] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 17:21:32] [INFO]   -> Found value: 14230 OLD BAXTER RD
[2026-02-18 17:21:32] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "14230 OLD BAXTER RD"
[2026-02-18 17:21:32] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 17:21:32] [INFO] Concatenating street name and type
[2026-02-18 17:21:32] [INFO]   -> Combined street name: OLD BAXTER RD
[2026-02-18 17:21:32] [INFO] Built locationCoordinates from lat/lng: 36.09092,-85.71784
[2026-02-18 17:21:32] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000470","dispatchRunNumber":"2026000470","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":14230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.0909199999999970032149576582014560699462890625,"nERISIncidentLongitude":-85.717839999999995370671967975795269012451171875,"alarm":"2026-02-18 11:20:57","dispatched":"2026-02-18 11:21:22","incidentLocationCross":"HERALD RD\/SMITHVILLE HWY","cADVehicleID":"EN33","timedispatch":"2026-02-18 11:21:22","policeReportNumber":"20260018328","dispatchNotes":"Event spawned from MVC WITH INJURY.  [02\/18\/2026 11:20:57 KBURTON] SILVER CAR  [02\/18\/26 11:20:16 KBURTON] MADILYN  17 YO  [02\/18\/26 11:20:03 KBURTON]","cADLog":"Event spawned from MVC WITH INJURY.  [02\/18\/2026 11:20:57 KBURTON] SILVER CAR  [02\/18\/26 11:20:16 KBURTON] MADILYN  17 YO  [02\/18\/26 11:20:03 KBURTON]","incidentLocationCity":"SILVER POINT","streetName":"OLD BAXTER RD","incidentAddressTextVersionStreet":"14230 OLD BAXTER RD","locationCoordinates":"36.09092,-85.71784"}
[2026-02-18 17:21:32] [INFO] Number of extracted fields: 21
[2026-02-18 17:21:32] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-18 17:21:32] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-18 17:21:32] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-18 17:21:32] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 17:21:32] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 17:21:32] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-18 17:21:32] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 17:21:32] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 17:21:32] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-18 17:21:32] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-18 17:21:32] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 17:21:32] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-02-18 17:21:42] [INFO] Created new Dispatches record with ID: 6995f51ccee81ee18
[2026-02-18 17:21:42] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 17:21:42] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 17:21:46] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 17:21:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018328_20260218_172131.XML: Failed to upload file to V2 FTP server: /PCFD_20260018328_20260218_172131.XML
[2026-02-18 17:21:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 17:49:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:49:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml for user: 69320e6a9e3e5ef71
[2026-02-18 17:49:18] [INFO] File size: 13477 bytes
[2026-02-18 17:49:28] [INFO] Created FTPFiles record with ID: 6995fba8a60c4e494
[2026-02-18 17:49:28] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-18 17:49:28] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18
[2026-02-18 17:49:28] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18/cfs_2026-010891.xml
[2026-02-18 17:49:28] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:51:35] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:51:35] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml for user: 69320e6a9e3e5ef71
[2026-02-18 17:51:35] [INFO] File size: 36122 bytes
[2026-02-18 17:51:50] [INFO] Created FTPFiles record with ID: 6995fc3683ccf1ce1
[2026-02-18 17:51:50] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-18 17:51:50] [INFO] File already exists in archive, using unique name: cfs_2026-010891_1771437110.xml
[2026-02-18 17:51:50] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18/cfs_2026-010891_1771437110.xml
[2026-02-18 17:51:50] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:51:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:51:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml for user: 69320e6a9e3e5ef71
[2026-02-18 17:51:55] [INFO] File size: 37113 bytes
[2026-02-18 17:51:55] [INFO] Created FTPFiles record with ID: 6995fc3be907fc448
[2026-02-18 17:51:55] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-18 17:51:55] [INFO] File already exists in archive, using unique name: cfs_2026-010891_1771437115.xml
[2026-02-18 17:51:55] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18/cfs_2026-010891_1771437115.xml
[2026-02-18 17:51:55] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:52:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:52:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml for user: 69320e6a9e3e5ef71
[2026-02-18 17:52:49] [INFO] File size: 38717 bytes
[2026-02-18 17:52:59] [INFO] Created FTPFiles record with ID: 6995fc7bc90e46b4a
[2026-02-18 17:52:59] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-18 17:52:59] [INFO] File already exists in archive, using unique name: cfs_2026-010891_1771437179.xml
[2026-02-18 17:52:59] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18/cfs_2026-010891_1771437179.xml
[2026-02-18 17:52:59] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:53:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:53:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml for user: 69320e6a9e3e5ef71
[2026-02-18 17:53:56] [INFO] File size: 41998 bytes
[2026-02-18 17:54:11] [INFO] Created FTPFiles record with ID: 6995fcc3b43ddc7a0
[2026-02-18 17:54:11] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-18 17:54:11] [INFO] File already exists in archive, using unique name: cfs_2026-010891_1771437251.xml
[2026-02-18 17:54:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18/cfs_2026-010891_1771437251.xml
[2026-02-18 17:54:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:54:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:54:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml for user: 69320e6a9e3e5ef71
[2026-02-18 17:54:13] [INFO] File size: 45829 bytes
[2026-02-18 17:54:13] [INFO] Created FTPFiles record with ID: 6995fcc5d4da2fa4f
[2026-02-18 17:54:13] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-18 17:54:13] [INFO] File already exists in archive, using unique name: cfs_2026-010891_1771437253.xml
[2026-02-18 17:54:13] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18/cfs_2026-010891_1771437253.xml
[2026-02-18 17:54:13] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:55:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 17:55:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml for user: 69320e6a9e3e5ef71
[2026-02-18 17:55:38] [INFO] File size: 47433 bytes
[2026-02-18 17:55:39] [INFO] Created FTPFiles record with ID: 6995fd1b44b1b8414
[2026-02-18 17:55:39] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-18 17:55:39] [INFO] File already exists in archive, using unique name: cfs_2026-010891_1771437339.xml
[2026-02-18 17:55:39] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-18/cfs_2026-010891_1771437339.xml
[2026-02-18 17:55:39] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010891.xml
[2026-02-18 19:08:58] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018386_20260218_190858.XML
[2026-02-18 19:08:58] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018386_20260218_190858.XML for user: 68f1466aed072ad4a
[2026-02-18 19:08:58] [INFO] File size: 5012 bytes
[2026-02-18 19:08:59] [INFO] Created FTPFiles record with ID: 69960e4af2db3358e
[2026-02-18 19:08:59] [INFO] About to extract fields from XML. File size: 5012 bytes
[2026-02-18 19:08:59] [INFO] Number of mappings: 28
[2026-02-18 19:08:59] [INFO] Starting XML parsing. Content length: 5012
[2026-02-18 19:08:59] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 19:08:59] [INFO] Processing 28 field mappings
[2026-02-18 19:08:59] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 19:08:59] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 19:08:59] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 19:08:59] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-02-18 19:08:59] [INFO]   -> Found value: MFD
EMS
[2026-02-18 19:08:59] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS"
[2026-02-18 19:08:59] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 19:08:59] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-02-18 19:08:59] [INFO]   -> Found value: 2026000062
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentInternalId' = "2026000062"
[2026-02-18 19:08:59] [INFO]   -> Set field 'dispatchRunNumber' = "2026000062"
[2026-02-18 19:08:59] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 19:08:59] [INFO]   -> Found value: HEMMORHAGE / BLEEDING
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentTypeValue1' = "HEMMORHAGE \/ BLEEDING"
[2026-02-18 19:08:59] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 19:08:59] [INFO]   -> Found value: 535
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentLocationStreetNumber' = 535
[2026-02-18 19:08:59] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 19:08:59] [INFO]   -> Found value: TN
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 19:08:59] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 19:08:59] [INFO]   -> Found value: 38574
[2026-02-18 19:08:59] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-18 19:08:59] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 19:08:59] [INFO]   -> Found value: B3
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentLocationApt' = "B3"
[2026-02-18 19:08:59] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 19:08:59] [INFO]   -> Found value: 36.14428
[2026-02-18 19:08:59] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14428000000000196223481907509267330169677734375
[2026-02-18 19:08:59] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 19:08:59] [INFO]   -> Found value: -85.26208
[2026-02-18 19:08:59] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.262079999999997426129993982613086700439453125
[2026-02-18 19:08:59] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 19:08:59] [INFO]   -> Found value: 2026-02-18 13:07:39
[2026-02-18 19:08:59] [INFO]   -> Set field 'alarm' = "2026-02-18 13:07:39"
[2026-02-18 19:08:59] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 19:08:59] [INFO]   -> Found value: 2026-02-18 13:08:44
[2026-02-18 19:08:59] [INFO]   -> Set field 'dispatched' = "2026-02-18 13:08:44"
[2026-02-18 19:08:59] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 19:08:59] [INFO]   -> Found value: ELMORE ST/RUSSELL LN
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentLocationCross' = "ELMORE ST\/RUSSELL LN"
[2026-02-18 19:08:59] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 19:08:59] [INFO]   -> Found value: MFR
[2026-02-18 19:08:59] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-18 19:08:59] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 19:08:59] [INFO]   -> Found value: 2026-02-18 13:08:44
[2026-02-18 19:08:59] [INFO]   -> Set field 'timedispatch' = "2026-02-18 13:08:44"
[2026-02-18 19:08:59] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 19:08:59] [INFO]   -> No value found (null or empty)
[2026-02-18 19:08:59] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 19:08:59] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 19:08:59] [INFO]   -> Found value: 20260018386
[2026-02-18 19:08:59] [INFO]   -> Set field 'policeReportNumber' = "20260018386"
[2026-02-18 19:08:59] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 19:08:59] [INFO]   -> Found value: Event spawned from HEMMORHAGE / BLEEDING.  [02/18/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF...
[2026-02-18 19:08:59] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]"
[2026-02-18 19:08:59] [INFO]   -> Set field 'cADLog' = "Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]"
[2026-02-18 19:08:59] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 19:08:59] [INFO]   -> Found value: MONTEREY
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-18 19:08:59] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 19:08:59] [INFO]   -> Found value: OLD WALTON
[2026-02-18 19:08:59] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-02-18 19:08:59] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 19:08:59] [INFO]   -> Found value: RD
[2026-02-18 19:08:59] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-18 19:08:59] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 19:08:59] [INFO]   -> Found value: 535-B3 OLD WALTON RD
[2026-02-18 19:08:59] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "535-B3 OLD WALTON RD"
[2026-02-18 19:08:59] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-18 19:08:59] [INFO] Concatenating street name and type
[2026-02-18 19:08:59] [INFO]   -> Combined street name: OLD WALTON RD
[2026-02-18 19:08:59] [INFO] Built locationCoordinates from lat/lng: 36.14428,-85.26208
[2026-02-18 19:08:59] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS","incidentInternalId":"2026000062","dispatchRunNumber":"2026000062","incidentTypeValue1":"HEMMORHAGE \/ BLEEDING","incidentLocationStreetNumber":535,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"incidentLocationApt":"B3","nERISIncidentLatitude":36.14428000000000196223481907509267330169677734375,"nERISIncidentLongitude":-85.262079999999997426129993982613086700439453125,"alarm":"2026-02-18 13:07:39","dispatched":"2026-02-18 13:08:44","incidentLocationCross":"ELMORE ST\/RUSSELL LN","cADVehicleID":"MFR","timedispatch":"2026-02-18 13:08:44","policeReportNumber":"20260018386","dispatchNotes":"Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]","cADLog":"Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"535-B3 OLD WALTON RD","locationCoordinates":"36.14428,-85.26208"}
[2026-02-18 19:08:59] [INFO] Number of extracted fields: 22
[2026-02-18 19:08:59] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS'
[2026-02-18 19:08:59] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS', Parsed IDs = ["MFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-02-18 19:08:59] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS"]
[2026-02-18 19:08:59] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-18 19:08:59] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-18 19:08:59] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-02-18 19:08:59] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-18 19:08:59] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-18 19:08:59] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-02-18 19:08:59] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-18 19:08:59] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-18 19:08:59] [INFO] Found existing IncidentTypeMapping with ID: 694c9fea4867040a4
[2026-02-18 19:09:02] [INFO] Created new Dispatches record with ID: 69960e4c00db93e2c
[2026-02-18 19:09:02] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 19:09:02] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 19:09:05] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 19:09:05] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018386_20260218_190858.XML: Failed to upload file to V2 FTP server: /MFD_20260018386_20260218_190858.XML
[2026-02-18 19:09:05] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 19:09:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018389_20260218_190918.XML
[2026-02-18 19:09:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018389_20260218_190918.XML for user: 68f1466aed072ad4a
[2026-02-18 19:09:18] [INFO] File size: 5445 bytes
[2026-02-18 19:09:19] [INFO] Created FTPFiles record with ID: 69960e5f383deb911
[2026-02-18 19:09:19] [INFO] About to extract fields from XML. File size: 5445 bytes
[2026-02-18 19:09:19] [INFO] Number of mappings: 28
[2026-02-18 19:09:19] [INFO] Starting XML parsing. Content length: 5445
[2026-02-18 19:09:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 19:09:19] [INFO] Processing 28 field mappings
[2026-02-18 19:09:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 19:09:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 19:09:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 19:09:19] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-18 19:09:19] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-02-18 19:09:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-02-18 19:09:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 19:09:19] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-18 19:09:19] [INFO]   -> Found value: 2026000471
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentInternalId' = "2026000471"
[2026-02-18 19:09:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000471"
[2026-02-18 19:09:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 19:09:19] [INFO]   -> Found value: HEMMORHAGE / BLEEDING
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentTypeValue1' = "HEMMORHAGE \/ BLEEDING"
[2026-02-18 19:09:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 19:09:19] [INFO]   -> Found value: 535
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 535
[2026-02-18 19:09:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 19:09:19] [INFO]   -> Found value: TN
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 19:09:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 19:09:19] [INFO]   -> Found value: 38574
[2026-02-18 19:09:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-18 19:09:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 19:09:19] [INFO]   -> Found value: B3
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentLocationApt' = "B3"
[2026-02-18 19:09:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 19:09:19] [INFO]   -> Found value: 36.14428
[2026-02-18 19:09:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14428000000000196223481907509267330169677734375
[2026-02-18 19:09:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 19:09:19] [INFO]   -> Found value: -85.26208
[2026-02-18 19:09:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.262079999999997426129993982613086700439453125
[2026-02-18 19:09:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 19:09:19] [INFO]   -> Found value: 2026-02-18 13:09:15
[2026-02-18 19:09:19] [INFO]   -> Set field 'alarm' = "2026-02-18 13:09:15"
[2026-02-18 19:09:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 19:09:19] [INFO]   -> Found value: 2026-02-18 13:09:15
[2026-02-18 19:09:19] [INFO]   -> Set field 'dispatched' = "2026-02-18 13:09:15"
[2026-02-18 19:09:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 19:09:19] [INFO]   -> Found value: ELMORE ST/RUSSELL LN
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentLocationCross' = "ELMORE ST\/RUSSELL LN"
[2026-02-18 19:09:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 19:09:19] [INFO]   -> Found value: PCFR
[2026-02-18 19:09:19] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-18 19:09:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 19:09:19] [INFO]   -> Found value: 2026-02-18 13:09:15
[2026-02-18 19:09:19] [INFO]   -> Set field 'timedispatch' = "2026-02-18 13:09:15"
[2026-02-18 19:09:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 19:09:19] [INFO]   -> No value found (null or empty)
[2026-02-18 19:09:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 19:09:19] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 19:09:19] [INFO]   -> Found value: 20260018389
[2026-02-18 19:09:19] [INFO]   -> Set field 'policeReportNumber' = "20260018389"
[2026-02-18 19:09:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 19:09:19] [INFO]   -> Found value: Event spawned from HEMMORHAGE / BLEEDING.  [02/18/2026 13:09:15 KBURTON] Event spawned from HEMMORHA...
[2026-02-18 19:09:19] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:09:15 KBURTON] Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]"
[2026-02-18 19:09:19] [INFO]   -> Set field 'cADLog' = "Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:09:15 KBURTON] Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]"
[2026-02-18 19:09:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 19:09:19] [INFO]   -> Found value: MONTEREY
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-18 19:09:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 19:09:19] [INFO]   -> Found value: OLD WALTON
[2026-02-18 19:09:19] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-02-18 19:09:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 19:09:19] [INFO]   -> Found value: RD
[2026-02-18 19:09:19] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-18 19:09:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 19:09:19] [INFO]   -> Found value: 535-B3 OLD WALTON RD
[2026-02-18 19:09:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "535-B3 OLD WALTON RD"
[2026-02-18 19:09:19] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-18 19:09:19] [INFO] Concatenating street name and type
[2026-02-18 19:09:19] [INFO]   -> Combined street name: OLD WALTON RD
[2026-02-18 19:09:19] [INFO] Built locationCoordinates from lat/lng: 36.14428,-85.26208
[2026-02-18 19:09:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000471","dispatchRunNumber":"2026000471","incidentTypeValue1":"HEMMORHAGE \/ BLEEDING","incidentLocationStreetNumber":535,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"incidentLocationApt":"B3","nERISIncidentLatitude":36.14428000000000196223481907509267330169677734375,"nERISIncidentLongitude":-85.262079999999997426129993982613086700439453125,"alarm":"2026-02-18 13:09:15","dispatched":"2026-02-18 13:09:15","incidentLocationCross":"ELMORE ST\/RUSSELL LN","cADVehicleID":"PCFR","timedispatch":"2026-02-18 13:09:15","policeReportNumber":"20260018389","dispatchNotes":"Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:09:15 KBURTON] Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]","cADLog":"Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:09:15 KBURTON] Event spawned from HEMMORHAGE \/ BLEEDING.  [02\/18\/2026 13:07:39 KBURTON] VIKI HITESMAN  SHORTNESS OF BREATH  BLEEDING FROM RETUM AND VOMMITING BLOOD  [02\/18\/26 13:07:36 KBURTON]]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"535-B3 OLD WALTON RD","locationCoordinates":"36.14428,-85.26208"}
[2026-02-18 19:09:19] [INFO] Number of extracted fields: 22
[2026-02-18 19:09:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-02-18 19:09:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-18 19:09:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-02-18 19:09:19] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 19:09:19] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 19:09:19] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-02-18 19:09:19] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 19:09:19] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 19:09:19] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-18 19:09:19] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-18 19:09:19] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 19:09:19] [INFO] Found existing IncidentTypeMapping with ID: 694c9ff41a37c4612
[2026-02-18 19:09:29] [INFO] Created new Dispatches record with ID: 69960e6016955f441
[2026-02-18 19:09:29] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 19:09:29] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 19:09:33] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 19:09:33] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018389_20260218_190918.XML: Failed to upload file to V2 FTP server: /PCFD_20260018389_20260218_190918.XML
[2026-02-18 19:09:33] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 20:14:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018418_20260218_201448.XML
[2026-02-18 20:14:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018418_20260218_201448.XML for user: 68f1466aed072ad4a
[2026-02-18 20:14:48] [INFO] File size: 5306 bytes
[2026-02-18 20:14:49] [INFO] Created FTPFiles record with ID: 69961db9116156bd5
[2026-02-18 20:14:49] [INFO] About to extract fields from XML. File size: 5306 bytes
[2026-02-18 20:14:49] [INFO] Number of mappings: 28
[2026-02-18 20:14:49] [INFO] Starting XML parsing. Content length: 5306
[2026-02-18 20:14:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 20:14:49] [INFO] Processing 28 field mappings
[2026-02-18 20:14:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 20:14:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 20:14:49] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 20:14:49] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-18 20:14:49] [INFO]   -> Found value: PCFD
EMS
MFD
[2026-02-18 20:14:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD"
[2026-02-18 20:14:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 20:14:49] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-18 20:14:49] [INFO]   -> Found value: 2026000472
[2026-02-18 20:14:49] [INFO]   -> Set field 'incidentInternalId' = "2026000472"
[2026-02-18 20:14:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000472"
[2026-02-18 20:14:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 20:14:49] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-02-18 20:14:49] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-02-18 20:14:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 20:14:49] [INFO]   -> Found value: 655
[2026-02-18 20:14:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 655
[2026-02-18 20:14:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 20:14:49] [INFO]   -> Found value: TN
[2026-02-18 20:14:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 20:14:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 20:14:49] [INFO]   -> Found value: 38574
[2026-02-18 20:14:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-18 20:14:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 20:14:49] [INFO]   -> Found value: 36.15289
[2026-02-18 20:14:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1528899999999993042365531437098979949951171875
[2026-02-18 20:14:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 20:14:49] [INFO]   -> Found value: -85.28407
[2026-02-18 20:14:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2840699999999998226485331542789936065673828125
[2026-02-18 20:14:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 20:14:49] [INFO]   -> Found value: 2026-02-18 14:14:40
[2026-02-18 20:14:49] [INFO]   -> Set field 'alarm' = "2026-02-18 14:14:40"
[2026-02-18 20:14:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 20:14:49] [INFO]   -> Found value: 2026-02-18 14:14:40
[2026-02-18 20:14:49] [INFO]   -> Set field 'dispatched' = "2026-02-18 14:14:40"
[2026-02-18 20:14:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 20:14:49] [INFO]   -> Found value: WOODCLIFF RD
[2026-02-18 20:14:49] [INFO]   -> Set field 'incidentLocationCross' = "WOODCLIFF RD"
[2026-02-18 20:14:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 20:14:49] [INFO]   -> Found value: PCFR
[2026-02-18 20:14:49] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-18 20:14:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 20:14:49] [INFO]   -> Found value: 2026-02-18 14:14:40
[2026-02-18 20:14:49] [INFO]   -> Set field 'timedispatch' = "2026-02-18 14:14:40"
[2026-02-18 20:14:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 20:14:49] [INFO]   -> No value found (null or empty)
[2026-02-18 20:14:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 20:14:49] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 20:14:49] [INFO]   -> Found value: 20260018418
[2026-02-18 20:14:49] [INFO]   -> Set field 'policeReportNumber' = "20260018418"
[2026-02-18 20:14:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 20:14:49] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [02/18/2026 14:14:40 KBEATY] [EMS] 72 IN JUNE  [02/18/26 14:...
[2026-02-18 20:14:49] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:40 KBEATY] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]"
[2026-02-18 20:14:49] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:40 KBEATY] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]"
[2026-02-18 20:14:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 20:14:49] [INFO]   -> Found value: MONTEREY
[2026-02-18 20:14:49] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-18 20:14:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 20:14:49] [INFO]   -> Found value: ALLIE
[2026-02-18 20:14:49] [INFO]   -> Set field 'streetName' = "ALLIE"
[2026-02-18 20:14:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 20:14:49] [INFO]   -> Found value: LN
[2026-02-18 20:14:49] [INFO]   -> Set field 'streetType' = "LN"
[2026-02-18 20:14:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 20:14:49] [INFO]   -> Found value: 655 ALLIE LN
[2026-02-18 20:14:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "655 ALLIE LN"
[2026-02-18 20:14:49] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 20:14:49] [INFO] Concatenating street name and type
[2026-02-18 20:14:49] [INFO]   -> Combined street name: ALLIE LN
[2026-02-18 20:14:49] [INFO] Built locationCoordinates from lat/lng: 36.15289,-85.28407
[2026-02-18 20:14:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD","incidentInternalId":"2026000472","dispatchRunNumber":"2026000472","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":655,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1528899999999993042365531437098979949951171875,"nERISIncidentLongitude":-85.2840699999999998226485331542789936065673828125,"alarm":"2026-02-18 14:14:40","dispatched":"2026-02-18 14:14:40","incidentLocationCross":"WOODCLIFF RD","cADVehicleID":"PCFR","timedispatch":"2026-02-18 14:14:40","policeReportNumber":"20260018418","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:40 KBEATY] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:40 KBEATY] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]","incidentLocationCity":"MONTEREY","streetName":"ALLIE LN","incidentAddressTextVersionStreet":"655 ALLIE LN","locationCoordinates":"36.15289,-85.28407"}
[2026-02-18 20:14:49] [INFO] Number of extracted fields: 21
[2026-02-18 20:14:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD'
[2026-02-18 20:14:49] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD', Parsed IDs = ["PCFD","EMS","MFD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-18 20:14:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD"]
[2026-02-18 20:14:49] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-18 20:14:49] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-18 20:14:49] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD"]
[2026-02-18 20:14:49] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-02-18 20:14:49] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-18 20:14:49] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-18 20:14:49] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-18 20:14:49] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-18 20:14:49] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-02-18 20:15:01] [INFO] Created new Dispatches record with ID: 69961db9dbc1955ec
[2026-02-18 20:15:01] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 20:15:01] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 20:15:04] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 20:15:04] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018418_20260218_201448.XML: Failed to upload file to V2 FTP server: /PCFD_20260018418_20260218_201448.XML
[2026-02-18 20:15:04] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 20:15:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018417_20260218_201538.XML
[2026-02-18 20:15:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018417_20260218_201538.XML for user: 68f1466aed072ad4a
[2026-02-18 20:15:38] [INFO] File size: 5657 bytes
[2026-02-18 20:15:39] [INFO] Created FTPFiles record with ID: 69961deb43440a7e8
[2026-02-18 20:15:39] [INFO] About to extract fields from XML. File size: 5657 bytes
[2026-02-18 20:15:39] [INFO] Number of mappings: 28
[2026-02-18 20:15:39] [INFO] Starting XML parsing. Content length: 5657
[2026-02-18 20:15:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-18 20:15:39] [INFO] Processing 28 field mappings
[2026-02-18 20:15:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-18 20:15:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-18 20:15:39] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-18 20:15:39] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-02-18 20:15:39] [INFO]   -> Found value: MFD
EMS
PCFD
MPD
MPD
[2026-02-18 20:15:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nPCFD\nMPD\nMPD"
[2026-02-18 20:15:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-18 20:15:39] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-02-18 20:15:39] [INFO]   -> Found value: 2026000063
[2026-02-18 20:15:39] [INFO]   -> Set field 'incidentInternalId' = "2026000063"
[2026-02-18 20:15:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000063"
[2026-02-18 20:15:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-18 20:15:39] [INFO]   -> Found value: MENTAL STATUS CHANGES
[2026-02-18 20:15:39] [INFO]   -> Set field 'incidentTypeValue1' = "MENTAL STATUS CHANGES"
[2026-02-18 20:15:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-18 20:15:39] [INFO]   -> Found value: 655
[2026-02-18 20:15:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 655
[2026-02-18 20:15:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-18 20:15:39] [INFO]   -> Found value: TN
[2026-02-18 20:15:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-18 20:15:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-18 20:15:39] [INFO]   -> Found value: 38574
[2026-02-18 20:15:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-18 20:15:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-18 20:15:39] [INFO]   -> Found value: 36.15289
[2026-02-18 20:15:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1528899999999993042365531437098979949951171875
[2026-02-18 20:15:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-18 20:15:39] [INFO]   -> Found value: -85.28407
[2026-02-18 20:15:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2840699999999998226485331542789936065673828125
[2026-02-18 20:15:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-18 20:15:39] [INFO]   -> Found value: 2026-02-18 14:14:27
[2026-02-18 20:15:39] [INFO]   -> Set field 'alarm' = "2026-02-18 14:14:27"
[2026-02-18 20:15:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-18 20:15:39] [INFO]   -> Found value: 2026-02-18 14:15:24
[2026-02-18 20:15:39] [INFO]   -> Set field 'dispatched' = "2026-02-18 14:15:24"
[2026-02-18 20:15:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-18 20:15:39] [INFO]   -> Found value: WOODCLIFF RD
[2026-02-18 20:15:39] [INFO]   -> Set field 'incidentLocationCross' = "WOODCLIFF RD"
[2026-02-18 20:15:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-18 20:15:39] [INFO]   -> Found value: MFR
[2026-02-18 20:15:39] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-18 20:15:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-18 20:15:39] [INFO]   -> Found value: 2026-02-18 14:15:24
[2026-02-18 20:15:39] [INFO]   -> Set field 'timedispatch' = "2026-02-18 14:15:24"
[2026-02-18 20:15:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-18 20:15:39] [INFO]   -> No value found (null or empty)
[2026-02-18 20:15:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-18 20:15:39] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-02-18 20:15:39] [INFO]   -> Found value: 20260018417
[2026-02-18 20:15:39] [INFO]   -> Set field 'policeReportNumber' = "20260018417"
[2026-02-18 20:15:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-18 20:15:39] [INFO]   -> Found value: NOT ACTING RIGHT  LARRY MATHENY  [02/18/26 14:15:21 MCLAYBURN2] [EMS] 72 IN JUNE  [02/18/26 14:14:35...
[2026-02-18 20:15:39] [INFO]   -> Set field 'dispatchNotes' = "NOT ACTING RIGHT  LARRY MATHENY  [02\/18\/26 14:15:21 MCLAYBURN2] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]"
[2026-02-18 20:15:39] [INFO]   -> Set field 'cADLog' = "NOT ACTING RIGHT  LARRY MATHENY  [02\/18\/26 14:15:21 MCLAYBURN2] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]"
[2026-02-18 20:15:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-18 20:15:39] [INFO]   -> Found value: MONTEREY
[2026-02-18 20:15:39] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-18 20:15:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-18 20:15:39] [INFO]   -> Found value: ALLIE
[2026-02-18 20:15:39] [INFO]   -> Set field 'streetName' = "ALLIE"
[2026-02-18 20:15:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-18 20:15:39] [INFO]   -> Found value: LN
[2026-02-18 20:15:39] [INFO]   -> Set field 'streetType' = "LN"
[2026-02-18 20:15:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-18 20:15:39] [INFO]   -> Found value: 655 ALLIE LN
[2026-02-18 20:15:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "655 ALLIE LN"
[2026-02-18 20:15:39] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-18 20:15:39] [INFO] Concatenating street name and type
[2026-02-18 20:15:39] [INFO]   -> Combined street name: ALLIE LN
[2026-02-18 20:15:39] [INFO] Built locationCoordinates from lat/lng: 36.15289,-85.28407
[2026-02-18 20:15:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nPCFD\nMPD\nMPD","incidentInternalId":"2026000063","dispatchRunNumber":"2026000063","incidentTypeValue1":"MENTAL STATUS CHANGES","incidentLocationStreetNumber":655,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1528899999999993042365531437098979949951171875,"nERISIncidentLongitude":-85.2840699999999998226485331542789936065673828125,"alarm":"2026-02-18 14:14:27","dispatched":"2026-02-18 14:15:24","incidentLocationCross":"WOODCLIFF RD","cADVehicleID":"MFR","timedispatch":"2026-02-18 14:15:24","policeReportNumber":"20260018417","dispatchNotes":"NOT ACTING RIGHT  LARRY MATHENY  [02\/18\/26 14:15:21 MCLAYBURN2] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]","cADLog":"NOT ACTING RIGHT  LARRY MATHENY  [02\/18\/26 14:15:21 MCLAYBURN2] [EMS] 72 IN JUNE  [02\/18\/26 14:14:35 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [02\/18\/2026 14:14:27 MCLAYBURN2] HAVING A HARD TIME WALKING CAN BARELY STAND  [02\/18\/26 14:14:06 MCLAYBURN2]]","incidentLocationCity":"MONTEREY","streetName":"ALLIE LN","incidentAddressTextVersionStreet":"655 ALLIE LN","locationCoordinates":"36.15289,-85.28407"}
[2026-02-18 20:15:39] [INFO] Number of extracted fields: 21
[2026-02-18 20:15:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
PCFD
MPD
MPD'
[2026-02-18 20:15:39] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
PCFD
MPD
MPD', Parsed IDs = ["MFD","EMS","PCFD","MPD","MPD"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-02-18 20:15:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","PCFD","MPD","MPD"]
[2026-02-18 20:15:39] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-18 20:15:39] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-18 20:15:39] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD","MPD","MPD"]
[2026-02-18 20:15:39] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-18 20:15:39] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-18 20:15:39] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-02-18 20:15:39] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-18 20:15:39] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-18 20:15:39] [INFO] Found existing IncidentTypeMapping with ID: 695c39565bfa7eff0
[2026-02-18 20:15:42] [INFO] Created new Dispatches record with ID: 69961dec37019c0fb
[2026-02-18 20:15:42] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-18 20:15:42] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-18 20:15:45] [ERROR] PHP Error [WARNING]: ftp_put(): Illegal PORT command in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1016
[2026-02-18 20:15:45] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018417_20260218_201538.XML: Failed to upload file to V2 FTP server: /MFD_20260018417_20260218_201538.XML
[2026-02-18 20:15:45] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-18 22:22:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05114.xml
[2026-02-18 22:22:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05114.xml for user: 68d56363ec1209189
[2026-02-18 22:22:05] [INFO] File size: 1550 bytes
[2026-02-18 22:22:06] [INFO] Created FTPFiles record with ID: 69963b8e0eb20d15c
[2026-02-18 22:22:06] [INFO] About to extract fields from XML. File size: 1550 bytes
[2026-02-18 22:22:06] [INFO] Number of mappings: 21
[2026-02-18 22:22:06] [INFO] Starting XML parsing. Content length: 1550
[2026-02-18 22:22:06] [INFO] XML parsed successfully. Root element: Incident
[2026-02-18 22:22:06] [INFO] Processing 21 field mappings
[2026-02-18 22:22:06] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-02-18 22:22:06] [INFO]   -> Found value: 26-05114
[2026-02-18 22:22:06] [INFO]   -> Set field 'dispatchRunNumber' = "26-05114"
[2026-02-18 22:22:06] [INFO]   -> Set field 'cADNumber' = "26-05114"
[2026-02-18 22:22:06] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-02-18 22:22:06] [INFO]   -> Found value: 5025
[2026-02-18 22:22:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5025
[2026-02-18 22:22:06] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-02-18 22:22:06] [INFO]   -> Found value: STATE HIGHWAY 77
[2026-02-18 22:22:06] [INFO]   -> Set field 'streetName' = "STATE HIGHWAY 77"
[2026-02-18 22:22:06] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-02-18 22:22:06] [INFO]   -> Found value: BENTON
[2026-02-18 22:22:06] [INFO]   -> Set field 'incidentLocationCity' = "BENTON"
[2026-02-18 22:22:06] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-02-18 22:22:06] [INFO]   -> Found value: LINDA GREER
[2026-02-18 22:22:06] [INFO]   -> Set field 'businessName' = "LINDA GREER"
[2026-02-18 22:22:06] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-02-18 22:22:06] [INFO]   -> Found value: 63736
[2026-02-18 22:22:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63736
[2026-02-18 22:22:06] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-02-18 22:22:06] [INFO]   -> Found value: MEDICAL
[2026-02-18 22:22:06] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-02-18 22:22:06] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-02-18 22:22:06] [INFO]   -> Found value: 02-18-2026 16:09:16|WARNING: ADDRESS ALERT EXISTS
Reason for alert:BIOHAZARD
Notes:2991 ADV RESIDENC...
[2026-02-18 22:22:06] [INFO]   -> Set field 'dispatchNotes' = "02-18-2026 16:09:16|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 02-18-2026 16:07:27|Call Received on 02\/18\/2026 @ 16:07\n\nHUSBAND IS STUCK IN HIS CHAIR AND CAN'T GET UP\n\nSUBJECT IS NOT HURT"
[2026-02-18 22:22:06] [INFO]   -> Set field 'cADLog' = "02-18-2026 16:09:16|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 02-18-2026 16:07:27|Call Received on 02\/18\/2026 @ 16:07\n\nHUSBAND IS STUCK IN HIS CHAIR AND CAN'T GET UP\n\nSUBJECT IS NOT HURT"
[2026-02-18 22:22:06] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-02-18 22:22:06] [INFO]   -> Found value: 02-18-2026T16:10:48
[2026-02-18 22:22:06] [INFO] Reformatted DD-MM-YYYY date '02-18-2026' (day=02, month=18) to ISO: 2026-18-02T16:10:48
[2026-02-18 22:22:06] [ERROR] Error formatting datetime '2026-18-02T16:10:48': Failed to parse time string (2026-18-02T16:10:48) at position 6 (8): Unexpected character
[2026-02-18 22:22:06] [INFO]   -> Set field 'alarm' = null
[2026-02-18 22:22:06] [INFO] Reformatted DD-MM-YYYY date '02-18-2026' (day=02, month=18) to ISO: 2026-18-02T16:10:48
[2026-02-18 22:22:06] [ERROR] Error formatting datetime '2026-18-02T16:10:48': Failed to parse time string (2026-18-02T16:10:48) at position 6 (8): Unexpected character
[2026-02-18 22:22:06] [INFO]   -> Set field 'dispatched' = null
[2026-02-18 22:22:06] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-02-18 22:22:06] [INFO]   -> Found value: RURAL PAGE
[2026-02-18 22:22:06] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-02-18 22:22:06] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-02-18 22:22:06] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-02-18 22:22:06] [INFO]   -> No value found (null or empty)
[2026-02-18 22:22:06] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-02-18 22:22:06] [INFO]   -> Found value: 02-18-2026T16:20:58
[2026-02-18 22:22:06] [INFO] Reformatted DD-MM-YYYY date '02-18-2026' (day=02, month=18) to ISO: 2026-18-02T16:20:58
[2026-02-18 22:22:06] [ERROR] Error formatting datetime '2026-18-02T16:20:58': Failed to parse time string (2026-18-02T16:20:58) at position 6 (8): Unexpected character
[2026-02-18 22:22:06] [INFO]   -> Set field 'timeunitclear' = null
[2026-02-18 22:22:06] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-02-18 22:22:06] [INFO]   -> Found value: 02-18-2026T16:10:48
[2026-02-18 22:22:06] [INFO] Reformatted DD-MM-YYYY date '02-18-2026' (day=02, month=18) to ISO: 2026-18-02T16:10:48
[2026-02-18 22:22:06] [ERROR] Error formatting datetime '2026-18-02T16:10:48': Failed to parse time string (2026-18-02T16:10:48) at position 6 (8): Unexpected character
[2026-02-18 22:22:06] [INFO]   -> Set field 'timedispatch' = null
[2026-02-18 22:22:06] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-02-18 22:22:06] [INFO]   -> Found value: SCRFD
[2026-02-18 22:22:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-02-18 22:22:06] [INFO] Finished extracting fields. Total fields extracted: 17
[2026-02-18 22:22:06] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-05114","cADNumber":"26-05114","incidentLocationStreetNumber":5025,"streetName":"STATE HIGHWAY 77","incidentLocationCity":"BENTON","businessName":"LINDA GREER","nERISIncidentPostalCode":63736,"incidentTypeValue1":"MEDICAL","dispatchNotes":"02-18-2026 16:09:16|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 02-18-2026 16:07:27|Call Received on 02\/18\/2026 @ 16:07\n\nHUSBAND IS STUCK IN HIS CHAIR AND CAN'T GET UP\n\nSUBJECT IS NOT HURT","cADLog":"02-18-2026 16:09:16|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 02-18-2026 16:07:27|Call Received on 02\/18\/2026 @ 16:07\n\nHUSBAND IS STUCK IN HIS CHAIR AND CAN'T GET UP\n\nSUBJECT IS NOT HURT","alarm":null,"dispatched":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD"}
[2026-02-18 22:22:06] [INFO] Number of extracted fields: 17
[2026-02-18 22:22:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-02-18 22:22:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-02-18 22:22:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-02-18 22:22:06] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-02-18 22:22:06] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-02-18 22:22:06] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-02-18 22:22:06] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-02-18 22:22:06] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-02-18 22:22:06] [INFO] Found existing IncidentTypeMapping with ID: 6979040ce473322a8
[2026-02-18 22:22:06] [INFO] Found existing Dispatch with cADNumber '26-05114', ID: 699638ecb0ec7a126 - will update instead of create
[2026-02-18 22:22:07] [INFO] Updated existing Dispatches record with ID: 699638ecb0ec7a126
[2026-02-18 22:22:07] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-18
[2026-02-18 22:22:07] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05114.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-18/SCRFD_26-05114.xml
[2026-02-18 22:22:07] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05114.xml
