; Number tagging ; Author: Michael Geddes aka FrogOnWheels ; Depends: app_stack app_macro app_system [macro-tagnumber] ; Number / Tag Directory / Return exten => s,1,Set(tagNumber=${ARG1}) exten => s,n,Set(tagDirectory=${ARG2}) exten => s,n,Set(tagRetContext=${MACRO_CONTEXT}) exten => s,n,Set(tagRetExtn=${MACRO_EXTEN}) exten => s,n,Set(tagRetPriority=$[${MACRO_PRIORITY} + 1]) ;exten => s,n,Set(tagReturn=${ARG3}) ;exten => s,n,Gosub(macrobody_tagnumber,s,1) exten => s,n,Goto(macrobody_tagnumber,s,1) exten => s,n(return),Noop(Returned) [macrobody_tagnumber] exten => s,1(again),Background(voicetag/recordname) exten => s,n,Record(/tmp/tmprectag:gsm|2|5) exten => s,n(askagain),Background(voicetag/tagfor) exten => s,n,Macro(backgroundphone,${tagNumber}) exten => s,n,Background(/tmp/tmprectag) exten => s,n,Background(voicetag/confirmnumber) exten => s,n,Background(voicetag/tryagain) exten => s,n,Background(voicetag/cancelrecord) exten => s,n,WaitExten(5) exten => s,n,Goto(s|askagain) exten => 1,1,System(mkdir -p ${tagDirectory}) exten => 1,2,System(mv /tmp/tmprectag.gsm ${tagDirectory}/${tagNumber}.gsm) exten => 1,3,Goto(${tagRetContext}|${tagRetExtn}|${tagRetPriority}) exten => 2,1,Goto(s|again) exten => 3,1,system(rm -f /tmp/tmprectag.gsm) exten => 3,2,Goto(${tagRetContext}|${tagRetExtn}|${tagRetPriority}) exten => h,1,system(rm -f /tmp/tmrectag.gsm) [macro-backgroundtagnumber] ; Number, directory exten => s,1,TrySystem(test -f ${ARG2}/${ARG1}.gsm) exten => s,n,GotoIf($[${SYSTEMSTATUS} != SUCCESS]?s-saynum|1) exten => s,n,Background(${ARG2}/${ARG1}) exten => s-saynum,1,Macro(backgroundphone,${ARG1}) ; Say Phone number in the background [macro-backgroundphone] exten => s,1,Set(bgDigits=${ARG1}) exten => s,n(loop),Set(bgDigit=${bgDigits:0:1}) exten => s,n,GotoIf($["${bgDigits:0:3}" = "000"]?saythousand) exten => s,n,GotoIf($["${bgDigits:0:2}" = "00"]?sayhundred) exten => s,n,GotoIf($["${bgDigits}" = ""]?exitloop) exten => s,n,Set(bgDigits=${bgDigits:1}) exten => s,n,Background(digits/${bgDigit}) exten => s,n,Goto(loop) exten => s,n(saythousand),Background(digits/thousand) exten => s,n,Set(bgDigits=${bgDigits:3}) exten => s,n,Goto(loop) exten => s,n(sayhundred),Background(digits/hundred) exten => s,n,Set(bgDigits=${bgDigits:2}) exten => s,n,Goto(loop) exten => s,n(exitloop),NOOP