Another helpful reference is rfc3960 - Early Media and Ringing Tone Generation:
3.2. Ringing Tone Generation [Page 6]
With this in mind, a UAC should develop its local policy regarding
local ringing generation. For example, a POTS ("Plain Old Telephone
Service")-like SIP User Agent (UA) could implement the following
1. Unless a 180 (Ringing) response is received, never generate
2. If a 180 (Ringing) has been received but there are no incoming
media packets, generate local ringing.
3. If a 180 (Ringing) has been received and there are incoming
media packets, play them and do not generate local ringing.
Note that a 180 (Ringing) response means that the callee is
being alerted, and a UAS should send such a response if the
callee is being alerted, regardless of the status of the early
I have experienced the following (very) intermittent scenarios from the Los Angeles server:
1. No 180 ringing response. I do see multiple 183 Session Progress responses prior to the call being answered.
2. A 180 ringing response with no incoming early media (ringing sound).
Early media is normally provided, so in this case it may be a configuration issue on my side.
There is a possibility that I have not set an early media detection timeout, or it may be set (defaulted) for too long of a period.
As a side note, I find it beneficial that Asterisk is open source software, because I'm currently playing in chan_sip.c as time permits.