I manage a cisco router acting as a SIP gateway. In order to get it to register to the SIP provider, the connection needs to come from the right IP address. This is done with the following lines in the switch config:
voice service voip
sip
bind control source-interface FastEthernet0/1
bind media source-interface FastEthernet0/1
Recently, the router's main external interface went down briefly, and when it came back up nobody could make any phone calls. It took far too long to troubleshoot this before we discovered that those lines had vanished silently from the config, and the router was failing to register with our SIP provider, who expected the connection to come from a particular IP address!
Further testing revealed that those lines are automatically and silently removed from the config whenever the interface they refer to goes down, however briefly. I have to manually log into the router and re-enter those lines before the phones work.
How can I make sure that SIP service comes back up automatically when the network connection comes back up?
That sounds like a bug. If you can't try a more recent IOS then a potential work-around would be to configure a loopback interface, and bind sip to it. A loopback interface will never go down.