Cisco CME and “SIP/2.0 488 Not Acceptable Here”
Introduction
I have recently had a strange issue with call transfers on CME 12.0. I was getting “SIP/2.0 488 Not Acceptable Here” from ISP while trying to transfer a call from PSTN to another extension. Let’s see how we can solve this problem and make the transfer work.
Equipment Used
The phone I used was Cisco 8851 running 12-5-1SR3-74 load. The router running CME was Cisco ISR 4331 with IOS XE 16.6.
Problem Description
You usually get “SIP/2.0 488 Not Acceptable Here” error when there’s a codec mismatch and in most cases adjusting the codecs on dial-peers solves the problem. In my setup codecs were OK and the calls were going through, but transfer didn’t work.
Adding the following lines under voice service voip didn’t help either:
no supplementary-service sip moved-temporarily
no supplementary-service sip refer
Here’s the error itself:
*Sep 9 13:07:37.069: //4774/9A7FFFC88402/SIP/Msg/ccsipDisplayMsg:
Sent:
INVITE sip:0553251661@ISP-IP-ADDR:5060;user=phone;transport=udp SIP/2.0
Via: SIP/2.0/UDP CME-IP-ADDR:5060;branch=z9hG4bK10A9A97
From: "NUMBER" <sip:NUMBER@CME-IP-ADDR:5060;user=phone>;tag=F568F53-1A16
To: "0553251661" <sip:0553251661@ISP-IP-ADDR:5060;user=phone;cpc=ordinary>;tag=SDndq2701-bpkbrx8vrf
Date: Mon, 09 Sep 2019 13:07:37 GMT
Call-ID: SDndq2701-a75e725ad26cc02c4cd0eb932dc03ba5-a85a0a0
Supported: 100rel,timer,resource-priority,replaces,sdp-anat
Min-SE: 1800
Cisco-Guid: 2592079816-3526955497-2214758057-2380581963
User-Agent: Cisco-SIPGateway/IOS-16.6.4
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
CSeq: 101 INVITE
Max-Forwards: 70
Timestamp: 1568034457
Contact: <sip:NUMBER@CME-IP-ADDR:5060>
Expires: 180
Allow-Events: telephone-event
Session-ID: 72b15b8600105000a000002f5c4e8b98;remote=603651d1f9555ad397d11dbc80df38e4
Content-Type: application/sdp
Content-Length: 264
v=0
o=CiscoSystemsSIP-GW-UserAgent 9262 2437 IN IP4 CME-IP-ADDR
s=SIP Call
c=IN IP4 CME-IP-ADDR
t=0 0
m=audio 8142 RTP/AVP 8 101
c=IN IP4 CME-IP-ADDR
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendonly
*Sep 9 13:07:37.103: //4774/9A7FFFC88402/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 488 Not Acceptable Here
Via: SIP/2.0/UDP CME-IP-ADDR:5060;branch=z9hG4bK10A9A97
From: "NUMBER" <sip:NUMBER@CME-IP-ADDR:5060;user=phone>;tag=F568F53-1A16
To: "0553251661" <sip:0553251661@ISP-IP-ADDR:5060;user=phone;cpc=ordinary>;tag=SDndq2701-bpkbrx8vrf
Call-ID: SDndq2701-a75e725ad26cc02c4cd0eb932dc03ba5-a85a0a0
CSeq: 101 INVITE
Timestamp: 1568034457
Content-Length: 0
You can see, that when making a transfer, CME sends a mid-call INVITE and ISP responds with “488 Not Acceptable Here”. There was definitely something in my INVITE message that ISP didn’t like, probably the INVITE message itself. Of course, you can talk to your ISP, but in my case it was not much of a help.
Problem Solution
There’s a special command to prevent the CME from sending those mid-call INVITEs:
voice service voip
sip
midcall-signaling block
After adding midcall-signaling block the issue was solved and the whole voice service voip config looked like this:

Having that line made the CME stop sending the mid-call INVITEs. Instead the router sends only UPDATE message to the ISP in the very end of the transfer process.
You can find more information about mid-call signaling in this guide on Cisco website.
Conclusion
Thank you for reading. I hope this post helped you 🙂