Changeset 7752
- Timestamp:
- 05/26/09 18:01:37 (3 years ago)
- Files:
-
- modules/branches/2.6/core/functions.inc.php (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
modules/branches/2.6/core/functions.inc.php
r7751 r7752 665 665 case "asterisk": 666 666 667 $ast_ge_14 = version_compare($version, '1.4', 'ge'); 668 $ast_lt_16 = version_compare($version, '1.6', 'lt'); 669 667 670 // Now add to sip_general_addtional.conf 668 671 // … … 674 677 $core_conf->addSipGeneral('callerid','Unknown'); 675 678 $core_conf->addSipGeneral('notifyringing','yes'); 676 if ( version_compare($version, '1.4', 'ge')) {679 if ($ast_ge_14) { 677 680 $core_conf->addSipGeneral('notifyhold','yes'); 678 681 $core_conf->addSipGeneral('limitonpeers','yes'); … … 688 691 $core_conf->addIaxGeneral('allow','gsm'); 689 692 $core_conf->addIaxGeneral('mailboxdetail','yes'); 690 if ( version_compare($version, '1.4', 'ge')) {693 if ($ast_ge_14) { 691 694 $core_conf->addIaxGeneral('tos','ef'); // Recommended setting from doc/ip-tos.txt 692 695 } … … 787 790 // creating all the extnesions below. So those are "$ext_pickup" on purpose! 788 791 // 789 if ($fc_pickup != '' && version_compare($version, '1.4', 'ge')) {792 if ($fc_pickup != '' && $ast_ge_14) { 790 793 $ext->addInclude('from-internal-additional', 'app-pickup'); 791 794 $fclen = strlen($fc_pickup); … … 1066 1069 // the raw format. 1067 1070 // 1068 if ( version_compare($version, "1.6", "lt")) {1071 if ($ast_lt_16) { 1069 1072 $ext->add($context, $exten, '', new ext_setvar('__CALLINGPRES_SV','${CALLINGPRES_${CALLINGPRES}}')); 1070 1073 } else { … … 1312 1315 // This should be fixed in 1.4.20 but for now we keep it in until 1.6 1313 1316 // 1314 if ( version_compare($version, "1.6", "lt")) {1317 if ($ast_lt_16) { 1315 1318 $ext->addGlobal('CALLINGPRES_0', 'allowed_not_screened'); 1316 1319 $ext->addGlobal('CALLINGPRES_1', 'allowed_passed_screen'); … … 1328 1331 // to the manager to get the information 1329 1332 // 1330 if ( version_compare($version, '1.4', 'ge') && version_compare($version, '1.6', 'lt')) {1333 if ($ast_ge_14 && $ast_lt_16) { 1331 1334 $response = $astman->send_request('Command', array('Command' => 'module show like func_extstate')); 1332 1335 if (preg_match('/1 modules loaded/', $response['data'])) { … … 1500 1503 $ext->add($context, $exten, '', new ext_setvar('__MACRO_RESULT','ABORT')); 1501 1504 $ext->add($context, $exten, '', new ext_setvar('MSG1','${IF($["foo${ARG1}" != "foo"]?${ARG1}:"incoming-call-1-accept-2-decline")}')); 1502 if ( version_compare($version, "1.4", "ge")) {1505 if ($ast_ge_14) { 1503 1506 $ext->add($context, $exten, 'start', new ext_background('${MSG1},m,${CHANNEL(language)},macro-confirm')); 1504 1507 } else { … … 1528 1531 1529 1532 $exten = '_X'; 1530 if ( version_compare($version, "1.4", "ge")) {1533 if ($ast_ge_14) { 1531 1534 $ext->add($context, $exten, '', new ext_background('invalid,m,${CHANNEL(language)},macro-confirm')); 1532 1535 } else { … … 1844 1847 // their status if forwarded back out. Not doing this can result in the trunk CID being displayed vs. 'blocked call' 1845 1848 // 1846 if ( version_compare($version, "1.6", "lt")) {1849 if ($ast_lt_16) { 1847 1850 $ext->add($context, $exten, '', new ext_execif('$["${CALLINGPRES_SV}" != ""]', 'SetCallerPres', '${CALLINGPRES_SV}')); 1848 1851 } else { … … 1880 1883 1881 1884 $ext->add($context, $exten, 'usercid', new ext_execif('$["${USEROUTCID:1:2}" != ""]', 'Set', 'CALLERID(all)=${USEROUTCID}')); // check CID override for extension 1882 if ( version_compare($version, "1.6", "lt")) {1885 if ($ast_lt_16) { 1883 1886 $ext->add($context, $exten, 'hidecid', new ext_execif('$["${CALLERID(name)}"="hidden"]', 'SetCallerPres', 'prohib_passed_screen')); 1884 1887 } else { … … 1909 1912 1910 1913 $ext->add($context, $exten, '', new ext_playback('beep')); 1911 if ( version_compare($version, "1.4", "ge")) {1914 if ($ast_ge_14) { 1912 1915 $ext->add($context, $exten, 'dc_start', new ext_background('${RECFILE},m,${CHANNEL(language)},macro-systemrecording')); 1913 1916 } else { … … 1918 1921 1919 1922 $exten = 'confmenu'; 1920 if ( version_compare($version, "1.4", "ge")) {1923 if ($ast_ge_14) { 1921 1924 $ext->add($context, $exten, '', new ext_background('to-listen-to-it&press-1&to-rerecord-it&press-star&astcc-followed-by-pound,m,${CHANNEL(language)},macro-systemrecording')); 1922 1925 } else { … … 2133 2136 // ARG2 - DIRECTDIAL/BUSY 2134 2137 // ARG3 - RETURN makes macro return, otherwise hangup 2135 // exten => s,1,Macro(user-callerid,SKIPTTL)2138 // 2136 2139 $ext->add('macro-vm', 's', '', new ext_macro('user-callerid', 'SKIPTTL')); 2137 //exten => s,n,Set(VMGAIN=${IF($["foo${VM_GAIN}"!="foo"]?"g(${VM_GAIN})":"")})2138 2140 $ext->add('macro-vm','s', '', new ext_setvar("VMGAIN", '${IF($["foo${VM_GAIN}"!="foo"]?"g(${VM_GAIN})":"")}')); 2141 2139 2142 // If BLKVM_OVERRIDE is set, then someone told us to block calls from going to 2140 2143 // voicemail. This variable is reset by the answering channel so subsequent 2141 2144 // transfers will properly function. 2142 2143 //exten => s,n,GotoIf($["foo${DB(${BLKVM_OVERRIDE})}" != "fooTRUE"]?vmx,1) 2145 // 2144 2146 $ext->add('macro-vm','s', '', new ext_gotoif('$["foo${DB(${BLKVM_OVERRIDE})}" != "fooTRUE"]','vmx,1')); 2145 2147 2146 2148 // we didn't branch so block this from voicemail 2147 2148 //exten => s,n,Noop(CAME FROM: ${NODEST} - Blocking VM cause of key: ${DB(BLKVM_OVERRIDE)}) 2149 // 2149 2150 $ext->add('macro-vm','s', '', new ext_NoOp('CAME FROM: ${NODEST} - Blocking VM cause of key: ${DB(BLKVM_OVERRIDE)}')); 2150 //exten => s,n,Hangup2151 2151 $ext->add('macro-vm','s', '', new ext_hangup('')); 2152 2152 2153 // If vmx not enabled for the current mode,then jump to normal voicemail behavior 2153 2154 // also - if not message (no-msg) is requested, straight to voicemail 2154 2155 //exten => vmx,1,GotoIf($["${ARG2}"="NOMESSAGE"]?s-${ARG2},1) 2155 // 2156 2156 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${ARG2}"="NOMESSAGE"]','s-${ARG2},1')); 2157 //exten => vmx,n,Set(MODE=${IF($["${ARG2}"="BUSY"]?busy:unavail)})2158 2157 $ext->add('macro-vm','vmx', '', new ext_setvar("MODE", '${IF($["${ARG2}"="BUSY"]?busy:unavail)}')); 2159 //exten => vmx,n,GotoIf($["${ARG2}" != "DIRECTDIAL"]?notdirect)2160 2158 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${ARG2}" != "DIRECTDIAL"]','notdirect')); 2161 //exten => vmx,n,Set(MODE=${IF($["${REGEX("[b]" ${VM_DDTYPE})}" = "1"]?busy:${MODE})})2162 2159 $ext->add('macro-vm','vmx', '', new ext_setvar("MODE", '${IF($["${REGEX("[b]" ${VM_DDTYPE})}" = "1"]?busy:${MODE})}')); 2163 //exten => vmx,n(notdirect),Noop(Checking if ext ${ARG1} is enabled: ${DB(AMPUSER/${ARG1}/vmx/${MODE}/state)})2164 2160 $ext->add('macro-vm','vmx', 'notdirect', new ext_NoOp('Checking if ext ${ARG1} is enabled: ${DB(AMPUSER/${ARG1}/vmx/${MODE}/state)}')); 2165 //exten => vmx,n,GotoIf($["${DB(AMPUSER/${ARG1}/vmx/${MODE}/state)}" != "enabled"]?s-${ARG2},1)2166 2161 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${DB(AMPUSER/${ARG1}/vmx/${MODE}/state)}" != "enabled"]','s-${ARG2},1')); 2162 2167 2163 // If the required voicemail file does not exist, then abort and go to normal voicemail behavior 2168 2164 // … … 2171 2167 // returns SUCCESS when the command returned succcessfully with a 0 app return code. 2172 2168 // 2173 //exten => vmx,n,Macro(get-vmcontext,${ARG1})2174 2169 $ext->add('macro-vm', 'vmx', '', new ext_macro('get-vmcontext', '${ARG1}')); 2175 //;exten => vmx,n,TrySystem(/bin/ls ${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/${MODE}.[wW][aA][vV])2176 2170 //$ext->add('macro-vm', 'vmx', '', new ext_trysystem('/bin/ls ${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/${MODE}.[wW][aA][vV]')); 2177 //exten => vmx,n,AGI(checksound.agi,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/temp)2178 2171 $ext->add('macro-vm', 'vmx', '',new ext_agi('checksound.agi,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/temp')); 2179 //exten => vmx,n,GotoIf($["${SYSTEMSTATUS}" = "SUCCESS"]?tmpgreet)2180 2172 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${SYSTEMSTATUS}" = "SUCCESS"]','tmpgreet')); 2181 //exten => vmx,n,AGI(checksound.agi,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/${MODE})2182 2173 $ext->add('macro-vm', 'vmx', '',new ext_agi('checksound.agi,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/${MODE}')); 2183 //exten => vmx,n,GotoIf($["${SYSTEMSTATUS}" != "SUCCESS"]?nofile)2184 2174 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${SYSTEMSTATUS}" != "SUCCESS"]','nofile')); 2185 // Get the repeat, timeout and loop times to use if they are overriden form the global settings 2186 2187 //exten => vmx,n,Set(LOOPCOUNT=0) 2175 2188 2176 $ext->add('macro-vm','vmx', '', new ext_setvar("LOOPCOUNT", '0')); 2189 //exten => vmx,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/repeat)}" = "0"]?vmxtime)2190 2177 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/repeat)}" = "0"]','vmxtime')); 2191 //exten => vmx,n,Set(VMX_REPEAT=${DB_RESULT})2192 2178 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_REPEAT", '${DB_RESULT}')); 2193 //exten => vmx,n(vmxtime),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timeout)}" = "0"]?vmxloops)2194 2179 $ext->add('macro-vm','vmx', 'vmxtime', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timeout)}" = "0"]','vmxloops')); 2195 //exten => vmx,n,Set(VMX_TIMEOUT=${DB_RESULT})2196 2180 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_TIMEOUT", '${DB_RESULT}')); 2197 //exten => vmx,n(vmxloops),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loops)}" = "0"]?vmxanswer)2198 2181 $ext->add('macro-vm','vmx', 'vmxloops', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loops)}" = "0"]','vmxanswer')); 2199 //exten => vmx,n,Set(VMX_LOOPS=${DB_RESULT})2200 2182 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_LOOPS", '${DB_RESULT}')); 2201 //exten => vmx,n(vmxanswer),Answer()2202 2183 $ext->add('macro-vm','vmx','vmxanswer',new ext_answer('')); 2203 2184 2204 2185 // Now play the users voicemail recording as the basis for their ivr, the Read command will repeat as needed and if it timesout 2205 2186 // then we go to the timeout. Otherwise handle invalid options by looping until the limit until a valid option is played. 2206 2207 //exten => vmx,n(loopstart),Read(ACTION,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/${MODE},1,skip,${VMX_REPEAT},${VMX_TIMEOUT}) 2187 // 2208 2188 $ext->add('macro-vm','vmx','loopstart',new ext_read('ACTION', '${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${ARG1}/${MODE}', 1, 'skip', '${VMX_REPEAT}', '${VMX_TIMEOUT}')); 2209 //exten => vmx,n,GotoIf($["${EXISTS(${ACTION})}" = "1"]?checkopt)2210 2189 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${EXISTS(${ACTION})}" = "1"]','checkopt')); 2190 2211 2191 // If we are here we timed out, go to the required destination 2212 2213 //exten => vmx,n(noopt),Noop(Timeout: going to timeout dest) 2192 // 2214 2193 $ext->add('macro-vm','vmx', 'noopt', new ext_NoOp('Timeout: going to timeout dest')); 2215 //exten => vmx,n,Set(VMX_OPTS=${VMX_OPTS_TIMEOUT})2216 2194 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_OPTS", '${VMX_OPTS_TIMEOUT}')); 2217 //exten => vmx,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/vmxopts/timeout)}" = "0"]?chktime)2218 2195 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/vmxopts/timeout)}" = "0"]','chktime')); 2219 //exten => vmx,n,Set(VMX_OPTS=${DB_RESULT})2220 2196 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_OPTS", '${DB_RESULT}')); 2221 //exten => vmx,n(chktime),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timedest/ext)}" = "0"]?dotime)2222 2197 $ext->add('macro-vm','vmx', 'chktime', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timedest/ext)}" = "0"]','dotime')); 2223 //exten => vmx,n,Set(VMX_TIMEDEST_EXT=${DB_RESULT})2224 2198 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_TIMEDEST_EXT",'${DB_RESULT}')); 2225 //exten => vmx,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timedest/context)}" = "0"]?timepri)2226 2199 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timedest/context)}" = "0"]','timepri')); 2227 //exten => vmx,n,Set(VMX_TIMEDEST_CONTEXT=${DB_RESULT})2228 2200 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_TIMEDEST_CONTEXT",'${DB_RESULT}')); 2229 //exten => vmx,n(timepri),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timedest/pri)}" = "0"]?dotime)2230 2201 $ext->add('macro-vm','vmx', 'timepri', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/timedest/pri)}" = "0"]','dotime')); 2231 //exten => vmx,n,Set(VMX_TIMEDEST_PRI=${DB_RESULT})2232 2202 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_TIMEDEST_PRI",'${DB_RESULT}')); 2233 //exten => vmx,n(dotime),Goto(${VMX_TIMEDEST_CONTEXT},${VMX_TIMEDEST_EXT},${VMX_TIMEDEST_PRI})2234 2203 $ext->add('macro-vm','vmx','dotime',new ext_goto('${VMX_TIMEDEST_PRI}', '${VMX_TIMEDEST_EXT}', '${VMX_TIMEDEST_CONTEXT}')); 2204 2235 2205 // We got an option, check if the option is defined, or one of the system defaults 2236 2237 //exten => vmx,n(checkopt),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/${ACTION}/ext)}" = "1"]?doopt) 2206 // 2238 2207 $ext->add('macro-vm','vmx', 'checkopt', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/${ACTION}/ext)}" = "1"]','doopt')); 2239 //exten => vmx,n,GotoIf($["${ACTION}" = "0"]?o,1)2240 2208 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${ACTION}" = "0"]','o,1')); 2241 //exten => vmx,n,GotoIf($["${ACTION}" = "*"]?adef,1)2242 2209 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${ACTION}" = "*"]','adef,1')); 2210 2243 2211 // Got invalid option loop until the max 2244 2245 //exten => vmx,n,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1]) 2212 // 2246 2213 $ext->add('macro-vm','vmx', '', new ext_setvar("LOOPCOUNT",'$[${LOOPCOUNT} + 1]')); 2247 //exten => vmx,n,GotoIf($[${LOOPCOUNT} > ${VMX_LOOPS}]?toomany)2248 2214 $ext->add('macro-vm','vmx', '', new ext_gotoif('$[${LOOPCOUNT} > ${VMX_LOOPS}]','toomany')); 2249 //exten => vmx,n,Playback(pm-invalid-option&please-try-again)2250 2215 $ext->add('macro-vm','vmx','',new ext_playback('pm-invalid-option&please-try-again')); 2251 //exten => vmx,n,Goto(loopstart)2252 2216 $ext->add('macro-vm','vmx','',new ext_goto('loopstart')); 2217 2253 2218 // tomany: to many invalid options, go to the specified destination 2254 2255 //exten => vmx,n(toomany),Noop(Too Many invalid entries, got to invalid dest) 2219 // 2256 2220 $ext->add('macro-vm','vmx', 'toomany', new ext_NoOp('Too Many invalid entries, got to invalid dest')); 2257 //exten => vmx,n,Set(VMX_OPTS=${VMX_OPTS_LOOPS})2258 2221 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_OPTS",'${VMX_OPTS_LOOPS}')); 2259 //exten => vmx,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/vmxopts/loops)}" = "0"]?chkloop)2260 2222 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/vmxopts/loops)}" = "0"]','chkloop')); 2261 //exten => vmx,n,Set(VMX_OPTS=${DB_RESULT})2262 2223 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_OPTS",'${DB_RESULT}')); 2263 //exten => vmx,n(chkloop),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loopdest/ext)}" = "0"]?doloop)2264 2224 $ext->add('macro-vm','vmx', 'chkloop', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loopdest/ext)}" = "0"]','doloop')); 2265 //exten => vmx,n,Set(VMX_LOOPDEST_EXT=${DB_RESULT})2266 2225 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_LOOPDEST_EXT",'${DB_RESULT}')); 2267 //exten => vmx,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loopdest/context)}" = "0"]?looppri)2268 2226 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loopdest/context)}" = "0"]','looppri')); 2269 //exten => vmx,n,Set(VMX_LOOPDEST_CONTEXT=${DB_RESULT}) ;TODO make configurable per above2270 2227 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_LOOPDEST_CONTEXT",'${DB_RESULT}')); 2271 //exten => vmx,n(looppri),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loopdest/pri)}" = "0"]?doloop)2272 2228 $ext->add('macro-vm','vmx', 'looppri', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/loopdest/pri)}" = "0"]','doloop')); 2273 //exten => vmx,n,Set(VMX_LOOPDEST_PRI=${DB_RESULT}) ;TODO make configurable per above2274 2229 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_LOOPDEST_PRI",'${DB_RESULT}')); 2275 //exten => vmx,n(doloop),Goto(${VMX_LOOPDEST_CONTEXT},${VMX_LOOPDEST_EXT},${VMX_LOOPDEST_PRI})2276 2230 $ext->add('macro-vm','vmx','doloop',new ext_goto('${VMX_LOOPDEST_PRI}','${VMX_LOOPDEST_EXT}','${VMX_LOOPDEST_CONTEXT}')); 2231 2277 2232 // doopt: execute the valid option that was chosen 2278 2279 //exten => vmx,n(doopt),Noop(Got a valid option: ${DB_RESULT}) 2233 // 2280 2234 $ext->add('macro-vm','vmx', 'doopt', new ext_NoOp('Got a valid option: ${DB_RESULT}')); 2281 //exten => vmx,n,Set(VMX_EXT=${DB_RESULT})2282 2235 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_EXT",'${DB_RESULT}')); 2283 2236 2284 2237 // Special case, if this option was to go to voicemail, set options and go 2285 2286 //exten => vmx,n,GotoIf($["${VMX_EXT}" != "dovm"]?getdest) 2238 // 2287 2239 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${VMX_EXT}" != "dovm"]','getdest')); 2288 //exten => vmx,n(vmxopts),Set(VMX_OPTS=${VMX_OPTS_DOVM})2289 2240 $ext->add('macro-vm','vmx', 'vmxopts', new ext_setvar("VMX_OPTS",'${VMX_OPTS_DOVM}')); 2290 //exten => vmx,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/vmxopts/dovm)}" = "0"]?vmxdovm)2291 2241 $ext->add('macro-vm','vmx', '', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/vmxopts/dovm)}" = "0"]','vmxdovm')); 2292 //exten => vmx,n(vmxopts),Set(VMX_OPTS=${DB_RESULT})2293 2242 $ext->add('macro-vm','vmx', 'vmxopts', new ext_setvar("VMX_OPTS",'${DB_RESULT}')); 2294 //exten => vmx,n(vmxdovm),goto(dovm,1)2295 2243 $ext->add('macro-vm','vmx','vmxdovm',new ext_goto('1','dovm')); 2296 2244 2297 2245 // General case, setup the goto destination and go there (no error checking, its up to the GUI's to assure 2298 2246 // reasonable values 2299 2300 //exten => vmx,n(getdest),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/${ACTION}/context)}" = "0"]?vmxpri) 2247 // 2301 2248 $ext->add('macro-vm','vmx', 'getdest', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/${ACTION}/context)}" = "0"]','vmxpri')); 2302 //exten => vmx,n,Set(VMX_CONTEXT=${DB_RESULT})2303 2249 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_CONTEXT",'${DB_RESULT}')); 2304 //exten => vmx,n(vmxpri),GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/${ACTION}/pri)}" = "0"]?vmxgoto)2305 2250 $ext->add('macro-vm','vmx', 'vmxpri', new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/${ACTION}/pri)}" = "0"]','vmxgoto')); 2306 //exten => vmx,n,Set(VMX_PRI=${DB_RESULT})2307 2251 $ext->add('macro-vm','vmx', '', new ext_setvar("VMX_PRI",'${DB_RESULT}')); 2308 //exten => vmx,n(vmxgoto),Goto(${VMX_CONTEXT},${VMX_EXT},${VMX_PRI})2309 2252 $ext->add('macro-vm','vmx','vmxgoto',new ext_goto('${VMX_PRI}','${VMX_EXT}','${VMX_CONTEXT}')); 2253 2310 2254 // If the required voicemail file is not present, then revert to normal voicemail 2311 2255 // behavior treating as if it was not set 2312 2313 //exten => vmx,n(nofile),Noop(File for mode: ${MODE} does not exist, SYSTEMSTATUS: ${SYSTEMSTATUS}, going to normal voicemail) 2256 // 2314 2257 $ext->add('macro-vm','vmx', 'nofile', new ext_NoOp('File for mode: ${MODE} does not exist, SYSTEMSTATUS: ${SYSTEMSTATUS}, going to normal voicemail')); 2315 //exten => vmx,n,Goto(s-${ARG2},1)2316 2258 $ext->add('macro-vm','vmx','',new ext_goto('1','s-${ARG2}')); 2317 //exten => vmx,n(tmpgreet),Noop(Temporary Greeting Detected, going to normal voicemail)2318 2259 $ext->add('macro-vm','vmx', 'tmpgreet', new ext_NoOp('Temporary Greeting Detected, going to normal voicemail')); 2319 //exten => vmx,n,Goto(s-${ARG2},1)2320 2260 $ext->add('macro-vm','vmx','',new ext_goto('1','s-${ARG2}')); 2321 2261 … … 2323 2263 // if the user timed out or broke out of the loop then VMX_OPTS is always cleared such that an Allison 2324 2264 // message is played and the caller know's what is going on. 2325 2326 //exten => dovm,1,Noop(VMX Timeout - go to voicemail) 2265 // 2327 2266 $ext->add('macro-vm','dovm', '', new ext_NoOp('VMX Timeout - go to voicemail')); 2328 //exten => dovm,n,Voicemail(${ARG1}@${VMCONTEXT},${VMX_OPTS}${VMGAIN}) ; no flags, so allison plays please leave ...2329 2267 $ext->add('macro-vm','dovm', '',new ext_vm('${ARG1}@${VMCONTEXT},${VMX_OPTS}${VMGAIN}')); 2330 //exten => dovm,n,Goto(exit-${VMSTATUS},1)2331 2268 $ext->add('macro-vm','dovm', '',new ext_goto('1','exit-${VMSTATUS}')); 2332 2269 2333 //exten => s-BUSY,1,NoOp(BUSY voicemail)2334 2270 $ext->add('macro-vm','s-BUSY','',new ext_NoOp('BUSY voicemail')); 2335 //exten => s-BUSY,n,Macro(get-vmcontext,${ARG1})2336 2271 $ext->add('macro-vm','s-BUSY','',new ext_macro('get-vmcontext','${ARG1}')); 2337 //exten => s-BUSY,n,Voicemail(${ARG1}@${VMCONTEXT},${VM_OPTS}b${VMGAIN}) ; Voicemail Busy message2338 2272 $ext->add('macro-vm','s-BUSY', '',new ext_vm('${ARG1}@${VMCONTEXT},${VM_OPTS}b${VMGAIN}')); 2339 //exten => s-BUSY,n,Goto(exit-${VMSTATUS},1) 2340 $ext->add('macro-vm','s-BUSY', '',new ext_goto('1','exit-${VMSTATUS}')); 2341 2342 //exten => s-NOMESSAGE,1,NoOp(NOMESSAGE (beeb only) voicemail) 2273 $ext->add('macro-vm','s-BUSY', '',new ext_goto('1','exit-${VMSTATUS}')); 2274 2343 2275 $ext->add('macro-vm','s-NOMESSAGE','',new ext_NoOp('NOMESSAGE (beeb only) voicemail')); 2344 //exten => s-NOMESSAGE,n,Macro(get-vmcontext,${ARG1})2345 2276 $ext->add('macro-vm','s-NOMESSAGE','',new ext_macro('get-vmcontext','${ARG1}')); 2346 //exten => s-NOMESSAGE,n,Voicemail(${ARG1}@${VMCONTEXT},s${VM_OPTS}${VMGAIN})2347 2277 $ext->add('macro-vm','s-NOMESSAGE','',new ext_vm('${ARG1}@${VMCONTEXT},s${VM_OPTS}${VMGAIN}')); 2348 //exten => s-NOMESSAGE,n,Goto(exit-${VMSTATUS},1)2349 2278 $ext->add('macro-vm','s-NOMESSAGE','',new ext_goto('1','exit-${VMSTATUS}')); 2350 2279 2351 //exten => s-DIRECTDIAL,1,NoOp(DIRECTDIAL voicemail)2352 2280 $ext->add('macro-vm','s-DIRECTDIAL','',new ext_NoOp('DIRECTDIAL voicemail')); 2353 //exten => s-DIRECTDIAL,n,Macro(get-vmcontext,${ARG1})2354 2281 $ext->add('macro-vm','s-DIRECTDIAL','',new ext_macro('get-vmcontext','${ARG1}')); 2355 //exten => s-DIRECTDIAL,n,Voicemail(${ARG1}@${VMCONTEXT},${VM_OPTS}${VM_DDTYPE}${VMGAIN})2356 2282 $ext->add('macro-vm','s-DIRECTDIAL','',new ext_vm('${ARG1}@${VMCONTEXT},${VM_OPTS}${VM_DDTYPE}${VMGAIN}')); 2357 //exten => s-DIRECTDIAL,n,Goto(exit-${VMSTATUS},1)2358 2283 $ext->add('macro-vm','s-DIRECTDIAL','',new ext_goto('1','exit-${VMSTATUS}')); 2359 2284 2360 //exten => _s-.,1,Macro(get-vmcontext,${ARG1})2361 2285 $ext->add('macro-vm','_s-.','',new ext_macro('get-vmcontext','${ARG1}')); 2362 //exten => _s-.,n,Voicemail(${ARG1}@${VMCONTEXT},${VM_OPTS}u${VMGAIN}) ; Voicemail Unavailable message2363 2286 $ext->add('macro-vm','_s-.','',new ext_vm('${ARG1}@${VMCONTEXT},${VM_OPTS}u${VMGAIN}')); 2364 //exten => _s-.,n,Goto(exit-${VMSTATUS},1)2365 2287 $ext->add('macro-vm','_s-.','',new ext_goto('1','exit-${VMSTATUS}')); 2288 2366 2289 // If the user has a 0 option defined, use that for operator zero-out from within voicemail 2367 2290 // as well to keep it consistant with the menu structure 2368 2369 //exten => o,1,Background(one-moment-please) ; 0 during vm message will hangup 2291 // 2370 2292 $ext->add('macro-vm','o','',new ext_background('one-moment-please')); 2371 //exten => o,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/0/ext)}" = "0"]?doopdef)2372 2293 $ext->add('macro-vm','o','',new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/0/ext)}" = "0"]','doopdef')); 2373 //exten => o,n,Set(VMX_OPDEST_EXT=${DB_RESULT})2374 2294 $ext->add('macro-vm','o','',new ext_setvar("VMX_OPDEST_EXT",'${DB_RESULT}')); 2375 //exten => o,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/0/context)}" = "1"]?opcontext)2376 2295 $ext->add('macro-vm','o','',new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/0/context)}" = "1"]','opcontext')); 2377 //exten => o,n,Set(DB_RESULT=${VMX_CONTEXT})2378 2296 $ext->add('macro-vm','o','',new ext_setvar("DB_RESULT",'${VMX_CONTEXT}')); 2379 //exten => o,n(opcontext),Set(VMX_OPDEST_CONTEXT=${DB_RESULT})2380 2297 $ext->add('macro-vm','o','opcontext',new ext_setvar("VMX_OPDEST_CONTEXT",'${DB_RESULT}')); 2381 //exten => o,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/0/pri)}" = "1"]?oppri)2382 2298 $ext->add('macro-vm','o','',new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/0/pri)}" = "1"]','oppri')); 2383 //exten => o,n,Set(DB_RESULT=${VMX_PRI})2384 2299 $ext->add('macro-vm','o','',new ext_setvar("DB_RESULT",'${VMX_PRI}')); 2385 //exten => o,n(oppri),Set(VMX_OPDEST_PRI=${DB_RESULT})2386 2300 $ext->add('macro-vm','o','oppri',new ext_setvar("VMX_OPDEST_PRI",'${DB_RESULT}')); 2387 //exten => o,n,Goto(${VMX_OPDEST_CONTEXT},${VMX_OPDEST_EXT},${VMX_OPDEST_PRI})2388 2301 $ext->add('macro-vm','o','',new ext_goto('${VMX_OPDEST_PRI}','${VMX_OPDEST_EXT}','${VMX_OPDEST_CONTEXT}')); 2389 //exten => o,n(doopdef),GotoIf($["x${OPERATOR_XTN}"="x"]?nooper:from-internal,${OPERATOR_XTN},1)2390 2302 $ext->add('macro-vm','o','doopdef',new ext_gotoif('$["x${OPERATOR_XTN}"="x"]','nooper','from-internal,${OPERATOR_XTN},1')); 2391 //exten => o,n(nooper),GotoIf($["x${FROM_DID}"="x"]?nodid)2392 2303 $ext->add('macro-vm','o','nooper',new ext_gotoif('$["x${FROM_DID}"="x"]','nodid')); 2393 //exten => o,n,Dial(Local/${FROM_DID}@from-pstn)2394 2304 $ext->add('macro-vm','o','',new ext_dial('Local/${FROM_DID}@from-pstn','')); 2395 //exten => o,n,Macro(hangup)2396 2305 $ext->add('macro-vm','o','',new ext_macro('hangup')); 2397 //exten => o,n(nodid),Dial(Local/s@from-pstn)2398 2306 $ext->add('macro-vm','o','nodid',new ext_dial('Local/s@from-pstn','')); 2399 //exten => o,n,Macro(hangup)2400 2307 $ext->add('macro-vm','o','',new ext_macro('hangup')); 2401 2308 2402 2309 // If the user has a * option defined, use that for the * out from within voicemail 2403 2310 // as well to keep it consistant with the menu structure 2404 2405 //exten => a,1,Macro(get-vmcontext,${ARG1}) 2311 // 2406 2312 $ext->add('macro-vm','a','',new ext_macro('get-vmcontext','${ARG1}')); 2407 //exten => a,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/*/ext)}" = "0"]?adef,1)2408 2313 $ext->add('macro-vm','a','',new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/*/ext)}" = "0"]','adef,1')); 2409 /**/2410 //exten => a,n,Set(VMX_ADEST_EXT=${DB_RESULT})2411 2314 $ext->add('macro-vm','a','',new ext_setvar("VMX_ADEST_EXT",'${DB_RESULT}')); 2412 //exten => a,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/*/context)}" = "1"]?acontext)2413 2315 $ext->add('macro-vm','a','',new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/*/context)}" = "1"]','acontext')); 2414 /**/2415 //exten => a,n,Set(DB_RESULT=${VMX_CONTEXT})2416 2316 $ext->add('macro-vm','a','',new ext_setvar("DB_RESULT",'${VMX_CONTEXT}')); 2417 //exten => a,n(acontext),Set(VMX_ADEST_CONTEXT=${DB_RESULT})2418 2317 $ext->add('macro-vm','a','acontext',new ext_setvar("VMX_ADEST_CONTEXT",'${DB_RESULT}')); 2419 2318 2420 //exten => a,n,GotoIf($["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/*/pri)}" = "1"]?apri)2421 2319 $ext->add('macro-vm','a','',new ext_gotoif('$["${DB_EXISTS(AMPUSER/${ARG1}/vmx/${MODE}/*/pri)}" = "1"]','apri')); 2422 /**/2423 //exten => a,n,Set(DB_RESULT=${VMX_PRI})2424 2320 $ext->add('macro-vm','a','',new ext_setvar("DB_RESULT",'${VMX_PRI}')); 2425 //exten => a,n(apri),Set(VMX_ADEST_PRI=${DB_RESULT})2426 2321 $ext->add('macro-vm','a','apri',new ext_setvar("VMX_ADEST_PRI",'${DB_RESULT}')); 2427 //exten => a,n,Goto(${VMX_ADEST_CONTEXT},${VMX_ADEST_EXT},${VMX_ADEST_PRI})2428 2322 $ext->add('macro-vm','a','',new ext_goto('${VMX_ADEST_PRI}','${VMX_ADEST_EXT}','${VMX_ADEST_CONTEXT}')); 2429 //exten => adef,1,VoiceMailMain(${ARG1}@${VMCONTEXT})2430 2323 $ext->add('macro-vm','adef','',new ext_vmmain('${ARG1}@${VMCONTEXT}')); 2431 //exten => adef,n,GotoIf($["${ARG3}" = "RETURN"]?exit-RETURN,1)2432 2324 $ext->add('macro-vm','adef','',new ext_gotoif('$["${ARG3}" = "RETURN"]','exit-RETURN,1')); 2433 //exten => adef,n,Hangup2434 2325 $ext->add('macro-vm','adef','',new ext_hangup('')); 2435 2326 2436 //exten => exit-FAILED,1,Playback(im-sorry&an-error-has-occured)2437 2327 $ext->add('macro-vm','exit-FAILED','',new ext_playback('im-sorry&an-error-has-occured')); 2438 //exten => exit-FAILED,n,GotoIf($["${ARG3}" = "RETURN"]?exit-RETURN,1)2439 2328 $ext->add('macro-vm','exit-FAILED','',new ext_gotoif('$["${ARG3}" = "RETURN"]','exit-RETURN,1')); 2440 //exten => exit-FAILED,n,Hangup()2441 2329 $ext->add('macro-vm','exit-FAILED','',new ext_hangup('')); 2442 2330 2443 //exten => exit-SUCCESS,1,GotoIf($["${ARG3}" = "RETURN"]?exit-RETURN,1)2444 2331 $ext->add('macro-vm','exit-SUCCESS','',new ext_gotoif('$["${ARG3}" = "RETURN"]','exit-RETURN,1')); 2445 //exten => exit-SUCCESS,n,Playback(goodbye)2446 2332 $ext->add('macro-vm','exit-SUCCESS','',new ext_playback('goodbye')); 2447 //exten => exit-SUCCESS,n,Hangup()2448 2333 $ext->add('macro-vm','exit-SUCCESS','',new ext_hangup('')); 2449 2334 2450 //exten => exit-USEREXIT,1,GotoIf($["${ARG3}" = "RETURN"]?exit-RETURN,1)2451 2335 $ext->add('macro-vm','exit-USEREXIT','',new ext_gotoif('$["${ARG3}" = "RETURN"]','exit-RETURN,1')); 2452 //exten => exit-USEREXIT,n,Playback(goodbye)2453 2336 $ext->add('macro-vm','exit-USEREXIT','',new ext_playback('goodbye')); 2454 //exten => exit-USEREXIT,n,Hangup()2455 2337 $ext->add('macro-vm','exit-USEREXIT','',new ext_hangup('')); 2456 2338 2457 //exten => exit-RETURN,1,Noop(Returning From Voicemail because macro)2458 2339 $ext->add('macro-vm','exit-RETURN','',new ext_noop('Returning From Voicemail because macro')); 2459 //exten => t,1,Hangup()2460 2340 $ext->add('macro-vm','t','',new ext_hangup('')); 2461 2341
