Voice-Over-IP NEWBIE HELP asterisk@home + Broadvoice setup

Bookmark this page:  YahooMyWeb Yahoo!  Google Google  Windows Live Favorites Windows Live  del.icio.us del.icio.us  digg digg  Add to Netscape Netscape
Subject Author Date
NEWBIE HELP asterisk@home + Broadvoice setup estropelic 07-11-05
Posted by estropelic on July 11, 2005, 2:20 pm
Please log in for more thread options


Hello Guys,

I'm somewhat of a newbie and am desperately seeking for some
help...

I've managed to get asterisk up and running on my server, and signed
up
with a broadvoice account...

I'm having no problem dialing and communicating
between extensions,
but whenever anyone tries to call my broadvoice account,
they are
greeted by no ring or anything, but rather simply a direct to
voicemail...

Also, the most annoying is when I try to place an outside call...

At that point, if the call is to a regular phone number, I'll get a
message
asking me to enter my password... followed by pound...

Any idea, how I can
resolve this issue? I feel like i'm very close to
getting this thing working,
but I'm pretty frustrated because I don't
know what to edit or change at this
point...

Below is my configurational files..
+++++++++++++++++++++++++++++++++++++

; Note: If your SIP devices are behind a
NAT and your Asterisk
; server isn't, try adding "nat=1" to each peer
definition to
; solve translation problems.

[general]
externip=69.165.XXX.XXX
localnet=192.168.1.105/255.255.255.0

port = 5060 ; Port to bind to
(SIP is 5060)
bindaddr = 0.0.0.0 ; Address to bind to (all addresses on
machine)
disallow=all
allow=ulaw
allow=alaw
context = from-sip-external ; Send
unknown SIP callers to this
context
callerid = Unknown

register =>
3055741428@sip.broadvoice.com:MYSECRETPASS:3055741428@sip.broadvoice.com/200

[sip.broadvoice.com]
type=peer
;Enter your closest proxy server
host=proxy.mia.broadvoice.com
fromdomain=sip.broadvoice.com
fromuser=3055741428
secret=MYSECRETPASS
context=from-broadvoice
;Disable canreinvite if you are
behind a NAT
canreinvite=no
;Don't try to authenticate on incoming calls
insecure=very


#include sip_nat.conf
#include sip_custom.conf
#include
sip_additional.conf


+++++ EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS+++++
EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS+++++
EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS+++++
EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++ EXTENSIONS+++++
EXTENSIONS



; Asterisk Management Portal (AMP)
; Copyright (C) 2004 Coalescent
Systems Inc

