[go: up one dir, main page]

0% found this document useful (0 votes)
84 views35 pages

Extension, Sip, Extensions - Custom

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views35 pages

Extension, Sip, Extensions - Custom

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 35

/etc/sysconfig/iptables

*filter

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:OUTPUT DROP [0:0]

-A INPUT -i lo -j ACCEPT

-A INPUT -i eth+ -m state --state RELATED,ESTABLISHED -j ACCEPT

#Acceso Red2, Vpn

-A INPUT -s 161.132.2.0/24 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 161.132.13.3 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 161.132.13.12 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 209.45.68.66 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 23.94.26.96 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

#Acceso OUT

-A INPUT -s 209.45.68.66 -i eth+ -j ACCEPT

-A INPUT -s 23.94.26.96 -i eth+ -j ACCEPT

-A INPUT -s 198.23.187.62 -i eth+ -j ACCEPT

-A INPUT -s 198.143.3.80 -i eth+ -j ACCEPT

-A INPUT -s 190.232.243.247 -i eth+ -j ACCEPT

-A INPUT -s 132.157.64.124 -i eth+ -j ACCEPT

-A INPUT -s 179.7.80.244 -i eth+ -j ACCEPT

-A INPUT -s 190.234.54.223 -i eth+ -j ACCEPT

-A INPUT -s 200.123.15.13 -i eth+ -j ACCEPT

-A INPUT -s 190.238.19.156 -i eth+ -j ACCEPT

-A INPUT -s 200.123.2.0/24 -i eth+ -j ACCEPT

-A INPUT -s 104.219.170.61 -i eth+ -j ACCEPT

-A INPUT -s 181.64.85.184 -i eth+ -j ACCEPT

#
#Conectividad Red Telefonia

-A INPUT -s 161.132.32.128/25 -i eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED -j


ACCEPT

-A INPUT -s 161.132.32.128/25 -i eth0 -p udp -m state --state NEW,RELATED,ESTABLISHED -j


ACCEPT

#Conectividad Red Telefonia externa

-A INPUT -s 161.132.32.4 -i eth0 -p udp -m udp --dport 5060 -j ACCEPT

-A INPUT -s 161.132.14.0/24 -i eth0 -p tcp -m tcp --dport 5060 -j ACCEPT

-A INPUT -s 161.132.32.4 -i eth0 -p udp -m udp --dport 10000:20000 -j ACCEPT

-A INPUT -s 161.132.14.0/24 -i eth0 -p udp -m udp --dport 10000:20000 -j ACCEPT

#Monitoreo snmp

-A INPUT -s 161.132.1.128 -i eth+ -p udp -m udp --dport 161 -j ACCEPT

-A INPUT -s 161.132.1.147 -i eth+ -p udp -m udp --dport 161 -j ACCEPT

#Munin

-A INPUT -s 161.132.7.130 -i eth+ -p tcp -m tcp --dport 4949 -j ACCEPT

#Monitoreo nrpe

-A INPUT -s 161.132.1.128 -i eth+ -p tcp -m tcp --dport 5666 -j ACCEPT

-A INPUT -s 161.132.1.147 -i eth+ -p tcp -m tcp --dport 5666 -j ACCEPT

#Acronis

-A INPUT -s 172.20.20.5 -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 172.20.20.5 -i eth1 -p tcp -m tcp --dport 9876 -j ACCEPT

#Ping(icmp)

-A INPUT -s 161.132.1.128 -p icmp -m icmp --icmp-type 8 -m state --state


NEW,RELATED,ESTABLISHED -j ACCEPT

-A INPUT -s 161.132.1.147 -p icmp -m icmp --icmp-type 8 -m state --state


NEW,RELATED,ESTABLISHED -j ACCEPT

-A INPUT -s 161.132.32.4 -p icmp -m icmp --icmp-type 8 -m state --state


NEW,RELATED,ESTABLISHED -j ACCEPT

-A INPUT -s 161.132.32.128/25 -p icmp -m icmp --icmp-type 8 -m state --state


NEW,RELATED,ESTABLISHED -j ACCEPT

#
#-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 2/sec -j ACCEPT

#-A INPUT -p icmp -m icmp --icmp-type 0 -m limit --limit 2/sec -j ACCEPT

#-A INPUT -p icmp -m icmp --icmp-type 5 -m limit --limit 2/sec -j ACCEPT

#-A INPUT -p icmp -m icmp --icmp-type 11 -m limit --limit 2/sec -j ACCEPT

#-A INPUT -p icmp -m icmp --icmp-type 3 -m limit --limit 2/sec -j ACCEPT

-A OUTPUT -o lo -j ACCEPT

-A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

#Conectividad Red Telefonia

-A OUTPUT -o eth0 -d 161.132.32.128/25 -j ACCEPT

#Conectividad Red Telefonia externa

-A OUTPUT -o eth0 -d 161.132.32.4 -j ACCEPT

-A OUTPUT -o eth0 -d 161.132.14.0/24 -j ACCEPT

#Storage

-A OUTPUT -o eth0 -d 161.132.12.3 -j ACCEPT

#Correo

-A OUTPUT -o eth0 -d 161.132.7.29 -p tcp --dport 25 -j ACCEPT

