The Messenger Business Calling API enables VoIP communication between consumers and businesses on Messenger. Consumers use the Messenger app to place and receive calls. Your app interfaces with Messenger through the Graph API and webhooks for call signaling and connection.
How it works
When a call is initiated, your app exchanges SDP (Session Description Protocol) offers and answers with Meta through the Graph API to establish a WebRTC connection. Once connected, audio and video streams flow directly over the WebRTC peer connection.
Your app handles call lifecycle events — accepting, rejecting, and terminating calls — through API calls and receives status updates through webhooks.
The Messenger Calling API supports DTMF tones, enabling you to support IVR-based systems for participating businesses.
Consumers can press buttons on the client app, and the DTMF tones are injected into the WebRTC RTP stream established as part of the VoIP connection. The WebRTC stream conforms to RFC 4733 for the transfer of DTMF digits via RTP payload. Note: there is no webhook for conveying DTMF digits.
Sending DTMF digits on consumer Messenger client
The Messenger client applications include a dialpad for calls with Messenger businesses. Consumers can press buttons on the client app dialpad to send DTMF tones.
Delivering DTMF digits on WebRTC connection
When a consumer presses a digit in the dialpad on the client, the equivalent DTMF is injected into the WebRTC connection. Tone values include digits 0 to 9, #, and *. Duration is 500ms and inter-tone gap is 100ms for all tones.
Check Page eligibility
Before making calls, verify that your Facebook Page has access to the Calling API by sending a POST request to /<PAGE_ID>/business_messaging_feature_status with the feature messenger_api_calling. A status of ENABLED confirms the Page has access.