; dialparties.agi (http://www.sprackett.com/asterisk/)
;
Asterisk::AGI (http://asterisk.gnuinter.net/)
; gsm
(http://www.ibiblio.org/pub/Linux/utils/compress/!INDEX.short.html)
; loligo
sounds (http://www.loligo.com/asterisk/sounds/)
; mpg123
(http://voip-info.org/wiki-Asterisk+config+musiconhold.conf)


; include
extension contexts generated from AMP
#include extensions_additional.conf

;
Customizations to this dialplan should be made in
extensions_custom.conf
; See
extensions_custom.conf.sample for an example
#include extensions_custom.conf

[from-trunk]                                                        ; just an alias since VoIP shouldn't be called
PSTN
include
=> from-pstn

[from-pstn]
include => from-pstn-custom ;
create this
context in extensions_custom.conf to include customizations
include
=> ext-did
include => from-pstn-timecheck ; this has to be included
otherwise it overrides ext-did

[from-pstn-timecheck]
exten => .,1,Goto(s,1)                ;
catch-all matching for calls that have
DID info (if a DID route hasn't matched
them)
exten => s,1,GotoIf($[$ =
forcereghours]?from-pstn-reghours,s,1:)
exten => s,2,GotoIf($[$ =
forceafthours]?from-pstn-afthours,s,1:)
exten =>
s,3,GotoIfTime($|$|*|*?from-pstn-reghours,s,1:)
exten =>
s,4,Goto(from-pstn-afthours,s,1)

[from-pstn-reghours]
exten =>
s,1,GotoIf($[$ =
disabled]?from-pstn-reghours-nofax,s,1:2)        ; if fax
detection is
disabled, then jump to from-pstn-nofax - else continue
exten =>
s,2,Answer        
exten => s,3,Wait(1)
exten => s,4,SetVar(intype=$)
exten
=> s,5,Cut(intype=intype,-,1)
exten => s,6,GotoIf($[$ = EXT]?7:9)                ; If
INCOMING starts
with EXT, then assume its an extension
exten => s,7,Wait(3)
                                                        ;wait 3 more second to make sure this
isn't a fax before dialing someone
exten => s,8,Goto(ext-local,$,1)
exten => s,9,GotoIf($[$ =
GRP]?10:12)         ; If INCOMING starts
with GRP, then assume its a ring group
exten
=> s,10,Wait(3)
exten => s,11,Goto(ext-group,$,1)
exten =>
s,12,GotoIf($[$ = QUE]?13:15)
exten => s,13,Wait(3)
exten =>
s,14,Goto(ext-queues,$,1)
exten => s,15,Goto($,s,1)                         ;
not EXT or GR1 - it's an
auto attendant
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => h,1,Hangup

[from-pstn-reghours-nofax]
exten =>
s,1,SetVar(intype=$)
exten => s,2,Cut(intype=intype,-,1)
exten =>
s,3,GotoIf($[$ = EXT]?4:5)                ; If INCOMING starts
with EXT, then assume
its an extension
exten => s,4,Goto(ext-local,$,1)
exten =>
s,5,GotoIf($[$ = GRP]?6:7)         ; If INCOMING starts
with GRP, then assume
its a ring group
exten => s,6,Goto(ext-group,$,1)
exten =>
s,7,GotoIf($[$ = QUE]?8:11) ;queue
exten => s,8,Answer                                                 ;
answer call before queue
exten => s,9,Wait(1)
exten =>
s,10,Goto(ext-queues,$,1)
exten => s,11,Answer                                                 ; answer
call before auto
attendant
exten => s,12,Wait(1)                                                        
exten =>
s,13,Goto($,s,1)                                 ; not EXT or GR1 - it's an
auto attendant
exten
=> fax,1,Goto(ext-fax,in_fax,1)
exten => h,1,Hangup

[from-pstn-afthours]
exten
=> s,1,GotoIf($[$ =
disabled]?from-pstn-afthours-nofax,s,1:2)        ; if fax
detection is
disabled, then jump to from-pstn-nofax - else continue
exten =>
s,2,Answer        
exten => s,3,Wait(1)
exten => s,4,SetVar(intype=$)
exten => s,5,Cut(intype=intype,-,1)
exten => s,6,GotoIf($[$ =
EXT]?7:9)                ; If INCOMING starts
with EXT, then assume its an extension
exten =>
s,7,Wait(3)                                                         ;wait 3 more second to make sure this
isn't a fax before
dialing someone
exten => s,8,Goto(ext-local,$,1)
exten =>
s,9,GotoIf($[$ = GRP]?10:12)         ; If INCOMING starts
with GRP, then assume
its a ring group
exten => s,10,Wait(3)
exten =>
s,11,Goto(ext-group,$,1)
exten => s,12,GotoIf($[$ =
QUE]?13:15)
exten => s,13,Wait(3)
exten =>
s,14,Goto(ext-queues,$,1)
exten =>
s,15,Goto($,s,1)                         ; not EXT or GR1 -
it's an auto attendant
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => h,1,Hangup

[from-pstn-afthours-nofax]
exten => s,1,SetVar(intype=$)
exten
=> s,2,Cut(intype=intype,-,1)
exten => s,3,GotoIf($[$ = EXT]?4:5)                ; If
INCOMING starts
with EXT, then assume its an extension
exten =>
s,4,Goto(ext-local,$,1)
exten => s,5,GotoIf($[$ =
GRP]?6:7)         ; If INCOMING starts
with GRP, then assume its a ring group
exten =>
s,6,Goto(ext-group,$,1)
exten => s,7,GotoIf($[$ =
QUE]?8:11) ;queue
exten => s,8,Answer                                                 ; answer call before queue
exten => s,9,Wait(1)
exten => s,10,Goto(ext-queues,$,1)
exten
=> s,11,Answer                                                 ; answer call before auto
attendant
exten =>
s,12,Wait(1)                                                        
exten => s,13,Goto($,s,1)                                 ; not EXT or
GR1 -
it's an auto attendant
exten => fax,1,Goto(ext-fax,in_fax,1)
exten =>
h,1,Hangup

;
############################################################################
;
Macros [macro]
;
############################################################################

;
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($[ "$" = "macro-rg-group" ]?4:2)
; if this is from
rg-group, don't strip prefix
exten =>
s,2,GotoIf($[$)}} !=
$]?4:3) ; check
for ring-group prefix
exten =>
s,3,SetCIDName($)}}) ;
strip off prefix
exten =>
s,4,AGI,dialparties.agi
exten => s,5,NoOp(Returned from dialparties with no
extensions to
call)
exten => s,6,SetVar(DIALSTATUS=BUSY)
exten =>
s,10,Dial($) ;
dialparties will set the
priority to 10 if $ds is not null

