Even though SIP is quickly becoming the industry standard (if not already), there are issues with SIP which because the way each vendor implements it in their products. What I have seen is mostly DTMF causes most pain for the engineers.
Here are some of the ways DTMF is used in SIP environments.
In In-Band, the DTMF information is carried inside the actual voice traffic. This is defined under RFC 2833.
In Out-of-Band, DTMF information is carried outside the voice traffic.
Here are the CUCM Trunk configuration parameter that can be selected:
DTMF Signaling Method: Choose from the following options:
No Preference (default)—Cisco Unified Communications Manager will pick the DTMF method to negotiate DTMF, so the call does not require an MTP. If Cisco Unified Communications Manager has no choice but to allocate an MTP (if the Media Termination Point Required check box is checked), SIP trunk will negotiate DTMF to RFC2833.
RFC 2833—Choose this configuration if the preferred DTMF method to be used across the trunk is RFC2833. Cisco Unified Communications Manager makes every effort to negotiate RFC2833, regardless of MTP usage. Out of band provides the fallback method if the peer endpoint supports it.
OOB and RFC 2833—Choose this configuration if both out of band and RFC2833 should be used for DTMF.
Media Termination Point Required:
You can configure Cisco Unified Communications Manager SIP trunks to always use an MTP. Check this check box to provide media channel information in the outgoing INVITE request. When this check box is checked, all media channels must terminate and reoriginate on the MTP device. If you uncheck the check box, the Cisco Unified Communications Manager can decide whether calls are to go through the MTP device or be connected directly between the endpoints.
If check box remains unchecked (default case), Cisco Unified Communications Manager will attempt to dynamically allocate an MTP if the DTMF methods for the call legs are not compatible.
For example, existing phones that run SCCP support only out-of-band DTMF, and existing phones that run SIP support RFC2833. Because the DTMF methods are not identical, the Cisco Unified Communications Manager dynamically allocates an MTP. If, however, a new phone that runs SCCP, which supports RFC2833 and out-of-band, calls an existing phone that runs SIP, Cisco Unified Communications Manager does not allocate an MTP because both phones support RFC2833. So, by having the same type of DTMF method supported on each phone, no need exists for MTP.
Instead of selecting Media Termination Point Required on the above option, a better option is to Insert MTP whenever is required. That is done through the SIP Trunk Profile.
Early Offer support for voice and video calls:
This field configures Early Offer support for voice and video calls. When enabled, Early Offer support includes a session description in the initial INVITE for outbound calls. Early Offer configuration settings on SIP profile apply only to SIP trunk calls. These configuration settings do not affect SIP line side calls. If this profile is shared between a trunk and a line, only a SIP trunk that uses the profile is affected by these settings.
The Media Transfer Point (MTP) Required check box on the Trunk Configuration window, if enabled, overrides the early offer configuration on the associated SIP profile. Cisco Unified Communications Manager sends the MTP IP address and port with a single codec in the SDP in the initial INVITE.
From the drop-down list box, select one of the following three options:
Disabled (Default value) - Disables Early Offer; no SDP will be included in the initial INVITE for outbound calls.
Best Effort (no MTP inserted)
CUBE (SBC) Configuration
On the CUBE dial-peers, DTMF has to be selected.
You can actually select RFC2833 as well as a secondary DTMF if RFC2833 (in-band) is not supported.
For complete dial-peer config, please refer to this blog post.
Some text in the above blog was taken was Cisco Unified Communications Manager Help Pages.