System-Wide Do-Not-Disturb

klmonson
Posts: 6
Member Since:
2006-09-08

Hi all,

OK, this is what I am looking for ...
Scenario, 6:15 dinner is on the table, I would like to pick up 1 extension (I have 5 in the house), dial a featurecode (*XX) and have the system route ALL incoming calls to the voicemail until I dial the cancel featurecode. The deluxe version would be to dial the featurecode + minutes (*XXnn) to enable DND and revert to normal operations after the timer expires. Possible? Any examples that I can use to get started?

Thanks



phpfreak
Posts: 8
Member Since:
2006-09-26
Re: System-Wide Do-Not-Disturb

Why not just use a Time Condition? I know its not as flexible to use, but its definitely an option.

I do like the idea though, lets say we're having an office meeting. It would be nice to do as you described.



klmonson
Posts: 6
Member Since:
2006-09-08
Re: System-Wide Do-Not-Disturb

I do have a day and night mode defined in Time Conditions, was just looking for a way to handle impromptu events.



revco
Posts: 516
Member Since:
2006-09-04
Re: System-Wide Do-Not-Disturb

Just worked through this one out of interest...it was pretty easy...just used the DND apps in "extensions_additional.conf" as my setup guide.

A time condition won't really work for this application because "dinner time" might come at variable times. Unless you want to reprogram Asterisk every time you want to eat dinner, it's just not practical.

Here you go, extensible as necessary. It works on my system perfectly. Insert this into the file, "extensions_custom.conf":

Quote:
[app-dnd-on-custom]
;Begin custom multi-extension dnd on app
exten => *14,1,Answer
exten => *14,n,Wait(1)
exten => *14,n,Set(DB(DND/1260)=YES)
exten => *14,n,Set(DB(DND/1265)=YES)
exten => *14,n,SayDigits(1260)
exten => *14,n,Playback(and)
exten => *14,n,SayDigits(1265)
exten => *14,n,Playback(do-not-disturb&activated)
exten => *14,n,Macro(hangupcall,)
;end

[app-dnd-off-custom]
;begin custom multi-extension dnd off app
exten => *15,1,Answer
exten => *15,n,Wait(1)
exten => *15,n,dbDel(DND/1260)
exten => *15,n,dbDel(DND/1265)
exten => *15,n,SayDigits(1260)
exten => *15,n,Playback(and)
exten => *15,n,SayDigits(1265)
exten => *15,n,Playback(do-not-disturb&de-activated)
exten => *15,n,Macro(hangupcall,)
;end

This will enable *14 to turn on DND on multiple extensions (1260 & 1265 in my case) and *15 will disable DND for those extensions.

To modify this for your application, simply change and add additional fields to reflect your extesions in each app (my test extensions are 1260 & 1265):

exten => *14,n,Set(DB(DND/1260)=YES)
exten => *14,n,Set(DB(DND/1265)=YES)

exten => *15,n,dbDel(DND/1260)
exten => *15,n,dbDel(DND/1265)

And then modify the text-to-speech as necessary to suit your likings. Obviously you will change/add the numbers to reflect your extensions (once again, my test extensions are 1260 & 1265):

exten => *14,n,SayDigits(1260)
exten => *14,n,Playback(and)
exten => *14,n,SayDigits(1265)

exten => *15,n,SayDigits(1260)
exten => *15,n,Playback(and)
exten => *15,n,SayDigits(1265)

It's important to note that the database manipulation occurs BEFORE the text to speech readback. This insures that one can safely hang up the phone once they hear the TTS and know that the DND database has properly been modified for all applicable extensions.

Your "perfect scenario" is a bit beyond my grasp...but I would look into how callback functionality works to get a clue. It might use the same principles...but I'm still learning how to set, manipulate & hopefully pass variables.

Anyway...hope that helps...if you have any questions, fire away....



BobH
Posts: 223
Member Since:
2006-05-31
Re: System-Wide Do-Not-Disturb

Here is what I use to turn an auto attendant on/off it could be easily modified to just send everything to VM or whatever.

In freePBX I send my inbound route to a custom app with this

custom-daymode,s,1

I then put this in extensions_custom.conf

[custom-daymode]
exten => s,1,gotoif($[${DB(daynightmode/currentmode} = daymode]?ext-group,1000,1:ivr-2,s,1)

[custom-day-night-mode]
exten => *28,1,Answer()
exten => *28,2,Set(daynightmode=${DB(daynightmode/currentmode})
exten => *28,3,gotoif($[${daynightmode} = daymode]?30:20)

exten => *28,20,Set(DB(daynightmode/currentmode)=daymode)
exten => *28,21,Playback(day&reception&enabled)
exten => *28,22,Hangup()

exten => *28,30,Set(DB(daynightmode/currentmode)=nightmode)
exten => *28,31,Playback(day&reception&disabled)
exten => *28,32,Hangup()

Then put this under [from-internal-custom] in extensions_custom.conf

include => custom-day-night-mode

You will have to change the "ext-group,1000,1:ivr-2,s,1" to be where you want to go if it is enabled (I use a ring group "ext-group,1000,1") or if it is disabled (My Nighttime IVR "ivr-2,s,1") For an extension it would be "ext-local,1001,1" if your extention is 1001.

Then to enable or disable the IVR just dial *28 and it will toggle between on or off and tell you the status.



klmonson
Posts: 6
Member Since:
2006-09-08
Re: System-Wide Do-Not-Disturb

Wow,

you guys are amazing. :)

Thanks, that will work nicely.

Maybe I should think up something more difficult next time.



volvo740
Posts: 29
Member Since:
2006-06-10
Re: System-Wide Do-Not-Disturb

It's Fantastic!!!!!

How i can pass queue 200 instead of ringroup 1000, and pass time conditions instead IVR-2?

Very Thanks!

Bruno.

EDIT: I find it, ext-queue2,200,1 and timeconditions,1,1



ghannelais
Posts: 13
Member Since:
2007-02-18
Re: System-Wide Do-Not-Disturb

Pretty good! Thanks to all!

Now something practical:
I have some Linksys 942 phones. Is there a way to know if DND or NIGHT routing is on from the phone set?
For example, having a LED activated on the telephone set?
Or the Free PBX panel indicating the extension has been set to DND?
Or another idea?



alexis
Posts: 54
Member Since:
2006-05-31
This is a brilliant and

This is a brilliant and simple implementation of a very needed function. It would be useful for a business closed for lunch or an unpredictable staff meeting, etc. The main downside, the secretary who used this function, may forget to turn it back on. It would be nice to have some sort of indicator on the phone itself (fast blinking LED or like) to notify staff they are in night mode. I guess, it would be phone dependent and hard to implement.

Another idea that should work for phones supporting XML microbrowser (Polycom, Aastra, Cisco, etc) would be to change a status of the displayed page. I know Polycoms allow to view microbrowser instead of the logo (mb.idleDisplay.home tag in sip.cfg).

It would take somebody with knowledge of how to manipulate webserver with phone commands to accomplish that. Would somebody please volunteer to do that? :)

