We have a multi-office setup where we have 4 offices all with their own Asterisk + Thirdlane install, and each office has one or more trunks defined which connect directly to other offices. The extension numbers are unique across the company, and routes are set up so that certain extension ranges will route to certain offices. I also have inter-office routes set up where each office is assigned a 2-digit code (using the letters on the phone pads - easier to remember an abbreviation than each office having an arbitrary number) so you can dial 7 + office code + number and it will dial to that office and do whatever it would have done if you had dialed it from there.
However, with the route capabilities that ship with Thirdlane, it seems to assume that any outbound route you have defined is going to be making an outside call, and so it overrides the CallerID with the External Caller ID value. For the inter-office connections, since the extension numbers are global anyway (and even if they weren't there's already provisions for prefixing the callerid on a route anyway so I could stick the return interoffice code on the front of it), I'd just as soon leave the CallerID intact instead of replacing it with the outside phone number.
I've already accomplished this internally by cloning the tl-dialout-base script to create an interoffice-base and entirely commenting out the section that deals with the CallerID, then cloning the tl-dialout-1-trunk and tl-dialout-2-trunks scripts to make versions that call the interoffice version. (I usually use the 2-trunks version, since the offices all have connections to each other, I can sometimes route around network outages that way by prefixing a call with the inter-office code for the destination office and sending it to a different office). But what I did feels like a hack and in order to pick up changes to the trunking code that come with thirdlane upgrades, I would have to re-do that clone and remove code every time we upgrade.
It seems like something that could be in a checkbox on the route "use internal callerID" or something.