Upgrade 3CX to v18 and get it hosted free!

PBX Do Not Disturb

Author image

PBX Do Not Disturb or DND functionality is the ability of a phone or client to ignore any incoming calls. This can be implemented in several ways.

  • Ringer Off or Ringer Mute. The call rings as normal but does not alert the user. The call is then handled by the method programmed in the no-answer event, such as sending the call to the voice mail system after 20 seconds of ringing.
  • Busy Mode. The phone is taken off-hook or sends a signal to the PBX stating it is busy, and not available for calls. The call is then handled by the method programmed in the busy event, such as forwarding to another free extension or to voice mail.
  • Mixed Mode. Some phone and PBX systems inplement a priority calling functionality. DND is activated on the phone. When a normal call comes in, it is handled by the Ringer Off or Busy Mode rules as stated above. Other users have the ability to mark a call as Priority, bypassing the DND mode and forcing the extension to ring. An example where this is used would be when a user is in an important meeting. She places her phone in DND mode, as to not be disturbed by everyday calls. A situation comes up where it is urgent to get in touch with her, even though she is using DND. The person attempting to call her hits the Priority Call button, which bypasses the DND and rings the phone. This does not turn off DND, and any other normal calls are still treated as such.

Some phone systems refer to DND as SAC or Send All Calls (to voice mail.) The functionality is the same, just under a different name.

In Asterisk, DND is usually controlled by dialing:

  • 78 to turn on Do Not Disturb mode and
  • 79 to turn off Do Not Disturb mode

This is implemented in FreePBX and a few other asterisk “packages”. For a vanilla configuration using SIP/IAX2/H323, the following config is usable:


; Enable DnD
exten => *78,1,Answer
exten => *78,n,Set(DB(SIP/DND/${CALLERID(num)})=1)
exten => *78,n,Playback(beep)
exten => *78,n,Wait(2)
exten => *78,n,Hangup
; Disable DnD
exten => *79,1,Answer
exten => *79,n,NoOp(${DB_DELETE(SIP/DND/${CALLERID(num)})})
exten => *79,n,Playback(beep)
exten => *79,n,Wait(2)
exten => *79,n,Hangup

And then wrap your call macro/sub around the following:


exten => s,4,Set(LOCAL(dnd)=${DB("SIP/DND"/${ext})})
...
exten => s,6,Gosubif($[${dnd}]?8:7)
exten => s,7,Dial(${dev},10)
exten => s,8,Gosub(menu,s,1(${ext}))

Check this page for what appears to be a comprehensive list of similar CLASS (Custom Local Area Signaling Services) codes.

See Also


Article Reviews

Write a Review

Your email address will not be published. Required fields are marked *

Required Field. Minimum 5 characters.

Required Field. Minimum 5 characters, maximum 50.

Required field.There is an error with this field.

Required Field.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

There are no reviews for this article. Be the first one to write a review.

Related Posts:

Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.