Действительно, Ваше оконечное оборудование выдаёт 183 (Session in progress), а сервер меняет на 180 (Ringing).
Только в случае установки музыки вместо гудка при звонке на устройство мой сервер меняет 180 на 183.
Несложно это исправить. Но мне сложно представить к чему это приведёт.
Забота о генерации гудков или чего бы то ни было ложится на оконечное оборудование.
Например, при звонке с PhonerLite на Zoiper я услышал гудок (видимо Zoiper генерирует код 180 или тон). А вот при звонке с Zoiper на PhonerLite я слышал только тишину.
Таким образом, нельзя надеяться что клиент что-то сгенерирует… а сервер заранее предугадать не может.
А для чего нужно чтобы конечное оборудование выдавало early media? Если там не трубка, а PBX/шлюз, то и подключать его стоит не через устройство.