-A OUTPUT -o eth0 -d 161.132.8.44 -p tcp --dport 25 -j ACCEPT

-A OUTPUT -o eth0 -d 161.132.8.3 -p tcp --dport 25 -j ACCEPT

#DNS

-A OUTPUT -o eth0 -d 161.132.5.133 -p tcp --dport 53 -j ACCEPT

-A OUTPUT -o eth0 -d 161.132.5.133 -p udp --dport 53 -j ACCEPT

-A OUTPUT -o eth0 -d 161.132.1.133 -p tcp --dport 53 -j ACCEPT

-A OUTPUT -o eth0 -d 161.132.1.133 -p udp --dport 53 -j ACCEPT

#Agente ossec

-A OUTPUT -d 161.132.32.220 -o eth0 -p udp --dport 1514 -j ACCEPT

#Puerto NTP
#ntp-s1.cise.ufl.edu

-A OUTPUT -o eth0 -d 128.227.205.3 -p udp --dport 123 -j ACCEPT

#Yum

#-A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT

#-A OUTPUT -o eth0 -p tcp --dport 443 -j ACCEPT

#Ping

#-A OUTPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 2/sec -j ACCEPT

#-A OUTPUT -p icmp -m icmp --icmp-type 0 -m limit --limit 2/sec -j ACCEPT

#-A OUTPUT -p icmp -m icmp --icmp-type 5 -m limit --limit 2/sec -j ACCEPT

#-A OUTPUT -p icmp -m icmp --icmp-type 11 -m limit --limit 2/sec -j ACCEPT

#-A OUTPUT -p icmp -m icmp --icmp-type 3 -m limit --limit 2/sec -j ACCEPT

COMMIT

[root@pbx-agi1 ~]# vi /etc/sysconfig/iptables

*filter

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:OUTPUT DROP [0:0]

-A INPUT -i lo -j ACCEPT

-A INPUT -i eth+ -m state --state RELATED,ESTABLISHED -j ACCEPT

#Acceso Red2, Vpn

-A INPUT -s 161.132.2.0/24 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 161.132.13.3 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 161.132.13.12 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 209.45.68.66 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 23.94.26.96 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

#Acceso OUT

-A INPUT -s 209.45.68.66 -i eth+ -j ACCEPT


-A INPUT -s 23.94.26.96 -i eth+ -j ACCEPT

-A INPUT -s 198.23.187.62 -i eth+ -j ACCEPT

-A INPUT -s 198.143.3.80 -i eth+ -j ACCEPT

-A INPUT -s 190.232.243.247 -i eth+ -j ACCEPT

-A INPUT -s 132.157.64.124 -i eth+ -j ACCEPT

-A INPUT -s 179.7.80.244 -i eth+ -j ACCEPT

/etc/asterisk/extensions.conf

;--------------------------------------------------------------------------------;

; Do NOT edit this file as it is auto-generated by FreePBX. All modifications to ;

; this file must be done via the web gui. There are alternative files to make ;

; custom modifications, details at: http://freepbx.org/configuration_files ;

;--------------------------------------------------------------------------------;

; This file is part of FreePBX.

; FreePBX is free software: you can redistribute it and/or modify

; it under the terms of the GNU General Public License as published by

; the Free Software Foundation, either version 2 of the License, or

; (at your option) any later version.

; FreePBX is distributed in the hope that it will be useful,

; but WITHOUT ANY WARRANTY; without even the implied warranty of

; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

; GNU General Public License for more details.

; You should have received a copy of the GNU General Public License

; along with FreePBX. If not, see <http://www.gnu.org/licenses/>.

; Copyright (C) 2004 Coalescent Systems Inc (Canada)


; Copyright (C) 2006 Why Pay More 4 Less Pty Ltd (Australia)

; Copyright (C) 2007 Astrogen LLC (USA)

;--------------------------------------------------------------------------------;

;*****************************************************************************
**

; AUTO-GENERATED AND CUSOTM USER DIALPLAN INCLUDED HERE *

;*****************************************************************************
**

;--------------------------------------------------------------------------------;

; Customizations to this dialplan should be made in extensions_custom.conf

; See extensions_custom.conf.sample for an example.

; If you need to use [macro-dialout-trunk-predial-hook], [ext-did-custom], or

; [from-internal-custom] for example, place these in this file or they will get overwritten.

; WARNING ABOUT: #include extensions_override_freepbx.conf

; This include file is put first to allow the auto-generated dialplan in FreePBX

; to be overwritten if necessary. Overriding auto-generated dialplan should be done

; with extreme caution. In almost all cases any custom dialplan SHOULD be put in

; extensions_custom.conf which will not hurt a FreePBX generated dialplan. In some

; very rare and custom situations users may have a need to override what FreePBX

; automatically generates. If so anything in this file will do that. If you come up

; with situations where you need to modify the existing dialplan or macros, put it

; here.

#include extensions_override_freepbx.conf

#include extensions_additional.conf

#include extensions_custom.conf

;--------------------------------------------------------------------------------;
;*****************************************************************************
**

; DIALPLAN OPEN TO THE PUBLIC, USING INBOUND DIDS AND SIMILAR *

;*****************************************************************************
**

;-------------------------------------------------------------------------------

; from-digital:

; Context to set for PRI's and equivalent

[from-digital]

include => from-pstn

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; from-analog:

