How to disable callwaiting for multiple extensions?

I have imported extensions via bulk handler. I have callwaiting is disables by default.
Though, all imported extensions have callwaiting enabled.
How to disable callwaiting for all extensions at once?

I use FreePBX 13.0.120 .


Since the bulk handler is still relatively new, anytime you have a problem like this, you should submit a ticket with the file you were trying to import attached, and a description of the violation of the “rule of least astonishment”. It’s either going to be an oversight a coding error, and either way, it probably needs to be fixed in the software.

In this case, you were expecting bulk handler to reflect your CW choice and it didn’t.

Every problem I’ve had with bulk handler has been fixed quickly and professionally.

Well, I have seen seen post similar to my. And there was an answer, that call waiting setting is feature request for bulk handler. It does not have any callwainting setting at all.
And if it is feature request - it is not bug, so it cant be fixed fast. It could be added ‘maybe’ in the future…

So I thought that maybe there is a way to change CW setting manually.
It’s a bit difficult to reclick evey of two hundrets extensions.
I have not found CW setting in mysql database…

Callwaiting has a bulkhandler hook. It adds the “callwaiting_enable” field.
Blank = disable, anything else enables it.

OK - so you should be able to run another bulk_handler run with a three field file:
Field 0 - “Change” (IIRC)
Field 1 - the extension
Field 2 - a blank space

If James’ description of the field is correct “T”, “Y”, “N”, “1”, “0” or “F” will yield the same result - callwaiting_enable would be turned on.


What I did.
To my extensions.csv I added field callwaiting_disable.
I have deleted all extensions from station.
I imported my csv.
CW is on for every extension.
So for the first extension I disable CW.
I export extension list by bulk handler.
I examine new CSV and I do not see any CW setting.

Are you sure that you talk about BULK HANDLER and not about BULK EXTENSIONS, which one is deprecated now?

Yes we are sure. The field is called callwaiting_enable. You would set this to ENABLED or leave blank if you want it disabled for each extension.

Sorry, my bad. I did as you wrote - I used right “callwaiting_enable”.
Still I had no result.
My CSV sample:


Did some more checks. Still callwaiting_enable - does not work. Is there any other way to disable callwaiting massively?

So I figured out how to disable CW.
I have edited /var/www/html/admin/modules/core/Core.class.php
set from
"callwaiting" => “enabled"
"callwaiting” => “disabled”

reimported my CSV.

All imported extensions now have CW disabled.

Did you open a bug report that the CSV is not working?

It’s a subtle point, but depending on how the CSV file interpreter works, the callwaiting_enable value could be “undefined”, which could render the field unused.

If you set the Core.class.php back to the regular “enabled” form, try adding a quoted “blank” field on the end of the line:


While it shouldn’t make any difference, it might since it is the last entry on the line.

Either way, as @tonyclewis pointed out, you should probably submit a ticket for this.

nope. But after some search I found this:
field is callwaiting

Editing core is 100% incorrect.

The code that handles this:

$rawData is an array of the rows
for each row we say does the key 'callwaiting_enable` exist.
If it does we trim white space on the value. If you put in just a space it would be removed here.
Then we check if the value is empty, if so we set the value to ‘’, otherwise we set it “ENABLED” which is what gets inserted in to astdb for use by the dial plan.

If the state is not equal to “” (blank) Then we pass the value which was set to ENABLED above to astdb. Otherwise we delete the key from astdb.

I dont have Callwaiting.class.php in my system. And more to it:

**/var/www/html# grep -R callwaiting_enable ***
gives no result

upgrade callwaiting…

It is not installed. But settings for it exist…

If you want to control call waiting in bulk or otherwise install the module. This is NOT a bug.

Ok, when I installed ‘Call waiting’, I found Callwaiting.class.php and ‘callwaiting_enable’.
Anyway I was confused, that callwaiting was enabled for extensions even when it was disabled in advanced settings. And when it was enabled - there was entry in astdb for that extension…