Increase extnsion outbound concurrency limits in FreePBX

Running FreePBX Distro PBX Firmware:10.13.66-15PBX Service Pack:1.0.0.0 not really sure what modules come into play with this but FreePBX Framework is 13.0.188.8.

Having an issue making more than 3 simultaneous trunk calls. The trunks I am using have a capacity of 16 simultaneous calls and are set to have a defined “maximum Channels” of 16 (also left this blank when testing the below problem with no difference). I do not have the commercial module “Outbound Call Limit.” Our call capacity with our voip provider was increased from 6 to 16 simultaneous calls and I am attempting to verify that increase in capacity. I am dialing external toll free numbers from two different extensions to get above 6 simultaneous calls. Both phones can support a minimum of 6 lines. I have run into the problem below after the 3rd outbound call initiated from the same extension.

Message from Allison ”I’m Sorry – your simultaneous call limit reached. Goodbye.”
I have tried adjusting the “Extension Concurrency limit” in “Settings>Advanced Settings>Dialplan and Operational” from its initial value of 3, but after hitting apply a circular refresh arrow appears next to the “Extension concurrency limit” and when pressed it updates the value from what I changed it to (7 or 0) to its initial value of 3.
In the description of the Extension Concurrency Limit it says:
KEYWORD:CONCURRENCYLIMITDEFAULT
Default maximum number of outbound simultaneous calls that an extension can make. This is also very useful as a Security Protection against a system that has been compromised. It will limit the number of simultaneous calls that can be made on the compromised extension. This default is used when an extension is created. A default of 0 means no limit.

I think the statement above is implying that the setting of concurrency is potentially different for each extension. The way I read it, unless otherwise specified (somewhere) when an extension is created it will take the value listed there (default being 3). I have looked extensively through the extensions module and the users module in FreePBX but cannot find anything on a per extension or per user level that can be set through the FreePBX interface. Is there somewhere in FreePBX this can be set to affect the simultaneous outbound calls per extension? I found this thread which is asking pretty much the same thing (Outbound call concurrency limits - how to set for all?) but wasnt sure if that is still applicable in this version.

Second question, is the behavior of the “Extension concurrency limit” in advanced settings reverting to the previous value to be expected? If I can’t/shouldn’t be changing this on a per extension level, should I be able to adjust at the FreePBX level or would a different value only apply to newly created extensions?

If someone could provide further clarification regarding the extension concurrency limit I would appreciate it. I was able to make 6 calls from the same extension to another internal extension without getting that message. I don’t know if the phrase “outbound simultaneous calls” in the description above implied trunk usage or it was just meaning an outgoing call from the extension.

The output from Asterisk shows:
– Executing [18005532002@from-internal:1] Macro(“SIP/7203-00000051”, “user-callerid,LIMIT”) in new stack
– Executing [s@macro-user-callerid:1] Set(“SIP/7203-00000051”, “TOUCH_MONITOR=1475675923.81”) in new stack
– Executing [s@macro-user-callerid:2] Set(“SIP/7203-00000051”, “AMPUSER=7203”) in new stack
– Executing [s@macro-user-callerid:3] GotoIf(“SIP/7203-00000051”, “0?report”) in new stack
– Executing [s@macro-user-callerid:4] ExecIf(“SIP/7203-00000051”, “1?Set(REALCALLERIDNUM=7203)”) in new stack
– Executing [s@macro-user-callerid:5] Set(“SIP/7203-00000051”, “AMPUSER=7203”) in new stack
– Executing [s@macro-user-callerid:6] GotoIf(“SIP/7203-00000051”, “0?limit”) in new stack
– Executing [s@macro-user-callerid:7] Set(“SIP/7203-00000051”, “AMPUSERCIDNAME=Brian Campbell”) in new stack
– Executing [s@macro-user-callerid:8] GotoIf(“SIP/7203-00000051”, “0?report”) in new stack
– Executing [s@macro-user-callerid:9] Set(“SIP/7203-00000051”, “AMPUSERCID=7203”) in new stack
– Executing [s@macro-user-callerid:10] Set(“SIP/7203-00000051”, “__DIAL_OPTIONS=Ttr”) in new stack
– Executing [s@macro-user-callerid:11] Set(“SIP/7203-00000051”, “CALLERID(all)=“Brian Campbell” <7203>”) in new stack
– Executing [s@macro-user-callerid:12] GotoIf(“SIP/7203-00000051”, “1?limit”) in new stack
– Goto (macro-user-callerid,s,24)
– Executing [s@macro-user-callerid:24] Answer(“SIP/7203-00000051”, “”) in new stack
> 0x7fc11c08b9e0 – Probation passed - setting RTP source address to 10.51.207.55:59880
– Executing [s@macro-user-callerid:25] Wait(“SIP/7203-00000051”, “1”) in new stack
– Executing [s@macro-user-callerid:26] Gosub(“SIP/7203-00000051”, “macro-user-callerid,lang-playback,1(hook_1)”) in new stack
– Executing [lang-playback@macro-user-callerid:1] GosubIf(“SIP/7203-00000051”, “1?macro-user-callerid,en,hook_1():macro-user-callerid,en,hook_1()”) in new stack
– Executing [en@macro-user-callerid:3] Playback(“SIP/7203-00000051”, “beep&im-sorry&your&simul-call-limit-reached&goodbye”) in new stack
– <SIP/7203-00000051> Playing ‘beep.gsm’ (language ‘en’)
– <SIP/7203-00000051> Playing ‘im-sorry.gsm’ (language ‘en’)
– <SIP/7203-00000051> Playing ‘your.gsm’ (language ‘en’)
– <SIP/7203-00000051> Playing ‘simul-call-limit-reached.gsm’ (language ‘en’)
– <SIP/7203-00000051> Playing ‘goodbye.gsm’ (language ‘en’)
– Executing [h@from-internal:1] Macro(“SIP/7203-00000051”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/7203-00000051”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“SIP/7203-00000051”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] Hangup(“SIP/7203-00000051”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/7203-00000051’ in macro ‘hangupcall’

Thanks,

Brian

Edit the extension, Advanced tab, Outbound Concurrency Limit defaults to 3.

That is, as a matter of fact, exactly the way the system should work.

If you look under “Applications” → “Extensions” → edit a specific extension → “Advanced” you should find the extension concurrency limit for that extension.

When you clicked the “reset to default” icon (the circle with the arrows), it reset it to the default. I’m not sure I understand the problem with that.

It is “per extension”. The trunk doesn’t care, insofar as it doesn’t exceed the total channel limit you specified on the trunk. For the most part, these two items are independent.

Thanks for the information and I clearly see the limit in the advanced section of the extension - Thanks for that.

I also wasnt aware that the circular refresh arrow was the reset to default button so thanks for that little gem as well.

As I can now test what I was trying to I will happily move along.

Thanks!