Channels and Limits

Set the maximum concurrent calls and the maximum call duration (up to 60 minutes) on an Edesy termination trunk, and see what happens when a call goes over a trunk, workspace or wallet limit.

3 min read

Each Edesy termination trunk has a max concurrent calls setting, from 1 to 10,000, with a default of 50. It caps how many calls the trunk carries at the same time. When a new outbound call would go over a limit, Edesy declines it at the SIP layer with a clear response code, so your PBX or platform can retry or fail over.

Set the limit#

In the portal, set Max concurrent calls when you create the trunk, or change it later from the trunk page. With the API:

curl -X PATCH https://voice-api.edesy.in/v1/trunks/TRUNK_ID \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"max_concurrent_calls": 100}'

Match it to the channel count on your side. In FreePBX, set the trunk's Maximum Channels to the same value.

Max call duration#

Each trunk also has a maximum call duration for outbound calls. It stops a call that never hangs up, for example an AI voice agent stuck in a loop or a PBX that missed the end of the call, from running up minutes.

Item Detail
Where Trunk page > Call limits card > Maximum call duration (minutes)
Range 1 minute up to the platform maximum of 60 minutes
Default Empty, which means the platform maximum (60 minutes)
Applies to Outbound calls through this trunk
At the limit Edesy ends the call with a SIP BYE to both sides
Earlier end A call can also end sooner if the wallet balance only covers a shorter call

With the API, send the limit in seconds; 0 means the platform maximum:

curl -X PATCH https://voice-api.edesy.in/v1/trunks/TRUNK_ID \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"max_call_duration_sec": 900}'

The trunk object returns max_call_duration_sec and platform_max_call_duration_sec. Pick a limit a little above your longest normal call: for a voice agent that books appointments in 3 to 5 minutes, 10 or 15 minutes is a safe cap.

Limits that can decline a call#

Limit SIP response What to do
Workspace concurrent calls reached 503 Channel Limit Reached Wait for calls to end, or ask support to raise your allowance
Workspace call rate (new calls per second) reached 503 Call Rate Limit Exceeded Pace new calls, or ask support for a higher rate
Wallet cannot cover the call 402 Payment Required Top up the wallet
Caller ID not owned by you 403 Caller ID Not Authorized Send an Edesy number you own as From
No destination number 400 Missing Destination Put the dialled number in the Request-URI

All of these happen before the call is placed, so a declined call costs nothing. See Common SIP Response Codes for the full list.

Suspend a trunk#

Set status to suspended to stop a trunk without deleting it, and back to active to resume:

curl -X PATCH https://voice-api.edesy.in/v1/trunks/TRUNK_ID \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "suspended"}'

Test calls are disabled while a trunk is suspended.

FAQ#

Does an inbound call count toward my concurrent calls?#

Inbound calls are counted toward the workspace total but are never declined for it. A busy inbound period can therefore cause new outbound calls to get 503 Channel Limit Reached.

Is there a charge for a higher channel limit?#

The per-trunk cap is free to change. For a higher workspace-wide allowance, contact us.

Why do my calls stop at 50?#

50 is the default per-trunk cap. Raise max_concurrent_calls on the trunk.

What is the longest call a trunk allows?#

60 minutes, the platform maximum. Set a lower limit per trunk on the Call limits card.

Is a call cut off at the limit charged?#

Yes, for the minutes it was connected, at the normal per-minute rate. The limit stops further minutes.

Do test calls count toward the limits?#

Test calls from the portal are exempt from the channel limits, but are limited to 5 per hour per workspace.

Was this page helpful?