Skip to main content

Call Logs

The Call Logs page at panel.flynumber.com/call-logs is your full call history β€” inbound and outbound across every FlyNumber on your account, with status, duration, cost, and a plain-English reason when something went wrong.

Call Logs page showing a collapsible Understanding call statuses guide, a row of five stat tiles (TOTAL 43 in last 30 days, ANSWERED 4, MISSED 35, BUSY 0, FAILED 4), a RANGE filter row with Today / 7 days / 30 days / 90 days / Custom presets and a search field, DIRECTION and FLYNUMBER filter rows, a 120-day retention strip with an Export CSV link, and a day-grouped table with rows for Wed May 13, Tue May 12, and Mon May 11 showing Incoming calls with Failed / Invalid number, Missed / Temporary failure, and Answered statuses

Stat tiles​

Five tiles across the top β€” Total, Answered, Missed, Busy, Failed β€” show counts for whatever date range and filters are currently applied. Click any of the four status tiles to filter the list to just that status; click again to clear. The Total tile reflects whatever range is active (e.g. "Last 30 days") and isn't clickable.

Filters and presets​

Three filter rows live above the table:

  • RANGE β€” preset tabs for Today, 7 days, 30 days, 90 days, or Custom. Picking Custom reveals a From/To date picker. Range presets calculate from "now" each time you click them.
  • DIRECTION β€” All / Incoming / Outgoing
  • FLYNUMBER β€” All numbers, or filter to a specific FlyNumber. Only shows when you have more than one.

Plus a search field on the right of the RANGE row β€” type any digits, partial number, or text to match against From, To, or FlyNumber columns. The search debounces by 300ms and shows a small spinner while it's resolving.

Custom range is capped to the retention window

The Custom date picker only lets you go back as far as 120 days. Anything older has been purged (see Retention below).

Retention​

Call logs are retained for 120 days, then automatically purged. You'll see a small strip just above the table reminding you: "Call logs are retained for 120 days, then automatically purged. Need longer history? Export CSV"

For an audit trail or accounting record beyond 120 days, Export CSV once a month and keep the files locally β€” that's the only way to preserve older history. The export endpoint can be automated via Zapier, Make, or n8n if you'd rather not do it by hand.

What's in each call​

The table has eight columns:

ColumnWhat it shows
TIMEWhen the call started β€” grouped under a day header (Today, Yesterday, or <Day, Month Date> with the count of calls that day)
DIRIncoming arrow or Outgoing arrow with an "In" / "Out" label
FROMThe caller's number β€” formatted with country code; -- when caller ID was withheld
TOThe number that was dialed β€” for incoming, your FlyNumber; for outgoing, the destination
FLYNUMBERWhich of your FlyNumbers handled the call (only shown when you have more than one)
DURATIONHow long the call was connected, mm:ss. -- if the call never connected
COSTWhat the call cost in USD with four-decimal precision (e.g. $0.0265). Em-dash (β€”) when nothing was charged
STATUSA colored status pill (Answered, Missed, Busy, or Failed) with the reason stacked underneath when the call didn't connect cleanly

Zoomed view of the Call Logs table showing day separators 'Wed, May 13 (1 call)', 'Tue, May 12 (2 calls)', 'Mon, May 11 (22 calls)', and rows with stacked Status cells β€” red Failed pills with 'Invalid number' underneath, amber Missed pills with 'Temporary failure' underneath, a green Answered pill with no reason, and a red Failed pill with 'Call rejected' underneath

The new Status column stacks the colored status pill on top with the reason in muted text below β€” so at a glance you can scan a column of pills and see both "what happened" and "why." Answered calls usually show just the pill (no reason needed).

Understanding call statuses​

Click Show on the Understanding call statuses card at the top of the page to expand the in-app legend β€” a four-column reference covering every status the system can return.

Status legend hero opened to show four panels β€” Answered (Call connected, 2 reasons: No reason shown, Max duration reached), Missed (Rang but did not connect, 4 reasons: No answer, Caller hung up, Temporary failure, Call could not be completed), Busy (Recipient unavailable, 1 reason: Line busy), Failed (Could not connect, 6 reasons: Call rejected, Invalid number, No route available, Insufficient balance, Destination blocked, Internal error β€” contact support)

The legend lives in the panel so you always have it close, but here's the canonical reference:

Answered (green) β€” call connected​

ReasonWhat it means
(no reason shown)Call connected normally β€” most common success case
Max duration reachedThe carrier or destination enforced a maximum call length and ended the call

Missed (amber) β€” rang but didn't connect​