; Context to set for analog DAHDi cards and equivalent

[from-analog]

include => from-dahdi

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; from-trunk:

; Context is really just an aliax of from-pstn

[from-trunk]

include => from-pstn

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; from-pstn:
;

; Entry context for calls from the outside world to hit FreePBX

[from-pstn]

; Entry context for calls from the outside world to hit FreePBX

[from-pstn]

include => from-pstn-custom ; create this context in extensions_custom.conf to include


customizations

include => ext-did

include => ext-did-post-custom

include => from-did-direct

include => ext-did-catchall ; THIS MUST COME AFTER ext-did

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; from-pstn-e164-us:

; The context is designed for providers who send calls in e164 format and is

; biased towards NPA calls, callerid and dialing rules. It will do the following:

; DIDs in an NPA e164 format of +1NXXNXXXXXX will be converted to 10 digit DIDs

; DIDs in any other format will be delivered as they are, including e164 non NPA

; DIDs which means they will need the full format including the + in the inbound

; route.

; CallerID(number) presented in e164 NPA format will be trimmed to a 10 digit CID

; CallerID(number) presented in e164 non-NPA (country code other than 1) will be

; reformated from: +<CountryCode><Number> to 011<CountryCode><Number>

[from-pstn-e164-us]
exten => _+1NXXNXXXXXX/_+1NXXNXXXXXX,1,Set(CALLERID(number)=$
{CALLERID(number):2})

exten => _+1NXXNXXXXXX/_NXXNXXXXXX,2,Goto(from-pstn,${EXTEN:2},1)

exten => _+1NXXNXXXXXX/_+X.,1,Set(CALLERID(number)=011${CALLERID(number):1})

exten => _+1NXXNXXXXXX/_011X.,n,Goto(from-pstn,${EXTEN:2},1)

exten => _+1NXXNXXXXXX,1,Goto(from-pstn,${EXTEN:2},1)

exten => _[0-9+]./_+1NXXNXXXXXX,1,Set(CALLERID(number)=${CALLERID(number):2})

exten => _[0-9+]./_NXXNXXXXXX,n,Goto(from-pstn,${EXTEN},1)

exten => _[0-9+]./_+X.,1,Set(CALLERID(number)=011${CALLERID(number):1})

exten => _[0-9+]./_011X.,n,Goto(from-pstn,${EXTEN},1)

exten => _[0-9+].,1,Goto(from-pstn,${EXTEN},1)

exten => s/_+1NXXNXXXXXX,1,Set(CALLERID(number)=${CALLERID(number):2})

exten => s/_NXXNXXXXXX,n,Goto(from-pstn,${EXTEN},1)

exten => s/_+X.,1,Set(CALLERID(number)=011${CALLERID(number):1})

exten => s/_011X.,n,Goto(from-pstn,${EXTEN},1)

exten => s,1,Goto(from-pstn,${EXTEN},1)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; from-pstn-to-did:

; The context is designed for providers who send the DID in the TO: SIP header

; only. The format of this header is:

; To: <sip:2125551212@172.31.74.25>

; So the DID must be extracted between the sip: and the @, which this does

[from-pstn-toheader]

exten => _.,1,Goto(from-pstn,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------
; from-sip-external

; This context is the default SIP context unless otherwise changed in the SIP

; Settings module or other sip configuration locations. This context is hit by

; either anonymous SIP calls or mis-configured SIP trunks when the incoming call

; can not be matched with a SIP section.

[from-sip-external]

exten => _.,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})

exten => _.,n,Set(DID=${IF($["${EXTEN:1:2}"=""]?s:${EXTEN})})

exten => _.,n,Goto(s,1)

exten => s,1,GotoIf($["${ALLOW_SIP_ANON}"="yes"]?checklang:noanonymous)

exten => s,n(checklang),GotoIf($["${SIPLANG}"!=""]?setlanguage:from-trunk,${DID},1)

exten => s,n(setlanguage),Set(CHANNEL(language)=${SIPLANG})

exten => s,n,Goto(from-trunk,${DID},1)

exten => s,n(noanonymous),Set(TIMEOUT(absolute)=15)

exten => s,n,Answer

exten => s,n,Wait(2)

exten => s,n,Playback(ss-noservice)

exten => s,n,Playtones(congestion)

exten => s,n,Congestion(5)

exten => h,1,Hangup

exten => i,1,Hangup

exten => t,1,Hangup

;-------------------------------------------------------------------------------

;*****************************************************************************
**

; INTERNAL DIALPLAN, NOT OPEN TO THE PUBLIC WORLD *

;*****************************************************************************
**

;-------------------------------------------------------------------------------
; from-internal:

; Internal dialplan that most internal phones have access to

[from-internal]

include => from-internal-noxfer

include => from-internal-xfer

include => bad-number ; auto-generated

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; from-internal-noxfer:

; Place to put internal dialplan that should not be accessible during a blind

; transfer, this context will not be visible during such.

[from-internal-noxfer]

include => from-internal-noxfer-custom

include => from-internal-noxfer-additional ; auto-generated

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; from-internal-xfer:

; Place to put most internal dialplan, will be visible during normal calls and

; blind transfers.

[from-internal-xfer]

include => from-internal-custom

include => from-internal-additional ; auto-generated

