Also seeking help with extensions.conf


#1

the problem is that to dial long distance i have to enter 91(area code)(7 digit number) before picking up the handset or hitting speaker phone. enter the number completely then hit dial…

this isn’t needed for placing local calls however.

i think that the local outgoing calls context is intercepting the ld outgoing calls but don’t know how to fix this. or even know if thats the problem.

extensions.conf is copied below. please help. people are getting tired of me dropping their calls every time i reload on the console heh

thanks.

##-----------------------------------------------

;
; Static extension configuration file, used by
; the pbx_config module. This is where you configure all your
; inbound and outbound calls in Asterisk.
;

;
; The “General” category is for certain variables.
;
[general]
;
; If static is set to no, or omitted, then the pbx_config will rewrite
; this file when extensions are modified. Remember that all comments
; made in the file will be lost when that happens.
;
; XXX Not yet implemented XXX
;
static=yes
;
; if static=yes and writeprotect=no, you can save dialplan by
; CLI command ‘save dialplan’ too
;
writeprotect=no

; You can include other config files, use the #include command (without the ‘;’)
; Note that this is different from the “include” command that includes contexts within
; other contexts. The #include command works in all asterisk configuration files.
;#include “filename.conf”

; The “Globals” category contains global variables that can be referenced
; in the dialplan with ${VARIABLE} or ${ENV(VARIABLE)} for Environmental variable
; ${${VARIABLE}} or ${text${VARIABLE}} or any hybrid
;
[globals]
CONSOLE=Console/dsp; Console interface for demo
;CONSOLE=Zap/1
;CONSOLE=Phone/phone0
IAXINFO=guest; IAXtel username/password
;IAXINFO=myuser:mypass
TRUNK=Zap/g2; Trunk interface
TRUNKMSD=1; MSD digits to strip (usually 1 or 0)
;TRUNK=IAX2/user:pass@provider