; Ring an extension, if the extension is busy
or there is no answer
send it
; to voicemail
; ARGS: $VMBOX, $EXT
[macro-exten-vm]
exten => s,1,Setvar(FROMCONTEXT=exten-vm)
exten =>
s,2,Macro(record-enable,$,IN)
exten =>
s,3,Macro(dial,$,$,$)
exten =>
s,4,GotoIf($[$ = Local]?s-$,1) ;
if the channel is
Local, then do not go to voicemail. This is
primarily to avoid vm for
call-forwarded extensions in ring groups
exten => s,5,GotoIf($[$ =
novm]?s-$,1) ; no
voicemail in use for this extension
exten =>
s,6,NoOp(Sending to Voicemail box $)
exten =>
s,7,Macro(vm,$,$)
exten => s-BUSY,1,NoOp(Extension is
reporting BUSY and has no
Voicemail)
exten => s-BUSY,2,Busy()
exten =>
s-BUSY,3,Wait(60)
exten => s-BUSY,4,NoOp()
exten => _s-.,1,Congestion()

[macro-vm]
exten => s,1,Goto(s-$,1)
exten => s-BUSY,1,Voicemail(b$)
; Voicemail Busy message
exten => s-BUSY,2,Hangup()
exten =>
_s-.,1,Voicemail(u$) ; Voicemail Unavailable
message
exten =>
_s-.,2,Hangup()
exten => o,1,Background(one-moment-please) ; 0 during vm
message will hangup
exten => o,2,GotoIf($["foo$" =
"foo"]?from-pstn,s,1:from-pstn,$,1)
exten =>
a,1,VoiceMailMain($)
exten => a,2,Hangup

; For some reason, if I don't
run setCIDname, CALLERIDNAME will be
blank in my AGI
; ARGS: none
[macro-fixcid]
exten => s,1,SetCIDName($)

; Ring groups of phones
; ARGS: comma
separated extension list
; 1 - ringtimer
; 2 - preifx
; 3 - extension list
[macro-rg-group]
exten => s,1,GotoIf($[$)}} !=
$]?3:2) ; check for old prefix
exten =>
s,2,SetCIDName($)}}) ;
strip off old prefix
exten
=> s,3,Setvar(RGPREFIX=$) ; set new prefix
exten =>
s,4,SetCIDName($$) ; add prefix
to callerid name
exten
=> s,5,Setvar(RecordMethod=Group) ; set new prefix
exten =>
s,6,Macro(record-enable,$,$)
exten =>
s,7,Macro(dial,$,$,$)


;exten =>
s,1,GotoIf($[$)}} !=
$]?3:2) ; check
for old prefix
;exten => s,2,SetCIDName($)}}) ;
strip off old prefix
;exten => s,3,Setvar(RGPREFIX=$) ; set new prefix
;;exten => s,4,Noop($ $)
;exten =>
s,4,SetCIDName($$) ; add prefix
to callerid name
;;exten => s,6,Noop(Dial group $)
;exten =>
s,5,Macro(dial,$,$,$)

;exten =>
s,1,Setvar(GRP=$) ;my original choice of variable
GROUP is now
overwritten by SetGroup. Copy contents to GRP
;exten =>
s,2,SetGroup($)
;exten => s,3,Setvar(FROMCONTEXT=rg-group)
;exten
=> s,4,SetCIDName($$)
;exten =>
s,5,Macro(dial,$,$,$)

;
; Outgoing channel(s) are
busy ... inform the client
;
[macro-outisbusy]
exten =>
s,1,Playback(allison7/all-circuits-busy-now)
exten =>
s,2,Playback(allison7/pls-try-call-later)
exten => s,3,Macro(hangupcall)

; What
to do on hangup.
[macro-hangupcall]
exten => s,1,ResetCDR(w)
exten =>
s,2,NoCDR()
exten => s,3,Wait(5)
exten => s,4,Hangup

[macro-faxreceive]
exten
=>
s,1,SetVar(FAXFILE=/var/spool/asterisk/fax/$.tif)
exten =>
s,2,SetVar(EMAILADDR=$)
exten => s,3,rxfax($)
exten =>
s,103,SetVar(EMAILADDR=$)
exten => s,104,Goto(3)

; dialout and
strip the prefix
[macro-dialout]
exten => s,1,GotoIf($[foo$}
= foo]?4)         ;check
for CID override for exten
exten =>
s,2,SetCallerID($})
exten => s,3,Goto(6)
exten =>
s,4,GotoIf($[foo$} = foo]?6)                 ;check for
CID override for trunk
exten => s,5,SetCallerID($})
exten =>
s,6,SetVar(length=$})})
exten =>
s,7,Dial($}/$})
exten => s,8,Congestion
exten =>
s,108,Macro(outisbusy)