exten => s,1,Macro(hangupcall)

exten => h,1,Macro(hangupcall)

;-------------------------------------------------------------------------------
;*****************************************************************************
**

; INTERNAL MACROS & SPECIAL CONTEXTS *

;*****************************************************************************
**

;-------------------------------------------------------------------------------

; from-did-direct:

; forces ext-findmefollow to take precedence over ext-local. Also exposed to

; the public side to allow an extension number to be used as an external DID

; without requiring inbound routes to be created, common in many PRI installations

; where the last 4 digits are used as the extnension and DIDs are delivered in

; 4 digit formats.

[from-did-direct]

include => ext-findmefollow

include => ext-local

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-dial:

; Rings one or more extensions. Handles things like call forwarding and DND

; We don't call dial directly for anything internal anymore.

; ARGS: $TIMER, $OPTIONS, $EXT1, $EXT2, $EXT3, ...

; Use a Macro call such as the following:

;
; Macro(dial,$DIAL_TIMER,$DIAL_OPTIONS,$EXT1,$EXT2,$EXT3,...)

[macro-dial]

exten => s,1,GotoIf($["${MOHCLASS}" = ""]?dial)

exten => s,n,SetMusicOnHold(${MOHCLASS})

exten => s,n(dial),AGI(dialparties.agi)

exten => s,n,NoOp(Returned from dialparties with no extensions to call and DIALSTATUS: $
{DIALSTATUS})

exten => s,n+2(normdial),Dial(${ds}) ; dialparties will set the priority to 10 if $ds is not null

exten => s,n,Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:$


{DIALSTATUS})})

exten => s,n,GosubIf($["${SCREEN}" != "" | "${DIALSTATUS}" = "ANSWER"]?${DIALSTATUS},1)

exten => s,20(huntdial),NoOp(Returned from dialparties with hunt groups to dial )

exten => s,n,Set(HuntLoop=0)

exten => s,n(a22),GotoIf($[${HuntMembers} >= 1]?a30) ; if this is from rg-group, don't strip
prefix

exten => s,n,NoOp(Returning there are no members left in the hunt group to ring)

; dialparties.agi has setup the dialstring for each hunt member in a variable labeled
HuntMember0, HuntMember1 etc for each iteration

; and The total number in HuntMembers. So for each iteration, we will update the CALLTRACE
Data.

exten => s,n+2(a30),Set(HuntMember=HuntMember${HuntLoop})

exten => s,n,GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $[$["${RingGroupMethod}" = "hunt" ]


| $["${RingGroupMethod}" = "firstavailable"] | $["${RingGroupMethod}" =
"firstnotonphone"]]]?a32:a35)

exten => s,n(a32),Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${HuntLoop} + 1])})

exten => s,n,Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT})

exten => s,n,Goto(s,a42)


;Set Call Trace for each hunt member we are going to call "Memory groups have multiple
members to set CALL TRACE For" hence the loop

exten => s,n(a35),GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $["${RingGroupMethod}" =


"memoryhunt" ]]?a36:a50)

exten => s,n(a36),Set(CTLoop=0)

exten => s,n(a37),GotoIf($[${CTLoop} > ${HuntLoop}]?a42) ; if this is from rg-group, don't strip
prefix

exten => s,n,Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${CTLoop} + 1])})

exten => s,n,Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT})

exten => s,n,Set(CTLoop=$[1 + ${CTLoop}])

exten => s,n,Goto(s,a37)

exten => s,n(a42),Dial(${${HuntMember}}${ds})

exten => s,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?ANSWER,1)

exten => s,n,Set(HuntLoop=$[1 + ${HuntLoop}])

exten => s,n,GotoIf($[$[$["foo${RingGroupMethod}" != "foofirstavailable"] & $["foo$


{RingGroupMethod}" != "foofirstnotonphone"]] | $["foo${DialStatus}" = "fooBUSY"]]?a46)

exten => s,n,Set(HuntMembers=0)

exten => s,n(a46),Set(HuntMembers=$[${HuntMembers} - 1])

exten => s,n,Goto(s,a22)

exten => s,n(a50),DBdel(CALLTRACE/${CT_EXTEN})

exten => s,n,Goto(s,a42)

; For call screening

exten => NOANSWER,1,Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM})

exten => NOANSWER,n,GotoIf($["${IVR_RETVM}" != "RETURN" | "${IVR_CONTEXT}" = ""]?bye)

exten => NOANSWER,n,Return

exten => NOANSWER,n(bye),Macro(hangupcall)

exten => TORTURE,1,Goto(app-blackhole,musiconhold,1)

exten => TORTURE,n,Macro(hangupcall)

exten => DONTCALL,1,Answer


exten => DONTCALL,n,Wait(1)

exten => DONTCALL,n,Zapateller()

exten => DONTCALL,n,Playback(ss-noservice)

exten => DONTCALL,n,Macro(hangupcall)

exten => ANSWER,1,Noop(Call successfully answered - Hanging up now)

exten => ANSWER,n,Macro(hangupcall,)

; make sure hungup calls go here so that proper cleanup occurs from call confirmed calls and
the like

exten => h,1,Macro(hangupcall)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-get-vmcontext:

; returns the user's voicemail context

[macro-get-vmcontext]

exten => s,1,Set(VMCONTEXT=${DB(AMPUSER/${ARG1}/voicemail)})

exten => s,2,GotoIf($["foo${VMCONTEXT}" = "foo"]?200:300)

exten => s,200,Set(VMCONTEXT=default)

exten => s,300,NoOp()

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-outisbusy:

; called if all trunks are busy. This macro is overwridden by the

; Outbound Route Messages module if installed and configured to provide

; better messages or choices of tones.


;

[macro-outisbusy]

exten => s,1,Progress

exten => s,n,Playback(all-circuits-busy-now,noanswer)

exten => s,n,Playback(pls-try-call-later,noanswer)

exten => s,n,Macro(hangupcall)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-dialout-trunk-predial-hook:

; this macro intentionally left blank so it may be safely overwritten for any custom

; requirements that an installation may have.

; the macro is called by macro-dialout-trunk just prior to making a Dial() attempt

; to a trunk.

; MACRO RETURN CODE: ${PREDIAL_HOOK_RET}

; if set to "BYPASS" then this trunk will be skipped

[macro-dialout-trunk-predial-hook]

exten => s,1,MacroExit()

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-user-logon:

; Used to log a user onto an adhoc device. Most of the work is done by
; user_login_out.agi AGI script

[macro-user-logon]

exten => s,1,Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)})

