If I were the customer and there was no sound for 17 seconds, I'd hang up immediately. Customers hanging up mid-way isn't a good thing, of course.
Here are the steps I did to remedy the situation:
- Make sure the DID points to the IP address you need: It will take longer to route the calls to the right place if you have 2 or more servers. I had our DID provider remove the 4 other unnecessary IP addresses which shaved off 10 seconds.
- [Update: Don't do this! I ended up having a lot of outbound calls dropped because asterisk couldn't find this file]
Remove sip-silence.gsm from the sequence: Observing asterisk logs, when an inbound call arrives, sip-silence.gsm is played twice before the first greeting. I'm too scared to tinker with the asterisk script (it's a really long text of code) and remove the 2 lines of sip-silence. Instead, I just renamed sip-silence.gsm into sip-silence2.gsm so it would skip playing that file. This shaved off another 3 seconds. Aside from removing sip-silence.gsm, I was thinking of replacing it with a ringing sound. However, I can't find the default ringing sound in the asterisk folder, so I chose to just remove sip-silence.gsm instead.
From 17 seconds of long silence, I was able to cut it down to 4 seconds of silence.