[dial] ; Manual trunk selection ( **212345 dials 12345 on trunk2 ) exten => _**X., 1,Set(TRUNK=${EXTEN:2:1}) exten => _**X., n,Goto(dial-trunk,${EXTEN:3},1) ; Internal extensions (2 - 4 digits) exten => _ZX, 1,Goto(intern,${EXTEN},1) exten => _ZXX, 1,Goto(intern,${EXTEN},1) exten => _ZXXX, 1,Goto(intern,${EXTEN},1) ; All other expected to be external exten => _X., 1,Set(TRUNK=0) exten => _X., n,Goto(dial-trunk,${EXTEN},1) [dial-trunk] ; Trunk dialing ; needs variable TRUNK set to number of trunk to be used ( e.g. 0 => trunk0 ) ; exten => _ZX.,1,Goto(0${LOCALPREFIX}${EXTEN},1) exten => _0ZX.,1,Goto(00${LOCALCOUNTRY}${EXTEN:1},1) exten => _00ZX.,1,Gosub(fix-cid,${CALLERID(num)},1) exten => _00ZX.,n,Goto(trunk0,${EXTEN},1)