exten => s,n,Answer()

exten => s,n,Wait(1)

exten => s,n,GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1)

; get user's extension

exten => s,n,Set(AMPUSER=${ARG1})

exten => s,n,GotoIf($["${AMPUSER}" != ""]?gotpass)

exten => s,n(playagain),Read(AMPUSER,please-enter-your-extension-then-press-pound,,,4)

; get user's password and authenticate

exten => s,n,GotoIf($["${AMPUSER}" = ""]?s-MAXATTEMPTS,1)

exten => s,n(gotpass),GotoIf($["${DB_EXISTS(AMPUSER/${AMPUSER}/password)}" = "0"]?s-


NOUSER,1)

exten => s,n,Set(AMPUSERPASS=${DB_RESULT})

exten => s,n,GotoIf($[${LEN(${AMPUSERPASS})} = 0]?s-NOPASSWORD,1)

; do not continue if the user has already logged onto this device

exten => s,n,Set(DEVICEUSER=${DB(DEVICE/${CALLERID(number)}/user)})

exten => s,n,GotoIf($["${DEVICEUSER}" = "${AMPUSER}"]?s-ALREADYLOGGEDON,1)

exten => s,n,Authenticate(${AMPUSERPASS})

exten => s,n,AGI(user_login_out.agi,login,${CALLERID(number)},${AMPUSER})

exten => s,n,Playback(agent-loginok)

exten => s-FIXED,1,NoOp(Device is FIXED and cannot be logged into)

exten => s-FIXED,n,Playback(ha/phone)

exten => s-FIXED,n,SayDigits(${CALLERID(number)})

exten => s-FIXED,n,Playback(is-curntly-unavail&vm-goodbye)


exten => s-FIXED,n,Hangup ;TODO should play msg indicated device cannot be logged into

exten => s-ALREADYLOGGEDON,1,NoOp(This device has already been logged into by this user)

exten => s-ALREADYLOGGEDON,n,Playback(vm-goodbye)

exten => s-ALREADYLOGGEDON,n,Hangup ;TODO should play msg indicated device is already
logged into

exten => s-NOPASSWORD,1,NoOp(This extension does not exist or no password is set)

exten => s-NOPASSWORD,n,Playback(pbx-invalid)

exten => s-NOPASSWORD,n,Goto(s,playagain)

exten => s-MAXATTEMPTS,1,NoOp(Too many login attempts)

exten => s-MAXATTEMPTS,n,Playback(vm-goodbye)

exten => s-MAXATTEMPTS,n,Hangup

exten => s-NOUSER,1,NoOp(Invalid extension ${AMPUSER} entered)

exten => s-NOUSER,n,Playback(pbx-invalid)

exten => s-NOUSER,n,Goto(s,playagain)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-user-logoff:

; Used to log a user off of an adhoc device. Most of the work is done by

; user_login_out.agi AGI script

[macro-user-logoff]

exten => s,1,Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)})

exten => s,n,GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1)

exten => s,n,AGI(user_login_out.agi,logout,${CALLERID(number)})

exten => s,n(done),Playback(agent-loggedoff)


exten => s-FIXED,1,NoOp(Device is FIXED and cannot be logged out of)

exten => s-FIXED,n,Playback(an-error-has-occured&vm-goodbye)

exten => s-FIXED,n,Hangup ;TODO should play msg indicated device cannot be logged into

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-privacy-mgr:

; Privacy Manager Macro makes sure that any calls that don't pass the privacy manager are
presented

; with congestion since there have been observed cases of the call continuing if not stopped
with a

; congestion, and this provides a slightly more friendly 'sorry' message in case the user is

; legitimately trying to be cooperative.

; Note: the following options are configurable in privacy.conf:

; maxretries = 3 ; default value, number of retries before failing

; minlength = 10 ; default value, number of digits to be accepted as valid CID

[macro-privacy-mgr]

exten => s,1,Set(KEEPCID=${CALLERID(num)})

