WhatsApp API Platform
Calls

Call History

Every call relayed between WhatsApp and your phone system — the columns, all eight call states, filtering, and a troubleshooting table for calls that did not connect.

Every call, connected or not, is recorded. The Call history tab is where you check whether a customer got through, how long the call ran, and why one failed.

Call history table listing contacts with call direction, outcome badge, duration, relative time and call permission state

In the app: Dashboard → Automation → Calls → Call history


The columns

ColumnWhat it shows
ContactThe customer's name, or their number when we have no name. Named contacts show the number underneath
DirectionInbound — the customer called you. Outbound — you called them
OutcomeThe call's final state, with the end reason underneath when there is one
DurationHow long the call was connected, as m:ss. Blank when it never connected
WhenRelative time, e.g. 12 minutes ago. Hover for the exact date and time
Call permissionWhether you may call this contact — with an Ask button when you may not

Use the state dropdown above the table to filter by outcome: All calls, Completed, Connected, Ringing, Missed, Rejected, Failed or Canceled. Change the page size at the bottom to page through longer histories.

No export yet

Call history cannot be exported to CSV. If you need call data in a report, note it from this page for now.


Call states

Eight states, one of which means success.

StateMeaning
CompletedThe call connected and ended normally. The only success state
ConnectedThe call is live right now. A row still showing this long afterwards means the call did not end cleanly
RingingThe call is being offered and has not been answered yet
InitiatedThe call has just started and has not reached ringing
MissedIt rang, nobody answered
RejectedThe other side actively declined
FailedThe call could not be set up — routing, authentication, capacity or network
CanceledThe caller hung up before it was answered

Initiated, Ringing and Connected are transient — a live call passes through all three. Everything except Completed is a flavour of not-connected.

End reasons

When the row has a reason under its badge, that text is the specific cause — a SIP reason from your phone system, or ours when we refused the call. It is the most useful single field on the page when something is wrong.


Troubleshooting

Match the symptom, not the state alone — the same Failed badge covers several very different problems.

The call never reached us

SymptomCauseFix
No row at all for an inbound callCalling is not enabled for that numberConnections → ⋮ → Turn on calling
No row, and the number shows Calling (pending)WhatsApp accepted the setup but is not routing callsOpen the calling dialog and read WhatsApp's message — usually a review or verification still in progress
Calls arriving somewhere else entirelyAnother tool still owns calling for that numberOnly one platform can take calls for a number at a time

We could not reach your phone system

SymptomCauseFix
Failed, and your PBX never rangDestination unreachableCheck the destination URI is a public address, and that your firewall allows SIP from us
Failed after a delay, several destinations configuredEvery target refused or timed outTest each destination individually; check the disabled switches
Failed on some calls onlyTrunk at Max calls or Calls / secondRaise the cap, or add capacity on your side
Everything fails right after a changeTrunk was switched to DisabledRe-enable it in the trunk's side panel

Authentication

SymptomCauseFix
Every outbound call refused, credential looks correctTrunk is IP + credential and your public IP is not allowlistedAdd the public egress address of your phone system
Refused after working for monthsCredential expired, or was switched offCheck the credential's enable switch and expiry
Refused after a network changeYour public IP changedUpdate the IP allowlist

Permission and caps

SymptomCauseFix
Outbound refused instantly, permission reads Not grantedThe customer has not allowed callsClick Ask, or let them call you
Outbound refused, permission reads ExpiredThe 7-day grant lapsedAsk again
Outbound refused after many calls to one contact100 connected calls in 24 hoursWait for the window to roll over
Permission disappeared on its ownFour consecutive unanswered calls revoked itStop calling; reach them by message

See Call permissions for the full model.

Caller ID

SymptomCauseFix
Outbound refused on an account with several WhatsApp numbersWe cannot tell which number to call fromBind the trunk to a WhatsApp number, or set a Caller ID on it

Audio

Audio faults do not show up as a failed state — the call completes with a normal duration and the humans on it heard nothing.

SymptomCauseFix
Connects, then silence both waysUDP 20000–29999 closedOpen the media range in both directions
Audio one way onlyReturn RTP blocked, or NAT on your sideCheck the firewall's return path and your NAT settings
Connects and drops after a few secondsRTP/SRTP mismatchMatch the trunk's Media setting to your phone system
Choppy or robotic audioCodec conversion or network jitterEnable PCMU and PCMA on the trunk so audio can pass through unconverted
Keypad presses ignored by your IVRDTMF mismatchMatch the trunk's DTMF setting; RFC 2833 suits most platforms

Calls cut off at 60 minutes

Not a fault. Every relayed call ends automatically after one hour.


What is not here

  • Recordings. Calls are not recorded. If you need recording, do it on your phone system.
  • Per-agent reporting. History is account-wide; it does not attribute calls to individual agents.
  • Billing. Call minutes are not charged and do not appear on your billing statement.
  • Export. No CSV download from this table.

What's next

How is this guide?

On this page