; dialout using default OUT trunk - no prefix
[macro-dialout-default]
exten => s,1,Macro(record-enable,$,OUT)
exten => s,2,GotoIf($[foo$} = foo]?5)         ;check
for CID
override for exten
exten => s,3,SetCallerID($})
exten =>
s,4,Goto(7)
exten => s,5,GotoIf($[foo$ = foo]?7)         ;check for CID
override for trunk
exten => s,6,SetCallerID($)
exten =>
s,7,Dial($/$)
exten => s,8,Congestion
exten => s,108,Macro(outisbusy)

; dialout using a trunk, using pattern matching (don't strip any
prefix)
; arg1
= trunk number, arg2 = number, arg3 = route password
[macro-dialout-trunk]
exten
=> s,1,GotoIf($[foo$ = foo]?3:2))        ; arg3 is pattern
password
exten =>
s,2,Authenticate($)
exten => s,3,Macro(record-enable,$,OUT)
exten => s,4,GotoIf($[foo$} = foo]?7) ;check
for CID
override for exten
exten => s,5,SetCallerID($})
exten =>
s,6,Goto(9)
exten => s,7,GotoIf($[foo$} = foo]?9) ;check for
CID
override for trunk
exten => s,8,SetCallerID($})
exten =>
s,9,SetGroup(OUT_$)
exten => s,10,CheckGroup($})
; if
we've used up the max channels, continue at 109 (n+101)
exten =>
s,11,SetVar(DIAL_NUMBER=$)
exten => s,12,SetVar(DIAL_TRUNK=$)
exten
=> s,13,AGI(fixlocalprefix) ; this sets DIAL_NUMBER to the
proper dial string
for this trunk
exten => s,14,SetVar(OUTNUM=$}$)
;
OUTNUM is the final dial number
exten => s,15,Cut(custom=OUT_$,:,1) ;
Custom trunks are
prefixed with "AMP:"
exten => s,16,GotoIf($[$ =
AMP]?19)
exten => s,17,Dial($}/$) ; Regular Trunk Dial
exten => s,18,Goto(s-$,1)

; This is a custom trunk. Substitute
$OUTNUM$ with the actual number
and rebuild the dialstring
; example trunks:
"AMP:CAPI/XXXXXXXX:b$OUTNUM$,30,r",
"AMP:OH323/$OUTNUM$@XX.XX.XX.XX:XXXX"
exten
=> s,19,Cut(pre_num=OUT_$,$,1)
exten => s,20,Cut(the_num=OUT_$,$,2)
; this is where we
expect to find string OUTNUM
exten =>
s,21,Cut(post_num=OUT_$,$,3)
exten => s,22,GotoIf($[$ =
OUTNUM]?23:24) ; if we didn't
find "OUTNUM", then skip to Dial
exten =>
s,23,SetVar(the_num=$) ; replace "OUTNUM" with the
actual number to dial
exten => s,24,Dial($$$)
exten =>
s,25,Goto(s-$,1)

exten => s,111,Noop(max channels used up)
exten =>
s-BUSY,1,NoOp(Trunk is reporting BUSY)
exten => s-BUSY,2,Busy()
exten =>
s-BUSY,3,Wait(60)
exten => s-BUSY,4,NoOp()

exten => _s-.,1,NoOp(Dial failed due
to $)

; Adds a dynamic agent/member to a Queue
; Prompts for
call-back number - in not entered, uses CIDNum
[macro-agent-add]
exten =>
s,1,Wait(1)
exten => s,2,NoOp
exten => s,3,Read(CALLBACKNUM,agent-user)         ; get
callback number
from user
exten => s,4,GotoIf($[foo$ = foo]?5:7))        ;
if user just
pressed # or timed out, use cidnum
exten =>
s,5,SetVar(CALLBACKNUM=$)
exten => s,6,GotoIf($[foo$ =
foo]?2))        ; if still no
number, start over
exten => s,7,GotoIf($[foo$ =
foo]?9:8))        ; arg2 is queue
password
exten => s,8,Authenticate($)
exten =>
s,9,AddQueueMember($|Local/$@from-internal)        ;
using
chan_local allows us to have agents over trunks
exten => s,10,Wait(1)
exten =>
s,11,Playback(agent-loginok)
exten => s,12,Hangup()