exten => s,n,GotoIf($["foo${CALLERID(num):0:1}"="foo+"]?CIDTEST2:CIDTEST1)

exten => s,n(CIDTEST1),Set(TESTCID=${MATH(1+${CALLERID(num)})})

exten => s,n,Goto(TESTRESULT)

exten => s,n(CIDTEST2),Set(TESTCID=${MATH(1+${CALLERID(num):1})})

exten => s,n(TESTRESULT),GotoIf($["foo${TESTCID}"="foo"]?CLEARCID:PRIVMGR)

exten => s,n(CLEARCID),Set(CALLERID(num)=)

exten => s,n(PRIVMGR),PrivacyManager(${ARG1},${ARG2})

exten => s,n,GotoIf($["${PRIVACYMGRSTATUS}"="FAILED"]?fail)

exten => s,n,GosubIf($["${CALLED_BLACKLIST}" = "1"]?app-blacklist-check,s,1)


exten => s,n,SetCallerPres(allowed_passed_screen); stop gap until app_privacy.c clears
unavailable bit

exten => s,PRIVMGR+101(fail),Noop(STATUS: ${PRIVACYMGRSTATUS} CID: ${CALLERID(num)} $


{CALLERID(name)} CALLPRES: ${CALLLINGPRES})

exten => s,n,Playback(sorry-youre-having-problems)

exten => s,n,Playback(goodbye)

exten => s,n,Playtones(congestion)

exten => s,n,Congestion(5)

exten => h,1,Hangup

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; default

; FreePBX does not use the default context. This context is used by asterisk when

; it has no other information provided and needs to deliver a call. Hitting this means

; there has been some sort of configuration error, or a potential bug somehwere.

; This context can be reached from either internal or external sources.

[default]

include => ext-local

exten => s,1,Playback(vm-goodbye)

exten => s,n,Noop(ERROR: FreePBX Does not use the [default] context, confguration error)

exten => s,n,Macro(hangupcall)

;-------------------------------------------------------------------------------

;*****************************************************************************
**

; DEPRECATED DIALPLAN - THESE WILL BE REMOVED, NOT USED BY FREEPBX *


;*****************************************************************************
**

;-------------------------------------------------------------------------------

; macro-fixcid: [DEPRECATED]

; For some reason, if I don't run setCIDname, CALLERID(name) will be blank in my AGI

[macro-fixcid]

exten => s,1,Set(CALLERID(name)=${CALLERID(name)})

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-rg-group: [DEPRECATED]

; Ring groups of phones

; ARGS: comma separated extension list

; 1 - Ring Group Strategy

; 2 - ringtimer

; 3 - prefix

; 4 - extension list

[macro-rg-group]

exten => s,1,Macro(user-callerid,SKIPTTL) ; already called from ringgroup

exten => s,2,GotoIf($["${CALLERID(name):0:${LEN(${RGPREFIX})}}" != "${RGPREFIX}"]?4:3) ;


check for old prefix

exten => s,3,Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}}) ; strip off old


prefix

exten => s,4,Set(RGPREFIX=${ARG3}) ; set new prefix

exten => s,5,Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)}) ; add prefix to callerid


name
exten => s,6,Set(RecordMethod=Group) ; set new prefix

exten => s,7,Macro(record-enable,${MACRO_EXTEN},${RecordMethod})

exten => s,8,Set(RingGroupMethod=${ARG1}) ;

exten => s,9,Macro(dial,${ARG2},${DIAL_OPTIONS},${ARG4})

exten => s,10,Set(RingGroupMethod='') ;

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-dialout: [DEPRECATED]

; dialout and strip the prefix

[macro-dialout]

exten => s,1,Macro(user-callerid,SKIPTTL)

exten => s,2,GotoIf($["${ECID${CALLERID(number)}}" = ""]?5) ;check for CID override for


exten

exten => s,3,Set(CALLERID(all)=${ECID${CALLERID(number)}})

exten => s,4,Goto(7)

exten => s,5,GotoIf($["${OUTCID_${ARG1}}" = ""]?7) ;check for CID override for trunk

exten => s,6,Set(CALLERID(all)=${OUTCID_${ARG1}})

exten => s,7,Set(length=${LEN(${DIAL_OUT_${ARG1}})})

exten => s,8,Dial(${OUT_${ARG1}}/${ARG2:${length}})

exten => s,9,Playtones(congestion)

exten => s,10,Congestion(5)

exten => s,109,Macro(outisbusy)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-dialout-default: [DEPRECATED]

; dialout using default OUT trunk - no prefix


;

[macro-dialout-default]

exten => s,1,Macro(user-callerid,SKIPTTL)

exten => s,2,Macro(record-enable,${CALLERID(number)},OUT)

exten => s,3,Macro(outbound-callerid,${ARG1})

exten => s,4,Dial(${OUT}/${ARG1})

exten => s,5,Playtones(congestion)

exten => s,6,Congestion(5)

exten => s,105,Macro(outisbusy)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-sayXXXX: [DEPRECATED]

; Text-To-Speech related macros

; These all follow common actions. First try to playback a file "tts/custom-md5"

; where "md5" is the md5() of whatever is going to be played. If that doesn't exist,

; try to playback using macro-tts-sayXXXXX (where XXXXX is text/digits/etc, same as

; the macro below). If that macro exits with MACRO_OFFSET=100, then it's done,

