> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polymorfa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Calls

> Review calls on your numbers, inspect a call, end live calls, manage SIP trunks, and change call settings in the Console.

Open a project and go to **Calls** to see voice and video calls placed or
received on the project's numbers. Choose **All projects** to see every
project's calls. To place and answer calls from your product, use the
[Calls SDKs](/guides/communicate/calls); the Console reviews and manages calls
but does not place or answer them.

## Find a call

The list shows each call's party, number, state, connection, duration, and
start time. The other party appears as a team-specific reference; Polymorfa
does not store who is on the other side of a call.

Filter by:

* **State**: Ringing, Answered, Declined, Missed, or Ended. An incoming call
  that a participant declined stays **Declined**, and one that rang without an
  answer stays **Missed**, after the call ends. **Ended** covers every other
  finished call, including outgoing calls the recipient did not answer; the
  end reason gives the cause.
* **Direction**: Incoming or Outgoing.
* **Activity**: live calls, finished calls, or both.
* **Number**.
* **From** and **To** dates. The end date is included.

While a live call is on screen, the list refreshes every 10 seconds.

## Call details

Select a call to open its details:

* **Summary**: direction, state, connection, media, duration, end reason, who
  answered, and whether that participant claimed the call.
* **Lifecycle**: start, connect, and end times, and the recorded call events.
* **Participants**: the WhatsApp participants of a group call and their state.
* **Connections**: each browser, app, server, or phone system that joined the
  call, when it joined and left, and why it left. A connection closes when the
  participant leaves, reconnects with a new connection, or another participant
  claims the call, or when the call ends.
* **Call quality**: setup and ring time, audio codec, jitter, packets lost,
  round-trip time, and bitrates measured by Polymorfa's media service.
  **Not reported** means the value was not measured.
* **Reported by your app**: the quality figures and errors your app sent for
  each of its connections. See
  [App-reported diagnostics](#app-reported-diagnostics).
* **Webhook deliveries**: the delivery status, attempts, and last outcome of
  each webhook event for the call. Delivery records are kept for 30 days after
  each event.
* **Correlation IDs**: the call ID and number ID to search for in your webhook
  handlers and logs.

## App-reported diagnostics

When your app sends [call diagnostics](/guides/communicate/calls#report-call-diagnostics-from-your-app),
the call details show one entry per connection that reported:

* **Sent by**: the SDK name, version, and platform the report named.
* **Last quality report**: when the latest quality report arrived, with its
  round-trip time, jitter, packets lost and received, audio and video codecs,
  connection path, and reconnect count. **Not reported** means your app did
  not send that figure.
* **Connection path**: **Direct on the local network**, **Direct**, or
  **Through a relay server**. Relayed media takes a longer route and often
  explains higher round-trip time.
* **Reported errors**: each error with its time and a description, newest
  first. The Console shows up to 50 errors per call.

**Your app has not sent reports for this call** means no report arrived for
the call. Polymorfa keeps up to 200 reports per call; when a call reaches that
limit, the Console says so. If the Console cannot load your app's reports,
it says that they are not available instead of saying that none arrived.

## End a call or remove a connection

Team owners and admins can end a live call or remove one connection from it on
the call details page. Ending a call ends it for every participant and for the
other party. Removing a connection disconnects that browser, app, or server;
the call continues for everyone else. Both actions take effect immediately and
are recorded in the [audit log](/console/audit-logs).

The Console refuses the action when the call is no longer live, and reports
when the call service is temporarily unavailable.

## Call settings

Open a number from **Numbers** and find **Calls** in its details. Every team
member can see these settings; team owners and admins can change them, and
each change is recorded in the [audit log](/console/audit-logs).

**Calls on this number** turns calling on or off. While it is off, placing and
answering calls on the number is refused, incoming calls are declined, and SIP
trunks cannot call through the number. Calls in progress continue. See
[Turn calling off for a number](/guides/communicate/calls#turn-calling-off-for-a-number).

On a Cloud API number, **Answer calls with Polymorfa Calls** chooses who
answers incoming calls: your Calls apps when it is on, or your Graph API
integration when it is off (the default). See
[Cloud API Numbers](/guides/communicate/calls#cloud-api-numbers).

**Conference mode** controls whether the participants you connect to a call
hear each other:

* **On** (default): each participant hears the people on WhatsApp and every
  other participant you connected.
* **Off**: each participant hears only the people on WhatsApp.

In both modes the people on WhatsApp hear all of your participants, and nobody
hears their own voice. A change applies to a call the next time a participant
answers it or connects to it, including calls in progress. See
[Conference mode](/guides/communicate/calls#conference-mode) for examples.

When the project has an enabled SIP trunk that sends calls to your phone
system, the section also shows **Incoming calls**:

* **Incoming calls ring**: **Your apps and browsers**, or **A SIP trunk and
  your apps**. With a trunk, your phone system rings together with your apps,
  and your apps can still answer or join.
* **SIP trunk**: the trunk that receives the calls. Disabled trunks are listed
  but you cannot choose them. A number that already routes to a trunk you
  later disabled keeps that trunk selected.
* **An answer from the phone system claims the call**: when on, your apps stop
  ringing once the phone system answers. It is on by default.

Choose **Save** to apply a routing change. Switches apply as soon as you
change them. If someone else changed the number's call settings after the page
loaded, the Console refuses your change, shows the latest values, and asks you
to try again. Changes reach new calls within about a minute. See [SIP trunks](/guides/communicate/sip-trunks)
for how routed calls behave.

## SIP trunks

Open a project, go to **Calls**, and choose **Manage SIP trunks**. Team owners
and admins always see this link; other members see it when the project has
trunks. The list shows each trunk's name,
direction, status, the SIP URI it sends calls to, and the username and number
it uses for calls from your phone system. Every team member can view trunks.

Team owners and admins can:

* **Add** a trunk. Choose its direction: **To your phone system**, **From your
  phone system**, or **Both ways**, and fill in the matching section.
* **Edit** a trunk. Leave **Password** empty to keep the saved password. If
  someone else changed the trunk first, the Console refuses the change; reopen
  the trunk and try again.
* **Enable or disable** a trunk with its switch. A disabled trunk takes no new
  calls; calls in progress continue.
* Create a **New password** for a trunk that receives calls from your phone
  system. The previous password stops working within about a minute.
* **Delete** a trunk. A trunk that a number still routes calls to cannot be
  deleted; route that number back to your apps first.

<Warning>
  When you add a trunk that receives calls from your phone system, or create a
  new password, the Console shows the username, password, and realm once. Enter
  them in your phone system before you close the dialog; the password cannot be
  shown again.
</Warning>

Changes are recorded in the [audit log](/console/audit-logs) and reach call
routing within about a minute.
