[asterisk-users] How do *you* test your changes to dialplans ruled by GotoIfTime?

Danny Nicholas danny at debsinc.com
Thu Dec 27 14:01:31 CST 2012


The "simplest" way to address this kind of change is to test it a week
(month) or so in advance on your test machine (we have VM's set up to mock
our live machines).  A protection against "last minute" changes is to have
this kind of thing controlled by variables so you can possibly even avoid
dialplan changes by controlling the variables with an AGI script.
In your case, the dialplan could have been written like this:
; Christmas
Exten => s,1,Set(christday=25)
Exten => s,n,Set(eveday=24)
Exten => s,n,Set(boxday=26)
Exten => s,n,Set(christmon=Dec)
Exten => s,n,set(christopen=9:30)
...
; exten =>
YYYY821192,n,GotoIfTime(${christopen}-${christclose},*,${christday},${christ
mon}?ivr-lightspeed-tech-early,s,1)
exten =>
YYYY821192,n,GotoIfTime(${eveopen}-${eveclose},*,${eveday},${christmon}?ivr-
lightspeed-day,s,1)
exten =>
YYYY821192,n,GotoIfTime(*,*,${christday},${christmon}?ivr-lightspeed-after-h
ours,s,1)
exten =>
YYYY821190,n,GotoIfTime(${boxopen}-${boxclose},*,${boxday},${christmon}?ivr-
lightspeed-day,s,1)

-----Original Message-----
From: asterisk-users-bounces at lists.digium.com
[mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Ernie Dunbar
Sent: Thursday, December 27, 2012 1:46 PM
To: asterisk-users at lists.digium.com
Subject: [asterisk-users] How do *you* test your changes to dialplans ruled
by GotoIfTime?

This past holiday weekend has resulted in some real groaners when it comes
to bugs in our dialplan, making obvious the need for some changes in our
procedures.

First, our hours of operation for Christmas Eve, Christmas, Boxing Day and
New Year's Eve had changed with little to no notice. Okay, fine, whatever, I
fix.

Our Christmas Eve hours (made worse by being Monday this year) dialplan was
broken by me misspelling the correct dialplan to go to. Then our Boxing Day
dialplan was broken when I copied and pasted the correct dialplan from one
similar extension number to the other, like this:

; Christmas
; exten =>
YYYY821192,n,GotoIfTime(9:30-14:00,*,25,dec?ivr-lightspeed-tech-early,s,1)
exten =>
YYYY821192,n,GotoIfTime(8:00-17:00,*,24,dec?ivr-lightspeed-day,s,1)
exten =>
YYYY821192,n,GotoIfTime(*,*,25,dec?ivr-lightspeed-after-hours,s,1)
exten =>
YYYY821190,n,GotoIfTime(9:00-18:00,*,26,dec?ivr-lightspeed-day,s,1)


then failed to notice the problem until it was too late. Of course, that
only applied on Boxing day and couldn't be noticed earlier, either.

I suppose the first problem where I misspelt the dialplan can be solved by
testing the dialplan in another extension and modifying the time to "now + 2
minutes". But how can I avoid stupid errors in the extension number, when
testing by definition requires that I change the extension number to and
fro?

This appears to  boil down to "always remember to test it at the time that
it becomes relevant". But if I was the kind of person who always remembered
to do things at the right time, then there would never be a need for
computers to do jobs like this in the first place.


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to
Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users




More information about the asterisk-users mailing list