Last week I had an interesting issue with one of our SIP Voice circuits. Calls to a specific mobile numbers were connecting but there was no two way audio. Signalling worked (e.g the mobile phone would ring) but there was no audio.
So to investigate I ran debugs on the Cisco voice router (ISR 4331):
debug ccsip calls
debug ccsip messages

Then I placed the call to the mobile in question. In this instance the call is being call forwarded. The call flow is mobile -> Handset with SIP DID -> Mobile. The last call leg is captured below showing the 488 message.
From here we see the following debug:
Nov 4 01:16:07.707: //15772/BCE33F800001/SIP/Msg/ccsipDisplayMsg:
SIP/2.0 488 Not Acceptable Media
Via: SIP/2.0/TCP 10.4.XX.XX:5060;branch=z9hG4bK70db87bfc3812
From: "Doug Smith" ;tag=88268092~8057b0e3-9411-4be2-8bea-11fbce52a288-49455108
To: ;tag=19D17DB4-157A
Date: Thu, 04 Nov 2021 09:16:07 AWST
Call-ID: bce33f80-1ed15b0f-34bbee-3c0b040a@10.4.XX.XX
CSeq: 102 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-15.5.3.S6b
Content-Length: 0

I sent this to our telphony service provider (which is Telstra) and I was sent back the following debug:
SIP 488

The issue here is that there is a codec mismatch that has been negotiated midcall. The gateway is sending an invite midcall for the codec change. You can see we start with G.711ulaw and then offer G.711alaw.
The culprit was midcall-signaling passthru media-change
To fix this:
voip service voip
no midcall-signaling passthru media-change
midcall-signaling block

Once the configuration was corrected, the SIP Invite does not occur any more and the audio is now two way, because the codec negotiated during call setup does not change anymore.

All’s well the ends well!