Scott,
You need to be a little careful using an include. If you pre-process something using custom code, then send it on to from-internal using an include, it may not start at the top. If you have 3 lines in your custom code for that pattern match, when it gets to from-internal, it will start with the fourth line for that patternmatch or the first “n”.
To illustrate this, run this code snippet while watching the CLI. Philippe provided me with this explanation in this post. http://freepbx.org/forum/freepbx/users/extension-with-time-conditions
So if you completely process the call in the custom code, you can use the include to get the rest of the calls into the normal dial plan. If you are preprocessing some special thing, like adding steering digits, you should probably use a goto statement because you can specify where it starts.
[tst-1]
exten => 9123,1,Noop(tst-1 - 1)
exten => 9123,n,Noop(tst-1 - 2)
[tst-2]
exten => 9123,1,Noop(tst-2 - 1)
exten => 9123,n,Noop(tst-2 - 2)
exten => 9123,n,Noop(tst-2 - 3)
[tst-3]
exten => 9123,1,Noop(tst-3 - 1)
exten => 9123,n,Noop(tst-3 - 2)
exten => 9123,n,Noop(tst-3 - 3)
exten => 9123,n,Noop(tst-3 - 4)
[from-internal-custom]
include => tst-1
include => tst-2
include => tst-3