I have a Cisco IP phone 8811 (SIP) which is behind a Cisco 2821 router. This phone NAT's to public IP on Cisco 2821 and then registers to a CUCM on internet. When it registers, CUCM has phone's private IP address instead of Public. I think the problem is that Cisco 2821 is not able to do SIP ALG for Register request that phone send to the CUCM. I see phone sends a SIP register message which is TCP and sent to TCP port 5060 to CUCM. When I try configuring SIP ALG on Cisco 2821, it gives me an option to configure the SIP NAT service only for UDP port.
Is there any other way I can make Cisco 2821 to do SIP ALG on TCP 5060? If not, is there a way I can configure the phone to send the SIP register message on UDP 5060 instead of TCP?
From Cisco 2821 (does not give me a TCP option):
(config)#ip nat service sip ?
udp UDP protocol