Outbound Calls Failing with "All Circuits are Busy"

Hi all,
Trying to resolve this weird issue I’m facing with outbound calls.
I have multiple DIDs routing to one PBX, and each extension can dial out on its own DID using the Extension Routes module.

All of the extensions cannot make outbound calls. I get an “all circuits are busy” message.

I contacted voip.ms support (my SIP provider) and they were able to do a trace. This is what they said:

This is the format our servers expect to see on outbound call invites:
Contact: < sip:[sipaccount]@[your_IP]:5060;transport=UDP >
From: “CallerID Name”< sip:[sipaccount]@[server].voip.ms;transport=UDP >
To: < sip:[Number]@[server].voip.ms;transport=UDP >

This is one of your call attempts:
Contact: <sip:[email protected]:5060>
From: <sip:[email protected]>
To: <sip:[email protected]>

As you can see, you are sending the word ‘asterisk’ where there should be an sipaccount

I’m sure I’m missing some simple but crucial setting but I can’t find it in the interface. Closest I got was going to Connectivity > Trunks > Trunk in Question > pjsip Settings > Advanced > and adding in the username in the “Contact User” field.

If they really require this, they are broken, as the user part of the Contact header is no business of anyone except the sending system, as its only legitimate purpose is to correctly direct subsequent SIP transactions to the correct part of the sending system.

However,Contact User should be a valid workaround, unless it only sets it in the registration, in which case you will need to add it to the type=endpoint section as a customisation.

Also note that all circuits are busy is really a secondary symptom, and covers a lot more than busy.

I tried adding the correct SIP account username in the “Contact User” parameter but it still isn’t working and failing with the same general “circuits busy” message.

Very strange.

Note that I also tried following the instructions outlined in the voip.ms Wiki to the tee as well: https://wiki.voip.ms/article/FreePBX_(PJSIP)

I have a voip.ms acct I use for testing. In the trunk advanced settings I have the ‘From User’ set to the SIP auth username provided by voip.ms and I have Send RPID/PAI set to both. I don’t believe I have any other settings on the advanced tab changed from the default.

Thanks for the tip.
Did exactly that: filled in “From User” and set “Send RPID/PAI” to both. Left everything else to the voip.ms recommended settings. Calls are working now.

Interestingly, when I tried to make a call from one of my trunks, voip.ms’s systems sent me an email that they “detected and blocked a call attempt.” After approving the request, that particular trunk started working.

If there is any technical or detailed explanation as to why these options need to be enabled I’m all ears. Thanks again!

From user can be used for caller ID, but, when you are doing outbound authentication, it is typically used to contain the name used for authorisation.

Send RPID and send PAI are alternative method of sending caller ID. If From user is tied up with the account name, it becomes necessary to use whichever, if any, is supported, for caller ID, although support for caller ID is generally becoming more limited. I presume the advice to use both is that the provider is unlikely to object, and you don’t have to know which the provider supports.

This is an old setup, and definitely dates from a period before they provided pjsip sample config. Either I came up with this by trial and error, or I compared signaling packets to a working chan_sip trunk, I don’t remember now.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.