Well, of course you can. The question is: you will likely want some calls to be marked as outbound and not all of them. Anyway, imagining you will want to put all calls on some outbound queue called OUT:
[queuedial]
exten => _.,1,SetVar(MY_QUE=OUT)
exten => _.,2,SetVar(MY_NUM=${EXTEN})
exten => _.,3,SetVar(MY_AGENT=${CALLERIDNUM})
exten => _.,4,NoOp,Ag: ${MY_AGENT} N: ${MY_NUM} Q: ${MY_QUE}
exten => _.,5,MixMonitor(Q-${MY_QUE}-${UNIQUEID}.wav|b|)
exten => _.,6,DeadAGI(queueDial.agi|${MY_NUM}|Zap/g0/${MY_NUM}|q-${MY_QUE}|Agent/${MY_AGENT})
exten => _.,7,Congestion
This will dial outgoing calls on queue "OUT" using the full number passed as an option.
You need an outbound call with some name because QM expects to pick up calls by belonging to one queue.
Then you just define a trunk (by matching the number, or using a prefix) that will understand that the number you input is for PSTN and dial it like Dial(Local/$OUTNUM$@queuedial/n ) in Asterisk so that it gets called.
That's all there is!