alexis



GSnover
Posts: 1432
Member Since:
2006-11-19
Perhaps a simpler solution

Our business hours are 8:00 to 4:30, Monday through Friday, so outside of those times, it goes straight to the Night Attendant (IVR). During the day, the time condition routes our incoming calls to Queue 500, which is set up to only allow people to join the queue if Agents are logged in. Otherwise, it goes straight to the Day Attendant (IVR).

So, if my live person is there, she joins Queue 500, and she get's the incoming calls. If she is busy, I can sit down and join Queue 500 also, and now we are both getting calls, but if she needs to go out and do training (she is our CSR), all she needs to do is sign out of the Queue and the calls are back to the Day Main IVR. We also have a 30-Second timeout on the Queue in case she jumps up and forgets to sign out of the Queue.

This method always has our phones covered, and works well. Also, you can glance in the Flash Operator Panel and see who is logged into a Queue (Their gum drop turns Yellow).

Greg



alexis
Posts: 54
Member Since:
2006-05-31
Greg, your idea is good. It

Greg, your idea is good. It allows for the monitoring of the agent via FOP or HUD. However, not every business would like to monitor the status of their phone system via computer. I find many prefer to just look at the phone to see who is on the phone, etc.

I think the most universal solution would be to allow users see the status of the few needed features via phone browser. This will work with most high end phones, which have XHTML browsers, in particular Polycoms 5xx-6xx series.

It can probably be done relatively easy for somebody who knows php.

alexis



GSnover
Posts: 1432
Member Since:
2006-11-19
I am working on the Microbrowser for a couple of Customers

But the documentation is not too good - this would be a cool status to have there. Anyone who knows of a good documentation source, please post.

Greg



kerryg
Posts: 6793
Member Since:
2006-05-31
Once people start using

Once people start using HUDlite, they find they can't believe how much they like it. It may seem awkward at first to interface your computer to your phone but once you start using it and realize how powerful it is, you can never go back.

--

Kerry Garrison
http://www.VoipStore.com - http://3cxbook.com
(888) VOIPSTORE - (888) 864-7786



alexis
Posts: 54
Member Since:
2006-05-31
HUDlite is a must in a

HUDlite is a must in a larger setting or for a busy receptionist. For a small install (like doctor's office) it would be helpful to have certain limited info right on the phone. The feature at the beginning of this thread is very useful in doctor's office where a press of the button can forward all the calls to "service." And if the phone reflects this status change, it makes it simpler for people who do not necessarily sit in fron of their desks.

alexis



techieg
Posts: 279
Member Since:
2006-06-13
Custom App

I am running Trixbox 2.2 . What I actually need is the ability for any incoming client to be able to (amongst other options) push 6 to go to a custom app where he will be asked to enter his party's extension (4 digits). I currently have custom-extensions,s,1 to access the custom app in extensions_custom.conf which reads;
[custom-extensions]
exten=>s,1,DigitTimeout(10)
exten=>s,2,Set(TIMEOUT(absolute)=240)
exten=>s,3,Wait(1)
exten=>s,4,SetMusicOnHold(default)
exten=>s,5,Background(plz_enter_partys_ext)
exten=>s,6,Read(EXTEN,,4)
exten=>s,7,Dial(SIP/${EXTEN},30,m)
exten=>s,8,Voicemail,u${EXTEN}@default
exten=>s,9,Playback(invalid)
exten=>s,10,Goto,s|3
exten=>s,11,Background(r-u-still-there-partys-ext)
exten=>s,12,Goto,s|3
exten=>t,1,Goto,s|10

exten=>_XXXX,1,Dial(SIP/${EXTEN},30)
exten=>_XXXX,2,Voicemail,u${EXTEN}@default
exten=>*86,1,VoicemailMain,101 ;To check your voicemail by dialing *86
exten=>9999,1,VoicemailMain,101 ;To check your voicemail by dialing 9999
exten=>9,1,Goto(from-pstn|s|4) ;Return to main menu options

First issue is that plz_enter_partys_ext does not seem to play in the custom app even thpugh it is in GSM format (while it plays though IVR). The other issue is that I cannot seem to be able to dial any four-digit extension, it comes up with; "I am sorry that is not a valid extension." I had it working in Asterisk but I am finding it to be much different in Trixbox.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.