{{-- Breadcrumb + botón volver --}}
Cuentas SIP / {{ $cuenta->nonotel_user }} / CDR
Volver
@forelse ($llamadas as $llamada) @php // Dirección $entrante = (int) $llamada->sipiax === 1; // Duración MM:SS $duracion = (int) $llamada->sessiontime; $min = str_pad(intdiv($duracion, 60), 2, '0', STR_PAD_LEFT); $seg = str_pad($duracion % 60, 2, '0', STR_PAD_LEFT); $durStr = $duracion > 0 ? "{$min}:{$seg}" : '00:00'; // Estados SIP/Asterisk según Q.850 / RFC 3398 $estados = [ 0 => ['label' => 'Sin respuesta', 'color' => 'zinc'], 1 => ['label' => 'Contestada', 'color' => 'green'], 16 => ['label' => 'Normal', 'color' => 'green'], 17 => ['label' => 'Ocupado', 'color' => 'orange'], 18 => ['label' => 'Sin respuesta', 'color' => 'zinc'], 19 => ['label' => 'Sin respuesta', 'color' => 'zinc'], 20 => ['label' => 'Abonado aus.', 'color' => 'zinc'], 21 => ['label' => 'Rechazada', 'color' => 'red'], 28 => ['label' => 'Nº inválido', 'color' => 'red'], 34 => ['label' => 'Sin circuito', 'color' => 'red'], 127 => ['label' => 'Fallida', 'color' => 'red'], ]; $estado = $estados[$llamada->terminatecauseid] ?? ['label' => 'Código '.$llamada->terminatecauseid, 'color' => 'zinc']; // Limpiar destino $destino = preg_replace('/^SIP\/34?(\d+)@.+$/', '$1', $llamada->calledstation); $destino = preg_replace('/^34(\d{9})$/', '$1', $destino); @endphp @if($entrante) Entrada @else Salida @endif {{ \Carbon\Carbon::parse($llamada->starttime)->format('d/m/Y H:i:s') }} {{ \Carbon\Carbon::parse($llamada->stoptime)->format('H:i:s') }} {{ $durStr }} {{ $llamada->src }} {{ $destino }} {{ number_format((float) $llamada->sessionbill, 4, ',', '.') }} € @empty No hay llamadas para los filtros seleccionados. @endforelse {{ $llamadas->links() }}