;
; Any category other than “General” and “Globals” represent
; extension contexts, which are collections of extensions.
;
; Extension names may be numbers, letters, or combinations
; thereof. If an extension name is prefixed by a ‘_’
; character, it is interpreted as a pattern rather than a
; literal. In patterns, some characters have special meanings:
;
; X - any digit from 0-9
; Z - any digit from 1-9
; N - any digit from 2-9
; [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
; . - wildcard, matches anything remaining (e.g. _9011. matches
;anything starting with 9011 excluding 9011 itself)
;
; For example the extension _NXXXXXX would match normal 7 digit dialings,
; while _1NXXNXXXXXX would represent an area code plus phone number
; preceeded by a one.
;
; Contexts contain several lines, one for each step of each
; extension, which can take one of two forms as listed below,
; with the first form being preferred. One may include another
; context in the current one as well, optionally with a
; date and time. Included contexts are included in the order
; they are listed.
;
;[context]
;exten => someexten,priority,application(arg1,arg2,…)
;exten => someexten,priority,application,arg1|arg2…
;
; Timing list for includes is
;
; |||
;
;include => daytime|9:00-17:00|mon-fri||
;
; ignorepat can be used to instruct drivers to not cancel dialtone upon
; receipt of a particular pattern. The most commonly used example is
; of course ‘9’ like this:
;
ignorepat => 9
;
; so that dialtone remains even after dialing a 9.
;

;
; Here are the entries you need to participate in the IAXTEL
; call routing system. Most IAXTEL numbers begin with 1-700, but
; there are exceptions. For more information, and to sign
; up, please go to www.iaxtel.com
;
[iaxtel700]
exten => _91700NXXXXXX,1,Dial(IAX2/${IAXINFO}@iaxtel.com/${EXTEN:1}@iaxtel)

[iaxprovider]
;switch => IAX2/user:[key]@myserver/mycontext

[trunkint]
;
; International long distance through trunk
;
exten => _9011.,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9011.,2,Congestion

[trunkld]
;
; Long distance context accessed through trunk
;
exten => _91NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91NXXNXXXXXX,2,Congestion

[trunklocal]
;
; Local seven-digit dialing accessed through trunk interface
;
exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9NXXXXXX,2,Congestion

[trunktollfree]
;
; Long distance context accessed through trunk interface
;
exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91800NXXXXXX,2,Congestion
exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91888NXXXXXX,2,Congestion
exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91877NXXXXXX,2,Congestion
exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91866NXXXXXX,2,Congestion

[international]
;
; Master context for international long distance
;
ignorepat => 9
include => longdistance
include => trunkint

[longdistance]
;
; Master context for long distance
;
ignorepat => 9
include => local
include => trunkld

[local]
;
; Master context for local, toll-free, and iaxtel calls only
;
ignorepat => 9
include => default
include => parkedcalls
include => trunklocal
include => iaxtel700
include => trunktollfree
include => iaxprovider
;
; You can use an alternative switch type as well, to resolve
; extensions that are not known here, for example with remote
; IAX switching you transparently get access to the remote
; Asterisk PBX
;
; switch => IAX2/user:password@bigserver/local

[macro-stdexten];
;
; Standard extension macro:
; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
; ${ARG2} - Device(s) to ring
;
exten => s,1,Dial(${ARG2},20); Ring the interface, 20 seconds maximum
exten => s,2,Voicemail(u${ARG1}); If unavailable, send to voicemail w/ unavail announce
exten => s,3,Goto(default,s,1); If they press #, return to start
exten => s,102,Voicemail(b${ARG1}); If busy, send to voicemail w/ busy announce
exten => s,103,Goto(default,s,1); If they press #, return to start

[demo]
;
; We start with what to do when a call first comes in.
;
exten => s,1,Wait,1; Wait a second, just for fun
exten => s,2,Answer; Answer the line
exten => s,3,DigitTimeout,5; Set Digit Timeout to 5 seconds
exten => s,4,ResponseTimeout,10; Set Response Timeout to 10 seconds
exten => s,5,BackGround(demo-congrats); Play a congratulatory message
exten => s,6,BackGround(demo-instruct); Play some instructions

exten => 2,1,BackGround(demo-moreinfo); Give some more information.
exten => 2,2,Goto(s,6)

exten => 3,1,SetLanguage(fr); Set language to french
exten => 3,2,Goto(s,5); Start with the congratulations

exten => 1000,1,Goto(default,s,1)
;
; We also create an example user, 1234, who is on the console and has
; voicemail, etc.
;
exten => 1234,1,Playback(transfer,skip); “Please hold while…”
; (but skip if channel is not up)
exten => 1234,2,Macro(stdexten,1234,${CONSOLE})

exten => 1235,1,Voicemail(u1234); Right to voicemail

exten => 1236,1,Dial(Console/dsp); Ring forever
exten => 1236,2,Voicemail(u1234); Unless busy

;
; # for when they’re done with the demo
;
exten => #,1,Playback(demo-thanks); "Thanks for trying the demo"
exten => #,2,Hangup; Hang them up.

;
; A timeout and “invalid extension rule”
;
exten => t,1,Goto(#,1); If they take too long, give up
exten => i,1,Playback(invalid); “That’s not valid, try again”

;
; Create an extension, 500, for dialing the
; Asterisk demo.
;
exten => 500,1,Playback(demo-abouttotry); Let them know what’s going on
exten => 500,2,Dial(IAX2/guest@misery.digium.com/s@default); Call the Asterisk demo
exten => 500,3,Playback(demo-nogo); Couldn’t connect to the demo site
exten => 500,4,Goto(s,6); Return to the start over message.

;
; Create an extension, 600, for evaulating echo latency.
;
exten => 600,1,Playback(demo-echotest); Let them know what’s going on
exten => 600,2,Echo; Do the echo test
exten => 600,3,Playback(demo-echodone); Let them know it’s over
exten => 600,4,Goto(s,6); Start over

;
; Give voicemail at extension 8500
;
exten => 8500,1,VoicemailMain
exten => 8500,2,Goto(s,6)
;
; Here’s what a phone entry would look like (IXJ for example)
;
;exten => 1265,1,Dial(Phone/phone0,15)
;exten => 1265,2,Goto(s,5)

;[mainmenu]
;
; Example “main menu” context with submenu
;
;exten => s,1,Answer
;exten => s,2,Background(thanks); “Thanks for calling press 1 for sales, 2 for support, …”
;exten => 1,1,Goto(submenu,s,1)
;exten => 2,1,Hangup
;include => default
;
;[submenu]
;exten => s,1,Ringing; Make them comfortable with 2 seconds of ringback
;exten => s,2,Wait,2
;exten => s,3,Background(submenuopts); “Thanks for calling the sales department. Press 1 for steve, 2 for…”
;exten => 1,1,Goto(default,steve,1)
;exten => 2,1,Goto(default,mark,2)

[default]
;
; By default we include the demo. In a production system, you
; probably don’t want to have the demo there.
;
include => demo

; Real extensions would go here. Generally you want real extensions to be 4 or 5
; digits long (although there is no such requirement) and start with a single
; digit that is fairly large (like 6 or 7) so that you have plenty of room to
; overlap extensions and menu options without conflict. You can alias them with
; names, too and use global variables

;exten => 6275,1,Macro(stdexten,6275,${MARK}); assuming ${MARK} is something like Zap/2
;exten => mark,1,Goto(6275|1); alias mark to 6275
;exten => 6236,1,Macro(stdexten,6236,${WIL}); Ditto for wil
;exten => wil,1,Goto(6236|1)
;
; Some other handy things are an extension for checking voicemail via
; voicemailmain
;
;exten => 8500,1,VoicemailMain
;exten => 8500,2,Hangup
;
; Or a conference room (you’ll need to edit meetme.conf to enable this room)
;
;exten => 8600,1,Meetme,1234
;
; Or playing an announcement to the called party, as soon it answers
;
;exten = 8700,1,Dial(${MARK},30,A(/path/to/my/announcemsg))
;
; For more information on applications, just type “show applications” at your
; friendly Asterisk CLI prompt.
;
; 'show application ’ will show details of how you
; use that particular application in this file, the dial plan.
;
;-----------------------------------------------------;
;
; Classic Config Begins Here
;
[bellsouth]
; context for incoming calls from copper lines
exten => s,1,Answer
exten => s,n,Wait(2)
exten => s,n,Background(vm-extension)
exten => s,n,WaitExten(8)
exten => s,n,Playback(goodbye)
exten => s,n,Hangup

exten => _3XX,1,Dial(SIP/${EXTEN})
exten => _3XX,n,VoiceMail({EXTEN})

exten => 57,1,Dial(SIP/opuspage)

[sipclient]
; context for ip phones
; default “fallthrough” extension
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Background(vm-extension)
exten => s,n,WaitExten(10)
exten => s,n,Playback(goodbye)
exten => s,n,Hangup

; operator, goes to receptionist
exten => 100,1,Dial(IAX2/opupbx01:10xbpupo@172.16.8.1/${EXTEN}) ; sent to cltpbx

; outgoing calls to other opus sip clients
exten => _3XX,1,Dial(SIP/${EXTEN}|17) ; 3 digit number starting with 3 are SIP clients, and are called directly
exten => _3XX,n,VoiceMail(${EXTEN}) ; drop to voicemail after 10 s

; call NEC extensions
exten => _1XX,1,Dial(IAX2/opupbx01:10xbpupo@172.16.8.1/${EXTEN})

; outgoing calls to clt sip clients
; extensions starting with 4 or 5(tri) are routed to the clt server via IAX
exten => _4XX,1,VoiceMail(${EXTEN})
exten => _5XX,1,Dial(IAX2/opupbx01:10xbpupo@172.16.8.1/${EXTEN})

; local calls, outgoing
;exten => _9XXXXXXXXXX,1,Dial(IAX2/opupbx01:10xbpupo@172.16.8.1/${EXTEN}) ; dump call to first avail. copper line

exten => _9NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN})