; Removes a dynamic
agent/member from a Queue
; Prompts for call-back number - in not entered, uses
CIDNum
[macro-agent-del]
exten => s,1,Wait(1)
exten => s,2,NoOp
exten =>
s,3,Read(CALLBACKNUM,agent-user)         ; get callback number
from user
exten =>
s,4,GotoIf($[foo$ = foo]?5:7))        ; if user just
pressed # or timed
out, use cidnum
exten => s,5,SetVar(CALLBACKNUM=$)
exten =>
s,6,GotoIf($[foo$ = foo]?2))        ; if still no
number, start over
exten
=>
s,7,RemoveQueueMember($|Local/$@from-internal)
exten =>
s,8,Wait(1)
exten => s,9,Playback(agent-loggedoff)
exten => s,10,Hangup()

;
arg1 = trunk number, arg2 = number
[macro-dialout-enum]
exten =>
s,1,Macro(record-enable,$,OUT)
exten =>
s,2,GotoIf($[foo$} = foo]?3)
;check for CID override
for exten
exten => s,3,SetCallerID($})
exten => s,4,Goto(7)
exten => s,5,GotoIf($[foo$} = foo]?7)
;check for CID
override for trunk
exten => s,6,SetCallerID($})
exten =>
s,7,SetGroup(OUT_$)
exten => s,8,CheckGroup($})                ; if
we've used up
the max channels, continue at 108 (n+101)
exten =>
s,9,SetVar(DIAL_NUMBER=$)
exten => s,10,SetVar(DIAL_TRUNK=$)
exten
=> s,11,AGI(fixlocalprefix)                                                 ; this sets DIAL_NUMBER to
the proper dial
string for this trunk
exten => s,12,EnumLookup($)
exten =>
s,13,GotoIf($[$[$ = SIP] | $[$ =
IAX]]?14:63)
exten =>
s,14,Dial($)
exten => s,15,Goto(s-$,1)
; if dial fails (ie,
all channels are busy), continue at 116 (n+101)

; exit points for macro
exten
=> s,63,NoOp(EnumLookup failed)
exten => s,109,NoOp(max channels used up)

exten
=> s-BUSY,1,NoOp(Trunk is reporting BUSY)
exten => s-BUSY,2,Busy()
exten =>
s-BUSY,3,Wait(60)
exten => s-BUSY,4,NoOp()

exten => _s-.,1,NoOp(Dial failed due
to $)

[macro-record-enable]
exten =>
s,1,GotoIf($)} > 0?2:4)
exten => s,2,ResetCDR(w)
exten =>
s,3,StopMonitor()
exten => s,4,GotoIf($["$" = "OUT"]?5:8)
exten =>
s,5,DBGet(RecEnable=RECORD-OUT/$)
exten =>
s,6,SetVar(CALLFILENAME=OUT$-$-$)
exten =>
s,7,Goto(s,14)
exten => s,8,GotoIf($["$" = "Group"]?9:12)
exten =>
s,9,AGI(recordingcheck)
exten =>
s,10,SetVar(CALLFILENAME=g$-$-$)
exten =>
s,11,Goto(s,14)
exten => s,12,DBGet(RecEnable=RECORD-IN/$)
exten =>
s,13,SetVar(CALLFILENAME=$-$)
exten =>
s,14,GotoIf($["$" = "ENABLED"]?15:99)
exten =>
s,15,Monitor(wav49,$, mb)
exten => s,99,Noop(NO RECORDING NEEDED)
;exten => s,3,BackGround(for-quality-purposes)
;exten =>
s,4,BackGround(this-call-may-be)
;exten => s,5,BackGround(recorded)

; This
macro is for dev purposes and just dumps channel/app variables.
Useful when
designing new contexts.
[macro-dumpvars]
exten =>
s,1,Noop(ACCOUNTCODE=$)
exten =>
s,2,Noop(ANSWEREDTIME=$)
exten =>
s,3,Noop(BLINDTRANSFER=$)
exten => s,4,Noop(CALLERID=$)
exten => s,5,Noop(CALLERIDNAME=$)
exten =>
s,6,Noop(CALLERIDNUM=$)
exten =>
s,7,Noop(CALLINGPRES=$)
exten => s,8,Noop(CHANNEL=$)
exten
=> s,9,Noop(CONTEXT=$)
exten => s,10,Noop(DATETIME=$)
exten
=> s,11,Noop(DIALEDPEERNAME=$)
exten =>
s,12,Noop(DIALEDPEERNUMBER=$)
exten =>
s,13,Noop(DIALEDTIME=$)
exten => s,14,Noop(DIALSTATUS=$)
exten => s,15,Noop(DNID=$)
exten => s,16,Noop(EPOCH=$)
exten =>
s,17,Noop(EXTEN=$)
exten => s,18,Noop(HANGUPCAUSE=$)
exten
=> s,19,Noop(INVALID_EXTEN=$)
exten =>
s,20,Noop(LANGUAGE=$)
exten => s,21,Noop(MEETMESECS=$)
exten => s,22,Noop(PRIORITY=$)
exten => s,23,Noop(RDNIS=$)
exten => s,24,Noop(SIPDOMAIN=$)
exten =>
s,25,Noop(SIP_CODEC=$)
exten => s,26,Noop(SIPCALLID=$)
exten => s,27,Noop(SIPUSERAGENT=$)
exten =>
s,28,Noop(TIMESTAMP=$)
exten => s,29,Noop(TXTCIDNAME=$)
exten => s,30,Noop(UNIQUEID=$)
exten =>
s,31,Noop(TOUCH_MONITOR=$)
exten =>
s,32,Noop(MACRO_CONTEXT=$)
exten =>
s,33,Noop(MACRO_EXTEN=$)
exten =>
s,34,Noop(MACRO_PRIORITY=$)


