Yo lo logre haciendo esto en el dialplan custom:
include => outrt-6
[outrt-6]
exten => 9X.,1,Macro(user-callerid,LIMIT,EXTERNAL,)
exten => 9X.,1,Noop
exten => 9X.,n,Gosub(sub-record-check,s,1(out,${EXTEN},yes))
exten => 9X.,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT},,${MIXMON_POST})
exten => 9X.,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})
exten => 9X.,n,Gosub(Randnum,cell${RAND(1,8)},1)
exten => _9X.,n,Dial(SIP/Nombredelatroncal/Prefijo${EXTEN:1},30)
[Randnum]
exten => cell1,1,Set(CALLERID(num)=5072113XX01);
same => n,Return
exten => cell2,1,Set(CALLERID(num)=5072113XX06);
same => n,Return
exten => cell3,1,Set(CALLERID(num)=5072113XX26);
same => n,Return
exten => cell4,1,Set(CALLERID(num)=5072113XX28);
same => n,Return
exten => cell5,1,Set(CALLERID(num)=5072113XX29);
same => n,Return
exten => cell6,1,Set(CALLERID(num)=5072113XX32);
same => n,Return
Así que todas las llamadas salientes usen un numero aleatorio del pool que uno designe