; otherwise, fallback to the default asterisk method.

;-------------------------------------------------------------------------------

; macro-saytext: [DEPRECATED]

; say text is purely for text-to-speech, there is no fallback

[macro-saytext]

exten => s,1,Noop(Trying custom SayText playback for "${ARG1}")

exten => s,n,Playback(tts/custom-${MD5(${ARG1})})

exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done)


; call tts-saytext. This should set MACRO_OFFSET=101 if it was successful

exten => s,n(tts),Macro(tts-saytext,${ARG1},${ARG2},${ARG3})

exten => s,n,Noop(No text-to-speech handler for SayText, cannot say "${ARG1}")

exten => s,n,Goto(done)

exten => s,tts+101,Noop(tts handled saytext)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-saynumber: [DEPRECATED]

; Say number is for saying numbers (eg "one thousand forty six")

[macro-saynumber]

exten => s,1,Noop(Trying custom SayNumber playback for "${ARG1}")

exten => s,n,Playback(tts/custom-${MD5(${ARG1})})

exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done)

; call tts-saynumber. This should set MACRO_OFFSET=101 if it was successful

exten => s,n(tts),Macro(tts-saynumber,${ARG1},${ARG2},${ARG3})

exten => s,n,SayNumber(${ARG1})

exten => s,n,Goto(done)

exten => s,tts+101,Noop(tts handled saynumber)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-saydigits: [DEPRECATED]

; Say digits is for saying digits one-by-one (eg, "one zero four six")

[macro-saydigits]

exten => s,1,Noop(Trying custom SayDigits playback for "${ARG1}")

exten => s,n,Playback(tts/custom-${MD5(${ARG1})})


exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done)

; call tts-saydigits. This should set MACRO_OFFSET=101 if it was successful

exten => s,n(tts),Macro(tts-saydigits,${ARG1},${ARG2},${ARG3})

exten => s,n,SayDigits(${ARG1})

exten => s,n,Goto(done)

;-------------------------------------------------------------------------------

include => from-pstn-custom ; create this context in extensions_custom.conf to include


customizations

include => ext-did

include => ext-did-post-custom

exten => s,n,Playback(tts/custom-${MD5(${ARG1})})

exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done)

; call tts-saynumber. This should set MACRO_OFFSET=101 if it was successful

exten => s,n(tts),Macro(tts-saynumber,${ARG1},${ARG2},${ARG3})


exten => s,n,SayNumber(${ARG1})

exten => s,n,Goto(done)

exten => s,tts+101,Noop(tts handled saynumber)

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; macro-saydigits: [DEPRECATED]

; Say digits is for saying digits one-by-one (eg, "one zero four six")

[macro-saydigits]

exten => s,1,Noop(Trying custom SayDigits playback for "${ARG1}")

exten => s,n,Playback(tts/custom-${MD5(${ARG1})})

exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done)

; call tts-saydigits. This should set MACRO_OFFSET=101 if it was successful

exten => s,n(tts),Macro(tts-saydigits,${ARG1},${ARG2},${ARG3})

exten => s,n,SayDigits(${ARG1})

exten => s,n,Goto(done)

;-------------------------------------------------------------------------------

/etc/asterisk/extensions_custom.conf

; This file contains example extensions_custom.conf entries.

; extensions_custom.conf should be used to include customizations

; to AMP's Asterisk dialplan.

; Extensions in AMP have access to the 'from-internal' context.

; The context 'from-internal-custom' is included in 'from-internal' by default

[macro-dialout-trunk-predial-hook]

exten => s,1,GotoIf($["${OUT_${DIAL_TRUNK}:4:4}" = "A2B/"]?custom-freepbx-a2billing,$


{OUTNUM},1:2)
exten => s,2,MacroExit

[custom-freepbx-a2billing]

exten => _X.,1,DeadAGI(a2billing1_9.php,${OUT_${DIAL_TRUNK}:8})

exten => _X.,n,Hangup()

[from-internal-custom]

exten => _7021[1-8]XX,1,Dial(SIP/1${EXTEN})

exten => _7021[1-8]XX,n,Voicemail(1{EXTEN},u)

exten => _7021[1-8]XX,n,Hangup

exten => _7023[6-9]XX,1,Dial(SIP/1${EXTEN})

exten => _7023[6-9]XX,n,Voicemail(1${EXTEN},u)

exten => _7023[6-9]XX,n,Hangup

exten => _7027[1-8]XX,1,Dial(SIP/1${EXTEN})

exten => _7027[1-8]XX,n,Voicemail(1${EXTEN},u)

exten => _7027[1-8]XX,n,Hangup

; custom-count2four,s,1 can be used as a custom target for

; a Digital Receptionist menu or a Ring Group

[custom-count2four]

exten => s,1,SayDigits(1234)

exten => s,2,Hangup

; custom-recordme,5678,1 can be used as a custom target for

; a Digital Receptionist menu or a Ring Group

[custom-recordme]

exten => 5678,1,Wait(2)

exten => 5678,2,Record(/tmp/asterisk-recording:gsm)

exten => 5678,3,Wait(2)


exten => 5678,4,Playback(/tmp/asterisk-recording)

exten => 5678,5,Wait(2)

exten => 5678,6,Hangup