;
############################################################################
;
Applications [app]
;
############################################################################
;
[app-directory]
;DIR-CONTEXT set in Digital Receptionist
exten => #,1,Wait(1)
exten =>
#,2,AGI(directory,$,ext-local,$$o)
exten => #,3,Playback(vm-goodbye)
exten => #,4,Hangup
; *411 will access the
entire directory (not just a single context)
exten => *411,1,Answer
exten =>
*411,2,Wait(1)
exten =>
*411,3,AGI(directory,general,ext-local,$$)
exten
=> *411,4,Playback(vm-goodbye)
exten => *411,5,Hangup
exten => h,1,Hangup
exten
=> o,1,GotoIf($["foo$" =
"foo"]?from-pstn,s,1:from-pstn,$,1)

[app-dnd]
exten => *78,1,Answer
exten => *78,2,Wait(1)
exten =>
*78,3,DBput(DND/$=YES)
exten =>
*78,4,Playback(allison7/do-not-disturb)
exten => *78,5,Playback(activated)
exten
=> *78,6,Macro(hangupcall)
exten => *79,1,Answer
exten => *79,2,Wait(1)
exten =>
*79,3,DBdel(DND/$)
exten => *79,4,Playback(allison7/do-not-disturb)
exten => *79,5,Playback(de-activated)
exten => *79,6,Macro(hangupcall)

[app-messagecenter]
exten => *98,1,Answer
exten => *98,2,Wait(1)
exten =>
*98,3,VoiceMailMain(default)
exten => *98,4,Macro(hangupcall)
exten =>
_*98X.,1,Answer                        ; can dial *98<exten> to skip
'mailbox' prompt. Useful for
speedial.
exten => _*98X.,2,Wait(1)
exten =>
_*98X.,3,VoiceMailMain($@default)
exten => _*98X.,4,Macro(hangupcall)
exten => *97,1,Answer
exten => *97,2,Wait(1)
exten =>
*97,3,VoicemailMain($@default)
exten => *97,4,Macro(hangupcall)

[app-callwaiting]
exten => *70,1,Answer
exten => *70,2,Wait(1)
exten =>
*70,3,DBput(CW/$=ENABLED)
exten => *70,4,Playback(callwaiting)
exten => *70,5,Playback(activated)
exten => *70,6,Macro(hangupcall)
exten =>
*71,1,Answer
exten => *71,2,Wait(1)
exten => *71,3,DBdel(CW/$)
exten => *71,4,Playback(callwaiting)
exten => *71,5,Playback(de-activated)
exten
=> *71,6,Macro(hangupcall)

