| |
| News & Reviews |
Welcome to the Voxilla VoIP Forum.
Voxilla has been a trusted source for accurate, up-to-date information on the IP Communications industry since 2002. A dedicated staff of reporters and engineers produce feature articles and product reviews to keep industry watchers abreast of the people, companies, and trends driving a fast moving market.
You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!
If you have any problems with the registration process or your account login, please contact contact us.
Voxilla VoIP Forum |
ASterisk@home + Broadvoice = Almost working installation...Technical support, how-to guides, troubleshooting, and general assistance, from beginner to seasoned pro, this is where to discuss Asterisk, the most powerful open source PBX. |
| | LinkBack | Thread Tools | Rate Thread | Display Modes |
| |||
| 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:MYSECR...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+c...siconhold.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($[${IN_OVERRIDE} = forcereghours]?from-pstn-reghours,s,1 exten => s,2,GotoIf($[${IN_OVERRIDE} = forceafthours]?from-pstn-afthours,s,1 exten => s,3,GotoIfTime(${REGTIME}|${REGDAYS}|*|*?from-pstn-reghours,s,1 exten => s,4,Goto(from-pstn-afthours,s,1) [from-pstn-reghours] exten => s,1,GotoIf($[${FAX_RX} = 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=${INCOMING}) exten => s,5,Cut(intype=intype,-,1) exten => s,6,GotoIf($[${intype} = 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,${INCOMING:4},1) exten => s,9,GotoIf($[${intype} = 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,${INCOMING:4},1) exten => s,12,GotoIf($[${intype} = QUE]?13:15) exten => s,13,Wait(3) exten => s,14,Goto(ext-queues,${INCOMING:4},1) exten => s,15,Goto(${INCOMING},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=${INCOMING}) exten => s,2,Cut(intype=intype,-,1) exten => s,3,GotoIf($[${intype} = EXT]?4:5) ; If INCOMING starts with EXT, then assume its an extension exten => s,4,Goto(ext-local,${INCOMING:4},1) exten => s,5,GotoIf($[${intype} = GRP]?6:7) ; If INCOMING starts with GRP, then assume its a ring group exten => s,6,Goto(ext-group,${INCOMING:4},1) exten => s,7,GotoIf($[${intype} = QUE]?8:11) ;queue exten => s,8,Answer ; answer call before queue exten => s,9,Wait(1) exten => s,10,Goto(ext-queues,${INCOMING:4},1) exten => s,11,Answer ; answer call before auto attendant exten => s,12,Wait(1) exten => s,13,Goto(${INCOMING},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($[${FAX_RX} = 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=${AFTER_INCOMING}) exten => s,5,Cut(intype=intype,-,1) exten => s,6,GotoIf($[${intype} = 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,${AFTER_INCOMING:4},1) exten => s,9,GotoIf($[${intype} = 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,${AFTER_INCOMING:4},1) exten => s,12,GotoIf($[${intype} = QUE]?13:15) exten => s,13,Wait(3) exten => s,14,Goto(ext-queues,${AFTER_INCOMING:4},1) exten => s,15,Goto(${AFTER_INCOMING},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=${AFTER_INCOMING}) exten => s,2,Cut(intype=intype,-,1) exten => s,3,GotoIf($[${intype} = EXT]?4:5) ; If INCOMING starts with EXT, then assume its an extension exten => s,4,Goto(ext-local,${AFTER_INCOMING:4},1) exten => s,5,GotoIf($[${intype} = GRP]?6:7) ; If INCOMING starts with GRP, then assume its a ring group exten => s,6,Goto(ext-group,${AFTER_INCOMING:4},1) exten => s,7,GotoIf($[${intype} = QUE]?8:11) ;queue exten => s,8,Answer ; answer call before queue exten => s,9,Wait(1) exten => s,10,Goto(ext-queues,${AFTER_INCOMING:4},1) exten => s,11,Answer ; answer call before auto attendant exten => s,12,Wait(1) exten => s,13,Goto(${AFTER_INCOMING},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_CONTEXT}" = "macro-rg-group" ]?4:2) ; if this is from rg-group, don't strip prefix exten => s,2,GotoIf($[${CALLERIDNAME:0:${LEN(${RGPREFIX})}} != ${RGPREFIX}]?4:3) ; check for ring-group prefix exten => s,3,SetCIDName(${CALLERIDNAME:${LEN(${RGPREFIX})}} ) ; 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(${ds}) ; 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,${ARG2},IN) exten => s,3,Macro(dial,${RINGTIMER},${DIAL_OPTIONS},${ARG2 }) exten => s,4,GotoIf($[${CHANNEL:0:5} = Local]?s-${DIALSTATUS},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($[${ARG1} = novm]?s-${DIALSTATUS},1) ; no voicemail in use for this extension exten => s,6,NoOp(Sending to Voicemail box ${ARG1}) exten => s,7,Macro(vm,${ARG1},${DIALSTATUS}) 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-${ARG2},1) exten => s-BUSY,1,Voicemail(b${ARG1}) ; Voicemail Busy message exten => s-BUSY,2,Hangup() exten => _s-.,1,Voicemail(u${ARG1}) ; 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${FROM_DID}" = "foo"]?from-pstn,s,1:from-pstn,${FROM_DID},1) exten => a,1,VoiceMailMain(${ARG1}) 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(${CALLERIDNAME}) ; Ring groups of phones ; ARGS: comma separated extension list ; 1 - ringtimer ; 2 - preifx ; 3 - extension list [macro-rg-group] exten => s,1,GotoIf($[${CALLERIDNAME:0:${LEN(${RGPREFIX})}} != ${RGPREFIX}]?3:2) ; check for old prefix exten => s,2,SetCIDName(${CALLERIDNAME:${LEN(${RGPREFIX})}} ) ; strip off old prefix exten => s,3,Setvar(RGPREFIX=${ARG2}) ; set new prefix exten => s,4,SetCIDName(${RGPREFIX}${CALLERIDNAME}) ; add prefix to callerid name exten => s,5,Setvar(RecordMethod=Group) ; set new prefix exten => s,6,Macro(record-enable,${MACRO_EXTEN},${RecordMethod}) exten => s,7,Macro(dial,${ARG1},${DIAL_OPTIONS},${ARG3}) ;exten => s,1,GotoIf($[${CALLERIDNAME:0:${LEN(${RGPREFIX})}} != ${RGPREFIX}]?3:2) ; check for old prefix ;exten => s,2,SetCIDName(${CALLERIDNAME:${LEN(${RGPREFIX})}} ) ; strip off old prefix ;exten => s,3,Setvar(RGPREFIX=${ARG2}) ; set new prefix ;;exten => s,4,Noop(${RGPREFIX} ${CALLERIDNAME}) ;exten => s,4,SetCIDName(${RGPREFIX}${CALLERIDNAME}) ; add prefix to callerid name ;;exten => s,6,Noop(Dial group ${ARG3}) ;exten => s,5,Macro(dial,${ARG1},${DIAL_OPTIONS},${ARG3}) ;exten => s,1,Setvar(GRP=${GRP}) ;my original choice of variable GROUP is now overwritten by SetGroup. Copy contents to GRP ;exten => s,2,SetGroup(${CALLERIDNUM}) ;exten => s,3,Setvar(FROMCONTEXT=rg-group) ;exten => s,4,SetCIDName(${PRE}${CALLERIDNAME}) ;exten => s,5,Macro(dial,${RINGTIMER},${DIAL_OPTIONS},${GRP} ) ; ; 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/${UNIQUEID}.tif) exten => s,2,SetVar(EMAILADDR=${FAX_RX_EMAIL}) exten => s,3,rxfax(${FAXFILE}) exten => s,103,SetVar(EMAILADDR=${FAX_RX_EMAIL}) exten => s,104,Goto(3) ; dialout and strip the prefix [macro-dialout] exten => s,1,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?4) ;check for CID override for exten exten => s,2,SetCallerID(${ECID${CALLERIDNUM}}) exten => s,3,Goto(6) exten => s,4,GotoIf($[foo${OUTCID_${ARG1}} = foo]?6) ;check for CID override for trunk exten => s,5,SetCallerID(${OUTCID_${ARG1}}) exten => s,6,SetVar(length=${LEN(${DIAL_OUT_${ARG1}})}) exten => s,7,Dial(${OUT_${ARG1}}/${ARG2:${length}}) 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,${CALLERIDNUM},OUT) exten => s,2,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?5) ;check for CID override for exten exten => s,3,SetCallerID(${ECID${CALLERIDNUM}}) exten => s,4,Goto(7) exten => s,5,GotoIf($[foo${OUTCID} = foo]?7) ;check for CID override for trunk exten => s,6,SetCallerID(${OUTCID}) exten => s,7,Dial(${OUT}/${ARG1}) 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${ARG3} = foo]?3:2)) ; arg3 is pattern password exten => s,2,Authenticate(${ARG3}) exten => s,3,Macro(record-enable,${CALLERIDNUM},OUT) exten => s,4,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?7) ;check for CID override for exten exten => s,5,SetCallerID(${ECID${CALLERIDNUM}}) exten => s,6,Goto(9) exten => s,7,GotoIf($[foo${OUTCID_${ARG1}} = foo]?9) ;check for CID override for trunk exten => s,8,SetCallerID(${OUTCID_${ARG1}}) exten => s,9,SetGroup(OUT_${ARG1}) exten => s,10,CheckGroup(${OUTMAXCHANS_${ARG1}}) ; if we've used up the max channels, continue at 109 (n+101) exten => s,11,SetVar(DIAL_NUMBER=${ARG2}) exten => s,12,SetVar(DIAL_TRUNK=${ARG1}) exten => s,13,AGI(fixlocalprefix) ; this sets DIAL_NUMBER to the proper dial string for this trunk exten => s,14,SetVar(OUTNUM=${OUTPREFIX_${ARG1}}${DIAL_NUMB ER}) ; OUTNUM is the final dial number exten => s,15,Cut(custom=OUT_${ARG1},:,1) ; Custom trunks are prefixed with "AMP:" exten => s,16,GotoIf($[${custom} = AMP]?19) exten => s,17,Dial(${OUT_${ARG1}}/${OUTNUM}) ; Regular Trunk Dial exten => s,18,Goto(s-${DIALSTATUS},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_${ARG1},$,1) exten => s,20,Cut(the_num=OUT_${ARG1},$,2) ; this is where we expect to find string OUTNUM exten => s,21,Cut(post_num=OUT_${ARG1},$,3) exten => s,22,GotoIf($[${the_num} = OUTNUM]?23:24) ; if we didn't find "OUTNUM", then skip to Dial exten => s,23,SetVar(the_num=${OUTNUM}) ; replace "OUTNUM" with the actual number to dial exten => s,24,Dial(${pre_num:4}${the_num}${post_num}) exten => s,25,Goto(s-${DIALSTATUS},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 ${DIALSTATUS}) ; 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${CALLBACKNUM} = foo]?5:7)) ; if user just pressed # or timed out, use cidnum exten => s,5,SetVar(CALLBACKNUM=${CALLERIDNUM}) exten => s,6,GotoIf($[foo${CALLBACKNUM} = foo]?2)) ; if still no number, start over exten => s,7,GotoIf($[foo${ARG2} = foo]?9:8)) ; arg2 is queue password exten => s,8,Authenticate(${ARG2}) exten => s,9,AddQueueMember(${ARG1}|Local/${CALLBACKNUM}@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${CALLBACKNUM} = foo]?5:7)) ; if user just pressed # or timed out, use cidnum exten => s,5,SetVar(CALLBACKNUM=${CALLERIDNUM}) exten => s,6,GotoIf($[foo${CALLBACKNUM} = foo]?2)) ; if still no number, start over exten => s,7,RemoveQueueMember(${ARG1}|Local/${CALLBACKNUM}@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,${CALLERIDNUM},OUT) exten => s,2,GotoIf($[foo${ECID${CALLERIDNUM}} = foo]?3) ;check for CID override for exten exten => s,3,SetCallerID(${ECID${CALLERIDNUM}}) exten => s,4,Goto(7) exten => s,5,GotoIf($[foo${OUTCID_${ARG1}} = foo]?7) ;check for CID override for trunk exten => s,6,SetCallerID(${OUTCID_${ARG1}}) exten => s,7,SetGroup(OUT_${ARG1}) exten => s,8,CheckGroup(${OUTMAXCHANS_${ARG1}}) ; if we've used up the max channels, continue at 108 (n+101) exten => s,9,SetVar(DIAL_NUMBER=${ARG2}) exten => s,10,SetVar(DIAL_TRUNK=${ARG1}) exten => s,11,AGI(fixlocalprefix) ; this sets DIAL_NUMBER to the proper dial string for this trunk exten => s,12,EnumLookup(${DIAL_NUMBER}) exten => s,13,GotoIf($[$[${ENUM:0:3} = SIP] | $[${ENUM:0:3} = IAX]]?14:63) exten => s,14,Dial(${ENUM}) exten => s,15,Goto(s-${DIALSTATUS},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 ${DIALSTATUS}) [macro-record-enable] exten => s,1,GotoIf(${LEN(${BLINDTRANSFER})} > 0?2:4) exten => s,2,ResetCDR(w) exten => s,3,StopMonitor() exten => s,4,GotoIf($["${ARG2}" = "OUT"]?5:8) exten => s,5,DBGet(RecEnable=RECORD-OUT/${ARG1}) exten => s,6,SetVar(CALLFILENAME=OUT${ARG1}-${TIMESTAMP}-${UNIQUEID}) exten => s,7,Goto(s,14) exten => s,8,GotoIf($["${ARG2}" = "Group"]?9:12) exten => s,9,AGI(recordingcheck) exten => s,10,SetVar(CALLFILENAME=g${ARG1}-${TIMESTAMP}-${UNIQUEID}) exten => s,11,Goto(s,14) exten => s,12,DBGet(RecEnable=RECORD-IN/${ARG1}) exten => s,13,SetVar(CALLFILENAME=${TIMESTAMP}-${UNIQUEID}) exten => s,14,GotoIf($["${RecEnable}" = "ENABLED"]?15:99) exten => s,15,Monitor(wav49,${CALLFILENAME}, 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=${ACCOUNTCODE}) exten => s,2,Noop(ANSWEREDTIME=${ANSWEREDTIME}) exten => s,3,Noop(BLINDTRANSFER=${BLINDTRANSFER}) exten => s,4,Noop(CALLERID=${CALLERID}) exten => s,5,Noop(CALLERIDNAME=${CALLERIDNAME}) exten => s,6,Noop(CALLERIDNUM=${CALLERIDNUM}) exten => s,7,Noop(CALLINGPRES=${CALLINGPRES}) exten => s,8,Noop(CHANNEL=${CHANNEL}) exten => s,9,Noop(CONTEXT=${CONTEXT}) exten => s,10,Noop(DATETIME=${DATETIME}) exten => s,11,Noop(DIALEDPEERNAME=${DIALEDPEERNAME}) exten => s,12,Noop(DIALEDPEERNUMBER=${DIALEDPEERNUMBER}) exten => s,13,Noop(DIALEDTIME=${DIALEDTIME}) exten => s,14,Noop(DIALSTATUS=${DIALSTATUS}) exten => s,15,Noop(DNID=${DNID}) exten => s,16,Noop(EPOCH=${EPOCH}) exten => s,17,Noop(EXTEN=${EXTEN}) exten => s,18,Noop(HANGUPCAUSE=${HANGUPCAUSE}) exten => s,19,Noop(INVALID_EXTEN=${INVALID_EXTEN}) exten => s,20,Noop(LANGUAGE=${LANGUAGE}) exten => s,21,Noop(MEETMESECS=${MEETMESECS}) exten => s,22,Noop(PRIORITY=${PRIORITY}) exten => s,23,Noop(RDNIS=${RDNIS}) exten => s,24,Noop(SIPDOMAIN=${SIPDOMAIN}) exten => s,25,Noop(SIP_CODEC=${SIP_CODEC}) exten => s,26,Noop(SIPCALLID=${SIPCALLID}) exten => s,27,Noop(SIPUSERAGENT=${SIPUSERAGENT}) exten => s,28,Noop(TIMESTAMP=${TIMESTAMP}) exten => s,29,Noop(TXTCIDNAME=${TXTCIDNAME}) exten => s,30,Noop(UNIQUEID=${UNIQUEID}) exten => s,31,Noop(TOUCH_MONITOR=${TOUCH_MONITOR}) exten => s,32,Noop(MACRO_CONTEXT=${MACRO_CONTEXT}) exten => s,33,Noop(MACRO_EXTEN=${MACRO_EXTEN}) exten => s,34,Noop(MACRO_PRIORITY=${MACRO_PRIORITY}) ; ################################################## ########################## ; Applications [app] ; ################################################## ########################## ; [app-directory] ;DIR-CONTEXT set in Digital Receptionist exten => #,1,Wait(1) exten => #,2,AGI(directory,${DIR-CONTEXT},ext-local,${DIRECTORY:0:1}${DIRECTORY_OPTS}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,${DIRECTORY:0:1}${DIRECTORY_OPTS}) exten => *411,4,Playback(vm-goodbye) exten => *411,5,Hangup exten => h,1,Hangup exten => o,1,GotoIf($["foo${FROM_DID}" = "foo"]?from-pstn,s,1:from-pstn,${FROM_DID},1) [app-dnd] exten => *78,1,Answer exten => *78,2,Wait(1) exten => *78,3,DBput(DND/${CALLERIDNUM}=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/${CALLERIDNUM}) 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(${EXTEN:3}@default) exten => _*98X.,4,Macro(hangupcall) exten => *97,1,Answer exten => *97,2,Wait(1) exten => *97,3,VoicemailMain(${CALLERIDNUM}@default) exten => *97,4,Macro(hangupcall) [app-callwaiting] exten => *70,1,Answer exten => *70,2,Wait(1) exten => *70,3,DBput(CW/${CALLERIDNUM}=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/${CALLERIDNUM}) 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/${CALLERIDNUM}=${EXTEN:3}) 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(${CALLERIDNUM}) exten => _*72.,8,Playback(loligo/is-set-to) exten => _*72.,9,SayDigits(${EXTEN:3}) 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/${fromext}=${toext}) exten => *72,11,Playback(call-fwd-unconditional) exten => *72,12,Playback(for) exten => *72,13,Playback(extension) exten => *72,14,SayDigits(${fromext}) exten => *72,15,Playback(is-set-to) exten => *72,16,SayDigits(${toext}) exten => *72,17,Macro(hangupcall) ; cancels dialed extension call forward exten => _*73.,1,DBdel(CF/${EXTEN:3}) exten => _*73.,2,Answer exten => _*73.,3,Wait(1) exten => _*73.,4,SayDigits(${EXTEN:3}) exten => _*73.,5,Playback(call-fwd-cancelled) exten => _*73.,6,Macro(hangupcall) ; cancels call forward for calling extension exten => *73,1,DBdel(CF/${CALLERIDNUM}) 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/${CALLERIDNUM}=${EXTEN:3}) 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(${CALLERIDNUM}) exten => _*90.,8,Playback(loligo/is-set-to) exten => _*90.,9,SayDigits(${EXTEN:3}) exten => _*90.,10,Macro(hangupcall) ; cancels call forward on busy for calling extension exten => *91,1,DBdel(CFB/${CALLERIDNUM}) 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/${CALLERIDNUM}) exten => s,6,GotoIf($[${lastcaller}]?7:13) exten => s,7,SayDigits(${lastcaller}) 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,${lastcaller},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(${CALLERIDNUM}) 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($[${CALLERIDNUM} = ${EXTEN:1}]?5:4) exten => _8X,4,MeetMe(${EXTEN}|sM) exten => _8X,5,MeetMe(${EXTEN}|asM) exten => _8XX,1,Answer exten => _8XX,2,Wait(1) exten => _8XX,3,GotoIf($[${CALLERIDNUM} = ${EXTEN:1}]?5:4) exten => _8XX,4,MeetMe(${EXTEN}|sM) exten => _8XX,5,MeetMe(${EXTEN}|asM) exten => _8XXX,1,Answer exten => _8XXX,2,Wait(1) exten => _8XXX,3,GotoIf($[${CALLERIDNUM} = ${EXTEN:1}]?5:4) exten => _8XXX,4,MeetMe(${EXTEN}|sM) exten => _8XXX,5,MeetMe(${EXTEN}|asM) exten => _8XXXX,1,Answer exten => _8XXXX,2,Wait(1) exten => _8XXXX,3,GotoIf($[${CALLERIDNUM} = ${EXTEN:1}]?5:4) exten => _8XXXX,4,MeetMe(${EXTEN}|sM) exten => _8XXXX,5,MeetMe(${EXTEN}|asM) [ext-fax] exten => s,1,Answer exten => s,2,Goto(in_fax,1) exten => in_fax,1,GotoIf($[${FAX_RX} = system]?2:analog_fax,1) exten => in_fax,2,Macro(faxreceive) exten => in_fax,3,system(tiff2ps -2eaz -w 8.5 -h 11 ${FAXFILE} | ps2pdf - ${FAXFILE}.pdf) exten => in_fax,4,system(mime-construct --to ${EMAILADDR} --subject "Fax from ${CALLERIDNUM} ${CALLERIDNAME}" --attachment ${CALLERIDNUM}.pdf --type application/pdf --file ${FAXFILE}.pdf) exten => in_fax,5,system(rm ${FAXFILE} ${FAXFILE}.pdf) exten => in_fax,6,Hangup exten => analog_fax,1,GotoIf($[${FAX_RX} = disabled]?3:2) ;if fax is disabled, just hang up exten => analog_fax,2,Dial(${FAX_RX},20,d) exten => analog_fax,3,Hangup ;exten => out_fax,1,wait(7) exten => out_fax,1,txfax(${TXFAX_NAME}|caller) exten => out_fax,2,Hangup exten => h,1,Hangup() [ext-record] exten => *77,1,Wait(2) exten => *77,2,Record(${CALLERIDNUM}ivrrecording:wav) exten => *77,3,Wait(2) exten => *77,4,Hangup exten => *99,1,Playback(${CALLERIDNUM}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 |
| |||
| I'm no expert but I'll try to help.. First, your register string looks wrong to me. Quote:
i think is should look more like: register => 3055741428:MYSECRETPASS@sip.broadvoice.com/200 meaning that incomming calls would be directed to ext 200. The AAH interface can be confusing on what to enter here to make it work. I would guess that host and fromdomain should be the same. but I'm not sure: Quote:
What you have should start working once you change your registration string. Using AAH you may want to add the your DID to the DID Routes config page. First Register as: register => 3055741428:MYSECRETPASS@sip.broadvoice.com/3055741428 Then put this DID number (3055741428) in the DID Routes configuration and assign an extension number. ie 200. Add a line to the end of the general section of the sip.conf file through the maintenance interface "config edit": context = ext-did ; Send external did callers to this context This should ring ext 200 when your BV number is called. Lastly, Did you configure outgoing routes in AAH? this is needed to call out. There is an option to have a password on dial out - leave it blank. Good luck... |
| |||
| My register string consists of Code: NNNNNNNNNN@sip.broadvoice.com:password:NNNNNNNNNN@sip.broadvoice.com The other fix would be to change the context for [from-sip-external] to point to from-pstn. You can do that in the sip.conf or create a goto in the [from-sip-external] context itself. |
| |||
| Quote:
|
| | |
| Slash your business phone bills with a great VOIP provider! Get everything you need in our free VoIP Essentials Guide including the 10 questions you should ask before you buy, a complete comparison guide to providers, plus a buyer's guide full of tips and tricks to save you time and money. The best part? It's free. Click here to get it now. |
| ||||
| I just posted the change I needed to make to get incoming calls working again. As with many things Asterisk, there is obviously more than one way to manage an incoming call.
__________________ Please do not send technical questions via PM. Please post all questions to the forum. |
| Thread Tools | |
| Display Modes | Rate This Thread |
| |
| | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Asterisk@Home 2.8 and Broadvoice | DGrant303 | Asterisk Support Forum | 25 | May 23rd, 2006 09:42 PM |
| 2 extension 1 phone not working Asterisk@home | romulo_usa | Asterisk Support Forum | 1 | March 24th, 2006 05:03 PM |
| GXP2000 message button not working with Asterisk@Home | divitas | Grandstream Support Forum | 1 | March 17th, 2006 06:34 PM |
| asterisk@home inbound from broadvoice does not work. HELP! | quibbly | Asterisk Support Forum | 25 | March 7th, 2006 08:27 AM |
| Broadvoice and asterisk@home configuration problems | skidog | Asterisk Support Forum | 2 | December 26th, 2005 03:08 PM |