Skip to main content
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; 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.
  • 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, 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. 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. 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. 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. 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 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 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.
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.
Changes are recorded in the audit log and reach call routing within about a minute.