[app-callforward]
; dialed call forward app -
forwards calling extension
exten => _*72.,1,DBput(CF/$=$)
exten => _*72.,2,Answer
exten => _*72.,3,Wait(1)
exten =>
_*72.,4,Playback(loligo/call-fwd-unconditional)
exten =>
_*72.,5,Playback(loligo/for)
exten => _*72.,6,Playback(loligo/extension)
exten
=> _*72.,7,SayDigits($)
exten => _*72.,8,Playback(loligo/is-set-to)
exten => _*72.,9,SayDigits($)
exten => _*72.,10,Macro(hangupcall)
;
prompting call forward app - forwards entered extension
exten => *72,1,Answer
exten => *72,2,Wait(1)
exten => *72,3,BackGround(allison7/please-enter-your)
exten => *72,4,Playback(extension)
exten => *72,5,Read(fromext,then-press-pound)
exten => *72,6,Wait(1)
exten => *72,7,BackGround(ent-target-attendant)
exten =>
*72,8,Read(toext,then-press-pound)
exten => *72,9,Wait(1)
exten =>
*72,10,DBput(CF/$=$)
exten =>
*72,11,Playback(call-fwd-unconditional)
exten => *72,12,Playback(for)
exten =>
*72,13,Playback(extension)
exten => *72,14,SayDigits($)
exten =>
*72,15,Playback(is-set-to)
exten => *72,16,SayDigits($)
exten =>
*72,17,Macro(hangupcall)
; cancels dialed extension call forward
exten =>
_*73.,1,DBdel(CF/$)
exten => _*73.,2,Answer
exten => _*73.,3,Wait(1)
exten => _*73.,4,SayDigits($)
exten =>
_*73.,5,Playback(call-fwd-cancelled)
exten => _*73.,6,Macro(hangupcall)
;
cancels call forward for calling extension
exten =>
*73,1,DBdel(CF/$)
exten => *73,2,Answer
exten => *73,3,Wait(1)
exten => *73,4,Playback(loligo/call-fwd-cancelled)
exten =>
*73,5,Macro(hangupcall)
; dialed call forward on busy app - forwards calling
extension when
busy
exten => _*90.,1,DBput(CFB/$=$)
exten
=> _*90.,2,Answer
exten => _*90.,3,Wait(1)
exten =>
_*90.,4,Playback(loligo/call-fwd-on-busy)
exten => _*90.,5,Playback(loligo/for)
exten => _*90.,6,Playback(loligo/extension)
exten =>
_*90.,7,SayDigits($)
exten => _*90.,8,Playback(loligo/is-set-to)
exten => _*90.,9,SayDigits($)
exten => _*90.,10,Macro(hangupcall)
;
cancels call forward on busy for calling extension
exten =>
*91,1,DBdel(CFB/$)
exten => *91,2,Answer
exten => *91,3,Wait(1)
exten => *91,4,Playback(call-fwd-on-busy)
exten => *91,5,Playback(de-activated)
exten => *91,6,Macro(hangupcall)
exten => h,1,Hangup

[app-calltrace]
; We can't
have our timeouts or dial digits collide with other
applications
; or
extensions, so we build the app in pieces
exten =>
*69,1,Goto(app-calltrace-perform,s,1)

[app-calltrace-perform]
exten =>
s,1,Answer
exten => s,2,Wait(1)
exten =>
s,3,Background(allison7/info-about-last-call)
exten =>
s,4,Background(allison7/telephone-number)
exten =>
s,5,Dbget(lastcaller=CALLTRACE/$)
exten =>
s,6,GotoIf($[$]?7:13)
exten => s,7,SayDigits($)
exten =>
s,8,DigitTimeout(3)
exten => s,9,ResponseTimeout(7)
exten =>
s,10,Background(loligo/to-call-this-number)
exten =>
s,11,Background(allison7/press-1)
exten => s,12,Goto(15)
exten =>
s,13,Playback(loligo/from-unknown-caller)
exten => s,14,Macro(hangupcall)
exten
=> s,15,NoOp
exten => 1,1,Goto(from-internal,$,1);
exten =>
i,1,Playback(vm-goodbye)
exten => i,2,Macro(hangupcall)
exten =>
t,1,Playback(vm-goodbye)
exten => t,2,Macro(hangupcall)


;
############################################################################
;
Inbound Contexts [from]
;
############################################################################

[from-sip-external]

;give external sip users congestion and hangup
exten =>
_.,1,AbsoluteTimeout(15)
exten => _.,2,Congestion
exten => _.,3,Hangup

[from-internal]
;allow phones to use applications
include => app-directory
include => app-dnd
include => app-callforward
include => app-callwaiting
include
=> app-messagecenter
include => app-calltrace
include => parkedcalls
include =>
from-internal-custom
;allow phones to dial other extensions
include => ext-fax
include => ext-local
include => ext-group
include => ext-queues
include =>
ext-zapbarge
include => ext-meetme
include => ext-record
include => ext-test
;allow phones to access trunks
include => outbound-allroutes
exten =>
s,1,Macro(hangupcall)
exten => h,1,Macro(hangupcall)

;
############################################################################
;
Extension Contexts [ext]
;
############################################################################

[ext-zapbarge]
exten => 888,1,SetGroup($)
exten => 888,2,Answer
exten => 888,3,Wait(1)
exten => 888,4,ZapBarge
exten => 888,5,Hangup

[ext-meetme]
exten => _8X,1,Answer
exten => _8X,2,Wait(1)
exten =>
_8X,3,GotoIf($[$ = $]?5:4)
exten =>
_8X,4,MeetMe($|sM)
exten => _8X,5,MeetMe($|asM)

exten =>
_8XX,1,Answer
exten => _8XX,2,Wait(1)
exten => _8XX,3,GotoIf($[$ =
$]?5:4)
exten => _8XX,4,MeetMe($|sM)
exten =>
_8XX,5,MeetMe($|asM)

