Play a message on outbound calls

I am looking for a way where certain extensions when calling a outside number will be force to listen to a message before it connects the call to the other party. I plan to use custom-contexts to aid in this but not sure where to start.

I saw a post on here that was similar to mind but I want it flexible where I can say for this extension do this.

any help would be greatly appreciated.

I am trying to follow this post: http://freepbx.com/forum/freepbx/users/question-how-to-play-warning-message-on-certain-outbound-destinations

it plays my message but never places the outbound call.

I created a custom trunk and added the dial string like shown in that post but named mine free-service.

I created a a entry in the extensions_custom.conf

that is called [free-service]
I created a outbound route and called it test for now and chose the free-service trunk.

I created a custom context where it will use the test outbound route first and has the ability to use my main outbound route if needed.

When I call a number I hear the message play but the call never goes through. I see this message in the logs

– Executing [[email protected]:3] NoOp(“Local/[email protected],2”, “Playing announcement Expensive-Call-Warning”) in new stack
– Executing [[email protected]:4] Playback(“Local/[email protected],2”, “tt-weasels”) in new stack
– <Local/[email protected],2> Playing ‘tt-weasels’ (language ‘en’)
== Auto fallthrough, channel ‘Local/[email protected],2’ status is ‘UNKNOWN’
== Spawn extension (macro-dialout-trunk, s, 27) exited non-zero on ‘SIP/1002-084eca90’ in macro ‘dialout-trunk’
== Spawn extension (macro-dialout-trunk, s, 27) exited non-zero on ‘SIP/1002-084eca90’
– Executing [[email protected]:1] Macro(“SIP/1002-084eca90”, “hangupcall|”) in new stack
– Executing [[email protected]:1] GotoIf(“SIP/1002-084eca90”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,4)
– Executing [[email protected]:4] GotoIf(“SIP/1002-084eca90”, “1?skipblkvm”) in new stack
– Goto (macro-hangupcall,s,7)
– Executing [[email protected]:7] GotoIf(“SIP/1002-084eca90”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,9)
– Executing [[email protected]:9] Hangup(“SIP/1002-084eca90”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on ‘SIP/1002-084eca90’ in macro ‘hangupcall’
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on ‘SIP/1002-084eca90’