Hello all, first post, need help. I'm running a complex asterisk 1.8 install
with five machines. I inherited it and don't fully understand it, nor the
deep mysteries of asterisk either. I would appreciate any insight you might
have. I scoured the 'net and the Digium wiki and my Google-Fu has failed me.
I've been asked to somehow prohibit transfers to extension 3232. It has to
be fully dialable from outside, as it is now. But they want to prevent people
calling other DIDs and being transferred to 3232. They want the clerks and other
people they're calling to tell them to hang up and redial the DID for 3232.
They want to be able to tell them that they CAN'T transfer them to that
extension. That extension is just an ordinary extension defined by FreePBX on
machine A. See below. Well, it's ordinary in that it was defined in the gui,
but there's no physical phone. It's just used to collect voicemail for a
legal purpose.
As I said, I inherited this system. I don't really know what to include in
this question, so I pasted anything I thought was relevant. You;ll have to tell
me if there's other config files you want to see.
I've written some VERY simple dialplan code, but need to be told where to
put it. So, here goes.
Four machines have FreePBX 2.9 front ends, the fifth is a bare asterisk install
(on machine "C").
At the same physical site as "C" is machine "A" which
handles users and phones for that site.
Other sites have machines Z, D, K to handle the phones local to them.
There's two more for the primary and failover IVR, and a subsidiary machine
for conference bridges and other minor functions.
There are (from the perspective of the "A" machine) IAX trunks to the
IVR machines, IAX trunks to Z, D, K, and "to-pstn-c" for machine C.
Machine "c" is connected to our PRIs but has no phones on it. Well,
not really. It does a few special things (in extensions.conf) like send calls to
our custom-written ACD queue program, send calls to our fax-to-print code, deal
with a few special numbers, etc. It prepends our local areacode to calls that
come in as 7-digit CLIDs. It checks if the call came in with a destination of
our main IVR, checks if it's in failover, sends it to the primary or
secondary IVR, etc.
It checks for a match against our two main DID ranges, and a few special ones:
(patterns slightly obfuscated below)
exten => _414abc32XX,1,NoOp(DID: ${EXTEN})
same => n,Goto(to-internal,${EXTEN:-4},1)
exten => _414def17XX,1,NoOP(DID: ${EXTEN})
same => n,Goto(to-internal,${EXTEN:-4},1)
exten => 414def1700,1,NoOp(Transit Plus)
same => n,Goto(1700-auto-attendant,aaentry,1)
exten => 414ghi4550,1,NoOp(Main Number)
same => n,Goto(4550-auto-attendant,aaentry,1)
exten => _X.,1,NoOp(Unknown DID: ${EXTEN})
same => n,Goto(4550-auto-attendant,aaentry,1)
exten => s,1,NoOP(No DID)
same => n,Goto(4550-auto-attendant,aaentry,1)
If there's no such DID defined, it dumps the call into our main
autoattendent, which is different from the IVR.
Right after the code above, it the [to-internal] context attempts a DUNDI lookup
on the number, and routes the call as appropriate.
AS FAR AS I CAN TELL, inbound calls are handed off to machine A, Z, D, and K, by
C, as appropriate. I think the original design was that all machines would route
calls to machine A, then A would send them to where they belonged. But ISTR
later defining meshed IAX2 trunks so that 4-digit calls could find their way to
or from A, Z, D, or K even if A was toes-up.
That's no help if machine C dies, because outbound calls to the PSTN have to
go through C.
On A, Z, D, and K, the FreePBX GUI writes the configuration files, but we do
have a BUNCH of stuff in extensions_custom.conf for special handling of various
things.
Thomas M. Peters | IT Specialist | tpeters at mcts.org
Desk: 414.343.1720 | Helpdesk: x3400 or helpdesk at mcts.org