[asterisk-users] Re: How to separate outgoing extens from
thecontexts from s
Yuan LIU
yliu11 at hotmail.com
Thu Feb 22 02:30:35 MST 2007
>From: Larry Alkoff <labradley at mindspring.com>
>Date: Wed, 21 Feb 2007 20:00:52 -0600
...
>"You should consider that if any channel, incoming line, etc can enter an
>extension context that it has the capability of accessing any extension
>within that context.
>
>Therefore, you should NOT allow access to outgoing or toll services in
>contexts that are accessible (especially without a password) from incoming
>channels "
>
>Doesn't that mean that
>1. I have to have context=toll-access]
>in any phone that can make toll calls
>2, There is no way to give access to all internal phones unless I violate
>voip-info's security directive above?
Not really. The voip-info warning is about "incoming channels". But
definition they exclude any of your internal phones. The key is to use a
one context for your phones and a different one for your incoming line.
For example, suppose all your internal phones are SIP phones, and you use an
FXO channel for incoming. Then your sip.conf would include
"context=toll-access" with all devices, but the general section would have
"context=incoming". Your zapata.conf would also include "context=incoming".
Your extensions.conf may look like:
[general]
sippy1=SIP/phone1; living room
sippy2=SIP/phone2; kitchen
sippy3=SIP/phone3; bedroom
sippy4=SIP/phone4; laundry room
[incoming]
exten => s,1,NoOp(no dialing out allowd)
exten => s,n,Answer()
exten => s,n,Background(press-1-for-living-room&press-2-for-kitchen&...)
exten => s,n,Dial(${sippy1}&${sippy3},15); ring living room and bedroom
first
exten => s,n,Dial(${sippy1}&${sippy3}&${sippy2}&${sippy4}); ring 'em all
exten => s,n,Hangup
exten => 1,1,Dial(${sippy1}); 1 is for living room
exten => 2,1,Dial(${sippy2}); 2 for kitchen
exten => 3,1,Dial(${sippy3}); 3 rings bedroom
exten => 4,1,Dial(${sippy4}); 4 rings laundry room
exten => 0,1,Dial(${sippy1}&${sippy3}&${sippy2}&${sippy4}); ring 'em all
[toll-access]
; allow toll access and internal calls
exten => _Z.,1,Dial(Zap/1/${EXTEN}); anything other than [0-4] will go to
toll
exten => _[0-4],1,Goto(incoming,${EXTEN},1); internal "extensions"
>Since I can give a password from sip.conf, is there an easy way to
>automatically give that password in calls made from my internal phones
>in such a way that external callers won't know the password even if they
>breach the system?
Once you separate the contexts, there is no need for internal password.
>How do people breach a system anyway? I've heard about hitting an
For example, if instead of separate contexts, your sip.conf has general
context and device context all in [default] (and zapata.conf has FXO channel
also in [default] context). Your [default] will look something like:
[default]
exten => s,1,Answer()
exten => s,n,Background(press-1-for-living-room&press-2-for-kitchen&...)
exten => s,n,Dial(${sippy1}&${sippy3},15); ring living room and bedroom
first
exten => s,n,Dial(${sippy1}&${sippy3}&${sippy2}&${sippy4}); ring 'em all
exten => s,n,Hangup
exten => _Z.,1,Dial(Zap/1/${EXTEN}); anything other than [0-4] will go to
toll
exten => 1,1,Dial(${sippy1}); 1 is for living room
exten => 2,1,Dial(${sippy2}); 2 for kitchen
exten => 3,1,Dial(${sippy3}); 3 rings bedroom
exten => 4,1,Dial(${sippy4}); 4 rings laundry room
exten => 0,1,Dial(${sippy1}&${sippy3}&${sippy2}&${sippy4}); ring 'em all
Now, some random SIP dialers on the net may land on your Asterisk SIP
address. This will invoke extension s at default. If the caller dials 1
during your announcement after Asterisk answers, only living room rings.
But if the caller starts to dial 011315158005, Asterisk will transfer to
that extension, which will be matched by _Z. and dials out from your FXO
(Zap/1). Even if you don't have a lengthy announcement like illustrated
above, there's still a possibility that Asterisk intercepts the toll number
the caller dials in between priorities before priorities in s extension.
Even if you don't use Answer at all, there's a possibility that Asterisk
intercepts the toll number after you hang up but before the dial plan is
taken to h priority. The less IVR functions you implement, the lower the
risk. But there's always this possibility.
This is my understanding. More knowledgeable please correct me if I'm
wrong.
Yuan Liu
>'*' as soon as the connection is made but don't understand it.
>Or much else apparently <g>.
>
>Larry
>
>--
>Larry Alkoff N2LA - Austin TX
>Using Thunderbird on Linux
More information about the asterisk-users
mailing list