function getExtensionStatus($number): int
$state = $agi->get_variable("DEVICE_STATE(PJSIP/$number)", true);
$dExists = $agi->get_variable("DIALPLAN_EXISTS(internal,$number,1)", true);
$this->Verbose("DEVICE_STATE: {$state} DIALPLAN_EXISTS: $dExists");
'UNKNOWN' => ['Status'=> -1, 'StatusText' => 'Unknown'],
'INVALID' => ['Status'=> -1, 'StatusText' => 'Unknown'],
'NOT_INUSE' => ['Status'=> 0, 'StatusText' => 'Idle'],
'INUSE' => ['Status'=> 1, 'StatusText' => 'In Use'],
'BUSY' => ['Status'=> 2, 'StatusText' => 'Busy'],
'UNAVAILABLE' => ['Status'=> 4, 'StatusText' => 'Unavailable'],
'RINGING' => ['Status'=> 8, 'StatusText' => 'Ringing'],
'ONHOLD' => ['Status'=> 16, 'StatusText' => 'On Hold'],
if($state === 'INVALID' && $dExists === '1'){
$result = $stateTable['NOT_INUSE'];
$result = $stateTable[$state]??$stateTable['UNKNOWN'];