[2026-02-17 03:43:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017760_20260217_034347.XML
[2026-02-17 03:43:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017760_20260217_034347.XML for user: 68f1466aed072ad4a
[2026-02-17 03:43:47] [INFO] File size: 5426 bytes
[2026-02-17 03:43:47] [INFO] Created FTPFiles record with ID: 6993e3f36df58a3e1
[2026-02-17 03:43:47] [INFO] About to extract fields from XML. File size: 5426 bytes
[2026-02-17 03:43:47] [INFO] Number of mappings: 28
[2026-02-17 03:43:47] [INFO] Starting XML parsing. Content length: 5426
[2026-02-17 03:43:47] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 03:43:47] [INFO] Processing 28 field mappings
[2026-02-17 03:43:47] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 03:43:47] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 03:43:47] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 03:43:47] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-17 03:43:47] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-17 03:43:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-17 03:43:47] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 03:43:47] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-17 03:43:47] [INFO]   -> Found value: 2026000455
[2026-02-17 03:43:47] [INFO]   -> Set field 'incidentInternalId' = "2026000455"
[2026-02-17 03:43:47] [INFO]   -> Set field 'dispatchRunNumber' = "2026000455"
[2026-02-17 03:43:47] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 03:43:47] [INFO]   -> Found value: UNCONSCIOUS
[2026-02-17 03:43:47] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-02-17 03:43:47] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 03:43:47] [INFO]   -> Found value: 3411
[2026-02-17 03:43:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3411
[2026-02-17 03:43:47] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 03:43:47] [INFO]   -> Found value: TN
[2026-02-17 03:43:47] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 03:43:47] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 03:43:47] [INFO]   -> Found value: 38506
[2026-02-17 03:43:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 03:43:47] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 03:43:47] [INFO]   -> Found value: 36.10792
[2026-02-17 03:43:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10792000000000001591615728102624416351318359375
[2026-02-17 03:43:47] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 03:43:47] [INFO]   -> Found value: -85.57566
[2026-02-17 03:43:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.575659999999999172359821386635303497314453125
[2026-02-17 03:43:47] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 03:43:47] [INFO]   -> Found value: 2026-02-16 21:43:09
[2026-02-17 03:43:47] [INFO]   -> Set field 'alarm' = "2026-02-16 21:43:09"
[2026-02-17 03:43:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 03:43:47] [INFO]   -> Found value: 2026-02-16 21:43:36
[2026-02-17 03:43:47] [INFO]   -> Set field 'dispatched' = "2026-02-16 21:43:36"
[2026-02-17 03:43:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 03:43:47] [INFO]   -> Found value: BROOKSTONE DR/BROOK MEADOWS CIR
[2026-02-17 03:43:47] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSTONE DR\/BROOK MEADOWS CIR"
[2026-02-17 03:43:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 03:43:47] [INFO]   -> Found value: PCFR
[2026-02-17 03:43:47] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-17 03:43:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 03:43:47] [INFO]   -> Found value: 2026-02-16 21:43:36
[2026-02-17 03:43:47] [INFO]   -> Set field 'timedispatch' = "2026-02-16 21:43:36"
[2026-02-17 03:43:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 03:43:47] [INFO]   -> No value found (null or empty)
[2026-02-17 03:43:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 03:43:47] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 03:43:47] [INFO]   -> Found value: 20260017760
[2026-02-17 03:43:47] [INFO]   -> Set field 'policeReportNumber' = "20260017760"
[2026-02-17 03:43:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 03:43:47] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [02/16/2026 21:43:09 DSWINK] WIFE JUST CAME HOME FROM HOSPITAL UNAB...
[2026-02-17 03:43:47] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [02\/16\/2026 21:43:09 DSWINK] WIFE JUST CAME HOME FROM HOSPITAL UNABLE TO WAKE HER UP IS BREATHING  [02\/16\/26 21:43:05 DSWINK]]"
[2026-02-17 03:43:47] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [02\/16\/2026 21:43:09 DSWINK] WIFE JUST CAME HOME FROM HOSPITAL UNABLE TO WAKE HER UP IS BREATHING  [02\/16\/26 21:43:05 DSWINK]]"
[2026-02-17 03:43:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 03:43:47] [INFO]   -> Found value: COOKEVILLE
[2026-02-17 03:43:47] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-17 03:43:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 03:43:47] [INFO]   -> Found value: MILLSTONE
[2026-02-17 03:43:47] [INFO]   -> Set field 'streetName' = "MILLSTONE"
[2026-02-17 03:43:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 03:43:47] [INFO]   -> Found value: CT
[2026-02-17 03:43:47] [INFO]   -> Set field 'streetType' = "CT"
[2026-02-17 03:43:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 03:43:47] [INFO]   -> Found value: 3411 MILLSTONE CT
[2026-02-17 03:43:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3411 MILLSTONE CT"
[2026-02-17 03:43:47] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 03:43:47] [INFO] Concatenating street name and type
[2026-02-17 03:43:47] [INFO]   -> Combined street name: MILLSTONE CT
[2026-02-17 03:43:47] [INFO] Built locationCoordinates from lat/lng: 36.10792,-85.57566
[2026-02-17 03:43:47] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000455","dispatchRunNumber":"2026000455","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":3411,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.10792000000000001591615728102624416351318359375,"nERISIncidentLongitude":-85.575659999999999172359821386635303497314453125,"alarm":"2026-02-16 21:43:09","dispatched":"2026-02-16 21:43:36","incidentLocationCross":"BROOKSTONE DR\/BROOK MEADOWS CIR","cADVehicleID":"PCFR","timedispatch":"2026-02-16 21:43:36","policeReportNumber":"20260017760","dispatchNotes":"Event spawned from UNCONSCIOUS.  [02\/16\/2026 21:43:09 DSWINK] WIFE JUST CAME HOME FROM HOSPITAL UNABLE TO WAKE HER UP IS BREATHING  [02\/16\/26 21:43:05 DSWINK]]","cADLog":"Event spawned from UNCONSCIOUS.  [02\/16\/2026 21:43:09 DSWINK] WIFE JUST CAME HOME FROM HOSPITAL UNABLE TO WAKE HER UP IS BREATHING  [02\/16\/26 21:43:05 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"MILLSTONE CT","incidentAddressTextVersionStreet":"3411 MILLSTONE CT","locationCoordinates":"36.10792,-85.57566"}
[2026-02-17 03:43:47] [INFO] Number of extracted fields: 21
[2026-02-17 03:43:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-17 03:43:47] [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-17 03:43:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-17 03:43:47] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 03:43:47] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 03:43:47] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-17 03:43:47] [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-17 03:43:47] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 03:43:47] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-17 03:43:47] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 03:43:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 03:43:47] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-02-17 03:43:58] [INFO] Created new Dispatches record with ID: 6993e3f433138fefc
[2026-02-17 03:43:58] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 03:43:58] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 03:44:01] [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-17 03:44:01] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017760_20260217_034347.XML: Failed to upload file to V2 FTP server: /PCFD_20260017760_20260217_034347.XML
[2026-02-17 03:44:01] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 03:51:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017762_20260217_035156.XML
[2026-02-17 03:51:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017762_20260217_035156.XML for user: 68f1466aed072ad4a
[2026-02-17 03:51:56] [INFO] File size: 4928 bytes
[2026-02-17 03:51:56] [INFO] Created FTPFiles record with ID: 6993e5dce48d9d81d
[2026-02-17 03:51:56] [INFO] About to extract fields from XML. File size: 4928 bytes
[2026-02-17 03:51:56] [INFO] Number of mappings: 28
[2026-02-17 03:51:56] [INFO] Starting XML parsing. Content length: 4928
[2026-02-17 03:51:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 03:51:56] [INFO] Processing 28 field mappings
[2026-02-17 03:51:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 03:51:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 03:51:56] [INFO]   -> Found value: AFD
[2026-02-17 03:51:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-02-17 03:51:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 03:51:56] [INFO]   -> Found value: 2026000071
[2026-02-17 03:51:56] [INFO]   -> Set field 'incidentInternalId' = "2026000071"
[2026-02-17 03:51:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000071"
[2026-02-17 03:51:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 03:51:56] [INFO]   -> Found value: FIRE ALARM
[2026-02-17 03:51:56] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-02-17 03:51:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 03:51:56] [INFO]   -> Found value: 169
[2026-02-17 03:51:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 169
[2026-02-17 03:51:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 03:51:56] [INFO]   -> Found value: TN
[2026-02-17 03:51:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 03:51:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 03:51:56] [INFO]   -> Found value: 38506
[2026-02-17 03:51:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 03:51:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 03:51:56] [INFO]   -> Found value: PROGRESSIVE DIE AND STAMPING
[2026-02-17 03:51:56] [INFO]   -> Set field 'businessName' = "PROGRESSIVE DIE AND STAMPING"
[2026-02-17 03:51:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 03:51:56] [INFO]   -> Found value: 36.19637
[2026-02-17 03:51:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1963700000000017098500393331050872802734375
[2026-02-17 03:51:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 03:51:56] [INFO]   -> Found value: -85.44472
[2026-02-17 03:51:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4447200000000037789504858665168285369873046875
[2026-02-17 03:51:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 03:51:56] [INFO]   -> Found value: 2026-02-16 21:49:53
[2026-02-17 03:51:56] [INFO]   -> Set field 'alarm' = "2026-02-16 21:49:53"
[2026-02-17 03:51:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 03:51:56] [INFO]   -> Found value: 2026-02-16 21:51:43
[2026-02-17 03:51:56] [INFO]   -> Set field 'dispatched' = "2026-02-16 21:51:43"
[2026-02-17 03:51:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 03:51:56] [INFO]   -> Found value: E CHURCH ST/HARP AVE
[2026-02-17 03:51:56] [INFO]   -> Set field 'incidentLocationCross' = "E CHURCH ST\/HARP AVE"
[2026-02-17 03:51:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 03:51:56] [INFO]   -> Found value: A1200
[2026-02-17 03:51:56] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-02-17 03:51:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 03:51:56] [INFO]   -> Found value: 2026-02-16 21:51:43
[2026-02-17 03:51:56] [INFO]   -> Set field 'timedispatch' = "2026-02-16 21:51:43"
[2026-02-17 03:51:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 03:51:56] [INFO]   -> No value found (null or empty)
[2026-02-17 03:51:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 03:51:56] [INFO]   -> Found value: 20260017762
[2026-02-17 03:51:56] [INFO]   -> Set field 'policeReportNumber' = "20260017762"
[2026-02-17 03:51:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 03:51:56] [INFO]   -> Found value: WATER FLOW ZONE OO2 MIDDLE RISERS  KH DAMON 931-260-1639  800-633-2677 REF# M2M1-6165  [02/16/26 21:...
[2026-02-17 03:51:56] [INFO]   -> Set field 'dispatchNotes' = "WATER FLOW ZONE OO2 MIDDLE RISERS  KH DAMON 931-260-1639  800-633-2677 REF# M2M1-6165  [02\/16\/26 21:50:53 DSWINK]]"
[2026-02-17 03:51:56] [INFO]   -> Set field 'cADLog' = "WATER FLOW ZONE OO2 MIDDLE RISERS  KH DAMON 931-260-1639  800-633-2677 REF# M2M1-6165  [02\/16\/26 21:50:53 DSWINK]]"
[2026-02-17 03:51:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 03:51:56] [INFO]   -> Found value: ALGOOD
[2026-02-17 03:51:56] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-17 03:51:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 03:51:56] [INFO]   -> Found value: MAIN
[2026-02-17 03:51:56] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-02-17 03:51:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 03:51:56] [INFO]   -> Found value: ST
[2026-02-17 03:51:56] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 03:51:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 03:51:56] [INFO]   -> Found value: 169 E MAIN ST
[2026-02-17 03:51:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "169 E MAIN ST"
[2026-02-17 03:51:56] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-17 03:51:56] [INFO] Concatenating street name and type
[2026-02-17 03:51:56] [INFO]   -> Combined street name: MAIN ST
[2026-02-17 03:51:56] [INFO] Built locationCoordinates from lat/lng: 36.19637,-85.44472
[2026-02-17 03:51:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000071","dispatchRunNumber":"2026000071","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":169,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"PROGRESSIVE DIE AND STAMPING","nERISIncidentLatitude":36.1963700000000017098500393331050872802734375,"nERISIncidentLongitude":-85.4447200000000037789504858665168285369873046875,"alarm":"2026-02-16 21:49:53","dispatched":"2026-02-16 21:51:43","incidentLocationCross":"E CHURCH ST\/HARP AVE","cADVehicleID":"A1200","timedispatch":"2026-02-16 21:51:43","policeReportNumber":"20260017762","dispatchNotes":"WATER FLOW ZONE OO2 MIDDLE RISERS  KH DAMON 931-260-1639  800-633-2677 REF# M2M1-6165  [02\/16\/26 21:50:53 DSWINK]]","cADLog":"WATER FLOW ZONE OO2 MIDDLE RISERS  KH DAMON 931-260-1639  800-633-2677 REF# M2M1-6165  [02\/16\/26 21:50:53 DSWINK]]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"169 E MAIN ST","locationCoordinates":"36.19637,-85.44472"}
[2026-02-17 03:51:56] [INFO] Number of extracted fields: 22
[2026-02-17 03:51:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-02-17 03:51:56] [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-17 03:51:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-02-17 03:51:56] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-17 03:51:57] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-17 03:51:57] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-17 03:51:57] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-17 03:51:57] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-17 03:51:57] [INFO] Found existing IncidentTypeMapping with ID: 6978e351e0f80c4f5
[2026-02-17 03:52:02] [INFO] Created new Dispatches record with ID: 6993e5ddcf94ed9eb
[2026-02-17 03:52:02] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 03:52:02] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 03:52: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-17 03:52:06] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017762_20260217_035156.XML: Failed to upload file to V2 FTP server: /AFD_20260017762_20260217_035156.XML
[2026-02-17 03:52:06] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 05:19:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017783_20260217_051927.XML
[2026-02-17 05:19:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017783_20260217_051927.XML for user: 68f1466aed072ad4a
[2026-02-17 05:19:27] [INFO] File size: 5212 bytes
[2026-02-17 05:19:27] [INFO] Created FTPFiles record with ID: 6993fa5fecaa425bf
[2026-02-17 05:19:27] [INFO] About to extract fields from XML. File size: 5212 bytes
[2026-02-17 05:19:27] [INFO] Number of mappings: 28
[2026-02-17 05:19:27] [INFO] Starting XML parsing. Content length: 5212
[2026-02-17 05:19:27] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 05:19:27] [INFO] Processing 28 field mappings
[2026-02-17 05:19:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 05:19:27] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 05:19:27] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 05:19:27] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-17 05:19:27] [INFO]   -> Found value: AFD
EMS
APD
[2026-02-17 05:19:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD"
[2026-02-17 05:19:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 05:19:27] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-17 05:19:27] [INFO]   -> Found value: 2026000072
[2026-02-17 05:19:27] [INFO]   -> Set field 'incidentInternalId' = "2026000072"
[2026-02-17 05:19:27] [INFO]   -> Set field 'dispatchRunNumber' = "2026000072"
[2026-02-17 05:19:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 05:19:27] [INFO]   -> Found value: OVERDOSE
[2026-02-17 05:19:27] [INFO]   -> Set field 'incidentTypeValue1' = "OVERDOSE"
[2026-02-17 05:19:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 05:19:27] [INFO]   -> Found value: 145
[2026-02-17 05:19:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 145
[2026-02-17 05:19:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 05:19:27] [INFO]   -> Found value: TN
[2026-02-17 05:19:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 05:19:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 05:19:27] [INFO]   -> Found value: 38506
[2026-02-17 05:19:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 05:19:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 05:19:27] [INFO]   -> Found value: 36.18727
[2026-02-17 05:19:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1872699999999980491338646970689296722412109375
[2026-02-17 05:19:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 05:19:27] [INFO]   -> Found value: -85.45213
[2026-02-17 05:19:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4521299999999968122210702858865261077880859375
[2026-02-17 05:19:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 05:19:27] [INFO]   -> Found value: 2026-02-16 23:18:34
[2026-02-17 05:19:27] [INFO]   -> Set field 'alarm' = "2026-02-16 23:18:34"
[2026-02-17 05:19:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 05:19:27] [INFO]   -> Found value: 2026-02-16 23:19:14
[2026-02-17 05:19:27] [INFO]   -> Set field 'dispatched' = "2026-02-16 23:19:14"
[2026-02-17 05:19:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 05:19:27] [INFO]   -> Found value: DRY VALLEY RD/DRY VALLEY RD
[2026-02-17 05:19:27] [INFO]   -> Set field 'incidentLocationCross' = "DRY VALLEY RD\/DRY VALLEY RD"
[2026-02-17 05:19:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 05:19:27] [INFO]   -> Found value: AFR
[2026-02-17 05:19:27] [INFO]   -> Set field 'cADVehicleID' = "AFR"
[2026-02-17 05:19:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 05:19:27] [INFO]   -> Found value: 2026-02-16 23:19:14
[2026-02-17 05:19:27] [INFO]   -> Set field 'timedispatch' = "2026-02-16 23:19:14"
[2026-02-17 05:19:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 05:19:27] [INFO]   -> No value found (null or empty)
[2026-02-17 05:19:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 05:19:27] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 05:19:27] [INFO]   -> Found value: 20260017783
[2026-02-17 05:19:27] [INFO]   -> Set field 'policeReportNumber' = "20260017783"
[2026-02-17 05:19:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 05:19:27] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02/16/26 23:18:49 BAHARRIS] Event spawned from OVERDOSE.  [0...
[2026-02-17 05:19:27] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/16\/26 23:18:49 BAHARRIS] Event spawned from OVERDOSE.  [02\/16\/2026 23:18:34 DSWINK]"
[2026-02-17 05:19:27] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/16\/26 23:18:49 BAHARRIS] Event spawned from OVERDOSE.  [02\/16\/2026 23:18:34 DSWINK]"
[2026-02-17 05:19:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 05:19:27] [INFO]   -> Found value: ALGOOD
[2026-02-17 05:19:27] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-17 05:19:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 05:19:27] [INFO]   -> Found value: WILLIAMS
[2026-02-17 05:19:27] [INFO]   -> Set field 'streetName' = "WILLIAMS"
[2026-02-17 05:19:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 05:19:27] [INFO]   -> Found value: SQ
[2026-02-17 05:19:27] [INFO]   -> Set field 'streetType' = "SQ"
[2026-02-17 05:19:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 05:19:27] [INFO]   -> Found value: 145 WILLIAMS SQ
[2026-02-17 05:19:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "145 WILLIAMS SQ"
[2026-02-17 05:19:27] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 05:19:27] [INFO] Concatenating street name and type
[2026-02-17 05:19:27] [INFO]   -> Combined street name: WILLIAMS SQ
[2026-02-17 05:19:27] [INFO] Built locationCoordinates from lat/lng: 36.18727,-85.45213
[2026-02-17 05:19:27] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD","incidentInternalId":"2026000072","dispatchRunNumber":"2026000072","incidentTypeValue1":"OVERDOSE","incidentLocationStreetNumber":145,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1872699999999980491338646970689296722412109375,"nERISIncidentLongitude":-85.4521299999999968122210702858865261077880859375,"alarm":"2026-02-16 23:18:34","dispatched":"2026-02-16 23:19:14","incidentLocationCross":"DRY VALLEY RD\/DRY VALLEY RD","cADVehicleID":"AFR","timedispatch":"2026-02-16 23:19:14","policeReportNumber":"20260017783","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/16\/26 23:18:49 BAHARRIS] Event spawned from OVERDOSE.  [02\/16\/2026 23:18:34 DSWINK]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/16\/26 23:18:49 BAHARRIS] Event spawned from OVERDOSE.  [02\/16\/2026 23:18:34 DSWINK]","incidentLocationCity":"ALGOOD","streetName":"WILLIAMS SQ","incidentAddressTextVersionStreet":"145 WILLIAMS SQ","locationCoordinates":"36.18727,-85.45213"}
[2026-02-17 05:19:27] [INFO] Number of extracted fields: 21
[2026-02-17 05:19:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD'
[2026-02-17 05:19:27] [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-17 05:19:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD"]
[2026-02-17 05:19:27] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-17 05:19:28] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-17 05:19:28] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD"]
[2026-02-17 05:19:28] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-17 05:19:28] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-17 05:19:28] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-17 05:19:28] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-02-17 05:19:28] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-17 05:19:28] [INFO] Found existing IncidentTypeMapping with ID: 697d23b9f228a84ef
[2026-02-17 05:19:33] [INFO] Created new Dispatches record with ID: 6993fa60d050072b5
[2026-02-17 05:19:33] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 05:19:34] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 05:19:37] [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-17 05:19:37] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017783_20260217_051927.XML: Failed to upload file to V2 FTP server: /AFD_20260017783_20260217_051927.XML
[2026-02-17 05:19:37] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 07:31:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017794_20260217_073157.XML
[2026-02-17 07:31:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017794_20260217_073157.XML for user: 68f1466aed072ad4a
[2026-02-17 07:31:57] [INFO] File size: 5241 bytes
[2026-02-17 07:31:58] [INFO] Created FTPFiles record with ID: 6994196e5cab26e1e
[2026-02-17 07:31:58] [INFO] About to extract fields from XML. File size: 5241 bytes
[2026-02-17 07:31:58] [INFO] Number of mappings: 28
[2026-02-17 07:31:58] [INFO] Starting XML parsing. Content length: 5241
[2026-02-17 07:31:58] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 07:31:58] [INFO] Processing 28 field mappings
[2026-02-17 07:31:58] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 07:31:58] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 07:31:58] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 07:31:58] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-02-17 07:31:58] [INFO]   -> Found value: AFD
EMS
[2026-02-17 07:31:58] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS"
[2026-02-17 07:31:58] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 07:31:58] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-02-17 07:31:58] [INFO]   -> Found value: 2026000073
[2026-02-17 07:31:58] [INFO]   -> Set field 'incidentInternalId' = "2026000073"
[2026-02-17 07:31:58] [INFO]   -> Set field 'dispatchRunNumber' = "2026000073"
[2026-02-17 07:31:58] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 07:31:58] [INFO]   -> Found value: MANPOWER - EMS ASSIST
[2026-02-17 07:31:58] [INFO]   -> Set field 'incidentTypeValue1' = "MANPOWER - EMS ASSIST"
[2026-02-17 07:31:58] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 07:31:58] [INFO]   -> Found value: 3525
[2026-02-17 07:31:58] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3525
[2026-02-17 07:31:58] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 07:31:58] [INFO]   -> Found value: TN
[2026-02-17 07:31:58] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 07:31:58] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 07:31:58] [INFO]   -> Found value: 38506
[2026-02-17 07:31:58] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 07:31:58] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 07:31:58] [INFO]   -> Found value: 36.21683
[2026-02-17 07:31:58] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2168300000000016325429896824061870574951171875
[2026-02-17 07:31:58] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 07:31:58] [INFO]   -> Found value: -85.44041
[2026-02-17 07:31:58] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4404099999999999681676854379475116729736328125
[2026-02-17 07:31:58] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 07:31:58] [INFO]   -> Found value: 2026-02-17 01:31:23
[2026-02-17 07:31:58] [INFO]   -> Set field 'alarm' = "2026-02-17 01:31:23"
[2026-02-17 07:31:58] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 07:31:58] [INFO]   -> Found value: 2026-02-17 01:31:45
[2026-02-17 07:31:58] [INFO]   -> Set field 'dispatched' = "2026-02-17 01:31:45"
[2026-02-17 07:31:58] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 07:31:58] [INFO]   -> Found value: TIMBER VIEW LN/TIMBER VIEW LN
[2026-02-17 07:31:58] [INFO]   -> Set field 'incidentLocationCross' = "TIMBER VIEW LN\/TIMBER VIEW LN"
[2026-02-17 07:31:58] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 07:31:58] [INFO]   -> Found value: A1200
[2026-02-17 07:31:58] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-02-17 07:31:58] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 07:31:58] [INFO]   -> Found value: 2026-02-17 01:31:45
[2026-02-17 07:31:58] [INFO]   -> Set field 'timedispatch' = "2026-02-17 01:31:45"
[2026-02-17 07:31:58] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 07:31:58] [INFO]   -> No value found (null or empty)
[2026-02-17 07:31:58] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 07:31:58] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 07:31:58] [INFO]   -> Found value: 20260017794
[2026-02-17 07:31:58] [INFO]   -> Set field 'policeReportNumber' = "20260017794"
[2026-02-17 07:31:58] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 07:31:58] [INFO]   -> Found value: Event spawned from EMS NON-EMERGENCY.  [02/17/2026 01:31:23 EALMENDAREZ] FALL - BROKEN ANKLE FRONT D...
[2026-02-17 07:31:58] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 01:31:23 EALMENDAREZ] FALL - BROKEN ANKLE FRONT DOOR 52 YOF  [02\/17\/26 01:16:39 DSWINK]]"
[2026-02-17 07:31:58] [INFO]   -> Set field 'cADLog' = "Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 01:31:23 EALMENDAREZ] FALL - BROKEN ANKLE FRONT DOOR 52 YOF  [02\/17\/26 01:16:39 DSWINK]]"
[2026-02-17 07:31:58] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 07:31:58] [INFO]   -> Found value: ALGOOD
[2026-02-17 07:31:58] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-17 07:31:58] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 07:31:58] [INFO]   -> Found value: ASPEN
[2026-02-17 07:31:58] [INFO]   -> Set field 'streetName' = "ASPEN"
[2026-02-17 07:31:58] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 07:31:58] [INFO]   -> Found value: TRL
[2026-02-17 07:31:58] [INFO]   -> Set field 'streetType' = "TRL"
[2026-02-17 07:31:58] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 07:31:58] [INFO]   -> Found value: 3525 ASPEN TRL
[2026-02-17 07:31:58] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3525 ASPEN TRL"
[2026-02-17 07:31:58] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 07:31:58] [INFO] Concatenating street name and type
[2026-02-17 07:31:58] [INFO]   -> Combined street name: ASPEN TRL
[2026-02-17 07:31:58] [INFO] Built locationCoordinates from lat/lng: 36.21683,-85.44041
[2026-02-17 07:31:58] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS","incidentInternalId":"2026000073","dispatchRunNumber":"2026000073","incidentTypeValue1":"MANPOWER - EMS ASSIST","incidentLocationStreetNumber":3525,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.2168300000000016325429896824061870574951171875,"nERISIncidentLongitude":-85.4404099999999999681676854379475116729736328125,"alarm":"2026-02-17 01:31:23","dispatched":"2026-02-17 01:31:45","incidentLocationCross":"TIMBER VIEW LN\/TIMBER VIEW LN","cADVehicleID":"A1200","timedispatch":"2026-02-17 01:31:45","policeReportNumber":"20260017794","dispatchNotes":"Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 01:31:23 EALMENDAREZ] FALL - BROKEN ANKLE FRONT DOOR 52 YOF  [02\/17\/26 01:16:39 DSWINK]]","cADLog":"Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 01:31:23 EALMENDAREZ] FALL - BROKEN ANKLE FRONT DOOR 52 YOF  [02\/17\/26 01:16:39 DSWINK]]","incidentLocationCity":"ALGOOD","streetName":"ASPEN TRL","incidentAddressTextVersionStreet":"3525 ASPEN TRL","locationCoordinates":"36.21683,-85.44041"}
[2026-02-17 07:31:58] [INFO] Number of extracted fields: 21
[2026-02-17 07:31:58] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS'
[2026-02-17 07:31:58] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS', Parsed IDs = ["AFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-02-17 07:31:58] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS"]
[2026-02-17 07:31:58] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-17 07:31:58] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-17 07:31:58] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-02-17 07:31:58] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-17 07:31:58] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-17 07:31:58] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-02-17 07:31:58] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-02-17 07:31:58] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-17 07:31:58] [INFO] Found existing IncidentTypeMapping with ID: 69471182900dbaefb
[2026-02-17 07:32:03] [INFO] Created new Dispatches record with ID: 6994196f36f69b8d4
[2026-02-17 07:32:03] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 07:32:03] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 07:32: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-17 07:32:07] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017794_20260217_073157.XML: Failed to upload file to V2 FTP server: /AFD_20260017794_20260217_073157.XML
[2026-02-17 07:32:07] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 11:44:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017811_20260217_114410.XML
[2026-02-17 11:44:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017811_20260217_114410.XML for user: 68f1466aed072ad4a
[2026-02-17 11:44:10] [INFO] File size: 5309 bytes
[2026-02-17 11:44:10] [INFO] Created FTPFiles record with ID: 6994548a9aebce16e
[2026-02-17 11:44:10] [INFO] About to extract fields from XML. File size: 5309 bytes
[2026-02-17 11:44:10] [INFO] Number of mappings: 28
[2026-02-17 11:44:10] [INFO] Starting XML parsing. Content length: 5309
[2026-02-17 11:44:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 11:44:10] [INFO] Processing 28 field mappings
[2026-02-17 11:44:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 11:44:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 11:44:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 11:44:10] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-17 11:44:10] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-17 11:44:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-17 11:44:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 11:44:10] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-17 11:44:10] [INFO]   -> Found value: 2026000456
[2026-02-17 11:44:10] [INFO]   -> Set field 'incidentInternalId' = "2026000456"
[2026-02-17 11:44:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000456"
[2026-02-17 11:44:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 11:44:10] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-02-17 11:44:10] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-02-17 11:44:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 11:44:10] [INFO]   -> Found value: 3938
[2026-02-17 11:44:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3938
[2026-02-17 11:44:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 11:44:10] [INFO]   -> Found value: TN
[2026-02-17 11:44:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 11:44:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 11:44:10] [INFO]   -> Found value: 38506
[2026-02-17 11:44:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 11:44:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 11:44:10] [INFO]   -> Found value: 36.09889
[2026-02-17 11:44:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0988899999999972578734741546213626861572265625
[2026-02-17 11:44:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 11:44:10] [INFO]   -> Found value: -85.54299
[2026-02-17 11:44:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.542990000000003192326403222978115081787109375
[2026-02-17 11:44:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 11:44:10] [INFO]   -> Found value: 2026-02-17 05:43:30
[2026-02-17 11:44:10] [INFO]   -> Set field 'alarm' = "2026-02-17 05:43:30"
[2026-02-17 11:44:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 11:44:10] [INFO]   -> Found value: 2026-02-17 05:44:06
[2026-02-17 11:44:10] [INFO]   -> Set field 'dispatched' = "2026-02-17 05:44:06"
[2026-02-17 11:44:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 11:44:10] [INFO]   -> Found value: BURGESS SCHOOL RD
[2026-02-17 11:44:10] [INFO]   -> Set field 'incidentLocationCross' = "BURGESS SCHOOL RD"
[2026-02-17 11:44:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 11:44:10] [INFO]   -> Found value: PCFR
[2026-02-17 11:44:10] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-17 11:44:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 11:44:10] [INFO]   -> Found value: 2026-02-17 05:44:06
[2026-02-17 11:44:10] [INFO]   -> Set field 'timedispatch' = "2026-02-17 05:44:06"
[2026-02-17 11:44:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 11:44:10] [INFO]   -> No value found (null or empty)
[2026-02-17 11:44:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 11:44:10] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 11:44:10] [INFO]   -> Found value: 20260017811
[2026-02-17 11:44:10] [INFO]   -> Set field 'policeReportNumber' = "20260017811"
[2026-02-17 11:44:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 11:44:10] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [02/17/2026 05:43:30 DSWINK] FRONT DOOR  [02/17/26 05:43:24 ...
[2026-02-17 11:44:10] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/17\/2026 05:43:30 DSWINK] FRONT DOOR  [02\/17\/26 05:43:24 DSWINK] HUSBAND WOKE UP DIZZY &amp; HAVING CHEST PAINS SWEATING PROFUSELY  [02\/17\/26 05:43:13 DSWINK]"
[2026-02-17 11:44:10] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/17\/2026 05:43:30 DSWINK] FRONT DOOR  [02\/17\/26 05:43:24 DSWINK] HUSBAND WOKE UP DIZZY &amp; HAVING CHEST PAINS SWEATING PROFUSELY  [02\/17\/26 05:43:13 DSWINK]"
[2026-02-17 11:44:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 11:44:10] [INFO]   -> Found value: COOKEVILLE
[2026-02-17 11:44:10] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-17 11:44:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 11:44:10] [INFO]   -> Found value: HILLTOP
[2026-02-17 11:44:10] [INFO]   -> Set field 'streetName' = "HILLTOP"
[2026-02-17 11:44:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 11:44:10] [INFO]   -> Found value: DR
[2026-02-17 11:44:10] [INFO]   -> Set field 'streetType' = "DR"
[2026-02-17 11:44:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 11:44:10] [INFO]   -> Found value: 3938 HILLTOP DR
[2026-02-17 11:44:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3938 HILLTOP DR"
[2026-02-17 11:44:10] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 11:44:10] [INFO] Concatenating street name and type
[2026-02-17 11:44:10] [INFO]   -> Combined street name: HILLTOP DR
[2026-02-17 11:44:10] [INFO] Built locationCoordinates from lat/lng: 36.09889,-85.54299
[2026-02-17 11:44:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000456","dispatchRunNumber":"2026000456","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":3938,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0988899999999972578734741546213626861572265625,"nERISIncidentLongitude":-85.542990000000003192326403222978115081787109375,"alarm":"2026-02-17 05:43:30","dispatched":"2026-02-17 05:44:06","incidentLocationCross":"BURGESS SCHOOL RD","cADVehicleID":"PCFR","timedispatch":"2026-02-17 05:44:06","policeReportNumber":"20260017811","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [02\/17\/2026 05:43:30 DSWINK] FRONT DOOR  [02\/17\/26 05:43:24 DSWINK] HUSBAND WOKE UP DIZZY &amp; HAVING CHEST PAINS SWEATING PROFUSELY  [02\/17\/26 05:43:13 DSWINK]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [02\/17\/2026 05:43:30 DSWINK] FRONT DOOR  [02\/17\/26 05:43:24 DSWINK] HUSBAND WOKE UP DIZZY &amp; HAVING CHEST PAINS SWEATING PROFUSELY  [02\/17\/26 05:43:13 DSWINK]","incidentLocationCity":"COOKEVILLE","streetName":"HILLTOP DR","incidentAddressTextVersionStreet":"3938 HILLTOP DR","locationCoordinates":"36.09889,-85.54299"}
[2026-02-17 11:44:10] [INFO] Number of extracted fields: 21
[2026-02-17 11:44:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-17 11:44:10] [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-17 11:44:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-17 11:44:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 11:44:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 11:44:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-17 11:44:10] [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-17 11:44:10] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 11:44:10] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-17 11:44:10] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 11:44:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 11:44:11] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-02-17 11:44:22] [INFO] Created new Dispatches record with ID: 6994548c17604e762
[2026-02-17 11:44:22] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 11:44:22] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 11:44:25] [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-17 11:44:25] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017811_20260217_114410.XML: Failed to upload file to V2 FTP server: /PCFD_20260017811_20260217_114410.XML
[2026-02-17 11:44:25] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 12:13:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017818_20260217_121309.XML
[2026-02-17 12:13:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017818_20260217_121309.XML for user: 68f1466aed072ad4a
[2026-02-17 12:13:09] [INFO] File size: 5662 bytes
[2026-02-17 12:13:09] [INFO] Created FTPFiles record with ID: 69945b55d759cc184
[2026-02-17 12:13:09] [INFO] About to extract fields from XML. File size: 5662 bytes
[2026-02-17 12:13:09] [INFO] Number of mappings: 28
[2026-02-17 12:13:09] [INFO] Starting XML parsing. Content length: 5662
[2026-02-17 12:13:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 12:13:09] [INFO] Processing 28 field mappings
[2026-02-17 12:13:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 12:13:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 12:13:09] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 12:13:09] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-17 12:13:09] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-17 12:13:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-17 12:13:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 12:13:09] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-17 12:13:09] [INFO]   -> Found value: 2026000457
[2026-02-17 12:13:09] [INFO]   -> Set field 'incidentInternalId' = "2026000457"
[2026-02-17 12:13:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000457"
[2026-02-17 12:13:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 12:13:09] [INFO]   -> Found value: SEIZURE
[2026-02-17 12:13:09] [INFO]   -> Set field 'incidentTypeValue1' = "SEIZURE"
[2026-02-17 12:13:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 12:13:09] [INFO]   -> Found value: 3900
[2026-02-17 12:13:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3900
[2026-02-17 12:13:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 12:13:09] [INFO]   -> Found value: TN
[2026-02-17 12:13:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 12:13:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 12:13:09] [INFO]   -> Found value: 38501
[2026-02-17 12:13:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-02-17 12:13:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 12:13:09] [INFO]   -> Found value: 36.21715
[2026-02-17 12:13:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21714999999999662350091966800391674041748046875
[2026-02-17 12:13:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 12:13:09] [INFO]   -> Found value: -85.49552
[2026-02-17 12:13:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.49551999999999907231540419161319732666015625
[2026-02-17 12:13:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 12:13:09] [INFO]   -> Found value: 2026-02-17 06:12:24
[2026-02-17 12:13:09] [INFO]   -> Set field 'alarm' = "2026-02-17 06:12:24"
[2026-02-17 12:13:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 12:13:09] [INFO]   -> Found value: 2026-02-17 06:13:03
[2026-02-17 12:13:09] [INFO]   -> Set field 'dispatched' = "2026-02-17 06:13:03"
[2026-02-17 12:13:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 12:13:09] [INFO]   -> Found value: EDGEWOOD DR/HUTCHESON RD
[2026-02-17 12:13:09] [INFO]   -> Set field 'incidentLocationCross' = "EDGEWOOD DR\/HUTCHESON RD"
[2026-02-17 12:13:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 12:13:09] [INFO]   -> Found value: PCFR
[2026-02-17 12:13:09] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-17 12:13:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 12:13:09] [INFO]   -> Found value: 2026-02-17 06:13:03
[2026-02-17 12:13:09] [INFO]   -> Set field 'timedispatch' = "2026-02-17 06:13:03"
[2026-02-17 12:13:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 12:13:09] [INFO]   -> No value found (null or empty)
[2026-02-17 12:13:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 12:13:09] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 12:13:09] [INFO]   -> Found value: 20260017818
[2026-02-17 12:13:09] [INFO]   -> Set field 'policeReportNumber' = "20260017818"
[2026-02-17 12:13:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 12:13:09] [INFO]   -> Found value: [EMS] CORRECTION 74YOF  [02/17/26 06:12:54 KBURTON] [LAW] UDTS: LE NOT RESPONDING  [02/17/26 06:12:4...
[2026-02-17 12:13:09] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CORRECTION 74YOF  [02\/17\/26 06:12:54 KBURTON] [LAW] UDTS: LE NOT RESPONDING  [02\/17\/26 06:12:40 BLAFEVERSMITH] Event spawned from SEIZURE.  [02\/17\/2026 06:12:24 KBURTON] WANDA KEITH  YESTERDAY AFTERNOON BEGAN STOMACH CRAMP NOT FELLING WELL - PASSED OUT AROUND 1 AM CALLER ASSISTED HER - WHEN SITTING UP HAS SEZIURE LIKE ACTIVITY   74 YOM  ENTER THROUGH THE FRONT  [02\/17\/26 06:12:08 KBURTON]]"
[2026-02-17 12:13:09] [INFO]   -> Set field 'cADLog' = "[EMS] CORRECTION 74YOF  [02\/17\/26 06:12:54 KBURTON] [LAW] UDTS: LE NOT RESPONDING  [02\/17\/26 06:12:40 BLAFEVERSMITH] Event spawned from SEIZURE.  [02\/17\/2026 06:12:24 KBURTON] WANDA KEITH  YESTERDAY AFTERNOON BEGAN STOMACH CRAMP NOT FELLING WELL - PASSED OUT AROUND 1 AM CALLER ASSISTED HER - WHEN SITTING UP HAS SEZIURE LIKE ACTIVITY   74 YOM  ENTER THROUGH THE FRONT  [02\/17\/26 06:12:08 KBURTON]]"
[2026-02-17 12:13:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 12:13:09] [INFO]   -> Found value: COOKEVILLE
[2026-02-17 12:13:09] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-17 12:13:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 12:13:09] [INFO]   -> Found value: FREEHILL
[2026-02-17 12:13:09] [INFO]   -> Set field 'streetName' = "FREEHILL"
[2026-02-17 12:13:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 12:13:09] [INFO]   -> Found value: RD
[2026-02-17 12:13:09] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-17 12:13:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 12:13:09] [INFO]   -> Found value: 3900 FREEHILL RD
[2026-02-17 12:13:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3900 FREEHILL RD"
[2026-02-17 12:13:09] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 12:13:09] [INFO] Concatenating street name and type
[2026-02-17 12:13:09] [INFO]   -> Combined street name: FREEHILL RD
[2026-02-17 12:13:09] [INFO] Built locationCoordinates from lat/lng: 36.21715,-85.49552
[2026-02-17 12:13:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000457","dispatchRunNumber":"2026000457","incidentTypeValue1":"SEIZURE","incidentLocationStreetNumber":3900,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21714999999999662350091966800391674041748046875,"nERISIncidentLongitude":-85.49551999999999907231540419161319732666015625,"alarm":"2026-02-17 06:12:24","dispatched":"2026-02-17 06:13:03","incidentLocationCross":"EDGEWOOD DR\/HUTCHESON RD","cADVehicleID":"PCFR","timedispatch":"2026-02-17 06:13:03","policeReportNumber":"20260017818","dispatchNotes":"[EMS] CORRECTION 74YOF  [02\/17\/26 06:12:54 KBURTON] [LAW] UDTS: LE NOT RESPONDING  [02\/17\/26 06:12:40 BLAFEVERSMITH] Event spawned from SEIZURE.  [02\/17\/2026 06:12:24 KBURTON] WANDA KEITH  YESTERDAY AFTERNOON BEGAN STOMACH CRAMP NOT FELLING WELL - PASSED OUT AROUND 1 AM CALLER ASSISTED HER - WHEN SITTING UP HAS SEZIURE LIKE ACTIVITY   74 YOM  ENTER THROUGH THE FRONT  [02\/17\/26 06:12:08 KBURTON]]","cADLog":"[EMS] CORRECTION 74YOF  [02\/17\/26 06:12:54 KBURTON] [LAW] UDTS: LE NOT RESPONDING  [02\/17\/26 06:12:40 BLAFEVERSMITH] Event spawned from SEIZURE.  [02\/17\/2026 06:12:24 KBURTON] WANDA KEITH  YESTERDAY AFTERNOON BEGAN STOMACH CRAMP NOT FELLING WELL - PASSED OUT AROUND 1 AM CALLER ASSISTED HER - WHEN SITTING UP HAS SEZIURE LIKE ACTIVITY   74 YOM  ENTER THROUGH THE FRONT  [02\/17\/26 06:12:08 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"FREEHILL RD","incidentAddressTextVersionStreet":"3900 FREEHILL RD","locationCoordinates":"36.21715,-85.49552"}
[2026-02-17 12:13:09] [INFO] Number of extracted fields: 21
[2026-02-17 12:13:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-17 12:13:09] [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-17 12:13:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-17 12:13:09] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 12:13:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 12:13:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-17 12:13:10] [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-17 12:13:10] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 12:13:10] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-17 12:13:10] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 12:13:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 12:13:10] [INFO] Found existing IncidentTypeMapping with ID: 6938221e4d49ca73b
[2026-02-17 12:13:21] [INFO] Created new Dispatches record with ID: 69945b570768afe01
[2026-02-17 12:13:21] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 12:13:22] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 12:13:25] [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-17 12:13:25] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017818_20260217_121309.XML: Failed to upload file to V2 FTP server: /PCFD_20260017818_20260217_121309.XML
[2026-02-17 12:13:25] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 13:44:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017839_20260217_134440.XML
[2026-02-17 13:44:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017839_20260217_134440.XML for user: 68f1466aed072ad4a
[2026-02-17 13:44:40] [INFO] File size: 4779 bytes
[2026-02-17 13:44:40] [INFO] Created FTPFiles record with ID: 699470c8aae5f04fe
[2026-02-17 13:44:40] [INFO] About to extract fields from XML. File size: 4779 bytes
[2026-02-17 13:44:40] [INFO] Number of mappings: 28
[2026-02-17 13:44:40] [INFO] Starting XML parsing. Content length: 4779
[2026-02-17 13:44:40] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 13:44:40] [INFO] Processing 28 field mappings
[2026-02-17 13:44:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 13:44:40] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 13:44:40] [INFO]   -> Found value: AFD
[2026-02-17 13:44:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-02-17 13:44:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 13:44:40] [INFO]   -> Found value: 2026000074
[2026-02-17 13:44:40] [INFO]   -> Set field 'incidentInternalId' = "2026000074"
[2026-02-17 13:44:40] [INFO]   -> Set field 'dispatchRunNumber' = "2026000074"
[2026-02-17 13:44:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 13:44:40] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-02-17 13:44:40] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-02-17 13:44:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 13:44:40] [INFO]   -> Found value: 362
[2026-02-17 13:44:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 362
[2026-02-17 13:44:40] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 13:44:40] [INFO]   -> Found value: TN
[2026-02-17 13:44:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 13:44:40] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 13:44:40] [INFO]   -> Found value: 38506
[2026-02-17 13:44:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 13:44:40] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 13:44:40] [INFO]   -> Found value: 36.20225
[2026-02-17 13:44:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20224999999999937472239253111183643341064453125
[2026-02-17 13:44:40] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 13:44:40] [INFO]   -> Found value: -85.44846
[2026-02-17 13:44:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4484599999999971942088450305163860321044921875
[2026-02-17 13:44:40] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 13:44:40] [INFO]   -> Found value: 2026-02-17 07:43:20
[2026-02-17 13:44:40] [INFO]   -> Set field 'alarm' = "2026-02-17 07:43:20"
[2026-02-17 13:44:40] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 13:44:40] [INFO]   -> Found value: 2026-02-17 07:44:33
[2026-02-17 13:44:40] [INFO]   -> Set field 'dispatched' = "2026-02-17 07:44:33"
[2026-02-17 13:44:40] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 13:44:40] [INFO]   -> Found value: 2026-02-17 07:44:33
[2026-02-17 13:44:40] [INFO]   -> Set field 'enroute' = "2026-02-17 07:44:33"
[2026-02-17 13:44:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 13:44:40] [INFO]   -> Found value: INDUSTRIAL CIR
[2026-02-17 13:44:40] [INFO]   -> Set field 'incidentLocationCross' = "INDUSTRIAL CIR"
[2026-02-17 13:44:40] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 13:44:40] [INFO]   -> Found value: A1200
[2026-02-17 13:44:40] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-02-17 13:44:40] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 13:44:40] [INFO]   -> Found value: 2026-02-17 07:44:33
[2026-02-17 13:44:40] [INFO]   -> Set field 'timedispatch' = "2026-02-17 07:44:33"
[2026-02-17 13:44:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 13:44:40] [INFO]   -> Found value: 2026-02-17 07:44:33
[2026-02-17 13:44:40] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-17 07:44:33"
[2026-02-17 13:44:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 13:44:40] [INFO]   -> Found value: 20260017839
[2026-02-17 13:44:40] [INFO]   -> Set field 'policeReportNumber' = "20260017839"
[2026-02-17 13:44:40] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 13:44:40] [INFO]   -> No value found (null or empty)
[2026-02-17 13:44:40] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 13:44:40] [INFO]   -> Found value: ALGOOD
[2026-02-17 13:44:40] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-17 13:44:40] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 13:44:40] [INFO]   -> Found value: TRANSPORT
[2026-02-17 13:44:40] [INFO]   -> Set field 'streetName' = "TRANSPORT"
[2026-02-17 13:44:40] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 13:44:40] [INFO]   -> Found value: DR
[2026-02-17 13:44:40] [INFO]   -> Set field 'streetType' = "DR"
[2026-02-17 13:44:40] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 13:44:40] [INFO]   -> Found value: 362 TRANSPORT DR
[2026-02-17 13:44:40] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "362 TRANSPORT DR"
[2026-02-17 13:44:40] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 13:44:40] [INFO] Concatenating street name and type
[2026-02-17 13:44:40] [INFO]   -> Combined street name: TRANSPORT DR
[2026-02-17 13:44:40] [INFO] Built locationCoordinates from lat/lng: 36.20225,-85.44846
[2026-02-17 13:44:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000074","dispatchRunNumber":"2026000074","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":362,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20224999999999937472239253111183643341064453125,"nERISIncidentLongitude":-85.4484599999999971942088450305163860321044921875,"alarm":"2026-02-17 07:43:20","dispatched":"2026-02-17 07:44:33","enroute":"2026-02-17 07:44:33","incidentLocationCross":"INDUSTRIAL CIR","cADVehicleID":"A1200","timedispatch":"2026-02-17 07:44:33","timeenroutetoscene":"2026-02-17 07:44:33","policeReportNumber":"20260017839","incidentLocationCity":"ALGOOD","streetName":"TRANSPORT DR","incidentAddressTextVersionStreet":"362 TRANSPORT DR","locationCoordinates":"36.20225,-85.44846"}
[2026-02-17 13:44:40] [INFO] Number of extracted fields: 21
[2026-02-17 13:44:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-02-17 13:44:40] [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-17 13:44:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-02-17 13:44:40] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-17 13:44:40] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-17 13:44:41] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-17 13:44:41] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-17 13:44:41] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-17 13:44:41] [INFO] Found existing IncidentTypeMapping with ID: 6944cc762a114ef22
[2026-02-17 13:44:46] [INFO] Created new Dispatches record with ID: 699470c99dbca264f
[2026-02-17 13:44:46] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 13:44:46] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 13:44:49] [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-17 13:44:49] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017839_20260217_134440.XML: Failed to upload file to V2 FTP server: /AFD_20260017839_20260217_134440.XML
[2026-02-17 13:44:49] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 15:43:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017866_20260217_154330.XML
[2026-02-17 15:43:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017866_20260217_154330.XML for user: 68f1466aed072ad4a
[2026-02-17 15:43:30] [INFO] File size: 4814 bytes
[2026-02-17 15:43:31] [INFO] Created FTPFiles record with ID: 69948ca34227cfce9
[2026-02-17 15:43:31] [INFO] About to extract fields from XML. File size: 4814 bytes
[2026-02-17 15:43:31] [INFO] Number of mappings: 28
[2026-02-17 15:43:31] [INFO] Starting XML parsing. Content length: 4814
[2026-02-17 15:43:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 15:43:31] [INFO] Processing 28 field mappings
[2026-02-17 15:43:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 15:43:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 15:43:31] [INFO]   -> Found value: PCFD
[2026-02-17 15:43:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-02-17 15:43:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026000458
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentInternalId' = "2026000458"
[2026-02-17 15:43:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000458"
[2026-02-17 15:43:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 15:43:31] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-02-17 15:43:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 15:43:31] [INFO]   -> Found value: 3000
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3000
[2026-02-17 15:43:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 15:43:31] [INFO]   -> Found value: TN
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 15:43:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 15:43:31] [INFO]   -> Found value: 38501
[2026-02-17 15:43:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-02-17 15:43:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 15:43:31] [INFO]   -> No value found (null or empty)
[2026-02-17 15:43:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 15:43:31] [INFO]   -> Found value: C11
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentLocationApt' = "C11"
[2026-02-17 15:43:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 15:43:31] [INFO]   -> Found value: 36.20394
[2026-02-17 15:43:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2039400000000028967406251467764377593994140625
[2026-02-17 15:43:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 15:43:31] [INFO]   -> Found value: -85.51402
[2026-02-17 15:43:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5140200000000021418600226752460002899169921875
[2026-02-17 15:43:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026-02-17 09:42:56
[2026-02-17 15:43:31] [INFO]   -> Set field 'alarm' = "2026-02-17 09:42:56"
[2026-02-17 15:43:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026-02-17 09:43:19
[2026-02-17 15:43:31] [INFO]   -> Set field 'dispatched' = "2026-02-17 09:43:19"
[2026-02-17 15:43:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026-02-17 09:43:19
[2026-02-17 15:43:31] [INFO]   -> Set field 'enroute' = "2026-02-17 09:43:19"
[2026-02-17 15:43:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026-02-17 09:43:19
[2026-02-17 15:43:31] [INFO]   -> Set field 'onScene' = "2026-02-17 09:43:19"
[2026-02-17 15:43:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 15:43:31] [INFO]   -> No value found (null or empty)
[2026-02-17 15:43:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 15:43:31] [INFO]   -> Found value: N DIXIE AVE/KINNIARD RD
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentLocationCross' = "N DIXIE AVE\/KINNIARD RD"
[2026-02-17 15:43:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 15:43:31] [INFO]   -> Found value: TK11
[2026-02-17 15:43:31] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-02-17 15:43:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026-02-17 09:43:19
[2026-02-17 15:43:31] [INFO]   -> Set field 'timedispatch' = "2026-02-17 09:43:19"
[2026-02-17 15:43:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026-02-17 09:43:19
[2026-02-17 15:43:31] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-17 09:43:19"
[2026-02-17 15:43:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 15:43:31] [INFO]   -> Found value: 2026-02-17 09:43:19
[2026-02-17 15:43:31] [INFO]   -> Set field 'timeonscene' = "2026-02-17 09:43:19"
[2026-02-17 15:43:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 15:43:31] [INFO]   -> No value found (null or empty)
[2026-02-17 15:43:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 15:43:31] [INFO]   -> No value found (null or empty)
[2026-02-17 15:43:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 15:43:31] [INFO]   -> Found value: 20260017866
[2026-02-17 15:43:31] [INFO]   -> Set field 'policeReportNumber' = "20260017866"
[2026-02-17 15:43:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 15:43:31] [INFO]   -> No value found (null or empty)
[2026-02-17 15:43:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 15:43:31] [INFO]   -> Found value: COOKEVILLE
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-17 15:43:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 15:43:31] [INFO]   -> Found value: DODSON BRANCH
[2026-02-17 15:43:31] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-02-17 15:43:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 15:43:31] [INFO]   -> Found value: RD
[2026-02-17 15:43:31] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-17 15:43:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 15:43:31] [INFO]   -> Found value: 3000-C11 DODSON BRANCH RD
[2026-02-17 15:43:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3000-C11 DODSON BRANCH RD"
[2026-02-17 15:43:31] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-02-17 15:43:31] [INFO] Concatenating street name and type
[2026-02-17 15:43:31] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-02-17 15:43:31] [INFO] Built locationCoordinates from lat/lng: 36.20394,-85.51402
[2026-02-17 15:43:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000458","dispatchRunNumber":"2026000458","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":3000,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"incidentLocationApt":"C11","nERISIncidentLatitude":36.2039400000000028967406251467764377593994140625,"nERISIncidentLongitude":-85.5140200000000021418600226752460002899169921875,"alarm":"2026-02-17 09:42:56","dispatched":"2026-02-17 09:43:19","enroute":"2026-02-17 09:43:19","onScene":"2026-02-17 09:43:19","incidentLocationCross":"N DIXIE AVE\/KINNIARD RD","cADVehicleID":"TK11","timedispatch":"2026-02-17 09:43:19","timeenroutetoscene":"2026-02-17 09:43:19","timeonscene":"2026-02-17 09:43:19","policeReportNumber":"20260017866","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"3000-C11 DODSON BRANCH RD","locationCoordinates":"36.20394,-85.51402"}
[2026-02-17 15:43:31] [INFO] Number of extracted fields: 24
[2026-02-17 15:43:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-02-17 15:43:31] [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-17 15:43:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-02-17 15:43:31] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 15:43:31] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 15:43:31] [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-17 15:43:31] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 15:43:31] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 15:43:32] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-02-17 15:43:42] [INFO] Created new Dispatches record with ID: 69948ca44f50e5acb
[2026-02-17 15:43:42] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 15:43:42] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 15:43: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-17 15:43:45] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017866_20260217_154330.XML: Failed to upload file to V2 FTP server: /PCFD_20260017866_20260217_154330.XML
[2026-02-17 15:43:45] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 16:13:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:13:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml for user: 69320e6a9e3e5ef71
[2026-02-17 16:13:46] [INFO] File size: 13068 bytes
[2026-02-17 16:13:47] [INFO] Created FTPFiles record with ID: 699493bbc4736af63
[2026-02-17 16:13:47] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-17 16:13:47] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17
[2026-02-17 16:13:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17/cfs_2026-010624.xml
[2026-02-17 16:13:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:15:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:15:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml for user: 69320e6a9e3e5ef71
[2026-02-17 16:15:17] [INFO] File size: 15306 bytes
[2026-02-17 16:15:17] [INFO] Created FTPFiles record with ID: 69949415c5bf09ae2
[2026-02-17 16:15:17] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-17 16:15:17] [INFO] File already exists in archive, using unique name: cfs_2026-010624_1771344917.xml
[2026-02-17 16:15:17] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17/cfs_2026-010624_1771344917.xml
[2026-02-17 16:15:17] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:15:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:15:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml for user: 69320e6a9e3e5ef71
[2026-02-17 16:15:47] [INFO] File size: 19133 bytes
[2026-02-17 16:15:47] [INFO] Created FTPFiles record with ID: 69949433d7945f9f3
[2026-02-17 16:15:47] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-17 16:15:47] [INFO] File already exists in archive, using unique name: cfs_2026-010624_1771344947.xml
[2026-02-17 16:15:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17/cfs_2026-010624_1771344947.xml
[2026-02-17 16:15:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:15:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:15:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml for user: 69320e6a9e3e5ef71
[2026-02-17 16:15:48] [INFO] File size: 19133 bytes
[2026-02-17 16:15:48] [INFO] Created FTPFiles record with ID: 6994943477785d8f3
[2026-02-17 16:15:48] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-17 16:15:48] [INFO] File already exists in archive, using unique name: cfs_2026-010624_1771344948.xml
[2026-02-17 16:15:48] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17/cfs_2026-010624_1771344948.xml
[2026-02-17 16:15:48] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:16:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:16:24] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml for user: 69320e6a9e3e5ef71
[2026-02-17 16:16:24] [INFO] File size: 20122 bytes
[2026-02-17 16:16:25] [INFO] Created FTPFiles record with ID: 699494590514e09fe
[2026-02-17 16:16:25] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-17 16:16:25] [INFO] File already exists in archive, using unique name: cfs_2026-010624_1771344985.xml
[2026-02-17 16:16:25] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17/cfs_2026-010624_1771344985.xml
[2026-02-17 16:16:25] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:16:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:16:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml for user: 69320e6a9e3e5ef71
[2026-02-17 16:16:51] [INFO] File size: 21711 bytes
[2026-02-17 16:16:51] [INFO] Created FTPFiles record with ID: 69949473e3ce4bf8a
[2026-02-17 16:16:51] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-17 16:16:51] [INFO] File already exists in archive, using unique name: cfs_2026-010624_1771345011.xml
[2026-02-17 16:16:51] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17/cfs_2026-010624_1771345011.xml
[2026-02-17 16:16:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:21:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:21:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml for user: 69320e6a9e3e5ef71
[2026-02-17 16:21:57] [INFO] File size: 22680 bytes
[2026-02-17 16:21:58] [INFO] Created FTPFiles record with ID: 699495a6184975187
[2026-02-17 16:21:58] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-17 16:21:58] [INFO] File already exists in archive, using unique name: cfs_2026-010624_1771345318.xml
[2026-02-17 16:21:58] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-17/cfs_2026-010624_1771345318.xml
[2026-02-17 16:21:58] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-010624.xml
[2026-02-17 16:37:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260017885_20260217_163730.XML
[2026-02-17 16:37:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260017885_20260217_163730.XML for user: 68f1466aed072ad4a
[2026-02-17 16:37:31] [INFO] File size: 4670 bytes
[2026-02-17 16:37:31] [INFO] Created FTPFiles record with ID: 6994994b535ef1135
[2026-02-17 16:37:31] [INFO] About to extract fields from XML. File size: 4670 bytes
[2026-02-17 16:37:31] [INFO] Number of mappings: 28
[2026-02-17 16:37:31] [INFO] Starting XML parsing. Content length: 4670
[2026-02-17 16:37:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 16:37:31] [INFO] Processing 28 field mappings
[2026-02-17 16:37:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 16:37:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 16:37:31] [INFO]   -> Found value: BFD
[2026-02-17 16:37:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-02-17 16:37:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 16:37:31] [INFO]   -> Found value: 2026000052
[2026-02-17 16:37:31] [INFO]   -> Set field 'incidentInternalId' = "2026000052"
[2026-02-17 16:37:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000052"
[2026-02-17 16:37:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 16:37:31] [INFO]   -> Found value: FIRE ALARM
[2026-02-17 16:37:31] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-02-17 16:37:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 16:37:31] [INFO]   -> Found value: 200
[2026-02-17 16:37:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 200
[2026-02-17 16:37:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 16:37:31] [INFO]   -> Found value: TN
[2026-02-17 16:37:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 16:37:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 16:37:31] [INFO]   -> Found value: 38544
[2026-02-17 16:37:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-17 16:37:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 16:37:31] [INFO]   -> Found value: BAXTER CITY HALL
[2026-02-17 16:37:31] [INFO]   -> Set field 'businessName' = "BAXTER CITY HALL"
[2026-02-17 16:37:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 16:37:31] [INFO]   -> Found value: 36.15464
[2026-02-17 16:37:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.154640000000000554791768081486225128173828125
[2026-02-17 16:37:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 16:37:31] [INFO]   -> Found value: -85.64256
[2026-02-17 16:37:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.642560000000003128661774098873138427734375
[2026-02-17 16:37:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 16:37:31] [INFO]   -> Found value: 2026-02-17 10:35:17
[2026-02-17 16:37:31] [INFO]   -> Set field 'alarm' = "2026-02-17 10:35:17"
[2026-02-17 16:37:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 16:37:31] [INFO]   -> Found value: 2026-02-17 10:37:18
[2026-02-17 16:37:31] [INFO]   -> Set field 'dispatched' = "2026-02-17 10:37:18"
[2026-02-17 16:37:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 16:37:31] [INFO]   -> Found value: /THIRD AVE N
[2026-02-17 16:37:31] [INFO]   -> Set field 'incidentLocationCross' = "\/THIRD AVE N"
[2026-02-17 16:37:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 16:37:31] [INFO]   -> Found value: BEN2
[2026-02-17 16:37:31] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-02-17 16:37:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 16:37:31] [INFO]   -> Found value: 2026-02-17 10:37:18
[2026-02-17 16:37:31] [INFO]   -> Set field 'timedispatch' = "2026-02-17 10:37:18"
[2026-02-17 16:37:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 16:37:31] [INFO]   -> No value found (null or empty)
[2026-02-17 16:37:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 16:37:31] [INFO]   -> Found value: 20260017885
[2026-02-17 16:37:31] [INFO]   -> Set field 'policeReportNumber' = "20260017885"
[2026-02-17 16:37:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 16:37:31] [INFO]   -> Found value: FIRE-MIDDLE HALL SMOKE REF # 915-3088  [02/17/26 10:35:59 KBEATY]
[2026-02-17 16:37:31] [INFO]   -> Set field 'dispatchNotes' = "FIRE-MIDDLE HALL SMOKE REF # 915-3088  [02\/17\/26 10:35:59 KBEATY]"
[2026-02-17 16:37:31] [INFO]   -> Set field 'cADLog' = "FIRE-MIDDLE HALL SMOKE REF # 915-3088  [02\/17\/26 10:35:59 KBEATY]"
[2026-02-17 16:37:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 16:37:31] [INFO]   -> Found value: BAXTER
[2026-02-17 16:37:31] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-17 16:37:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 16:37:31] [INFO]   -> Found value: MAIN
[2026-02-17 16:37:31] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-02-17 16:37:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 16:37:31] [INFO]   -> Found value: ST
[2026-02-17 16:37:31] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 16:37:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 16:37:31] [INFO]   -> Found value: 200 MAIN ST
[2026-02-17 16:37:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "200 MAIN ST"
[2026-02-17 16:37:31] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-17 16:37:31] [INFO] Concatenating street name and type
[2026-02-17 16:37:31] [INFO]   -> Combined street name: MAIN ST
[2026-02-17 16:37:31] [INFO] Built locationCoordinates from lat/lng: 36.15464,-85.64256
[2026-02-17 16:37:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000052","dispatchRunNumber":"2026000052","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":200,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"BAXTER CITY HALL","nERISIncidentLatitude":36.154640000000000554791768081486225128173828125,"nERISIncidentLongitude":-85.642560000000003128661774098873138427734375,"alarm":"2026-02-17 10:35:17","dispatched":"2026-02-17 10:37:18","incidentLocationCross":"\/THIRD AVE N","cADVehicleID":"BEN2","timedispatch":"2026-02-17 10:37:18","policeReportNumber":"20260017885","dispatchNotes":"FIRE-MIDDLE HALL SMOKE REF # 915-3088  [02\/17\/26 10:35:59 KBEATY]","cADLog":"FIRE-MIDDLE HALL SMOKE REF # 915-3088  [02\/17\/26 10:35:59 KBEATY]","incidentLocationCity":"BAXTER","streetName":"MAIN ST","incidentAddressTextVersionStreet":"200 MAIN ST","locationCoordinates":"36.15464,-85.64256"}
[2026-02-17 16:37:31] [INFO] Number of extracted fields: 22
[2026-02-17 16:37:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-02-17 16:37:31] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD', Parsed IDs = ["BFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-17 16:37:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-02-17 16:37:31] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-17 16:37:31] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-17 16:37:31] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-17 16:37:31] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-17 16:37:32] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-17 16:37:32] [INFO] Found existing IncidentTypeMapping with ID: 6945b6ed5a589dbb8
[2026-02-17 16:37:35] [INFO] Created new Dispatches record with ID: 6994994c78c3335d4
[2026-02-17 16:37:35] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 16:37:35] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 16:37:38] [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-17 16:37:38] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260017885_20260217_163730.XML: Failed to upload file to V2 FTP server: /BFD_20260017885_20260217_163730.XML
[2026-02-17 16:37:38] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 16:50:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017892_20260217_165050.XML
[2026-02-17 16:50:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017892_20260217_165050.XML for user: 68f1466aed072ad4a
[2026-02-17 16:50:50] [INFO] File size: 5082 bytes
[2026-02-17 16:50:51] [INFO] Created FTPFiles record with ID: 69949c6b35d6d5a3d
[2026-02-17 16:50:51] [INFO] About to extract fields from XML. File size: 5082 bytes
[2026-02-17 16:50:51] [INFO] Number of mappings: 28
[2026-02-17 16:50:51] [INFO] Starting XML parsing. Content length: 5082
[2026-02-17 16:50:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 16:50:51] [INFO] Processing 28 field mappings
[2026-02-17 16:50:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 16:50:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 16:50:51] [INFO]   -> Found value: AFD
[2026-02-17 16:50:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-02-17 16:50:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026000075
[2026-02-17 16:50:51] [INFO]   -> Set field 'incidentInternalId' = "2026000075"
[2026-02-17 16:50:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000075"
[2026-02-17 16:50:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 16:50:51] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-02-17 16:50:51] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-02-17 16:50:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 16:50:51] [INFO]   -> Found value: 169
[2026-02-17 16:50:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 169
[2026-02-17 16:50:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 16:50:51] [INFO]   -> Found value: TN
[2026-02-17 16:50:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 16:50:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 16:50:51] [INFO]   -> Found value: 38506
[2026-02-17 16:50:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 16:50:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 16:50:51] [INFO]   -> Found value: PROGRESSIVE DIE AND STAMPING
[2026-02-17 16:50:51] [INFO]   -> Set field 'businessName' = "PROGRESSIVE DIE AND STAMPING"
[2026-02-17 16:50:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 16:50:51] [INFO]   -> No value found (null or empty)
[2026-02-17 16:50:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 16:50:51] [INFO]   -> Found value: 36.19637
[2026-02-17 16:50:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1963700000000017098500393331050872802734375
[2026-02-17 16:50:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 16:50:51] [INFO]   -> Found value: -85.44472
[2026-02-17 16:50:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4447200000000037789504858665168285369873046875
[2026-02-17 16:50:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026-02-17 10:49:52
[2026-02-17 16:50:51] [INFO]   -> Set field 'alarm' = "2026-02-17 10:49:52"
[2026-02-17 16:50:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026-02-17 10:50:40
[2026-02-17 16:50:51] [INFO]   -> Set field 'dispatched' = "2026-02-17 10:50:40"
[2026-02-17 16:50:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026-02-17 10:50:40
[2026-02-17 16:50:51] [INFO]   -> Set field 'enroute' = "2026-02-17 10:50:40"
[2026-02-17 16:50:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026-02-17 10:50:40
[2026-02-17 16:50:51] [INFO]   -> Set field 'onScene' = "2026-02-17 10:50:40"
[2026-02-17 16:50:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 16:50:51] [INFO]   -> No value found (null or empty)
[2026-02-17 16:50:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 16:50:51] [INFO]   -> Found value: E CHURCH ST/HARP AVE
[2026-02-17 16:50:51] [INFO]   -> Set field 'incidentLocationCross' = "E CHURCH ST\/HARP AVE"
[2026-02-17 16:50:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 16:50:51] [INFO]   -> Found value: A1200
[2026-02-17 16:50:51] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-02-17 16:50:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026-02-17 10:50:40
[2026-02-17 16:50:51] [INFO]   -> Set field 'timedispatch' = "2026-02-17 10:50:40"
[2026-02-17 16:50:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026-02-17 10:50:40
[2026-02-17 16:50:51] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-17 10:50:40"
[2026-02-17 16:50:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 16:50:51] [INFO]   -> Found value: 2026-02-17 10:50:40
[2026-02-17 16:50:51] [INFO]   -> Set field 'timeonscene' = "2026-02-17 10:50:40"
[2026-02-17 16:50:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 16:50:51] [INFO]   -> No value found (null or empty)
[2026-02-17 16:50:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 16:50:51] [INFO]   -> No value found (null or empty)
[2026-02-17 16:50:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 16:50:51] [INFO]   -> Found value: 20260017892
[2026-02-17 16:50:51] [INFO]   -> Set field 'policeReportNumber' = "20260017892"
[2026-02-17 16:50:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 16:50:51] [INFO]   -> Found value: FOLLOW UP ON LAST NIGHTS FIRE ALARM  [02/17/26 10:50:35 MCLAYBURN2]
[2026-02-17 16:50:51] [INFO]   -> Set field 'dispatchNotes' = "FOLLOW UP ON LAST NIGHTS FIRE ALARM  [02\/17\/26 10:50:35 MCLAYBURN2]"
[2026-02-17 16:50:51] [INFO]   -> Set field 'cADLog' = "FOLLOW UP ON LAST NIGHTS FIRE ALARM  [02\/17\/26 10:50:35 MCLAYBURN2]"
[2026-02-17 16:50:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 16:50:51] [INFO]   -> Found value: ALGOOD
[2026-02-17 16:50:51] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-17 16:50:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 16:50:51] [INFO]   -> Found value: MAIN
[2026-02-17 16:50:51] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-02-17 16:50:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 16:50:51] [INFO]   -> Found value: ST
[2026-02-17 16:50:51] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 16:50:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 16:50:51] [INFO]   -> Found value: 169 E MAIN ST
[2026-02-17 16:50:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "169 E MAIN ST"
[2026-02-17 16:50:51] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-02-17 16:50:51] [INFO] Concatenating street name and type
[2026-02-17 16:50:51] [INFO]   -> Combined street name: MAIN ST
[2026-02-17 16:50:51] [INFO] Built locationCoordinates from lat/lng: 36.19637,-85.44472
[2026-02-17 16:50:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000075","dispatchRunNumber":"2026000075","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":169,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"PROGRESSIVE DIE AND STAMPING","nERISIncidentLatitude":36.1963700000000017098500393331050872802734375,"nERISIncidentLongitude":-85.4447200000000037789504858665168285369873046875,"alarm":"2026-02-17 10:49:52","dispatched":"2026-02-17 10:50:40","enroute":"2026-02-17 10:50:40","onScene":"2026-02-17 10:50:40","incidentLocationCross":"E CHURCH ST\/HARP AVE","cADVehicleID":"A1200","timedispatch":"2026-02-17 10:50:40","timeenroutetoscene":"2026-02-17 10:50:40","timeonscene":"2026-02-17 10:50:40","policeReportNumber":"20260017892","dispatchNotes":"FOLLOW UP ON LAST NIGHTS FIRE ALARM  [02\/17\/26 10:50:35 MCLAYBURN2]","cADLog":"FOLLOW UP ON LAST NIGHTS FIRE ALARM  [02\/17\/26 10:50:35 MCLAYBURN2]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"169 E MAIN ST","locationCoordinates":"36.19637,-85.44472"}
[2026-02-17 16:50:51] [INFO] Number of extracted fields: 26
[2026-02-17 16:50:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-02-17 16:50:51] [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-17 16:50:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-02-17 16:50:51] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-17 16:50:51] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-17 16:50:51] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-17 16:50:51] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-17 16:50:51] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-17 16:50:51] [INFO] Found existing IncidentTypeMapping with ID: 6944cc762a114ef22
[2026-02-17 16:50:57] [INFO] Created new Dispatches record with ID: 69949c6c460d43cbe
[2026-02-17 16:50:57] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 16:50:57] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 16:51:00] [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-17 16:51:00] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017892_20260217_165050.XML: Failed to upload file to V2 FTP server: /AFD_20260017892_20260217_165050.XML
[2026-02-17 16:51:00] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 17:01:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017899_20260217_170111.XML
[2026-02-17 17:01:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017899_20260217_170111.XML for user: 68f1466aed072ad4a
[2026-02-17 17:01:11] [INFO] File size: 4608 bytes
[2026-02-17 17:01:11] [INFO] Created FTPFiles record with ID: 69949ed78494cd736
[2026-02-17 17:01:11] [INFO] About to extract fields from XML. File size: 4608 bytes
[2026-02-17 17:01:11] [INFO] Number of mappings: 28
[2026-02-17 17:01:11] [INFO] Starting XML parsing. Content length: 4608
[2026-02-17 17:01:11] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 17:01:11] [INFO] Processing 28 field mappings
[2026-02-17 17:01:11] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 17:01:11] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 17:01:11] [INFO]   -> Found value: PCFD
[2026-02-17 17:01:11] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-02-17 17:01:11] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 17:01:11] [INFO]   -> Found value: 2026000459
[2026-02-17 17:01:11] [INFO]   -> Set field 'incidentInternalId' = "2026000459"
[2026-02-17 17:01:11] [INFO]   -> Set field 'dispatchRunNumber' = "2026000459"
[2026-02-17 17:01:11] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 17:01:11] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-02-17 17:01:11] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-02-17 17:01:11] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 17:01:11] [INFO]   -> Found value: 1399
[2026-02-17 17:01:11] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1399
[2026-02-17 17:01:11] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 17:01:11] [INFO]   -> Found value: TN
[2026-02-17 17:01:11] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 17:01:11] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 17:01:11] [INFO]   -> Found value: 38506
[2026-02-17 17:01:11] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 17:01:11] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 17:01:11] [INFO]   -> Found value: 36.19687
[2026-02-17 17:01:11] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19686999999999699184627388603985309600830078125
[2026-02-17 17:01:11] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 17:01:11] [INFO]   -> Found value: -85.46825
[2026-02-17 17:01:11] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4682499999999976125764078460633754730224609375
[2026-02-17 17:01:11] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 17:01:11] [INFO]   -> Found value: 2026-02-17 10:59:56
[2026-02-17 17:01:11] [INFO]   -> Set field 'alarm' = "2026-02-17 10:59:56"
[2026-02-17 17:01:11] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 17:01:11] [INFO]   -> Found value: 2026-02-17 11:01:00
[2026-02-17 17:01:11] [INFO]   -> Set field 'dispatched' = "2026-02-17 11:01:00"
[2026-02-17 17:01:11] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 17:01:11] [INFO]   -> Found value: TK12
[2026-02-17 17:01:11] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-02-17 17:01:11] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 17:01:11] [INFO]   -> Found value: 2026-02-17 11:01:00
[2026-02-17 17:01:11] [INFO]   -> Set field 'timedispatch' = "2026-02-17 11:01:00"
[2026-02-17 17:01:11] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 17:01:11] [INFO]   -> No value found (null or empty)
[2026-02-17 17:01:11] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 17:01:11] [INFO]   -> Found value: 20260017899
[2026-02-17 17:01:11] [INFO]   -> Set field 'policeReportNumber' = "20260017899"
[2026-02-17 17:01:11] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 17:01:11] [INFO]   -> Found value: PASSER-BY REPORTED IT TO ALGOOD CITY HALL  [02/17/26 11:00:59 KBEATY] SMOKE IN THE AREA  [02/17/26 1...
[2026-02-17 17:01:11] [INFO]   -> Set field 'dispatchNotes' = "PASSER-BY REPORTED IT TO ALGOOD CITY HALL  [02\/17\/26 11:00:59 KBEATY] SMOKE IN THE AREA  [02\/17\/26 11:00:16 KBEATY]"
[2026-02-17 17:01:11] [INFO]   -> Set field 'cADLog' = "PASSER-BY REPORTED IT TO ALGOOD CITY HALL  [02\/17\/26 11:00:59 KBEATY] SMOKE IN THE AREA  [02\/17\/26 11:00:16 KBEATY]"
[2026-02-17 17:01:11] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 17:01:11] [INFO]   -> Found value: COOKEVILLE
[2026-02-17 17:01:11] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-17 17:01:11] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 17:01:11] [INFO]   -> Found value: GIBBONS
[2026-02-17 17:01:11] [INFO]   -> Set field 'streetName' = "GIBBONS"
[2026-02-17 17:01:11] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 17:01:11] [INFO]   -> Found value: RD
[2026-02-17 17:01:11] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-17 17:01:11] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 17:01:11] [INFO]   -> Found value: GIBBONS RD/CANDYLAND DR
[2026-02-17 17:01:11] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "GIBBONS RD\/CANDYLAND DR"
[2026-02-17 17:01:11] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-02-17 17:01:11] [INFO] Concatenating street name and type
[2026-02-17 17:01:11] [INFO]   -> Combined street name: GIBBONS RD
[2026-02-17 17:01:11] [INFO] Built locationCoordinates from lat/lng: 36.19687,-85.46825
[2026-02-17 17:01:11] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000459","dispatchRunNumber":"2026000459","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1399,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.19686999999999699184627388603985309600830078125,"nERISIncidentLongitude":-85.4682499999999976125764078460633754730224609375,"alarm":"2026-02-17 10:59:56","dispatched":"2026-02-17 11:01:00","cADVehicleID":"TK12","timedispatch":"2026-02-17 11:01:00","policeReportNumber":"20260017899","dispatchNotes":"PASSER-BY REPORTED IT TO ALGOOD CITY HALL  [02\/17\/26 11:00:59 KBEATY] SMOKE IN THE AREA  [02\/17\/26 11:00:16 KBEATY]","cADLog":"PASSER-BY REPORTED IT TO ALGOOD CITY HALL  [02\/17\/26 11:00:59 KBEATY] SMOKE IN THE AREA  [02\/17\/26 11:00:16 KBEATY]","incidentLocationCity":"COOKEVILLE","streetName":"GIBBONS RD","incidentAddressTextVersionStreet":"GIBBONS RD\/CANDYLAND DR","locationCoordinates":"36.19687,-85.46825"}
[2026-02-17 17:01:11] [INFO] Number of extracted fields: 20
[2026-02-17 17:01:11] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-02-17 17:01:11] [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-17 17:01:11] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-02-17 17:01:11] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 17:01:11] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 17:01:11] [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-17 17:01:11] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 17:01:11] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 17:01:12] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-02-17 17:01:22] [INFO] Created new Dispatches record with ID: 69949ed872107019d
[2026-02-17 17:01:22] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 17:01:22] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 17:01:26] [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-17 17:01:26] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017899_20260217_170111.XML: Failed to upload file to V2 FTP server: /PCFD_20260017899_20260217_170111.XML
[2026-02-17 17:01:26] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 17:30:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017917_20260217_173021.XML
[2026-02-17 17:30:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017917_20260217_173021.XML for user: 68f1466aed072ad4a
[2026-02-17 17:30:21] [INFO] File size: 5171 bytes
[2026-02-17 17:30:21] [INFO] Created FTPFiles record with ID: 6994a5ad9ee281bf6
[2026-02-17 17:30:21] [INFO] About to extract fields from XML. File size: 5171 bytes
[2026-02-17 17:30:21] [INFO] Number of mappings: 28
[2026-02-17 17:30:21] [INFO] Starting XML parsing. Content length: 5171
[2026-02-17 17:30:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 17:30:21] [INFO] Processing 28 field mappings
[2026-02-17 17:30:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 17:30:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 17:30:21] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 17:30:21] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-02-17 17:30:21] [INFO]   -> Found value: AFD
EMS
[2026-02-17 17:30:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS"
[2026-02-17 17:30:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 17:30:21] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-02-17 17:30:21] [INFO]   -> Found value: 2026000076
[2026-02-17 17:30:21] [INFO]   -> Set field 'incidentInternalId' = "2026000076"
[2026-02-17 17:30:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000076"
[2026-02-17 17:30:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 17:30:21] [INFO]   -> Found value: MANPOWER - EMS ASSIST
[2026-02-17 17:30:21] [INFO]   -> Set field 'incidentTypeValue1' = "MANPOWER - EMS ASSIST"
[2026-02-17 17:30:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 17:30:21] [INFO]   -> Found value: 134
[2026-02-17 17:30:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 134
[2026-02-17 17:30:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 17:30:21] [INFO]   -> Found value: TN
[2026-02-17 17:30:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 17:30:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 17:30:21] [INFO]   -> Found value: 38506
[2026-02-17 17:30:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 17:30:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 17:30:21] [INFO]   -> No value found (null or empty)
[2026-02-17 17:30:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 17:30:21] [INFO]   -> No value found (null or empty)
[2026-02-17 17:30:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 17:30:21] [INFO]   -> Found value: 36.20428
[2026-02-17 17:30:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2042799999999971305442159064114093780517578125
[2026-02-17 17:30:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 17:30:21] [INFO]   -> Found value: -85.44450
[2026-02-17 17:30:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.44450000000000500222085975110530853271484375
[2026-02-17 17:30:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 17:30:21] [INFO]   -> Found value: 2026-02-17 11:30:02
[2026-02-17 17:30:21] [INFO]   -> Set field 'alarm' = "2026-02-17 11:30:02"
[2026-02-17 17:30:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 17:30:21] [INFO]   -> Found value: 2026-02-17 11:30:09
[2026-02-17 17:30:21] [INFO]   -> Set field 'dispatched' = "2026-02-17 11:30:09"
[2026-02-17 17:30:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 17:30:21] [INFO]   -> Found value: 2026-02-17 11:30:14
[2026-02-17 17:30:21] [INFO]   -> Set field 'enroute' = "2026-02-17 11:30:14"
[2026-02-17 17:30:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 17:30:21] [INFO]   -> No value found (null or empty)
[2026-02-17 17:30:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 17:30:21] [INFO]   -> No value found (null or empty)
[2026-02-17 17:30:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 17:30:21] [INFO]   -> Found value: OAKLEY DR/PEACH ST
[2026-02-17 17:30:21] [INFO]   -> Set field 'incidentLocationCross' = "OAKLEY DR\/PEACH ST"
[2026-02-17 17:30:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 17:30:21] [INFO]   -> Found value: A1221
[2026-02-17 17:30:21] [INFO]   -> Set field 'cADVehicleID' = "A1221"
[2026-02-17 17:30:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 17:30:21] [INFO]   -> Found value: 2026-02-17 11:30:09
[2026-02-17 17:30:21] [INFO]   -> Set field 'timedispatch' = "2026-02-17 11:30:09"
[2026-02-17 17:30:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 17:30:21] [INFO]   -> Found value: 2026-02-17 11:30:14
[2026-02-17 17:30:21] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-17 11:30:14"
[2026-02-17 17:30:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 17:30:21] [INFO]   -> No value found (null or empty)
[2026-02-17 17:30:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 17:30:21] [INFO]   -> No value found (null or empty)
[2026-02-17 17:30:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 17:30:21] [INFO]   -> No value found (null or empty)
[2026-02-17 17:30:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 17:30:21] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 17:30:21] [INFO]   -> Found value: 20260017917
[2026-02-17 17:30:21] [INFO]   -> Set field 'policeReportNumber' = "20260017917"
[2026-02-17 17:30:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 17:30:21] [INFO]   -> Found value: Event spawned from EMS NON-EMERGENCY.  [02/17/2026 11:30:02 MCLAYBURN2] UDTS: LIFT ASSIST ONLY  [02/...
[2026-02-17 17:30:21] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 11:30:02 MCLAYBURN2] UDTS: LIFT ASSIST ONLY  [02\/17\/26 11:27:19 KBEATY]"
[2026-02-17 17:30:21] [INFO]   -> Set field 'cADLog' = "Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 11:30:02 MCLAYBURN2] UDTS: LIFT ASSIST ONLY  [02\/17\/26 11:27:19 KBEATY]"
[2026-02-17 17:30:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 17:30:21] [INFO]   -> Found value: ALGOOD
[2026-02-17 17:30:21] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-17 17:30:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 17:30:21] [INFO]   -> Found value: ALCORN
[2026-02-17 17:30:21] [INFO]   -> Set field 'streetName' = "ALCORN"
[2026-02-17 17:30:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 17:30:21] [INFO]   -> Found value: ST
[2026-02-17 17:30:21] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 17:30:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 17:30:21] [INFO]   -> Found value: 134 ALCORN ST
[2026-02-17 17:30:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "134 ALCORN ST"
[2026-02-17 17:30:21] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-02-17 17:30:21] [INFO] Concatenating street name and type
[2026-02-17 17:30:21] [INFO]   -> Combined street name: ALCORN ST
[2026-02-17 17:30:21] [INFO] Built locationCoordinates from lat/lng: 36.20428,-85.4445
[2026-02-17 17:30:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS","incidentInternalId":"2026000076","dispatchRunNumber":"2026000076","incidentTypeValue1":"MANPOWER - EMS ASSIST","incidentLocationStreetNumber":134,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.2042799999999971305442159064114093780517578125,"nERISIncidentLongitude":-85.44450000000000500222085975110530853271484375,"alarm":"2026-02-17 11:30:02","dispatched":"2026-02-17 11:30:09","enroute":"2026-02-17 11:30:14","incidentLocationCross":"OAKLEY DR\/PEACH ST","cADVehicleID":"A1221","timedispatch":"2026-02-17 11:30:09","timeenroutetoscene":"2026-02-17 11:30:14","policeReportNumber":"20260017917","dispatchNotes":"Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 11:30:02 MCLAYBURN2] UDTS: LIFT ASSIST ONLY  [02\/17\/26 11:27:19 KBEATY]","cADLog":"Event spawned from EMS NON-EMERGENCY.  [02\/17\/2026 11:30:02 MCLAYBURN2] UDTS: LIFT ASSIST ONLY  [02\/17\/26 11:27:19 KBEATY]","incidentLocationCity":"ALGOOD","streetName":"ALCORN ST","incidentAddressTextVersionStreet":"134 ALCORN ST","locationCoordinates":"36.20428,-85.4445"}
[2026-02-17 17:30:21] [INFO] Number of extracted fields: 23
[2026-02-17 17:30:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS'
[2026-02-17 17:30:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS', Parsed IDs = ["AFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-02-17 17:30:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS"]
[2026-02-17 17:30:21] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-17 17:30:21] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-17 17:30:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-02-17 17:30:21] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-17 17:30:21] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-17 17:30:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-02-17 17:30:21] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-02-17 17:30:22] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-17 17:30:22] [INFO] Found existing IncidentTypeMapping with ID: 69471182900dbaefb
[2026-02-17 17:30:26] [INFO] Created new Dispatches record with ID: 6994a5ae92e2cfd87
[2026-02-17 17:30:26] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 17:30:27] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 17:30:30] [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-17 17:30:30] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260017917_20260217_173021.XML: Failed to upload file to V2 FTP server: /AFD_20260017917_20260217_173021.XML
[2026-02-17 17:30:30] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 19:02:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260017957_20260217_190247.XML
[2026-02-17 19:02:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260017957_20260217_190247.XML for user: 68f1466aed072ad4a
[2026-02-17 19:02:47] [INFO] File size: 5246 bytes
[2026-02-17 19:03:07] [INFO] Created FTPFiles record with ID: 6994bb6b5b7e500c9
[2026-02-17 19:03:07] [INFO] About to extract fields from XML. File size: 5246 bytes
[2026-02-17 19:03:07] [INFO] Number of mappings: 28
[2026-02-17 19:03:07] [INFO] Starting XML parsing. Content length: 5246
[2026-02-17 19:03:07] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 19:03:07] [INFO] Processing 28 field mappings
[2026-02-17 19:03:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 19:03:07] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 19:03:07] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 19:03:07] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-17 19:03:07] [INFO]   -> Found value: MFD
EMS
RESC
[2026-02-17 19:03:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nRESC"
[2026-02-17 19:03:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 19:03:07] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-17 19:03:07] [INFO]   -> Found value: 2026000058
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentInternalId' = "2026000058"
[2026-02-17 19:03:07] [INFO]   -> Set field 'dispatchRunNumber' = "2026000058"
[2026-02-17 19:03:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 19:03:07] [INFO]   -> Found value: SICK PERSON
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentTypeValue1' = "SICK PERSON"
[2026-02-17 19:03:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 19:03:07] [INFO]   -> Found value: 507
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 507
[2026-02-17 19:03:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 19:03:07] [INFO]   -> Found value: TN
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 19:03:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 19:03:07] [INFO]   -> Found value: 38574
[2026-02-17 19:03:07] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-17 19:03:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 19:03:07] [INFO]   -> Found value: B
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentLocationApt' = "B"
[2026-02-17 19:03:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 19:03:07] [INFO]   -> Found value: 36.14600
[2026-02-17 19:03:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1460000000000007958078640513122081756591796875
[2026-02-17 19:03:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 19:03:07] [INFO]   -> Found value: -85.25848
[2026-02-17 19:03:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2584800000000058162186178378760814666748046875
[2026-02-17 19:03:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 19:03:07] [INFO]   -> Found value: 2026-02-17 13:01:18
[2026-02-17 19:03:07] [INFO]   -> Set field 'alarm' = "2026-02-17 13:01:18"
[2026-02-17 19:03:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 19:03:07] [INFO]   -> Found value: 2026-02-17 13:02:40
[2026-02-17 19:03:07] [INFO]   -> Set field 'dispatched' = "2026-02-17 13:02:40"
[2026-02-17 19:03:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 19:03:07] [INFO]   -> Found value: ELMORE ST
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentLocationCross' = "ELMORE ST"
[2026-02-17 19:03:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 19:03:07] [INFO]   -> Found value: MFR
[2026-02-17 19:03:07] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-17 19:03:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 19:03:07] [INFO]   -> Found value: 2026-02-17 13:02:40
[2026-02-17 19:03:07] [INFO]   -> Set field 'timedispatch' = "2026-02-17 13:02:40"
[2026-02-17 19:03:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 19:03:07] [INFO]   -> No value found (null or empty)
[2026-02-17 19:03:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 19:03:07] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 19:03:07] [INFO]   -> Found value: 20260017957
[2026-02-17 19:03:07] [INFO]   -> Set field 'policeReportNumber' = "20260017957"
[2026-02-17 19:03:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 19:03:07] [INFO]   -> Found value: Event spawned from SICK PERSON.  [02/17/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WE...
[2026-02-17 19:03:07] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]"
[2026-02-17 19:03:07] [INFO]   -> Set field 'cADLog' = "Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]"
[2026-02-17 19:03:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 19:03:07] [INFO]   -> Found value: MONTEREY
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-17 19:03:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 19:03:07] [INFO]   -> Found value: SPECK
[2026-02-17 19:03:07] [INFO]   -> Set field 'streetName' = "SPECK"
[2026-02-17 19:03:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 19:03:07] [INFO]   -> Found value: AVE
[2026-02-17 19:03:07] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-17 19:03:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 19:03:07] [INFO]   -> Found value: 507-B SPECK AVE
[2026-02-17 19:03:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "507-B SPECK AVE"
[2026-02-17 19:03:07] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-17 19:03:07] [INFO] Concatenating street name and type
[2026-02-17 19:03:07] [INFO]   -> Combined street name: SPECK AVE
[2026-02-17 19:03:07] [INFO] Built locationCoordinates from lat/lng: 36.146,-85.25848
[2026-02-17 19:03:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nRESC","incidentInternalId":"2026000058","dispatchRunNumber":"2026000058","incidentTypeValue1":"SICK PERSON","incidentLocationStreetNumber":507,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"incidentLocationApt":"B","nERISIncidentLatitude":36.1460000000000007958078640513122081756591796875,"nERISIncidentLongitude":-85.2584800000000058162186178378760814666748046875,"alarm":"2026-02-17 13:01:18","dispatched":"2026-02-17 13:02:40","incidentLocationCross":"ELMORE ST","cADVehicleID":"MFR","timedispatch":"2026-02-17 13:02:40","policeReportNumber":"20260017957","dispatchNotes":"Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]","cADLog":"Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]","incidentLocationCity":"MONTEREY","streetName":"SPECK AVE","incidentAddressTextVersionStreet":"507-B SPECK AVE","locationCoordinates":"36.146,-85.25848"}
[2026-02-17 19:03:07] [INFO] Number of extracted fields: 22
[2026-02-17 19:03:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
RESC'
[2026-02-17 19:03:07] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
RESC', Parsed IDs = ["MFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-17 19:03:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","RESC"]
[2026-02-17 19:03:07] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-17 19:03:07] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-17 19:03:07] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-17 19:03:33] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-17 19:03:33] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-17 19:03:33] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-17 19:03:33] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-17 19:03:33] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-17 19:03:33] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"SICK PERSON","saasclientId":"68e67aaba2bb4565e","name":"SICK PERSON"}
[2026-02-17 19:03:33] [INFO] Created new IncidentTypeMapping with ID: 6994bb85b85899755
[2026-02-17 19:04:12] [INFO] Created new Dispatches record with ID: 6994bba9edc8d8d28
[2026-02-17 19:04:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 19:04:12] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 19:04: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-17 19:04:15] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260017957_20260217_190247.XML: Failed to upload file to V2 FTP server: /MFD_20260017957_20260217_190247.XML
[2026-02-17 19:04:15] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 19:04:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017960_20260217_190257.XML
[2026-02-17 19:04:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017960_20260217_190257.XML for user: 68f1466aed072ad4a
[2026-02-17 19:04:15] [INFO] File size: 5520 bytes
[2026-02-17 19:04:16] [INFO] Created FTPFiles record with ID: 6994bbb07a5abff42
[2026-02-17 19:04:16] [INFO] About to extract fields from XML. File size: 5520 bytes
[2026-02-17 19:04:16] [INFO] Number of mappings: 28
[2026-02-17 19:04:16] [INFO] Starting XML parsing. Content length: 5520
[2026-02-17 19:04:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 19:04:16] [INFO] Processing 28 field mappings
[2026-02-17 19:04:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 19:04:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 19:04:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 19:04:16] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-17 19:04:16] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-02-17 19:04:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-02-17 19:04:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 19:04:16] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-17 19:04:16] [INFO]   -> Found value: 2026000460
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentInternalId' = "2026000460"
[2026-02-17 19:04:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000460"
[2026-02-17 19:04:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 19:04:16] [INFO]   -> Found value: SICK PERSON
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentTypeValue1' = "SICK PERSON"
[2026-02-17 19:04:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 19:04:16] [INFO]   -> Found value: 507
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 507
[2026-02-17 19:04:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 19:04:16] [INFO]   -> Found value: TN
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 19:04:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 19:04:16] [INFO]   -> Found value: 38574
[2026-02-17 19:04:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-17 19:04:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 19:04:16] [INFO]   -> Found value: B
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentLocationApt' = "B"
[2026-02-17 19:04:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 19:04:16] [INFO]   -> Found value: 36.14600
[2026-02-17 19:04:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1460000000000007958078640513122081756591796875
[2026-02-17 19:04:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 19:04:16] [INFO]   -> Found value: -85.25848
[2026-02-17 19:04:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2584800000000058162186178378760814666748046875
[2026-02-17 19:04:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 19:04:16] [INFO]   -> Found value: 2026-02-17 13:02:49
[2026-02-17 19:04:16] [INFO]   -> Set field 'alarm' = "2026-02-17 13:02:49"
[2026-02-17 19:04:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 19:04:16] [INFO]   -> Found value: 2026-02-17 13:02:49
[2026-02-17 19:04:16] [INFO]   -> Set field 'dispatched' = "2026-02-17 13:02:49"
[2026-02-17 19:04:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 19:04:16] [INFO]   -> Found value: ELMORE ST
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentLocationCross' = "ELMORE ST"
[2026-02-17 19:04:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 19:04:16] [INFO]   -> Found value: PCFR
[2026-02-17 19:04:16] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-17 19:04:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 19:04:16] [INFO]   -> Found value: 2026-02-17 13:02:49
[2026-02-17 19:04:16] [INFO]   -> Set field 'timedispatch' = "2026-02-17 13:02:49"
[2026-02-17 19:04:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 19:04:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:04:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 19:04:16] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 19:04:16] [INFO]   -> Found value: 20260017960
[2026-02-17 19:04:16] [INFO]   -> Set field 'policeReportNumber' = "20260017960"
[2026-02-17 19:04:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 19:04:16] [INFO]   -> Found value: Event spawned from SICK PERSON.  [02/17/2026 13:02:49 KBURTON] Event spawned from SICK PERSON.  [02/...
[2026-02-17 19:04:16] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from SICK PERSON.  [02\/17\/2026 13:02:49 KBURTON] Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]"
[2026-02-17 19:04:16] [INFO]   -> Set field 'cADLog' = "Event spawned from SICK PERSON.  [02\/17\/2026 13:02:49 KBURTON] Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]"
[2026-02-17 19:04:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 19:04:16] [INFO]   -> Found value: MONTEREY
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-17 19:04:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 19:04:16] [INFO]   -> Found value: SPECK
[2026-02-17 19:04:16] [INFO]   -> Set field 'streetName' = "SPECK"
[2026-02-17 19:04:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 19:04:16] [INFO]   -> Found value: AVE
[2026-02-17 19:04:16] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-17 19:04:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 19:04:16] [INFO]   -> Found value: 507-B SPECK AVE
[2026-02-17 19:04:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "507-B SPECK AVE"
[2026-02-17 19:04:16] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-17 19:04:16] [INFO] Concatenating street name and type
[2026-02-17 19:04:16] [INFO]   -> Combined street name: SPECK AVE
[2026-02-17 19:04:16] [INFO] Built locationCoordinates from lat/lng: 36.146,-85.25848
[2026-02-17 19:04:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000460","dispatchRunNumber":"2026000460","incidentTypeValue1":"SICK PERSON","incidentLocationStreetNumber":507,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"incidentLocationApt":"B","nERISIncidentLatitude":36.1460000000000007958078640513122081756591796875,"nERISIncidentLongitude":-85.2584800000000058162186178378760814666748046875,"alarm":"2026-02-17 13:02:49","dispatched":"2026-02-17 13:02:49","incidentLocationCross":"ELMORE ST","cADVehicleID":"PCFR","timedispatch":"2026-02-17 13:02:49","policeReportNumber":"20260017960","dispatchNotes":"Event spawned from SICK PERSON.  [02\/17\/2026 13:02:49 KBURTON] Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]","cADLog":"Event spawned from SICK PERSON.  [02\/17\/2026 13:02:49 KBURTON] Event spawned from SICK PERSON.  [02\/17\/2026 13:01:18 JBOHANNON] WAS IN A WRECK THE OTHER DAY AND WENT TO FAST PACE. FAST PACE HAS FOUND A PNEUMOTHORAX. REQUESTED EMS EMERGENCY  [02\/17\/26 13:01:13 JBOHANNON]]","incidentLocationCity":"MONTEREY","streetName":"SPECK AVE","incidentAddressTextVersionStreet":"507-B SPECK AVE","locationCoordinates":"36.146,-85.25848"}
[2026-02-17 19:04:16] [INFO] Number of extracted fields: 22
[2026-02-17 19:04:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-02-17 19:04:16] [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-17 19:04:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-02-17 19:04:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 19:04:53] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 19:04:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-02-17 19:04:53] [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-17 19:04:53] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 19:04:53] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-17 19:04:53] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 19:04:53] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 19:04:53] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"SICK PERSON","saasclientId":"68eeb686225c40db4","name":"SICK PERSON"}
[2026-02-17 19:04:53] [INFO] Created new IncidentTypeMapping with ID: 6994bbd5e66eb9406
[2026-02-17 19:05:03] [INFO] Created new Dispatches record with ID: 6994bbd64db7200ae
[2026-02-17 19:05:03] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 19:05:03] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 19:05: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-17 19:05:06] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017960_20260217_190257.XML: Failed to upload file to V2 FTP server: /PCFD_20260017960_20260217_190257.XML
[2026-02-17 19:05:06] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 19:20:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017970_20260217_192007.XML
[2026-02-17 19:20:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017970_20260217_192007.XML for user: 68f1466aed072ad4a
[2026-02-17 19:20:07] [INFO] File size: 5224 bytes
[2026-02-17 19:20:16] [INFO] Created FTPFiles record with ID: 6994bf70458a565fc
[2026-02-17 19:20:16] [INFO] About to extract fields from XML. File size: 5224 bytes
[2026-02-17 19:20:16] [INFO] Number of mappings: 28
[2026-02-17 19:20:16] [INFO] Starting XML parsing. Content length: 5224
[2026-02-17 19:20:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 19:20:16] [INFO] Processing 28 field mappings
[2026-02-17 19:20:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 19:20:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 19:20:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 19:20:16] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-17 19:20:16] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-17 19:20:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-17 19:20:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 19:20:16] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-17 19:20:16] [INFO]   -> Found value: 2026000461
[2026-02-17 19:20:16] [INFO]   -> Set field 'incidentInternalId' = "2026000461"
[2026-02-17 19:20:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000461"
[2026-02-17 19:20:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 19:20:16] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-02-17 19:20:16] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-02-17 19:20:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 19:20:16] [INFO]   -> Found value: 7612
[2026-02-17 19:20:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7612
[2026-02-17 19:20:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 19:20:16] [INFO]   -> Found value: TN
[2026-02-17 19:20:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 19:20:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 19:20:16] [INFO]   -> Found value: 38506
[2026-02-17 19:20:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-17 19:20:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 19:20:16] [INFO]   -> Found value: 36.16080
[2026-02-17 19:20:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16080000000000183035808731801807880401611328125
[2026-02-17 19:20:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 19:20:16] [INFO]   -> Found value: -85.37767
[2026-02-17 19:20:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.377669999999994843165040947496891021728515625
[2026-02-17 19:20:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 19:20:16] [INFO]   -> Found value: 2026-02-17 13:18:36
[2026-02-17 19:20:16] [INFO]   -> Set field 'alarm' = "2026-02-17 13:18:36"
[2026-02-17 19:20:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 19:20:16] [INFO]   -> Found value: 2026-02-17 13:19:55
[2026-02-17 19:20:16] [INFO]   -> Set field 'dispatched' = "2026-02-17 13:19:55"
[2026-02-17 19:20:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 19:20:16] [INFO]   -> Found value: POPLAR GROVE RD
[2026-02-17 19:20:16] [INFO]   -> Set field 'incidentLocationCross' = "POPLAR GROVE RD"
[2026-02-17 19:20:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 19:20:16] [INFO]   -> Found value: PCFR
[2026-02-17 19:20:16] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-17 19:20:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 19:20:16] [INFO]   -> Found value: 2026-02-17 13:19:55
[2026-02-17 19:20:16] [INFO]   -> Set field 'timedispatch' = "2026-02-17 13:19:55"
[2026-02-17 19:20:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 19:20:16] [INFO]   -> No value found (null or empty)
[2026-02-17 19:20:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 19:20:16] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 19:20:16] [INFO]   -> Found value: 20260017970
[2026-02-17 19:20:16] [INFO]   -> Set field 'policeReportNumber' = "20260017970"
[2026-02-17 19:20:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 19:20:16] [INFO]   -> Found value: [EMS] N/V YESTERDAY STEVEN NORROD DOB 3/3/1970  [02/17/26 13:19:24 KBEATY] Event spawned from BREATH...
[2026-02-17 19:20:16] [INFO]   -> Set field 'dispatchNotes' = "[EMS] N\/V YESTERDAY STEVEN NORROD DOB 3\/3\/1970  [02\/17\/26 13:19:24 KBEATY] Event spawned from BREATHING PROBLEMS.  [02\/17\/2026 13:18:36 KBEATY]"
[2026-02-17 19:20:16] [INFO]   -> Set field 'cADLog' = "[EMS] N\/V YESTERDAY STEVEN NORROD DOB 3\/3\/1970  [02\/17\/26 13:19:24 KBEATY] Event spawned from BREATHING PROBLEMS.  [02\/17\/2026 13:18:36 KBEATY]"
[2026-02-17 19:20:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 19:20:16] [INFO]   -> Found value: COOKEVILLE
[2026-02-17 19:20:16] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-17 19:20:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 19:20:16] [INFO]   -> Found value: MACEDONIA
[2026-02-17 19:20:16] [INFO]   -> Set field 'streetName' = "MACEDONIA"
[2026-02-17 19:20:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 19:20:16] [INFO]   -> Found value: RD
[2026-02-17 19:20:16] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-17 19:20:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 19:20:16] [INFO]   -> Found value: 7612 MACEDONIA RD
[2026-02-17 19:20:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7612 MACEDONIA RD"
[2026-02-17 19:20:16] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 19:20:16] [INFO] Concatenating street name and type
[2026-02-17 19:20:16] [INFO]   -> Combined street name: MACEDONIA RD
[2026-02-17 19:20:16] [INFO] Built locationCoordinates from lat/lng: 36.1608,-85.37767
[2026-02-17 19:20:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000461","dispatchRunNumber":"2026000461","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":7612,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.16080000000000183035808731801807880401611328125,"nERISIncidentLongitude":-85.377669999999994843165040947496891021728515625,"alarm":"2026-02-17 13:18:36","dispatched":"2026-02-17 13:19:55","incidentLocationCross":"POPLAR GROVE RD","cADVehicleID":"PCFR","timedispatch":"2026-02-17 13:19:55","policeReportNumber":"20260017970","dispatchNotes":"[EMS] N\/V YESTERDAY STEVEN NORROD DOB 3\/3\/1970  [02\/17\/26 13:19:24 KBEATY] Event spawned from BREATHING PROBLEMS.  [02\/17\/2026 13:18:36 KBEATY]","cADLog":"[EMS] N\/V YESTERDAY STEVEN NORROD DOB 3\/3\/1970  [02\/17\/26 13:19:24 KBEATY] Event spawned from BREATHING PROBLEMS.  [02\/17\/2026 13:18:36 KBEATY]","incidentLocationCity":"COOKEVILLE","streetName":"MACEDONIA RD","incidentAddressTextVersionStreet":"7612 MACEDONIA RD","locationCoordinates":"36.1608,-85.37767"}
[2026-02-17 19:20:16] [INFO] Number of extracted fields: 21
[2026-02-17 19:20:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-17 19:20:16] [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-17 19:20:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-17 19:20:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 19:20:23] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 19:20:23] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-17 19:20:23] [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-17 19:20:23] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 19:20:23] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-17 19:20:23] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 19:20:23] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 19:20:32] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-02-17 19:20:43] [INFO] Created new Dispatches record with ID: 6994bf811eda7a2d3
[2026-02-17 19:20:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 19:20:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 19:20: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-17 19:20:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260017970_20260217_192007.XML: Failed to upload file to V2 FTP server: /PCFD_20260017970_20260217_192007.XML
[2026-02-17 19:20:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 20:16:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018002_20260217_201629.XML
[2026-02-17 20:16:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018002_20260217_201629.XML for user: 68f1466aed072ad4a
[2026-02-17 20:16:29] [INFO] File size: 5426 bytes
[2026-02-17 20:16:38] [INFO] Created FTPFiles record with ID: 6994cca5f0b836a04
[2026-02-17 20:16:38] [INFO] About to extract fields from XML. File size: 5426 bytes
[2026-02-17 20:16:38] [INFO] Number of mappings: 28
[2026-02-17 20:16:38] [INFO] Starting XML parsing. Content length: 5426
[2026-02-17 20:16:38] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 20:16:38] [INFO] Processing 28 field mappings
[2026-02-17 20:16:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 20:16:38] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 20:16:38] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 20:16:38] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-17 20:16:38] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-17 20:16:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-17 20:16:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 20:16:38] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-17 20:16:38] [INFO]   -> Found value: 2026000462
[2026-02-17 20:16:38] [INFO]   -> Set field 'incidentInternalId' = "2026000462"
[2026-02-17 20:16:38] [INFO]   -> Set field 'dispatchRunNumber' = "2026000462"
[2026-02-17 20:16:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 20:16:38] [INFO]   -> Found value: UNCONSCIOUS
[2026-02-17 20:16:38] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-02-17 20:16:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 20:16:38] [INFO]   -> Found value: 11850
[2026-02-17 20:16:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 11850
[2026-02-17 20:16:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 20:16:38] [INFO]   -> Found value: TN
[2026-02-17 20:16:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 20:16:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 20:16:38] [INFO]   -> Found value: 38582
[2026-02-17 20:16:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-02-17 20:16:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 20:16:38] [INFO]   -> Found value: 36.10217
[2026-02-17 20:16:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1021700000000009822542779147624969482421875
[2026-02-17 20:16:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 20:16:38] [INFO]   -> Found value: -85.72697
[2026-02-17 20:16:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.72696999999999434294295497238636016845703125
[2026-02-17 20:16:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 20:16:38] [INFO]   -> Found value: 2026-02-17 14:15:38
[2026-02-17 20:16:38] [INFO]   -> Set field 'alarm' = "2026-02-17 14:15:38"
[2026-02-17 20:16:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 20:16:38] [INFO]   -> Found value: 2026-02-17 14:16:18
[2026-02-17 20:16:38] [INFO]   -> Set field 'dispatched' = "2026-02-17 14:16:18"
[2026-02-17 20:16:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 20:16:38] [INFO]   -> Found value: PETE CARR RIDGE RD
[2026-02-17 20:16:38] [INFO]   -> Set field 'incidentLocationCross' = "PETE CARR RIDGE RD"
[2026-02-17 20:16:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 20:16:38] [INFO]   -> Found value: PCFR
[2026-02-17 20:16:38] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-17 20:16:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 20:16:38] [INFO]   -> Found value: 2026-02-17 14:16:18
[2026-02-17 20:16:38] [INFO]   -> Set field 'timedispatch' = "2026-02-17 14:16:18"
[2026-02-17 20:16:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 20:16:38] [INFO]   -> No value found (null or empty)
[2026-02-17 20:16:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 20:16:38] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 20:16:38] [INFO]   -> Found value: 20260018002
[2026-02-17 20:16:38] [INFO]   -> Set field 'policeReportNumber' = "20260018002"
[2026-02-17 20:16:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 20:16:38] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02/17/26 14:16:05 RMAYNARD] Event spawned from UNCONSCIOUS. ...
[2026-02-17 20:16:38] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 14:16:05 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/17\/2026 14:15:38 JBOHANNON]"
[2026-02-17 20:16:38] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 14:16:05 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/17\/2026 14:15:38 JBOHANNON]"
[2026-02-17 20:16:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 20:16:38] [INFO]   -> Found value: SILVER POINT
[2026-02-17 20:16:38] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-02-17 20:16:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 20:16:38] [INFO]   -> Found value: MONROE HENLEY RIDGE
[2026-02-17 20:16:38] [INFO]   -> Set field 'streetName' = "MONROE HENLEY RIDGE"
[2026-02-17 20:16:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 20:16:38] [INFO]   -> Found value: RD
[2026-02-17 20:16:38] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-17 20:16:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 20:16:38] [INFO]   -> Found value: 11850 MONROE HENLEY RIDGE RD
[2026-02-17 20:16:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "11850 MONROE HENLEY RIDGE RD"
[2026-02-17 20:16:38] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 20:16:38] [INFO] Concatenating street name and type
[2026-02-17 20:16:38] [INFO]   -> Combined street name: MONROE HENLEY RIDGE RD
[2026-02-17 20:16:38] [INFO] Built locationCoordinates from lat/lng: 36.10217,-85.72697
[2026-02-17 20:16:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000462","dispatchRunNumber":"2026000462","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":11850,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.1021700000000009822542779147624969482421875,"nERISIncidentLongitude":-85.72696999999999434294295497238636016845703125,"alarm":"2026-02-17 14:15:38","dispatched":"2026-02-17 14:16:18","incidentLocationCross":"PETE CARR RIDGE RD","cADVehicleID":"PCFR","timedispatch":"2026-02-17 14:16:18","policeReportNumber":"20260018002","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 14:16:05 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/17\/2026 14:15:38 JBOHANNON]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 14:16:05 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/17\/2026 14:15:38 JBOHANNON]","incidentLocationCity":"SILVER POINT","streetName":"MONROE HENLEY RIDGE RD","incidentAddressTextVersionStreet":"11850 MONROE HENLEY RIDGE RD","locationCoordinates":"36.10217,-85.72697"}
[2026-02-17 20:16:38] [INFO] Number of extracted fields: 21
[2026-02-17 20:16:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-17 20:16:38] [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-17 20:16:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-17 20:16:38] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 20:16:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 20:16:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-17 20:16:38] [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-17 20:16:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 20:16:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-17 20:16:38] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 20:16:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 20:16:38] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-02-17 20:16:48] [INFO] Created new Dispatches record with ID: 6994cca6d05a2b8e1
[2026-02-17 20:16:48] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 20:16:48] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 20:16:52] [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-17 20:16:52] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018002_20260217_201629.XML: Failed to upload file to V2 FTP server: /PCFD_20260018002_20260217_201629.XML
[2026-02-17 20:16:52] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 20:27:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml
[2026-02-17 20:27:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml for user: 68d56363ec1209189
[2026-02-17 20:27:19] [INFO] File size: 2128 bytes
[2026-02-17 20:27:19] [INFO] Created FTPFiles record with ID: 6994cf27aeb418d2f
[2026-02-17 20:27:19] [INFO] About to extract fields from XML. File size: 2128 bytes
[2026-02-17 20:27:19] [INFO] Number of mappings: 21
[2026-02-17 20:27:19] [INFO] Starting XML parsing. Content length: 2128
[2026-02-17 20:27:19] [INFO] XML parsed successfully. Root element: Incident
[2026-02-17 20:27:19] [INFO] Processing 21 field mappings
[2026-02-17 20:27:19] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-02-17 20:27:19] [INFO]   -> Found value: 26-04975
[2026-02-17 20:27:19] [INFO]   -> Set field 'dispatchRunNumber' = "26-04975"
[2026-02-17 20:27:19] [INFO]   -> Set field 'cADNumber' = "26-04975"
[2026-02-17 20:27:19] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-02-17 20:27:19] [INFO]   -> No value found (null or empty)
[2026-02-17 20:27:19] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-02-17 20:27:19] [INFO]   -> Found value: N MAIN ST
[2026-02-17 20:27:19] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2026-02-17 20:27:19] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-02-17 20:27:19] [INFO]   -> No value found (null or empty)
[2026-02-17 20:27:19] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-02-17 20:27:19] [INFO]   -> No value found (null or empty)
[2026-02-17 20:27:19] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-02-17 20:27:19] [INFO]   -> No value found (null or empty)
[2026-02-17 20:27:19] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-02-17 20:27:19] [INFO]   -> Found value: MO
[2026-02-17 20:27:19] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-02-17 20:27:19] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-02-17 20:27:19] [INFO]   -> No value found (null or empty)
[2026-02-17 20:27:19] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-02-17 20:27:19] [INFO]   -> Found value: 0
[2026-02-17 20:27:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-02-17 20:27:19] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-02-17 20:27:19] [INFO]   -> Found value: 0
[2026-02-17 20:27:19] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-02-17 20:27:19] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-02-17 20:27:19] [INFO]   -> Found value: FIRE-VEHICLE
[2026-02-17 20:27:19] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-VEHICLE"
[2026-02-17 20:27:19] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-02-17 20:27:19] [INFO]   -> Found value: 02-17-2026 13:56:09|RP IS 3RD PARTY 
SEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REA...
[2026-02-17 20:27:19] [INFO]   -> Set field 'dispatchNotes' = "02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE"
[2026-02-17 20:27:19] [INFO]   -> Set field 'cADLog' = "02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE"
[2026-02-17 20:27:19] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-02-17 20:27:19] [INFO]   -> Found value: 02-17-2026T13:59:44
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T13:59:44
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T13:59:44': Failed to parse time string (2026-17-02T13:59:44) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'alarm' = null
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T13:59:44
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T13:59:44': Failed to parse time string (2026-17-02T13:59:44) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'dispatched' = null
[2026-02-17 20:27:19] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-02-17 20:27:19] [INFO]   -> Found value: 02-17-2026T14:01:12
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:01:12
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T14:01:12': Failed to parse time string (2026-17-02T14:01:12) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'onScene' = null
[2026-02-17 20:27:19] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-02-17 20:27:19] [INFO]   -> Found value: 02-17-2026T14:26:17
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:26:17
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T14:26:17': Failed to parse time string (2026-17-02T14:26:17) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'cleared' = null
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:26:17
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T14:26:17': Failed to parse time string (2026-17-02T14:26:17) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'inService' = null
[2026-02-17 20:27:19] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-02-17 20:27:19] [INFO]   -> Found value: ENG2
[2026-02-17 20:27:19] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-02-17 20:27:19] [INFO]   -> Set field 'name' = "ENG2"
[2026-02-17 20:27:19] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-02-17 20:27:19] [INFO]   -> No value found (null or empty)
[2026-02-17 20:27:19] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-02-17 20:27:19] [INFO]   -> Found value: 02-17-2026T14:04:23
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:04:23
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T14:04:23': Failed to parse time string (2026-17-02T14:04:23) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'timeonscene' = null
[2026-02-17 20:27:19] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-02-17 20:27:19] [INFO]   -> Found value: 02-17-2026T14:26:17
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:26:17
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T14:26:17': Failed to parse time string (2026-17-02T14:26:17) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'timeunitclear' = null
[2026-02-17 20:27:19] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-02-17 20:27:19] [INFO]   -> Found value: 02-17-2026T14:00:38
[2026-02-17 20:27:19] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:00:38
[2026-02-17 20:27:19] [ERROR] Error formatting datetime '2026-17-02T14:00:38': Failed to parse time string (2026-17-02T14:00:38) at position 6 (7): Unexpected character
[2026-02-17 20:27:19] [INFO]   -> Set field 'timedispatch' = null
[2026-02-17 20:27:19] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-02-17 20:27:19] [INFO]   -> Found value: SDPSFD
[2026-02-17 20:27:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-02-17 20:27:19] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-02-17 20:27:19] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-02-17 20:27:19] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-04975","cADNumber":"26-04975","streetName":"N MAIN ST","incidentLocationStateName":"MO","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-VEHICLE","dispatchNotes":"02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE","cADLog":"02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-02-17 20:27:19] [INFO] Number of extracted fields: 21
[2026-02-17 20:27:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-02-17 20:27:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-02-17 20:27:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-02-17 20:27:19] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-02-17 20:27:19] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-02-17 20:27:20] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-02-17 20:27:20] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-02-17 20:27:20] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-02-17 20:27:20] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e883a748d2
[2026-02-17 20:27:22] [INFO] Created new Dispatches record with ID: 6994cf2880eeb138e
[2026-02-17 20:27:22] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-17
[2026-02-17 20:27:22] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-17/SDPSFD_26-04975.xml
[2026-02-17 20:27:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml
[2026-02-17 20:31:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml
[2026-02-17 20:31:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml for user: 68d56363ec1209189
[2026-02-17 20:31:20] [INFO] File size: 2205 bytes
[2026-02-17 20:31:20] [INFO] Created FTPFiles record with ID: 6994d018821178026
[2026-02-17 20:31:20] [INFO] About to extract fields from XML. File size: 2205 bytes
[2026-02-17 20:31:20] [INFO] Number of mappings: 21
[2026-02-17 20:31:20] [INFO] Starting XML parsing. Content length: 2205
[2026-02-17 20:31:20] [INFO] XML parsed successfully. Root element: Incident
[2026-02-17 20:31:20] [INFO] Processing 21 field mappings
[2026-02-17 20:31:20] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-02-17 20:31:20] [INFO]   -> Found value: 26-04975
[2026-02-17 20:31:20] [INFO]   -> Set field 'dispatchRunNumber' = "26-04975"
[2026-02-17 20:31:20] [INFO]   -> Set field 'cADNumber' = "26-04975"
[2026-02-17 20:31:20] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-02-17 20:31:20] [INFO]   -> No value found (null or empty)
[2026-02-17 20:31:20] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-02-17 20:31:20] [INFO]   -> Found value: N MAIN ST
[2026-02-17 20:31:20] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2026-02-17 20:31:20] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-02-17 20:31:20] [INFO]   -> No value found (null or empty)
[2026-02-17 20:31:20] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-02-17 20:31:20] [INFO]   -> No value found (null or empty)
[2026-02-17 20:31:20] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-02-17 20:31:20] [INFO]   -> No value found (null or empty)
[2026-02-17 20:31:20] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-02-17 20:31:20] [INFO]   -> Found value: MO
[2026-02-17 20:31:20] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-02-17 20:31:20] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-02-17 20:31:20] [INFO]   -> No value found (null or empty)
[2026-02-17 20:31:20] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-02-17 20:31:20] [INFO]   -> Found value: 0
[2026-02-17 20:31:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-02-17 20:31:20] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-02-17 20:31:20] [INFO]   -> Found value: 0
[2026-02-17 20:31:20] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-02-17 20:31:20] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-02-17 20:31:20] [INFO]   -> Found value: FIRE-VEHICLE
[2026-02-17 20:31:20] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-VEHICLE"
[2026-02-17 20:31:20] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-02-17 20:31:20] [INFO]   -> Found value: 02-17-2026 13:56:09|RP IS 3RD PARTY 
SEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REA...
[2026-02-17 20:31:20] [INFO]   -> Set field 'dispatchNotes' = "02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE 02-17-2026 14:26:36|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN"
[2026-02-17 20:31:20] [INFO]   -> Set field 'cADLog' = "02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE 02-17-2026 14:26:36|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN"
[2026-02-17 20:31:20] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-02-17 20:31:20] [INFO]   -> Found value: 02-17-2026T13:59:44
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T13:59:44
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T13:59:44': Failed to parse time string (2026-17-02T13:59:44) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'alarm' = null
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T13:59:44
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T13:59:44': Failed to parse time string (2026-17-02T13:59:44) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'dispatched' = null
[2026-02-17 20:31:20] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-02-17 20:31:20] [INFO]   -> Found value: 02-17-2026T14:01:12
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:01:12
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T14:01:12': Failed to parse time string (2026-17-02T14:01:12) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'onScene' = null
[2026-02-17 20:31:20] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-02-17 20:31:20] [INFO]   -> Found value: 02-17-2026T14:26:17
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:26:17
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T14:26:17': Failed to parse time string (2026-17-02T14:26:17) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'cleared' = null
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:26:17
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T14:26:17': Failed to parse time string (2026-17-02T14:26:17) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'inService' = null
[2026-02-17 20:31:20] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-02-17 20:31:20] [INFO]   -> Found value: ENG2
[2026-02-17 20:31:20] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-02-17 20:31:20] [INFO]   -> Set field 'name' = "ENG2"
[2026-02-17 20:31:20] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-02-17 20:31:20] [INFO]   -> No value found (null or empty)
[2026-02-17 20:31:20] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-02-17 20:31:20] [INFO]   -> Found value: 02-17-2026T14:04:23
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:04:23
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T14:04:23': Failed to parse time string (2026-17-02T14:04:23) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'timeonscene' = null
[2026-02-17 20:31:20] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-02-17 20:31:20] [INFO]   -> Found value: 02-17-2026T14:26:17
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:26:17
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T14:26:17': Failed to parse time string (2026-17-02T14:26:17) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'timeunitclear' = null
[2026-02-17 20:31:20] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-02-17 20:31:20] [INFO]   -> Found value: 02-17-2026T14:00:38
[2026-02-17 20:31:20] [INFO] Reformatted DD-MM-YYYY date '02-17-2026' (day=02, month=17) to ISO: 2026-17-02T14:00:38
[2026-02-17 20:31:20] [ERROR] Error formatting datetime '2026-17-02T14:00:38': Failed to parse time string (2026-17-02T14:00:38) at position 6 (7): Unexpected character
[2026-02-17 20:31:20] [INFO]   -> Set field 'timedispatch' = null
[2026-02-17 20:31:20] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-02-17 20:31:20] [INFO]   -> Found value: SDPSFD
[2026-02-17 20:31:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-02-17 20:31:20] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-02-17 20:31:20] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-02-17 20:31:20] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-04975","cADNumber":"26-04975","streetName":"N MAIN ST","incidentLocationStateName":"MO","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-VEHICLE","dispatchNotes":"02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE 02-17-2026 14:26:36|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN","cADLog":"02-17-2026 13:56:09|RP IS 3RD PARTY \nSEEING FLAMES ON SEMI 02-17-2026 13:57:45|COMING OUT OF THE REAR TRAILER 02-17-2026 13:58:13|PULLED OFF ON SIDE OF THE ROAD 02-17-2026 14:01:21|C87 ADVISED BRAKES ON FIRE 02-17-2026 14:26:08|FIRE HAS BEEN EXTINGUISHED RETURNING IN SERVICE 02-17-2026 14:26:36|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-02-17 20:31:20] [INFO] Number of extracted fields: 21
[2026-02-17 20:31:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-02-17 20:31:20] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-02-17 20:31:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-02-17 20:31:20] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-02-17 20:31:20] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-02-17 20:31:20] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-02-17 20:31:20] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-02-17 20:31:20] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-02-17 20:31:21] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e883a748d2
[2026-02-17 20:31:21] [INFO] Found existing Dispatch with cADNumber '26-04975', ID: 6994cf2880eeb138e - will update instead of create
[2026-02-17 20:31:21] [INFO] Updated existing Dispatches record with ID: 6994cf2880eeb138e
[2026-02-17 20:31:21] [INFO] File already exists in archive, using unique name: SDPSFD_26-04975_1771360281.xml
[2026-02-17 20:31:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-17/SDPSFD_26-04975_1771360281.xml
[2026-02-17 20:31:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-04975.xml
[2026-02-17 22:01:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018059_20260217_220151.XML
[2026-02-17 22:01:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018059_20260217_220151.XML for user: 68f1466aed072ad4a
[2026-02-17 22:01:51] [INFO] File size: 5522 bytes
[2026-02-17 22:01:51] [INFO] Created FTPFiles record with ID: 6994e54f56cf460b5
[2026-02-17 22:01:51] [INFO] About to extract fields from XML. File size: 5522 bytes
[2026-02-17 22:01:51] [INFO] Number of mappings: 28
[2026-02-17 22:01:51] [INFO] Starting XML parsing. Content length: 5522
[2026-02-17 22:01:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 22:01:51] [INFO] Processing 28 field mappings
[2026-02-17 22:01:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 22:01:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 22:01:51] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 22:01:51] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-17 22:01:51] [INFO]   -> Found value: MFD
EMS
MPD
RESC
[2026-02-17 22:01:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nMPD\nRESC"
[2026-02-17 22:01:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 22:01:51] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-17 22:01:51] [INFO]   -> Found value: 2026000059
[2026-02-17 22:01:51] [INFO]   -> Set field 'incidentInternalId' = "2026000059"
[2026-02-17 22:01:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000059"
[2026-02-17 22:01:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 22:01:51] [INFO]   -> Found value: CHEST PAIN
[2026-02-17 22:01:51] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-02-17 22:01:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 22:01:51] [INFO]   -> Found value: 201
[2026-02-17 22:01:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 201
[2026-02-17 22:01:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 22:01:51] [INFO]   -> Found value: TN
[2026-02-17 22:01:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 22:01:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 22:01:51] [INFO]   -> Found value: 38574
[2026-02-17 22:01:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-17 22:01:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 22:01:51] [INFO]   -> Found value: MONTEREY DRUGS
[2026-02-17 22:01:51] [INFO]   -> Set field 'businessName' = "MONTEREY DRUGS"
[2026-02-17 22:01:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 22:01:51] [INFO]   -> Found value: 36.14536
[2026-02-17 22:01:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1453599999999966030372888781130313873291015625
[2026-02-17 22:01:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 22:01:51] [INFO]   -> Found value: -85.26273
[2026-02-17 22:01:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.262730000000004793037078343331813812255859375
[2026-02-17 22:01:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 22:01:51] [INFO]   -> Found value: 2026-02-17 16:00:45
[2026-02-17 22:01:51] [INFO]   -> Set field 'alarm' = "2026-02-17 16:00:45"
[2026-02-17 22:01:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 22:01:51] [INFO]   -> Found value: 2026-02-17 16:01:40
[2026-02-17 22:01:51] [INFO]   -> Set field 'dispatched' = "2026-02-17 16:01:40"
[2026-02-17 22:01:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 22:01:51] [INFO]   -> Found value: E COMMERCIAL AVE/OLD WALTON RD
[2026-02-17 22:01:51] [INFO]   -> Set field 'incidentLocationCross' = "E COMMERCIAL AVE\/OLD WALTON RD"
[2026-02-17 22:01:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 22:01:51] [INFO]   -> Found value: MFR
[2026-02-17 22:01:51] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-17 22:01:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 22:01:51] [INFO]   -> Found value: 2026-02-17 16:01:40
[2026-02-17 22:01:51] [INFO]   -> Set field 'timedispatch' = "2026-02-17 16:01:40"
[2026-02-17 22:01:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 22:01:51] [INFO]   -> No value found (null or empty)
[2026-02-17 22:01:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 22:01:51] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 22:01:51] [INFO]   -> Found value: 20260018059
[2026-02-17 22:01:51] [INFO]   -> Set field 'policeReportNumber' = "20260018059"
[2026-02-17 22:01:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 22:01:51] [INFO]   -> Found value: [EMS] FRONT DOORS FRONT OF THE STORE  [02/17/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD...
[2026-02-17 22:01:51] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]"
[2026-02-17 22:01:51] [INFO]   -> Set field 'cADLog' = "[EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]"
[2026-02-17 22:01:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 22:01:51] [INFO]   -> Found value: MONTEREY
[2026-02-17 22:01:51] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-17 22:01:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 22:01:51] [INFO]   -> Found value: ELMORE
[2026-02-17 22:01:51] [INFO]   -> Set field 'streetName' = "ELMORE"
[2026-02-17 22:01:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 22:01:51] [INFO]   -> Found value: ST
[2026-02-17 22:01:51] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 22:01:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 22:01:51] [INFO]   -> Found value: 201 ELMORE ST
[2026-02-17 22:01:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "201 ELMORE ST"
[2026-02-17 22:01:51] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-17 22:01:51] [INFO] Concatenating street name and type
[2026-02-17 22:01:51] [INFO]   -> Combined street name: ELMORE ST
[2026-02-17 22:01:51] [INFO] Built locationCoordinates from lat/lng: 36.14536,-85.26273
[2026-02-17 22:01:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nMPD\nRESC","incidentInternalId":"2026000059","dispatchRunNumber":"2026000059","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":201,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY DRUGS","nERISIncidentLatitude":36.1453599999999966030372888781130313873291015625,"nERISIncidentLongitude":-85.262730000000004793037078343331813812255859375,"alarm":"2026-02-17 16:00:45","dispatched":"2026-02-17 16:01:40","incidentLocationCross":"E COMMERCIAL AVE\/OLD WALTON RD","cADVehicleID":"MFR","timedispatch":"2026-02-17 16:01:40","policeReportNumber":"20260018059","dispatchNotes":"[EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]","cADLog":"[EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]","incidentLocationCity":"MONTEREY","streetName":"ELMORE ST","incidentAddressTextVersionStreet":"201 ELMORE ST","locationCoordinates":"36.14536,-85.26273"}
[2026-02-17 22:01:51] [INFO] Number of extracted fields: 22
[2026-02-17 22:01:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
MPD
RESC'
[2026-02-17 22:01:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
MPD
RESC', Parsed IDs = ["MFD","EMS","MPD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-17 22:01:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","MPD","RESC"]
[2026-02-17 22:01:51] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-17 22:01:51] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-17 22:01:51] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","RESC"]
[2026-02-17 22:01:51] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-17 22:01:51] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-17 22:01:51] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-17 22:01:51] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-17 22:01:51] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-17 22:01:51] [INFO] Found existing IncidentTypeMapping with ID: 694ff5f932f4685e7
[2026-02-17 22:01:55] [INFO] Created new Dispatches record with ID: 6994e550481b4f210
[2026-02-17 22:01:55] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 22:01:55] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 22:01:58] [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-17 22:01:58] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018059_20260217_220151.XML: Failed to upload file to V2 FTP server: /MFD_20260018059_20260217_220151.XML
[2026-02-17 22:01:58] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 22:02:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018061_20260217_220200.XML
[2026-02-17 22:02:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018061_20260217_220200.XML for user: 68f1466aed072ad4a
[2026-02-17 22:02:00] [INFO] File size: 5804 bytes
[2026-02-17 22:02:01] [INFO] Created FTPFiles record with ID: 6994e5592fb00a0e3
[2026-02-17 22:02:01] [INFO] About to extract fields from XML. File size: 5804 bytes
[2026-02-17 22:02:01] [INFO] Number of mappings: 28
[2026-02-17 22:02:01] [INFO] Starting XML parsing. Content length: 5804
[2026-02-17 22:02:01] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 22:02:01] [INFO] Processing 28 field mappings
[2026-02-17 22:02:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 22:02:01] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 22:02:01] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 22:02:01] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-02-17 22:02:01] [INFO]   -> Found value: PCFD
EMS
MPD
MFD
RESC
[2026-02-17 22:02:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMPD\nMFD\nRESC"
[2026-02-17 22:02:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 22:02:01] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-02-17 22:02:01] [INFO]   -> Found value: 2026000463
[2026-02-17 22:02:01] [INFO]   -> Set field 'incidentInternalId' = "2026000463"
[2026-02-17 22:02:01] [INFO]   -> Set field 'dispatchRunNumber' = "2026000463"
[2026-02-17 22:02:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 22:02:01] [INFO]   -> Found value: CHEST PAIN
[2026-02-17 22:02:01] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-02-17 22:02:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 22:02:01] [INFO]   -> Found value: 201
[2026-02-17 22:02:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 201
[2026-02-17 22:02:01] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 22:02:01] [INFO]   -> Found value: TN
[2026-02-17 22:02:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 22:02:01] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 22:02:01] [INFO]   -> Found value: 38574
[2026-02-17 22:02:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-17 22:02:01] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 22:02:01] [INFO]   -> Found value: MONTEREY DRUGS
[2026-02-17 22:02:01] [INFO]   -> Set field 'businessName' = "MONTEREY DRUGS"
[2026-02-17 22:02:01] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 22:02:01] [INFO]   -> Found value: 36.14536
[2026-02-17 22:02:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1453599999999966030372888781130313873291015625
[2026-02-17 22:02:01] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 22:02:01] [INFO]   -> Found value: -85.26273
[2026-02-17 22:02:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.262730000000004793037078343331813812255859375
[2026-02-17 22:02:01] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 22:02:01] [INFO]   -> Found value: 2026-02-17 16:01:54
[2026-02-17 22:02:01] [INFO]   -> Set field 'alarm' = "2026-02-17 16:01:54"
[2026-02-17 22:02:01] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 22:02:01] [INFO]   -> Found value: 2026-02-17 16:01:54
[2026-02-17 22:02:01] [INFO]   -> Set field 'dispatched' = "2026-02-17 16:01:54"
[2026-02-17 22:02:01] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 22:02:01] [INFO]   -> Found value: E COMMERCIAL AVE/OLD WALTON RD
[2026-02-17 22:02:01] [INFO]   -> Set field 'incidentLocationCross' = "E COMMERCIAL AVE\/OLD WALTON RD"
[2026-02-17 22:02:01] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 22:02:01] [INFO]   -> Found value: PCFR
[2026-02-17 22:02:01] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-17 22:02:01] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 22:02:01] [INFO]   -> Found value: 2026-02-17 16:01:54
[2026-02-17 22:02:01] [INFO]   -> Set field 'timedispatch' = "2026-02-17 16:01:54"
[2026-02-17 22:02:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 22:02:01] [INFO]   -> No value found (null or empty)
[2026-02-17 22:02:01] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 22:02:01] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 22:02:01] [INFO]   -> Found value: 20260018061
[2026-02-17 22:02:01] [INFO]   -> Set field 'policeReportNumber' = "20260018061"
[2026-02-17 22:02:01] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 22:02:01] [INFO]   -> Found value: Event spawned from CHEST PAIN.  [02/17/2026 16:01:54 MCLAYBURN2] [EMS] FRONT DOORS FRONT OF THE STOR...
[2026-02-17 22:02:01] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from CHEST PAIN.  [02\/17\/2026 16:01:54 MCLAYBURN2] [EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]"
[2026-02-17 22:02:01] [INFO]   -> Set field 'cADLog' = "Event spawned from CHEST PAIN.  [02\/17\/2026 16:01:54 MCLAYBURN2] [EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]"
[2026-02-17 22:02:01] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 22:02:01] [INFO]   -> Found value: MONTEREY
[2026-02-17 22:02:01] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-17 22:02:01] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 22:02:01] [INFO]   -> Found value: ELMORE
[2026-02-17 22:02:01] [INFO]   -> Set field 'streetName' = "ELMORE"
[2026-02-17 22:02:01] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 22:02:01] [INFO]   -> Found value: ST
[2026-02-17 22:02:01] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 22:02:01] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 22:02:01] [INFO]   -> Found value: 201 ELMORE ST
[2026-02-17 22:02:01] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "201 ELMORE ST"
[2026-02-17 22:02:01] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-17 22:02:01] [INFO] Concatenating street name and type
[2026-02-17 22:02:01] [INFO]   -> Combined street name: ELMORE ST
[2026-02-17 22:02:01] [INFO] Built locationCoordinates from lat/lng: 36.14536,-85.26273
[2026-02-17 22:02:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMPD\nMFD\nRESC","incidentInternalId":"2026000463","dispatchRunNumber":"2026000463","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":201,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY DRUGS","nERISIncidentLatitude":36.1453599999999966030372888781130313873291015625,"nERISIncidentLongitude":-85.262730000000004793037078343331813812255859375,"alarm":"2026-02-17 16:01:54","dispatched":"2026-02-17 16:01:54","incidentLocationCross":"E COMMERCIAL AVE\/OLD WALTON RD","cADVehicleID":"PCFR","timedispatch":"2026-02-17 16:01:54","policeReportNumber":"20260018061","dispatchNotes":"Event spawned from CHEST PAIN.  [02\/17\/2026 16:01:54 MCLAYBURN2] [EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]","cADLog":"Event spawned from CHEST PAIN.  [02\/17\/2026 16:01:54 MCLAYBURN2] [EMS] FRONT DOORS FRONT OF THE STORE  [02\/17\/26 16:01:03 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/17\/26 16:01:00 SBALLARD] Event spawned from CHEST PAIN.  [02\/17\/2026 16:00:45 JBOHANNON]","incidentLocationCity":"MONTEREY","streetName":"ELMORE ST","incidentAddressTextVersionStreet":"201 ELMORE ST","locationCoordinates":"36.14536,-85.26273"}
[2026-02-17 22:02:01] [INFO] Number of extracted fields: 22
[2026-02-17 22:02:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MPD
MFD
RESC'
[2026-02-17 22:02:01] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MPD
MFD
RESC', Parsed IDs = ["PCFD","EMS","MPD","MFD","RESC"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-02-17 22:02:01] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MPD","MFD","RESC"]
[2026-02-17 22:02:01] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 22:02:01] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 22:02:01] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","MFD","RESC"]
[2026-02-17 22:02:01] [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-17 22:02:01] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 22:02:01] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-02-17 22:02:01] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 22:02:01] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 22:02:01] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-02-17 22:02:11] [INFO] Created new Dispatches record with ID: 6994e55a1a9948aea
[2026-02-17 22:02:11] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 22:02:11] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 22:02:14] [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-17 22:02:14] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018061_20260217_220200.XML: Failed to upload file to V2 FTP server: /PCFD_20260018061_20260217_220200.XML
[2026-02-17 22:02:14] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 22:25:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018074_20260217_222531.XML
[2026-02-17 22:25:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018074_20260217_222531.XML for user: 68f1466aed072ad4a
[2026-02-17 22:25:31] [INFO] File size: 5434 bytes
[2026-02-17 22:25:31] [INFO] Created FTPFiles record with ID: 6994eadb9e35606f0
[2026-02-17 22:25:31] [INFO] About to extract fields from XML. File size: 5434 bytes
[2026-02-17 22:25:31] [INFO] Number of mappings: 28
[2026-02-17 22:25:31] [INFO] Starting XML parsing. Content length: 5434
[2026-02-17 22:25:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 22:25:31] [INFO] Processing 28 field mappings
[2026-02-17 22:25:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 22:25:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 22:25:31] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 22:25:31] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-17 22:25:31] [INFO]   -> Found value: MFD
EMS
RESC
MPD
[2026-02-17 22:25:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nRESC\nMPD"
[2026-02-17 22:25:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 22:25:31] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-17 22:25:31] [INFO]   -> Found value: 2026000060
[2026-02-17 22:25:31] [INFO]   -> Set field 'incidentInternalId' = "2026000060"
[2026-02-17 22:25:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000060"
[2026-02-17 22:25:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 22:25:31] [INFO]   -> Found value: FALL VICTIM
[2026-02-17 22:25:31] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-02-17 22:25:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 22:25:31] [INFO]   -> Found value: 615
[2026-02-17 22:25:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 615
[2026-02-17 22:25:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 22:25:31] [INFO]   -> Found value: TN
[2026-02-17 22:25:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 22:25:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 22:25:31] [INFO]   -> Found value: 38574
[2026-02-17 22:25:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-17 22:25:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 22:25:31] [INFO]   -> Found value: 36.15250
[2026-02-17 22:25:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.152500000000003410605131648480892181396484375
[2026-02-17 22:25:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 22:25:31] [INFO]   -> Found value: -85.26391
[2026-02-17 22:25:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2639099999999956480678520165383815765380859375
[2026-02-17 22:25:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 22:25:31] [INFO]   -> Found value: 2026-02-17 16:23:31
[2026-02-17 22:25:31] [INFO]   -> Set field 'alarm' = "2026-02-17 16:23:31"
[2026-02-17 22:25:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 22:25:31] [INFO]   -> Found value: 2026-02-17 16:25:15
[2026-02-17 22:25:31] [INFO]   -> Set field 'dispatched' = "2026-02-17 16:25:15"
[2026-02-17 22:25:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 22:25:31] [INFO]   -> Found value: JOHNSON AVE/E LOUIS AVE
[2026-02-17 22:25:31] [INFO]   -> Set field 'incidentLocationCross' = "JOHNSON AVE\/E LOUIS AVE"
[2026-02-17 22:25:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 22:25:31] [INFO]   -> Found value: MFR
[2026-02-17 22:25:31] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-17 22:25:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 22:25:31] [INFO]   -> Found value: 2026-02-17 16:25:15
[2026-02-17 22:25:31] [INFO]   -> Set field 'timedispatch' = "2026-02-17 16:25:15"
[2026-02-17 22:25:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 22:25:31] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 22:25:31] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 22:25:31] [INFO]   -> Found value: 20260018074
[2026-02-17 22:25:31] [INFO]   -> Set field 'policeReportNumber' = "20260018074"
[2026-02-17 22:25:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 22:25:31] [INFO]   -> Found value: [LAW] {M102} RESPONDING W/EMS  [02/17/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FRO...
[2026-02-17 22:25:31] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]"
[2026-02-17 22:25:31] [INFO]   -> Set field 'cADLog' = "[LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]"
[2026-02-17 22:25:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 22:25:31] [INFO]   -> Found value: MONTEREY
[2026-02-17 22:25:31] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-17 22:25:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 22:25:31] [INFO]   -> Found value: HOLLY
[2026-02-17 22:25:31] [INFO]   -> Set field 'streetName' = "HOLLY"
[2026-02-17 22:25:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 22:25:31] [INFO]   -> Found value: ST
[2026-02-17 22:25:31] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 22:25:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 22:25:31] [INFO]   -> Found value: 615 N HOLLY ST
[2026-02-17 22:25:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "615 N HOLLY ST"
[2026-02-17 22:25:31] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-17 22:25:31] [INFO] Concatenating street name and type
[2026-02-17 22:25:31] [INFO]   -> Combined street name: HOLLY ST
[2026-02-17 22:25:31] [INFO] Built locationCoordinates from lat/lng: 36.1525,-85.26391
[2026-02-17 22:25:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nRESC\nMPD","incidentInternalId":"2026000060","dispatchRunNumber":"2026000060","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":615,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.152500000000003410605131648480892181396484375,"nERISIncidentLongitude":-85.2639099999999956480678520165383815765380859375,"alarm":"2026-02-17 16:23:31","dispatched":"2026-02-17 16:25:15","incidentLocationCross":"JOHNSON AVE\/E LOUIS AVE","cADVehicleID":"MFR","timedispatch":"2026-02-17 16:25:15","policeReportNumber":"20260018074","dispatchNotes":"[LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]","cADLog":"[LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]","incidentLocationCity":"MONTEREY","streetName":"HOLLY ST","incidentAddressTextVersionStreet":"615 N HOLLY ST","locationCoordinates":"36.1525,-85.26391"}
[2026-02-17 22:25:31] [INFO] Number of extracted fields: 21
[2026-02-17 22:25:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
RESC
MPD'
[2026-02-17 22:25:31] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
RESC
MPD', Parsed IDs = ["MFD","EMS","RESC","MPD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-17 22:25:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","RESC","MPD"]
[2026-02-17 22:25:31] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-17 22:25:31] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-17 22:25:31] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC","MPD"]
[2026-02-17 22:25:31] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-17 22:25:31] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-17 22:25:31] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-17 22:25:31] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-17 22:25:32] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-17 22:25:32] [INFO] Found existing IncidentTypeMapping with ID: 694458634e9b84eeb
[2026-02-17 22:25:35] [INFO] Created new Dispatches record with ID: 6994eadc8e079cff7
[2026-02-17 22:25:35] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 22:25:35] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 22:25:38] [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-17 22:25:38] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260018074_20260217_222531.XML: Failed to upload file to V2 FTP server: /MFD_20260018074_20260217_222531.XML
[2026-02-17 22:25:38] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 22:25:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018077_20260217_222540.XML
[2026-02-17 22:25:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018077_20260217_222540.XML for user: 68f1466aed072ad4a
[2026-02-17 22:25:40] [INFO] File size: 5931 bytes
[2026-02-17 22:25:41] [INFO] Created FTPFiles record with ID: 6994eae530708b02c
[2026-02-17 22:25:41] [INFO] About to extract fields from XML. File size: 5931 bytes
[2026-02-17 22:25:41] [INFO] Number of mappings: 28
[2026-02-17 22:25:41] [INFO] Starting XML parsing. Content length: 5931
[2026-02-17 22:25:41] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 22:25:41] [INFO] Processing 28 field mappings
[2026-02-17 22:25:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 22:25:41] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 22:25:41] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 22:25:41] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-02-17 22:25:41] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
MPD
[2026-02-17 22:25:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC\nMPD"
[2026-02-17 22:25:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 22:25:41] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-02-17 22:25:41] [INFO]   -> Found value: 2026000464
[2026-02-17 22:25:41] [INFO]   -> Set field 'incidentInternalId' = "2026000464"
[2026-02-17 22:25:41] [INFO]   -> Set field 'dispatchRunNumber' = "2026000464"
[2026-02-17 22:25:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 22:25:41] [INFO]   -> Found value: FALL VICTIM
[2026-02-17 22:25:41] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-02-17 22:25:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 22:25:41] [INFO]   -> Found value: 615
[2026-02-17 22:25:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 615
[2026-02-17 22:25:41] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 22:25:41] [INFO]   -> Found value: TN
[2026-02-17 22:25:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 22:25:41] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 22:25:41] [INFO]   -> Found value: 38574
[2026-02-17 22:25:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-17 22:25:41] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 22:25:41] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:41] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 22:25:41] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:41] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 22:25:41] [INFO]   -> Found value: 36.15250
[2026-02-17 22:25:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.152500000000003410605131648480892181396484375
[2026-02-17 22:25:41] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 22:25:41] [INFO]   -> Found value: -85.26391
[2026-02-17 22:25:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2639099999999956480678520165383815765380859375
[2026-02-17 22:25:41] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 22:25:41] [INFO]   -> Found value: 2026-02-17 16:25:29
[2026-02-17 22:25:41] [INFO]   -> Set field 'alarm' = "2026-02-17 16:25:29"
[2026-02-17 22:25:41] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 22:25:41] [INFO]   -> Found value: 2026-02-17 16:25:29
[2026-02-17 22:25:41] [INFO]   -> Set field 'dispatched' = "2026-02-17 16:25:29"
[2026-02-17 22:25:41] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 22:25:41] [INFO]   -> Found value: 2026-02-17 16:25:29
[2026-02-17 22:25:41] [INFO]   -> Set field 'enroute' = "2026-02-17 16:25:29"
[2026-02-17 22:25:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 22:25:41] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:41] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 22:25:41] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:41] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 22:25:41] [INFO]   -> Found value: JOHNSON AVE/E LOUIS AVE
[2026-02-17 22:25:41] [INFO]   -> Set field 'incidentLocationCross' = "JOHNSON AVE\/E LOUIS AVE"
[2026-02-17 22:25:41] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 22:25:41] [INFO]   -> Found value: TK21
[2026-02-17 22:25:41] [INFO]   -> Set field 'cADVehicleID' = "TK21"
[2026-02-17 22:25:41] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 22:25:41] [INFO]   -> Found value: 2026-02-17 16:25:29
[2026-02-17 22:25:41] [INFO]   -> Set field 'timedispatch' = "2026-02-17 16:25:29"
[2026-02-17 22:25:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 22:25:41] [INFO]   -> Found value: 2026-02-17 16:25:29
[2026-02-17 22:25:41] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-17 16:25:29"
[2026-02-17 22:25:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 22:25:41] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 22:25:41] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 22:25:41] [INFO]   -> No value found (null or empty)
[2026-02-17 22:25:41] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 22:25:41] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 22:25:41] [INFO]   -> Found value: 20260018077
[2026-02-17 22:25:41] [INFO]   -> Set field 'policeReportNumber' = "20260018077"
[2026-02-17 22:25:41] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 22:25:41] [INFO]   -> Found value: Event spawned from FALL VICTIM.  [02/17/2026 16:25:29 JBOHANNON] [LAW] {M102} RESPONDING W/EMS  [02/...
[2026-02-17 22:25:41] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FALL VICTIM.  [02\/17\/2026 16:25:29 JBOHANNON] [LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]"
[2026-02-17 22:25:41] [INFO]   -> Set field 'cADLog' = "Event spawned from FALL VICTIM.  [02\/17\/2026 16:25:29 JBOHANNON] [LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]"
[2026-02-17 22:25:41] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 22:25:41] [INFO]   -> Found value: MONTEREY
[2026-02-17 22:25:41] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-17 22:25:41] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 22:25:41] [INFO]   -> Found value: HOLLY
[2026-02-17 22:25:41] [INFO]   -> Set field 'streetName' = "HOLLY"
[2026-02-17 22:25:41] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 22:25:41] [INFO]   -> Found value: ST
[2026-02-17 22:25:41] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-17 22:25:41] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 22:25:41] [INFO]   -> Found value: 615 N HOLLY ST
[2026-02-17 22:25:41] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "615 N HOLLY ST"
[2026-02-17 22:25:41] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-02-17 22:25:41] [INFO] Concatenating street name and type
[2026-02-17 22:25:41] [INFO]   -> Combined street name: HOLLY ST
[2026-02-17 22:25:41] [INFO] Built locationCoordinates from lat/lng: 36.1525,-85.26391
[2026-02-17 22:25:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC\nMPD","incidentInternalId":"2026000464","dispatchRunNumber":"2026000464","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":615,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.152500000000003410605131648480892181396484375,"nERISIncidentLongitude":-85.2639099999999956480678520165383815765380859375,"alarm":"2026-02-17 16:25:29","dispatched":"2026-02-17 16:25:29","enroute":"2026-02-17 16:25:29","incidentLocationCross":"JOHNSON AVE\/E LOUIS AVE","cADVehicleID":"TK21","timedispatch":"2026-02-17 16:25:29","timeenroutetoscene":"2026-02-17 16:25:29","policeReportNumber":"20260018077","dispatchNotes":"Event spawned from FALL VICTIM.  [02\/17\/2026 16:25:29 JBOHANNON] [LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]","cADLog":"Event spawned from FALL VICTIM.  [02\/17\/2026 16:25:29 JBOHANNON] [LAW] {M102} RESPONDING W\/EMS  [02\/17\/26 16:25:15 SBALLARD] [EMS] 9 MONTH OLD FELL AROUND 3 FOOT FROM A COUNTER. 22 LBS.  [02\/17\/26 16:24:21 JBOHANNON] Event spawned from FALL VICTIM.  [02\/17\/2026 16:23:31 JBOHANNON]","incidentLocationCity":"MONTEREY","streetName":"HOLLY ST","incidentAddressTextVersionStreet":"615 N HOLLY ST","locationCoordinates":"36.1525,-85.26391"}
[2026-02-17 22:25:41] [INFO] Number of extracted fields: 23
[2026-02-17 22:25:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC
MPD'
[2026-02-17 22:25:41] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC
MPD', Parsed IDs = ["PCFD","EMS","MFD","RESC","MPD"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-02-17 22:25:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC","MPD"]
[2026-02-17 22:25:41] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-17 22:25:41] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-17 22:25:41] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC","MPD"]
[2026-02-17 22:25:41] [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-17 22:25:41] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-17 22:25:41] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-02-17 22:25:41] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-17 22:25:41] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-17 22:25:41] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-02-17 22:25:52] [INFO] Created new Dispatches record with ID: 6994eae5f084cdc11
[2026-02-17 22:25:52] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 22:25:52] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 22:25:55] [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-17 22:25:55] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260018077_20260217_222540.XML: Failed to upload file to V2 FTP server: /PCFD_20260018077_20260217_222540.XML
[2026-02-17 22:25:55] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
[2026-02-17 22:32:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018081_20260217_223220.XML
[2026-02-17 22:32:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018081_20260217_223220.XML for user: 68f1466aed072ad4a
[2026-02-17 22:32:21] [INFO] File size: 5277 bytes
[2026-02-17 22:32:21] [INFO] Created FTPFiles record with ID: 6994ec754eb19818d
[2026-02-17 22:32:21] [INFO] About to extract fields from XML. File size: 5277 bytes
[2026-02-17 22:32:21] [INFO] Number of mappings: 28
[2026-02-17 22:32:21] [INFO] Starting XML parsing. Content length: 5277
[2026-02-17 22:32:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-17 22:32:21] [INFO] Processing 28 field mappings
[2026-02-17 22:32:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-17 22:32:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-17 22:32:21] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-17 22:32:21] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-17 22:32:21] [INFO]   -> Found value: BFD
EMS
BPD
[2026-02-17 22:32:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS\nBPD"
[2026-02-17 22:32:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-17 22:32:21] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-17 22:32:21] [INFO]   -> Found value: 2026000053
[2026-02-17 22:32:21] [INFO]   -> Set field 'incidentInternalId' = "2026000053"
[2026-02-17 22:32:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000053"
[2026-02-17 22:32:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-17 22:32:21] [INFO]   -> Found value: UNCONSCIOUS
[2026-02-17 22:32:21] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-02-17 22:32:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-17 22:32:21] [INFO]   -> Found value: 855
[2026-02-17 22:32:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 855
[2026-02-17 22:32:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-17 22:32:21] [INFO]   -> Found value: TN
[2026-02-17 22:32:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-17 22:32:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-17 22:32:21] [INFO]   -> Found value: 38544
[2026-02-17 22:32:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-17 22:32:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-17 22:32:21] [INFO]   -> Found value: BAXTER SPEEDWAY
[2026-02-17 22:32:21] [INFO]   -> Set field 'businessName' = "BAXTER SPEEDWAY"
[2026-02-17 22:32:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-17 22:32:21] [INFO]   -> Found value: 36.13939
[2026-02-17 22:32:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13938999999999879264578339643776416778564453125
[2026-02-17 22:32:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-17 22:32:21] [INFO]   -> Found value: -85.62813
[2026-02-17 22:32:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.62812999999999874489731155335903167724609375
[2026-02-17 22:32:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-17 22:32:21] [INFO]   -> Found value: 2026-02-17 16:31:22
[2026-02-17 22:32:21] [INFO]   -> Set field 'alarm' = "2026-02-17 16:31:22"
[2026-02-17 22:32:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-17 22:32:21] [INFO]   -> Found value: 2026-02-17 16:32:05
[2026-02-17 22:32:21] [INFO]   -> Set field 'dispatched' = "2026-02-17 16:32:05"
[2026-02-17 22:32:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-17 22:32:21] [INFO]   -> Found value: GAINESBORO HWY/DALE MIRES LN
[2026-02-17 22:32:21] [INFO]   -> Set field 'incidentLocationCross' = "GAINESBORO HWY\/DALE MIRES LN"
[2026-02-17 22:32:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-17 22:32:21] [INFO]   -> Found value: BEN2
[2026-02-17 22:32:21] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-02-17 22:32:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-17 22:32:21] [INFO]   -> Found value: 2026-02-17 16:32:05
[2026-02-17 22:32:21] [INFO]   -> Set field 'timedispatch' = "2026-02-17 16:32:05"
[2026-02-17 22:32:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-17 22:32:21] [INFO]   -> No value found (null or empty)
[2026-02-17 22:32:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-17 22:32:21] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-17 22:32:21] [INFO]   -> Found value: 20260018081
[2026-02-17 22:32:21] [INFO]   -> Set field 'policeReportNumber' = "20260018081"
[2026-02-17 22:32:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-17 22:32:21] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [02/17/2026 16:31:22 JBOHANNON] PUMP# 12 PERSON IN A CAR PASSED  [0...
[2026-02-17 22:32:21] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [02\/17\/2026 16:31:22 JBOHANNON] PUMP# 12 PERSON IN A CAR PASSED  [02\/17\/26 16:31:16 JBOHANNON]]"
[2026-02-17 22:32:21] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [02\/17\/2026 16:31:22 JBOHANNON] PUMP# 12 PERSON IN A CAR PASSED  [02\/17\/26 16:31:16 JBOHANNON]]"
[2026-02-17 22:32:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-17 22:32:21] [INFO]   -> Found value: BAXTER
[2026-02-17 22:32:21] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-17 22:32:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-17 22:32:21] [INFO]   -> Found value: FIRST
[2026-02-17 22:32:21] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-02-17 22:32:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-17 22:32:21] [INFO]   -> Found value: AVE
[2026-02-17 22:32:21] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-17 22:32:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-17 22:32:21] [INFO]   -> Found value: 855 FIRST AVE S
[2026-02-17 22:32:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "855 FIRST AVE S"
[2026-02-17 22:32:21] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-17 22:32:21] [INFO] Concatenating street name and type
[2026-02-17 22:32:21] [INFO]   -> Combined street name: FIRST AVE
[2026-02-17 22:32:21] [INFO] Built locationCoordinates from lat/lng: 36.13939,-85.62813
[2026-02-17 22:32:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS\nBPD","incidentInternalId":"2026000053","dispatchRunNumber":"2026000053","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":855,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"BAXTER SPEEDWAY","nERISIncidentLatitude":36.13938999999999879264578339643776416778564453125,"nERISIncidentLongitude":-85.62812999999999874489731155335903167724609375,"alarm":"2026-02-17 16:31:22","dispatched":"2026-02-17 16:32:05","incidentLocationCross":"GAINESBORO HWY\/DALE MIRES LN","cADVehicleID":"BEN2","timedispatch":"2026-02-17 16:32:05","policeReportNumber":"20260018081","dispatchNotes":"Event spawned from UNCONSCIOUS.  [02\/17\/2026 16:31:22 JBOHANNON] PUMP# 12 PERSON IN A CAR PASSED  [02\/17\/26 16:31:16 JBOHANNON]]","cADLog":"Event spawned from UNCONSCIOUS.  [02\/17\/2026 16:31:22 JBOHANNON] PUMP# 12 PERSON IN A CAR PASSED  [02\/17\/26 16:31:16 JBOHANNON]]","incidentLocationCity":"BAXTER","streetName":"FIRST AVE","incidentAddressTextVersionStreet":"855 FIRST AVE S","locationCoordinates":"36.13939,-85.62813"}
[2026-02-17 22:32:21] [INFO] Number of extracted fields: 22
[2026-02-17 22:32:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS
BPD'
[2026-02-17 22:32:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS
BPD', Parsed IDs = ["BFD","EMS","BPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-17 22:32:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS","BPD"]
[2026-02-17 22:32:21] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-17 22:32:21] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-17 22:32:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","BPD"]
[2026-02-17 22:32:21] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-17 22:32:21] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-17 22:32:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-17 22:32:21] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-02-17 22:32:21] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-17 22:32:21] [INFO] Found existing IncidentTypeMapping with ID: 69544700df44862ad
[2026-02-17 22:32:25] [INFO] Created new Dispatches record with ID: 6994ec76483913de5
[2026-02-17 22:32:25] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-17 22:32:25] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-17 22:32:28] [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-17 22:32:28] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260018081_20260217_223220.XML: Failed to upload file to V2 FTP server: /BFD_20260018081_20260217_223220.XML
[2026-02-17 22:32:28] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1023
