I put this question to a CCIE friend of mine, but as we couldn't come up with an answer between us I thought I'd push it out to the netpro community.
Basically, we have a 2851 running CME 126.96.36.199, and it works fine until the router is reloaded or there's a power failure.
Based on the current config the phones registered with the CME are able to call between themselves, over the WAN, and over the router's FXO ports to the PSTN.
When the router is reloaded it copies the config file from NVRAM into DRAM, executes the config, and the phones begin to reregister. However, while they are still able to call between themselves and over the WAN, they can no longer call to the PSTN via the FXO ports.
Even though the config is exactly the same as before the reload, any calls to the PSTN return no ringing tone and the phone being called does not ring.
Now here's the strange part...
If I download the same config file from a TFTP server, everything works fine again. Calls to the PSTN are ok.
If you have an answer to the above then that would be great. If not, then I could do with a bit of help with the workaround...
Basically I've noticed that if the NVRAM is empty (or if the config register is set to 0x2142), after loading the IOS the router enters auto-config mode, assigns it's G0/1 interface an IP address using DHCP and then attempts to download a sequence of config files from a TFTP server. The config filenames are generic (cisco.cfg, network.cfg, etc.)
Is it possible to change the IP address of the TFTP server and the filenames that it searches for automatically when the router starts up without a config file?
Should I use the TFTP commands in ROMMON to accomplish this? (please bear in mind the IOS file is not the problem, just the config file).