Sur freepbx il existe un module custom contexts qui fait très bien ce job

Sur asterisk brut possible de le faire de plusieurs façons
la plus simple étant de créer un contexte pour le poste qui attend le code
plus le numéro, si le code est bon on envois l'appel sur le context sortant.

ou encore plus simple on met dans ce context
exten => 1234|X.,1,DIAL(trunk
1234 réprésente le code secret

Il y à également des tas d'autres méthodes avec dB ou sans