SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

Elastic SIP Trunking Calls Cannot Be Terminated via API

 

Issue

When using Elastic SIP Trunking (ESIPT), customers may try to end an active call through the Twilio REST API (for example, by updating Calls/{CallSid} to Status=completed). 

However, this does not terminate the SIP call. The session stays active until the customer’s SIP endpoint or upstream carrier sends a SIP BYE. This behavior is expected and applies to both inbound and outbound Elastic SIP Trunking calls.

 

Product

Elastic SIP Trunking

 

Cause

This behavior is expected and is due to a fundamental architectural difference between Elastic SIP Trunking and Programmable Voice. 

For Elastic SIP Trunking: 

  • Twilio does not originate or control the SIP leg in the same way as Programmable Voice. 
  • Updating the Call resource via the REST API does not cause Twilio to send a SIP BYE on ESIPT calls.
  • As a result, ESIPT calls cannot be terminated or controlled via the API; they end only when the customer’s SBC/PBX or the upstream carrier releases the call (BYE, timeout, max duration).

 

Resolution

No configuration changes are required. This is expected behavior for Elastic SIP Trunking.

To terminate an ESIPT call, a SIP BYE must be sent to release the session from either:

  • The customer’s SBC, PBX, SIP gateway, or
  • The upstream SIP carrier
Have more questions? Submit a request
Powered by Zendesk