I was working on this very change, a few months ago. I have a CM6.0 system that's been upgraded a few times, though the routing hasn't really changed all that much until now. I had some trouble getting this to work right, and discovered that the ARS Digit Conversion table was setup to drop the 518 area code, if the user dialed it explicitly. To fix this, I used the command 'change ars digit-conversion 5' and removed the line that starts with '518'.
I also had to make the change mentioned by wmainc. Specifically, using the command 'change ars analysis 5', I added these two lines:
[tt](string-min-max-route-type-ani)
518 10 10 p9 hnpa n
1518 11 11 p9 hnpa n
838 10 10 p9 hnpa n
1838 11 11 p9 hnpa n[/tt]
Route pattern p9 is my specific route pattern-- make sure to use your own as determined by your tables.
I spent a long time trying to figure out if I need to do anything special with the Prefix Mark thing in the route patterns, which impacts whether the leading 1 is sent before the area code, but I think I determined that the Telco doesn't care if I send 1-518 or just 518 for in-area calls, as long as I always send 1+areacode for out-of-area (long distance) calls. So I left everything else alone. I'm crossing my fingers it'll work fine after Aug 19.
Based on list trace testing, it looks good to me with these minimal changes. I briefly considered completely changing it some sort of simpler North American Dialing Plan routing, but I don't want to break everything. And it's summer and I want to go home at the end of the day.