<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1522" name=GENERATOR></HEAD>
<BODY style="FONT-FAMILY: Arial" text=#000000 bgColor=#ffffff>
<DIV>i have setup my sip.conf wich is working, between 2 xlite softphones</DIV>
<DIV>&nbsp;</DIV>
<DIV>problem i can't get asterisk to dial to sip provider no matter what 
provider i choose</DIV>
<DIV>&nbsp;</DIV>
<DIV>the prefix and telephone format is the main problem and i cant figure it 
even thoug i looked at example and di not work for me</DIV>
<DIV>&nbsp;</DIV>
<DIV>i took exmple on nufone and net2phone configs !</DIV>
<DIV>&nbsp;</DIV>
<DIV>bellow is my extenssions.conf</DIV>
<DIV>&nbsp;</DIV>
<DIV>main question how to get to dial for example 1-805-111-5555 or 
33134246424</DIV>
<DIV>&nbsp;</DIV>
<DIV>please help</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=1>
<P>[globals]</P>
<P>nufone =&gt; SIP/nufone</P>
<P>NUMBER-OF-LINES = 9</P>
<P>[applications]</P>
<P>; Entries for IPSwitchBoard</P>
<P>exten =&gt; 77,1,MusicOnHold()</P>
<P>exten =&gt; _88XXX,1,Meetme(${EXTEN:2},dMq)</P>
<P>; Activate CFWD Dialing</P>
<P>exten =&gt; _*21*.,1,Answer()</P>
<P>exten =&gt; _*21*.,n,DBput(CFWD/${CALLERIDNUM}=${EXTEN:4})</P>
<P>exten =&gt; _*21*.,n,PlayBack(call-fwd-unconditional)</P>
<P>exten =&gt; _*21*.,n,PlayBack(activated)</P>
<P>exten =&gt; _*21*.,n,Hangup</P>
<P>; Deactivate CFWD Dialing</P>
<P>exten =&gt; **21,1,Answer()</P>
<P>exten =&gt; **21,n,DBdel(CFWD/${CALLERIDNUM})</P>
<P>exten =&gt; **21,n,PlayBack(call-fwd-unconditional)</P>
<P>exten =&gt; **21,n,PlayBack(de-activated)</P>
<P>exten =&gt; **21,n,Hangup</P>
<P>; Activate DUAL Dialing</P>
<P>exten =&gt; _*22*.,1,Answer()</P>
<P>exten =&gt; _*22*.,n,DBput(DUAL/${CALLERIDNUM}=${EXTEN:4})</P>
<P>exten =&gt; _*22*.,n,PlayBack(call-fwd-parallel)</P>
<P>exten =&gt; _*22*.,n,PlayBack(activated)</P>
<P>exten =&gt; _*22*.,n,Hangup</P>
<P>; Deactivate DUAL Dialing</P>
<P>exten =&gt; **22,1,Answer()</P>
<P>exten =&gt; **22,n,DBdel(DUAL/${CALLERIDNUM})</P>
<P>exten =&gt; **22,n,PlayBack(call-fwd-parallel)</P>
<P>exten =&gt; **22,n,PlayBack(de-activated)</P>
<P>exten =&gt; **22,n,Hangup</P>
<P>; Force Queue Closed</P>
<P>exten =&gt; _*11X.,1,Answer()</P>
<P>exten =&gt; _*11X.,n,DBPut(ExtensionOpen/${EXTEN:3}=no)</P>
<P>exten =&gt; _*11X.,n,UserEvent(ExtOpen,ActionID: extopen)</P>
<P>exten =&gt; _*11X.,n,Playback(ipm-ext-closed)</P>
<P>exten =&gt; _*11X.,n,Hangup()</P>
<P>; Force Queue Open</P>
<P>exten =&gt; _**11X.,1,Answer()</P>
<P>exten =&gt; _**11X.,n,DBPut(ExtensionOpen/${EXTEN:4}=yes)</P>
<P>exten =&gt; _**11X.,n,UserEvent(ExtOpen,ActionID: extopen)</P>
<P>exten =&gt; _**11X.,n,Playback(ipm-ext-open)</P>
<P>exten =&gt; _**11X.,n,Hangup()</P>
<P>; Set Queue back to Normal Open State</P>
<P>exten =&gt; _***11X.,1,Answer()</P>
<P>exten =&gt; _***11X.,n,DBdel(ExtensionOpen/${EXTEN:5})</P>
<P>exten =&gt; _***11X.,n,UserEvent(ExtOpen,ActionID: extopen)</P>
<P>exten =&gt; _***11X.,n,Playback(ipm-ext-normal)</P>
<P>exten =&gt; _***11X.,n,Hangup()</P>
<P>; Force Extension Closed</P>
<P>exten =&gt; *11,1,Answer()</P>
<P>exten =&gt; *11,n,DBPut(ExtensionOpen/${CALLERIDNUM}=no)</P>
<P>exten =&gt; *11,n,UserEvent(ExtOpen,ActionID: extopen)</P>
<P>exten =&gt; *11,n,Playback(ipm-ext-closed)</P>
<P>exten =&gt; *11,n,Hangup()</P>
<P>; Force Extension Open</P>
<P>exten =&gt; **11,1,Answer()</P>
<P>exten =&gt; **11,n,DBPut(ExtensionOpen/${CALLERIDNUM}=yes)</P>
<P>exten =&gt; **11,n,UserEvent(ExtOpen,ActionID: extopen)</P>
<P>exten =&gt; **11,n,Playback(ipm-ext-open)</P>
<P>exten =&gt; **11,n,Hangup()</P>
<P>; Set Extension back to Normal Open State</P>
<P>exten =&gt; ***11,1,Answer()</P>
<P>exten =&gt; ***11,n,DBdel(ExtensionOpen/${CALLERIDNUM})</P>
<P>exten =&gt; ***11,n,UserEvent(ExtOpen,ActionID: extopen)</P>
<P>exten =&gt; ***11,n,Playback(ipm-ext-normal)</P>
<P>exten =&gt; ***11,n,Hangup()</P>
<P>; Set Do not Disturb for Extension</P>
<P>exten =&gt; *77,1,Answer()</P>
<P>exten =&gt; *77,n,UserEvent(DND,ActionID: dndon/${CALLERIDNUM}/Phone)</P>
<P>exten =&gt; *77,n,DBput(dnd/${CALLERIDNUM}=yes)</P>
<P>exten =&gt; *77,n,Playback(vm-isunavail)</P>
<P>exten =&gt; *77,n,Playback(activated)</P>
<P>exten =&gt; *77,n,Hangup()</P>
<P>; Cancel Do not Disturb for Extension</P>
<P>exten =&gt; **77,1,Answer()</P>
<P>exten =&gt; **77,n,UserEvent(DND,ActionID: dndoff/${CALLERIDNUM})</P>
<P>exten =&gt; **77,n,DBdel(dnd/${CALLERIDNUM})</P>
<P>exten =&gt; **77,n,Playback(vm-isunavail)</P>
<P>exten =&gt; **77,n,Playback(de-activated)</P>
<P>exten =&gt; **77,n,Hangup()</P>
<P>; Speaking Clock</P>
<P>exten =&gt; *55,1,Answer()</P>
<P>exten =&gt; *55,n,Wait(1)</P>
<P>exten =&gt; *55,n,SayUnixTime(${EPOCH},,adbR)</P>
<P>exten =&gt; *55,n,Hangup()</P>
<P>; Echo Test</P>
<P>exten =&gt; *60,1,Playback(demo-echotest)</P>
<P>exten =&gt; *60,n,Echo()</P>
<P>exten =&gt; *60,n,Playback(demo-echodone)</P>
<P>; Log in Virtual User on Extension</P>
<P>exten =&gt; _*99*.,1,Answer()</P>
<P>exten =&gt; _*99*.,n(chkLoggedIn),DBget(EXT=user/${EXTEN:4})</P>
<P>exten =&gt; _*99*.,n,DBdel(userext/${EXT})</P>
<P>exten =&gt; _*99*.,n,DBdel(user/${EXTEN:4})</P>
<P>exten =&gt; _*99*.,n,Goto(notLoggedIn)</P>
<P>exten =&gt; 
_*99*.,chkLoggedIn+101(notLoggedIn),DBput(user/${EXTEN:4}=${CALLERIDNUM})</P>
<P>exten =&gt; _*99*.,n,DBput(userext/${CALLERIDNUM}=${EXTEN:4})</P>
<P>exten =&gt; _*99*.,n,PlayBack(agent-loginok)</P>
<P>exten =&gt; _*99*.,n,Hangup</P>
<P>; Log out Virtual User from Extension</P>
<P>exten =&gt; **99,1,Answer()</P>
<P>exten =&gt; **99,n,DBget(EXT=userext/${CALLERIDNUM})</P>
<P>exten =&gt; **99,n,DBdel(userext/${CALLERIDNUM})</P>
<P>exten =&gt; **99,n,DBdel(user/${EXT})</P>
<P>exten =&gt; **99,n,PlayBack(agent-loggedoff)</P>
<P>exten =&gt; **99,n,Hangup</P>
<P>; VoiceMailMain for Extension</P>
<P>exten =&gt; *,1,Answer()</P>
<P>exten =&gt; *,n(chkVoiceMail),DBGet(EXT=userext/${CALLERIDNUM})</P>
<P>exten =&gt; *,n,VoiceMailMain(s${EXT})</P>
<P>exten =&gt; *,chkVoiceMail+101,VoiceMailMain(s${CALLERIDNUM})</P>
<P>; VoiceMailMain for All SIPExtensions</P>
<P>exten =&gt; **,1,Answer()</P>
<P>exten =&gt; **,n,VoiceMailMain()</P>
<P>; VoiceMailMain</P>
<P>exten =&gt; asterisk,1,VoiceMailMain(s${CALLERIDNUM})</P>
<P>[phones]</P>
<P>; Now follows a lot of hint's - they make the buttons on SNOM phones work</P>
<P>exten =&gt; 1001,hint,SIP/1001 ; Karim Mousli</P>
<P>exten =&gt; 1002,hint,SIP/1002 ; Bruno maimbourg</P>
<P>exten =&gt; _.,1,SetLanguage(us)</P>
<P>exten =&gt; _.,n,Setvar(CALLEEIDNUM=${EXTEN})</P>
<P>exten =&gt; _.,n,Setvar(CALLERNUM=${CALLERIDNUM})</P>
<P>exten =&gt; _.,n(chkSpeed),DBget(SPEED=SPEED/${EXTEN})</P>
<P>exten =&gt; _.,n,Setvar(CALLEEIDNUM=${SPEED})</P>
<P>exten =&gt; _.,n,Goto(phones-dial,${SPEED},1)</P>
<P>exten =&gt; _.,chkSpeed+101(chkFWD),DBget(CFWD=CFWD/${EXTEN})</P>
<P>exten =&gt; _.,n,Goto(phones-dial,${CFWD},1)</P>
<P>exten =&gt; _.,chkFWD+101,Goto(phones-dial,${EXTEN},1)</P>
<P>exten =&gt; _91NXXNXXXXXX,1,Answer()</P>
<P>exten =&gt; _91NXXNXXXXXX,n,Dial(SIP/kmousli@nuphone/${EXTEN:1})</P>
<P>exten =&gt; _91NXXNXXXXXX,3,Congestion</P>
<P>[phones-dial]</P>
<P>include =&gt; parkedcalls</P>
<P>include =&gt; applications</P>
<P>include =&gt; default</P>
<P>include =&gt; outgoing</P>
<P>include =&gt; toll-trunks</P>
<P>&nbsp;</P>
<P>[toll-trunks]</P>
<P>; Outbound 9,1-nxx-nxx-xxxx goes via NuFone. Replace nufonenumber with the 10 
digit number</P>
<P>; assigned to you. If an error occurrs, you will be given the congestion 
tone. Be sure to include the toll-trunks</P>
<P>&nbsp;</P>
<P>exten =&gt; _91NXXNXXXXXX,1,SetCallerID(248-748-0700)</P>
<P>exten =&gt; _91NXXNXXXXXX,2,Dial(SIP/kmousli@nuphone/${EXTEN:1})</P>
<P>exten =&gt; _91NXXNXXXXXX,3,Congestion</P>
<P></P>
<P>[outgoing]</P>
<P>exten =&gt; _.,1,Noop(OutGoing)</P>
<P>exten =&gt; _.,n(chkNoCall),DBget(CID=nocall/SIP/${CALLERIDNUM})</P>
<P>exten =&gt; _.,n,Busy()</P>
<P>exten =&gt; _.,chkNoCall+101,Goto(chkVirtual)</P>
<P>exten =&gt; _.,n(chkVirtual),DBGet(EXT=userext/${CALLERIDNUM})</P>
<P>exten =&gt; _.,n,SetCIDNum(${EXT})</P>
<P>exten =&gt; _.,n,Goto(chkLines)</P>
<P>exten =&gt; _.,chkVirtual+101,Goto(chkLines)</P>
<P>exten =&gt; _.,n(chkLines),SetGroup(Lines)</P>
<P>exten =&gt; _.,n(chkGroup),CheckGroup(${NUMBER-OF-LINES})</P>
<P>exten =&gt; _.,n,Goto(chkCID)</P>
<P>exten =&gt; 
_.,chkGroup+101,DBPut(NoLinesOut/${TIMESTAMP}-${CALLERIDNUM}=${EXTEN})</P>
<P>exten =&gt; _.,n,Busy()</P>
<P>exten =&gt; _.,n(chkCID),DBget(CID=cid/${CALLERIDNUM})</P>
<P>exten =&gt; _.,n,SetCIDNum(${CID})</P>
<P>exten =&gt; _.,n,Goto(setPrefix)</P>
<P>exten =&gt; _.,chkCID+101,Goto(setPrefix)</P>
<P>exten =&gt; _.,n(setPrefix),DBGet(prefix=prefix/${CALLERNUM})</P>
<P>exten =&gt; _.,n,Goto(lcr,${prefix}${EXTEN},1)</P>
<P>exten =&gt; _.,setprefix+101,Goto(lcr,${EXTEN},1)</P>
<P>[lcr]</P>
<P>&nbsp;</P>
<P>exten =&gt; s-BUSY,1,BackGround(the-party-you-are-calling) </P>
<P>exten =&gt; s-BUSY,n,BackGround(is-curntly-busy) </P>
<P>exten =&gt; s-BUSY,n,Hangup() </P>
<P></P>
<P>exten =&gt; s-CANCEL,1,BackGround(canceled) </P>
<P>exten =&gt; s-CANCEL,n,Hangup() </P>
<P>exten =&gt; s-CHANUNAVAIL,1,BackGround(channel) </P>
<P>exten =&gt; s-CHANUNAVAIL,n,BackGround(is-curntly-unavail) </P>
<P>exten =&gt; s-CHANUNAVAIL,n,Hangup() </P>
<P></P>
<P>exten =&gt; s-NOANSWER,1,BackGround(nbdy-avail-to-take-call) </P>
<P>exten =&gt; s-NOANSWER,n,Hangup() </P>
<P></P>
<P>exten =&gt; s-ANSWER,1,Hangup()</P>
<P></P>
<P>exten =&gt; s-.,1,BackGround(something-Usr2bly-wrong) </P>
<P>exten =&gt; s-.,n,Hangup()</P>
<P></P>
<P>;exten =&gt; h,1,System(/etc/asterisk/sendconversation.sh ${CALLERIDNUM} 
${CALLEEIDNUM})</P>
<P>exten =&gt; h,1,Hangup()</P>
<P>exten =&gt; i,1,Playback(you-dialed-wrong-number)</P>
<P>exten =&gt; i,n,Hangup()</P>
<P>exten =&gt; t,n,Hangup()</P>
<P>exten =&gt; T,n,Hangup()</P>
<P>[incoming]</P>
<P>exten =&gt; _X.,1,LookupCIDName()</P>
<P>exten =&gt; _X.,n,GotoIf($[${LEN(${CALLERIDNUM})} = 
8]?chkCIDName:chkCallerIDNum)</P>
<P>exten =&gt; _X.,n(chkCIDName),System(/etc/asterisk/getphone.sh 
${CALLERIDNUM})</P>
<P>exten =&gt; _X.,n,LookupCIDName()</P>
<P>exten =&gt; _X.,n(chkCallerIDNum),GotoIf($[${LEN(${CALLERIDNUM})} &gt; 
1]?chkShowname:setHemmeligt)</P>
<P>exten =&gt; _X.,n(setHemmeligt),SetCIDNum(Hemmeligt)</P>
<P>exten =&gt; _X.,n,SetCIDName(Hemmeligt)</P>
<P>exten =&gt; _X.,n(chkShowname),DBGet(SHOWNAME=showname/${EXTEN})</P>
<P>exten =&gt; _X.,n,SetCIDName(${SHOWNAME})</P>
<P>exten =&gt; _X.,n,SetCIDNum(${CALLERIDNUM})</P>
<P>exten =&gt; _X.,n,Goto(chkLines)</P>
<P>exten =&gt; _X.,chkShowname+101,Goto(chkLines)</P>
<P>exten =&gt; _X.,n(chkLines),Setvar(CALLEEIDNUM=${EXTEN})</P>
<P>exten =&gt; _X.,n,SetGroup(Lines)</P>
<P>exten =&gt; _X.,n(chkGroup),CheckGroup(${NUMBER-OF-LINES})</P>
<P>exten =&gt; _X.,n,Goto(phone-in,${EXTEN},1)</P>
<P>exten =&gt; 
_X.,chkGroup+101,DBPut(NoLinesIn/${TIMESTAMP}-${CALLERIDNUM}=${EXTEN})</P>
<P>exten =&gt; _X.,n,Busy()</P>
<P>[phone-in]</P>
<P>include =&gt; applications</P>
<P>include =&gt; default</P>
<P>include =&gt; parkedcalls</P>
<P>;exten =&gt; h,1,System(/etc/asterisk/sendconversation.sh ${CALLERIDNUM} 
${CALLEEIDNUM}) ; this script will send an email with the recorded call as 
wav-file</P>
<P>exten =&gt; h,1,Hangup()</P>
<P>exten =&gt; t,1,Busy </P>
<P>exten =&gt; T,1,Busy </P>
<P>exten =&gt; i,1,Playback(you-dialed-wrong-number)</P>
<P>exten =&gt; i,n,Hangup()</P>
<P>[macro-unavail]</P>
<P>;${ARG1} = Extension</P>
<P>;${ARG2} = UnavailExtension - if it exists go to the extension</P>
<P>; otherwise check if the called extension has voicemal</P>
<P>; if no voicemail, tell the caller that the extension is unavailable</P>
<P>exten =&gt; s,1,Noop(Macro-Unavailable)</P>
<P>exten =&gt; s,n,GotoIf($[${LEN(${ARG2})} &gt; 
0]?phones,${ARG2},1:chkQueue)</P>
<P>exten =&gt; s,n(chkQueue),GotoIf($[${LEN(${CalledQueue})} &gt; 
0]?setBackInQueue:chkMailbox)</P>
<P>exten =&gt; s,n(setBackInQueue),Goto(phones,Queue-${CalledQueue},1)</P>
<P>exten =&gt; s,n(chkMailbox),MailboxExists(${ARG1})</P>
<P>exten =&gt; s,n,Answer()</P>
<P>exten =&gt; s,n,Wait(1)</P>
<P>exten =&gt; s,n,PlayBack(the-party-you-are-calling)</P>
<P>exten =&gt; s,n,PlayBack(is-curntly-unavail)</P>
<P>exten =&gt; s,n,Hangup()</P>
<P>exten =&gt; s,chkMailbox+101,Voicemail(u${ARG1})</P>
<P>[macro-busy]</P>
<P>;${ARG1} = Extension</P>
<P>;${ARG2} = Busy Extension - if it exists go to the extension</P>
<P>; otherwise check if the called extension has voicemal</P>
<P>; if no voicemail, tell the caller that the extension is busy</P>
<P>exten =&gt; s,1,Noop(Macro-Busy)</P>
<P>exten =&gt; s,n,GotoIf($[${LEN(${ARG2})} &gt; 
0]?phones,${ARG2},1:chkQueue)</P>
<P>exten =&gt; s,n(chkQueue),GotoIf($[${LEN(${CalledQueue})} &gt; 
0]?setBackInQueue:chkMailbox)</P>
<P>exten =&gt; s,n(setBackInQueue),Goto(phones,Queue-${CalledQueue},1)</P>
<P>exten =&gt; s,n(chkMailbox),MailboxExists(${ARG1})</P>
<P>exten =&gt; s,n,Answer()</P>
<P>exten =&gt; s,n,Wait(1)</P>
<P>exten =&gt; s,n,PlayBack(the-party-you-are-calling)</P>
<P>exten =&gt; s,n,PlayBack(is-curntly-busy)</P>
<P>exten =&gt; s,n,Hangup()</P>
<P>exten =&gt; s,chkMailbox+101,Voicemail(b${ARG1})</P>
<P>[macro-dial-sip]</P>
<P>;${ARG1} = Extension</P>
<P>;${ARG2} = UnavailExtension</P>
<P>;${ARG3} = BusyExtension</P>
<P>;${ARG4} = Technology - SIP, IAX2 or Zap /Name</P>
<P>exten =&gt; s,1,Noop(Macro-Dial-Sip)</P>
<P>exten =&gt; s,n(chkOpen),DBget(OPEN=ExtensionOpen/${ARG1})</P>
<P>exten =&gt; s,n,GotoIf($[${OPEN} = yes]?DndCheck:phones,${ARG2},1) ; check if 
extension is forced open</P>
<P>exten =&gt; s,chkOpen+101,Goto(DndCheck)</P>
<P>exten =&gt; s,n(DndCheck),Noop(dndCheck)</P>
<P>exten =&gt; s,n(chkDND),DBget(tmp=dnd/${ARG1}) ; check for DND</P>
<P>exten =&gt; s,n,Macro(busy,${ARG1},${ARG3}) ; DND true</P>
<P>exten =&gt; s,chkDND+101,Goto(DualCheck)</P>
<P>exten =&gt; s,n(DualCheck),Noop(DualCheck)</P>
<P>exten =&gt; s,n(chkDual),DBget(DUAL=DUAL/${ARG1}) ; check for DUAL</P>
<P>exten =&gt; s,n,GoTo(DualDial) ; DUAL true</P>
<P>exten =&gt; s,chkDual+101,GoTo(stdDial) ; DUAL false</P>
<P>; Dial</P>
<P>exten =&gt; s,n(stdDial),Dial(${ARG4},20,wWtT)</P>
<P>exten =&gt; s,n(chkVirtual),DBGet(EXT=userext/${USEREXT}) ; timeout, check if 
virtual user is logged in</P>
<P>exten =&gt; s,n,Macro(unavail,${EXT}) ; virtual true, go to unavail for 
virtual user</P>
<P>exten =&gt; s,stdDial+101,Goto(VirtualBusyCheck) ; busy</P>
<P>exten =&gt; s,chkVirtual+101,Macro(unavail,${ARG1},${ARG2}) ; virtual false, 
go to extension unavailable</P>
<P>exten =&gt; s,n(VirtualBusyCheck),Noop(virtualBusyCheck)</P>
<P>exten =&gt; s,n(chkVirtualBusy),DBGet(EXT=userext/${USEREXT}) ; busy, check 
if virtual user is logged in</P>
<P>exten =&gt; s,n,Macro(busy,${EXT}) ; virtual true, go to busy for virtual 
user</P>
<P>exten =&gt; s,chkVirtualBusy+101,Macro(busy,${ARG1},${ARG3}) ; virtual false, 
go to busy for extension</P>
<P>; DUAL Dial</P>
<P>exten =&gt; s,n(DualDial),Dial(${ARG4}&amp;Local/${DUAL}@phones,60,wWtT) ; 
dial DUAL</P>
<P>exten =&gt; s,n,Macro(unavail,${ARG1},${ARG2}) ; timeout, go to 
unavalable</P>
<P>exten =&gt; s,DualDial+101,Macro(busy,${ARG1},${ARG3}) ; go to busy</P>
<P>&nbsp;</P>
<P>[default]</P>
<P>&nbsp;</P>
<P>; Extension 1001 - Karim Mousli</P>
<P>exten =&gt; 1001,hint,SIP/1001</P>
<P>exten =&gt; 1001,1,Noop(SIP/1001)</P>
<P>exten =&gt; 1001,n,GotoIf($[${LEN(${HOURS})} &gt; 0]?Closed:Open)</P>
<P>exten =&gt; 1001,n(Open),SetVar(HOURS=)</P>
<P>exten =&gt; 1001,n,Macro(dial-sip,1001,,,SIP/1001) </P>
<P>exten =&gt; 1001,n(Closed),SetVar(HOURS=)</P>
<P>exten =&gt; 1001,n,Macro(unavail,1001,) </P>
<P>; Extension 1002 - Bruno maimbourg</P>
<P>exten =&gt; 1002,hint,SIP/1002</P>
<P>exten =&gt; 1002,1,Noop(SIP/1002)</P>
<P>exten =&gt; 1002,n,GotoIf($[${LEN(${HOURS})} &gt; 0]?Closed:Open)</P>
<P>exten =&gt; 1002,n(Open),SetVar(HOURS=)</P>
<P>exten =&gt; 1002,n,Macro(dial-sip,1002,,,SIP/1002) </P>
<P>exten =&gt; 1002,n(Closed),SetVar(HOURS=)</P>
<P>exten =&gt; 1002,n,Macro(unavail,1002,) </P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>exten =&gt; *1001,1,VoiceMail(u1001)</P>
<P>exten =&gt; *1002,1,VoiceMail(u1002)</P>
<P>; USER: 0 - pbx</P>
<P>exten =&gt; 0,1,SetVar(USERCID=0)</P>
<P>exten =&gt; 0,n(chkVirtual),DBGet(USEREXT=user/0)</P>
<P>exten =&gt; 0,n,Goto(phones,${USEREXT},1)</P>
<P>exten =&gt; 0,chkVirtual+101,Macro(unavail,0,)</P>
<P>; Direct Dial In's</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>; Entry point for IVR-Menus and maintain the message to be played when 
entering IVR-Menus</P>
<P>; This is where Custom Code goes</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>; IVR Menu for maintaining messages for all SIPExtensions</P>
<P>[IVR-MENU-MAINTAIN-MESSAGES]</P>
<P>; ---===&gt;&gt;&gt;&gt; Maintain message:</P>
<P>; ---===&gt;&gt;&gt;&gt; To Listen, type 1</P>
<P>; ---===&gt;&gt;&gt;&gt; To Record, type 2</P>
<P>; ---===&gt;&gt;&gt;&gt; To Delete, type 3</P>
<P>exten =&gt; s,1,Answer()</P>
<P>exten =&gt; s,2,Wait(2)</P>
<P>exten =&gt; s,3,BackGround(ipm-ivrmenu)</P>
<P>exten =&gt; s,4,WaitExten(10)</P>
<P>exten =&gt; 1,1,PlayBack(ivr/IVR-${IVR})</P>
<P>exten =&gt; 1,2,Goto(s,3)</P>
<P>exten =&gt; 2,1,Playback(vm-intro)</P>
<P>exten =&gt; 2,2,Record(ivr/IVR-${IVR}:gsm)</P>
<P>exten =&gt; 2,3,Goto(s,3)</P>
<P>exten =&gt; 3,1,System(rm -f /var/lib/asterisk/sounds/ivr/IVR-${IVR}.gsm)</P>
<P>exten =&gt; 3,2,PlayBack(vm-deleted)</P>
<P>exten =&gt; 3,3,Goto(s,3)</P>
<P>exten =&gt; t,1,Goto(s,3)</P>
<P>exten =&gt; i,1,PlayBack(invalid)</P>
<P>exten =&gt; i,2,GoTo(s,3)</P></FONT></DIV></BODY></HTML>