[app-recordings-custom]

[app-calltrace-custom]

[app-calltrace-perform-custom]

[app-directory-custom]

[app-echo-test-custom]

[app-speakextennum-custom]

[app-speakingclock-custom]

[app-dialvm-custom]

[app-vmmain-custom]

[app-userlogonoff-custom]

[app-pickup-custom]

[app-zapbarge-custom]

[app-chanspy-custom]

[ext-test-custom]
[ext-did-0001-custom]

[ext-did-0002-custom]

[ext-did-custom]

[ext-did-catchall-custom]

[from-trunk-sip-sip.siptraffic.com-custom]

[from-trunk-sip-sip.calldaddy.com-custom]

[from-trunk-sip-voip.yftelperu.com-custom]

[macro-record-enable-custom]

[outbound-allroutes-custom]

[outrt-001-9_outside-custom]

[outrt-002-ldi-custom]

[outrt-003-rural-custom]

[app-blackhole-custom]

[bad-number-custom]

[macro-confirm-custom]
[macro-auto-confirm-custom]

[macro-auto-blkvm-custom]

[sub-pincheck-custom]

[macro-dialout-trunk-custom]

[macro-dialout-dundi-custom]

[macro-user-callerid-custom]

[macro-dialout-enum-custom]

[macro-outbound-callerid-custom]

[macro-agent-add-custom]

[macro-agent-del-custom]

[macro-systemrecording-custom]

[from-zaptel-custom]

[vm-callme-custom]

[macro-vm-custom]

[from-internal-additional-custom]

[ext-local]
[ext-findmefollow]

[from-pstn-custom]

[ext-did-post-custom]

[from-trunk-sip-198.143.3.80-custom]

[a2general-call1sec]

include => app-dialvm

exten => *97,1,Answer()

exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)

exten => *97,n,Hangup()

exten => _X.,1,Noop(${EXTEN})

exten => _X.,n,Wait(1)

exten => _X.,n,AGI(a2billing1_9.php,1)

exten => _X.,n,Hangup

[a2general-corp]

include => app-dialvm

exten => *97,1,Answer()

exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)

exten => *97,n,Hangup()

exten => _X.,1,Noop(${EXTEN})

exten => _X.,n,Wait(1)

exten => _X.,n,AGI(a2billing1_9.php,2)

exten => _X.,n,Hangup


[a2general-resd]

include => app-dialvm

exten => *97,1,Answer()

exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)

exten => *97,n,Hangup()

exten => _X.,1,Noop(${EXTEN})

exten => _X.,n,Wait(1)

exten => _X.,n,AGI(a2billing1_9.php,4)

exten => _X.,n,Hangup

[a2billing-did]

include => app-dialvm

exten => *97,1,Answer()

exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)

exten => *97,n,Hangup()

exten => _X.,1,Noop(${EXTEN})

exten => _X.,n,Wait(1)

exten => _X.,n,AGI(a2billing1_9.php,5,did)

exten => _X.,n,Voicemail(1{EXTEN},b)

exten => _X.,n,Hangup()

[a2general-1901]

exten => _1901.,1,Noop(${EXTEN})

exten => _1901.,n,Wait(1)


exten => _1901.,n,AGI(a2billing1_9.php,6)

exten => _1901.,n,Hangup

[a2billing-call]

include => a2general-call1sec

[a2billing-corp]

include => a2general-corp

[a2billing-resd]

include => a2general-resd

[a2billing-1901]

exten => s,1,NoOp(${CALLERID})

exten => s,n,GotoIf($["${CALLERID(num):0:4}" = "1901"]?a2general-1901,_1901.,1:a2billing-


did,*97,1)

exten => _1901.,1,Noop(${EXTEN})

exten => _1901.,n,Wait(1)

exten => _1901.,n,AGI(a2billing1_9.php,3)

exten => _1901.,n,Hangup

exten => _7021[1-8]XX,1,Dial(SIP/1${EXTEN}@voip.yachay.pe)

exten => _7021[1-8]XX,n,Voicemail(1${EXTEN},u)

exten => _7021[1-8]XX,n,Hangup

exten => _7023[6-9]XX,1,Dial(SIP/1${EXTEN}@voip.yachay.pe)

exten => _7023[6-9]XX,n,Voicemail(1${EXTEN},u)

exten => _7023[6-9]XX,n,Hangup

exten => _7027[1-8]XX,1,Dial(SIP/1${EXTEN}@voip.yachay.pe)

exten => _7027[1-8]XX,n,Voicemail(1${EXTEN},u)


exten => _7027[1-8]XX,n,Hangup

/etc/asterisk/sip_custom.conf

[sip_server_in-2]

type=friend

dtmfmode=RFC2833

host=161.132.32.214

canreinvite=no

context=a2billing-1901 ; Llamada se envia a este contexto en extensions.conf

insecure=very

nat=no

allow=all

[img]

disallow=all

type=friend

host=161.132.14.7

canreinvite=no

allow=all

nat=never

insecure=port,invite,very

qualify=yes

context=from-trunk-sip-img

[omega-movil]

disallow=all

type=peer

host=161.132.32.4

canreinvite=no

allow=all

qualify=2000
dtmfmode=rfc2833

context=from-trunk-sip-omega-movil

You might also like