Skip to main content
A reference for engineers integrating a voice platform. For the end-to-end picture, see How it works.

Signalling

The gateway stays in the signalling path for the whole call, so BYE and re-INVITE reach both sides.

Audio

WhatsApp uses Opus. When your trunk does not accept Opus, the gateway converts between Opus and G.711 for you. If your trunk lists Opus as a codec, the gateway can offer it to your platform directly. Trunks can also use G.729, a compressed 8 kHz codec found on older contact-centre and carrier equipment. The gateway converts between it and WhatsApp’s Opus. If a trunk lists only G.729, it is offered G.729 only. Converting to G.729 uses more processing than G.711, which matters when planning for many simultaneous calls.
Audio is carried in both directions through the gateway, which holds the audio address that Meta and your platform send to. This keeps NAT and firewall rules on your side simple: allow the gateway.

Who sends first

Meta expects the business side to send the first audio packet on every call. Make sure your platform starts sending audio as soon as it answers.

Keypad tones (DTMF)

Customers can open a keypad during a WhatsApp call, and the key presses reach your platform. Meta sends each press as a standard RFC 4733 telephone-event packet in the audio stream, with an 8,000 Hz clock rate. The gateway passes these on to your platform as RFC 4733 telephone-events, with the digit, volume and duration intact. Meta provides no separate notification of the digits, so they travel only in the audio stream. To receive them, your platform must:
  • Accept telephone-event in the SDP. The gateway offers telephone-event/8000. Include it in your SDP answer and use the payload type from the offer.
  • Read digits as RFC 4733 events. They are not sent as audio tones, and not as SIP INFO messages.
Platforms that listen rather than use a keypad, such as voice AI agents, can ignore keypad events.

Security

Limits and behaviour