ReasonWhat it means
No answerRang the destination but nobody picked up before the ring timer expired
Caller hung upThe caller cancelled before the call connected
Temporary failureTransient routing or network hiccup β€” usually clears on its own, retry the call
Call could not be completedCatch-all when no specific cause came back

Busy (orange) β€” recipient unavailable​

ReasonWhat it means
Line busyRecipient busy, Do Not Disturb, hit its channel capacity, or call-loop prevention kicked in (you called your own FlyNumber from the number it forwards to)

Failed (red) β€” could not connect​

ReasonWhat it means
Call rejectedThe destination actively refused the call β€” blocklist, geographic blocking, or strict spam filter
Invalid numberDestination number isn't in service or doesn't exist
No route availableNo carrier path exists to that destination from the calling number
Insufficient balancePrepaid balance couldn't cover the per-minute rate β€” top up via Add Funds or enable auto-refill
Destination blockedDestination is on a fraud or blocking list
Internal error β€” contact supportSomething on our side misbehaved β€” open a ticket and we'll look
Same caller, multiple failure rows

Telecom routing often retries automatically when it sees a transient failure. If you see a burst of consecutive Missed / Temporary failure entries from the same caller within seconds, that's the upstream carrier retrying β€” not separate ring attempts on your side. Most of the time one of the later retries connects (you'll see an Answered row at the end).

Export to CSV​

The Export CSV button in the page header (and the link inside the retention strip) downloads the filtered list as call-logs-YYYY-MM-DD.csv. The export honors every active filter β€” date range, direction, status tile selection, FlyNumber, and search term β€” so if you've narrowed to "Last 30 days, Outgoing, Failed only, FlyNumber +1 555 0100 0000", that's exactly what gets exported.

CSV columns:

Date Β· Direction Β· Status Β· Reason Β· From Β· To Β· FlyNumber Β· Forwarded To Β· Destination Β· Duration (s) Β· Cost ($) Β· Rate Type

A few columns are richer than the on-screen table:

  • Forwarded To β€” the actual destination of an inbound call (phone number, SIP URI, or "Phone System")
  • Destination β€” the carrier-level destination label (e.g. US (Fixed/Landline), Mexico Mobile)
  • Rate Type β€” Standard, Local, EU/EEA, or Metered β€” which per-minute rate applied
  • Duration (s) β€” seconds, not mm:ss
  • Cost ($) β€” full precision (not rounded to 4 decimals)
Past 120 days β€” exports are the only record

Once a call is older than 120 days, it's purged from our database. If you need long-term records, export once a month and keep the CSVs locally (or pipe the export endpoint to Zapier / Make / n8n).

Mobile view​

On narrow screens the page collapses to a clean stack:

  • The stat tiles wrap to two columns
  • Filter rows become a single Filters button that opens a bottom sheet (range presets, direction, FlyNumber, custom dates)
  • The table becomes a card list β€” each call gets its own row with the timestamp, direction icon, From β†’ To, duration, cost, and the same stacked status pill

Day separators stay above each day's group in the card list, just like on desktop.

If you're looking for…Go to
Per-message log of SMSSMS Charges
Every charge across all servicesTransactions
Per-minute and toll-free ratesRates β†’ Voice
Configure forwarding for a numberCore Settings β†’ Set Up Forwarding
Run the phone systemPhone System Guide

Troubleshooting common failure patterns​

A few patterns to keep an eye on:

  • All inbound calls show as Failed / Call rejected. Your forwarding destination is rejecting calls. Common causes: VoIP credentials wrong or stale, IP not whitelisted, or the forwarding number's voicemail or blocklist. Verify the Set Up Forwarding configuration.
  • Spikes of Missed / Temporary failure. Usually upstream carrier flakiness β€” if it persists for hours instead of clearing on its own, contact support.
  • Outbound calls failing with Insufficient balance. Top up via Add Funds or enable auto-refill so it doesn't happen again.
  • Outbound calls failing with Call rejected. The destination network or country is refusing calls from your route. Try a different route or destination; if a previously-working destination starts rejecting, contact support.
  • Missing rows. Calls take a few seconds to land in the log after they end. Refresh the page; if a call is still missing after a few minutes, check the filters (range preset, direction, status tile, FlyNumber) β€” often a too-narrow filter is hiding it.
Whitelisting FlyNumber IPs

If your VoIP server has a firewall / IP whitelist, you can find the current FlyNumber IP ranges at flynumber.com/flynumber-ip-addresses. Outbound traffic from us to your endpoint always originates from those ranges.

Where to next​