exten => _8XXX,1,Answer
exten => _8XXX,2,Wait(1)
exten => _8XXX,3,GotoIf($[$ = $]?5:4)
exten =>
_8XXX,4,MeetMe($|sM)
exten => _8XXX,5,MeetMe($|asM)

exten =>
_8XXXX,1,Answer
exten => _8XXXX,2,Wait(1)
exten =>
_8XXXX,3,GotoIf($[$ = $]?5:4)
exten =>
_8XXXX,4,MeetMe($|sM)
exten => _8XXXX,5,MeetMe($|asM)


[ext-fax]
exten => s,1,Answer
exten => s,2,Goto(in_fax,1)
exten =>
in_fax,1,GotoIf($[$ = system]?2:analog_fax,1)
exten =>
in_fax,2,Macro(faxreceive)
exten => in_fax,3,system(tiff2ps -2eaz -w 8.5 -h 11
$ |
ps2pdf - $.pdf)
exten => in_fax,4,system(mime-construct
--to $ --subject
"Fax from $ $"
--attachment
$.pdf --type application/pdf --file $.pdf)
exten => in_fax,5,system(rm $ $.pdf)
exten => in_fax,6,Hangup
exten => analog_fax,1,GotoIf($[$ = disabled]?3:2) ;if fax
is disabled,
just hang up
exten => analog_fax,2,Dial($,20,d)
exten =>
analog_fax,3,Hangup
;exten => out_fax,1,wait(7)
exten =>
out_fax,1,txfax($|caller)
exten => out_fax,2,Hangup
exten =>
h,1,Hangup()

[ext-record]
exten => *77,1,Wait(2)
exten =>
*77,2,Record($ivrrecording:wav)
exten => *77,3,Wait(2)
exten =>
*77,4,Hangup
exten => *99,1,Playback($ivrrecording)
exten =>
*99,2,Wait(2)
exten => *99,3,Hangup

;this is where parked calls go if they
time-out. Should probably
re-ring
[default]
include => ext-local
exten =>
s,1,Playback(vm-goodbye)
exten => s,2,Macro(hangupcall)

[ext-test]
exten =>
7777,1,Goto(from-pstn,s,1)
exten => 666,1,Goto(ext-fax,in_fax,1)
exten =>
h,1,Macro(hangupcall)

;echo test
exten => *43,1,Answer
exten => *43,2,Wait(2)
exten => *43,3,Playback(demo-echotest)
exten => *43,4,Echo
exten =>
*43,5,Playback(demo-echodone)
exten => *43,6,Hangup


Posted by Enzo Michelangeli on July 14, 2005, 6:08 am
Please log in for more thread options


estropelic wrote:
> Hello Guys,
>
> I'm somewhat of a newbie and am desperately seeking for some help...
>
> I've managed to get asterisk up and running on my server, and signed
> up with a broadvoice account...
>
> I'm having no problem dialing and communicating between extensions,
> but whenever anyone tries to call my broadvoice account, they are
> greeted by no ring or anything, but rather simply a direct to
> voicemail...
>
> Also, the most annoying is when I try to place an outside call...
>
> At that point, if the call is to a regular phone number, I'll get a
> message asking me to enter my password... followed by pound...

Hmm, perhaps your registration with sip.broadvoice.com fails, so that
callers see you as offline and when you try to place a call you are
asked to authenticate yourself. What is displayed if from the CLI
(started from the command line prompt with "asterisk -rvvvv") you enter
"sip show registry"?

Also, the syntax of your "register" line in sip.conf looks weird:

register =>
3055741...@sip.broadvoice.com:MYSECRETPASS:3055741...@sip.broadvoice.com/200

I would have used (assuming that "3055741..." is your broadvoice
number):

register => 3055741...:MYSECRETPASS@sip.broadvoice.com/200

Enzo


Similar ThreadsPosted
NEWBIE HELP asterisk@home + Broadvoice setup July 11, 2005, 2:20 pm
VONAGE Newbie w/newbie question August 11, 2007, 9:40 am
Newbie help pls! November 17, 2004, 1:21 am
Newbie March 13, 2005, 12:48 am
newbie March 25, 2005, 12:15 am
Help for a Newbie May 4, 2005, 7:12 am
Newbie Question June 26, 2006, 12:18 am
PLEASE HELP - A newbie question June 30, 2008, 9:51 am
RTP: Newbie General Questions November 27, 2005, 11:09 am
Newbie SIP Server question November 15, 2006, 12:03 pm
voip newbie seeks help August 9, 2007, 2:44 pm
Broadvoice? October 27, 2004, 2:02 am
Broadvoice June 16, 2005, 4:10 pm
Residential VOIP newbie questions August 12, 2004, 1:07 pm
VoIP newbie seeks advice! April 14, 2005, 3:57 pm