I would suggest having a backup to a large call center if the wait time is over 30 seconds. The remote call center could have priority to "escalate" to the local call center and share information. Integrating it so the local call center could see what the remote site had typed and replay the message if the caller stops responding would also improve that system.
Set things up as a distributed system so each site would accept incoming calls if they had excess capacity and give remote sites access to local conditions. So you can handle large sudden spikes without excessive staff.
The other option would be to try automatically handle some calls using location information while the caller is waiting. (If you are calling about the car crash at _ we are sending an ambulance. If you need further assistance please stay on the line.)
I really don't want to call 9-1-1 and be told 'oh, we can't deal with that, you'll have to go into your local branch' when I say my grandma is having a stroke.