; long distance, outgoing
exten => _91NXXNXXXXXX,1,Dial(IAX2/opupbx01:10xbpupo@172.16.8.1/${EXTEN}) ; dump call to first avail. copper line

; 911 handling
exten => 911,1,Dial(Zap/g1/${EXTEN}) ; dump 911 to analog line group

; voicemail
exten => 8500,1,VoiceMailMain(${CALLERIDNUM}) ; extension to access voicemail, passes callerID info
exten => 8500,n,Hangup ; drop the call for fall through

exten => 8501,1,VoiceMailMain ; same as above, but without passing originating extension

; NoOp extention for testing
exten => 888,1,Answer
exten => 888,n,NoOp(${CALLERIDNUM})
exten => 888,n,NoOp(${CALLERIDNAME})
exten => 888,n,NoOp(${SIPCALLID})

;paging
exten => 56,1,Dial(IAX2/opupbx01:10xbpupo@172.16.8.1/${EXTEN}) ; charlotte paging, connect to cltpbx01 over IAX
exten => 57,1,Dial(SIP/opuspage) ; paging for opus, dials sip client registered as opuspage

; call pickup
exten => _6#XX,1,Dial(IAX2/opupbx01:10xbpupo@172.16.8.1/${EXTEN})

;
; context for taskforce copper lines

[taskforce]
; context for incoming calls from copper lines
exten => s,1,Dial(SIP/352&SIP/357|17) ; ring ext 352(stephanie) & 357(debbie)
exten => s,n,VoiceMail(357)
exten => s,n,Hangup


#2

As a suggestion, remove the 9 from your dialing.
for example:

[trunkld]
;
; Long distance context accessed through trunk
;
exten => _91NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})

change to
exten => _1NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN})
Here this patern is matched by starting with a 1

then you dial 1-432-555-1234 and * will dial out 1-432-555-1234

and:

[trunklocal]
;
; Local seven-digit dialing accessed through trunk interface
;
exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})

change to

exten => _NXXXXXX,1,Dial(${TRUNK}/${EXTEN})
This will match any thing that starts with 2-9.
Personaly I would be more direct for local.
Here in Atlanta I have 3 local dial plan strings like this:
(we have 10 digit dialing here)
exten => _404NXXXXXX,1,dial(${TRUNK}/${EXTEN})
exten => _679NXXXXXX,1,dial(${TRUNK}/${EXTEN})
exten => _770NXXXXXX,1,dial(${TRUNK}/${EXTEN})

Here only if the dial starts with 404,678 or 770 will it be matched.
and my LD is like above starting with _1