Why Early Offer invokes MTP?

Hey Guys,

I decided to write about that because over the last few weeks couple people asked me this very question. We know how to configure Early Offer support on CUCM, there are thousands of guides on that topic, but sometimes it’s not clear what’s actually the logic and reason behind.

There are two main, well known terms in SIP offer/answer model:

  • Early Offer – when SDP is send in INVITE and 200OK
EO

Diagram taken from official Cisco Collaboration SRND

  • Delayed Offer – when SDP is send in 200OK and ACK
DO

Diagram taken from official Cisco Collaboration SRND

 

One of the most important information included in SDP is endpoint’s connection details, or more specifically – IP address and port on which media stream will be established. So basically, in Early Offer model, calling party informs about its own IP/port in INVITE, while called party informs about same in 200OK. On the other hand, in Delayed Offer model called party informs about its IP/port in 200OK, while calling party sends that information in ACK.

Now, time for MTP part. Under CUCM SIP Trunk configuration there is a famous option “Early Offer support for voice and video calls (insert MTP if needed)”. When you check it and then make a call where calling party does not send SDP in INVITE (Delayed Offer), CUCM is going to invoke MTP.

Why?

Let’s say you have an agreement with SIP Service Provider by which you’re obliged to send Early Offer to them no matter what. Easy. You just configure your SIP Trunk pointing to SP with “Early Offer support for voice and video calls (insert MTP if needed)” and provide some MTP resources for the Trunk. Now let’s take a look at the bellow call flow example:

basic flow1

Imagine, that for any reason, calling IP phone does not send SDP in INVITE (Delayed Offer), but as we mentioned, you’re obliged to send Early Offer to SP. If you haven’t received any SDP from the phone in the originating INVITE, which means you don’t know phone’s connection details for media stream, what IP address and port number are you going to send to SP?

 

What’s going to happen is following:

  1. CUCM receives INVITE without SDP from the phone (so it doesn’t know phone’s IP/port for media stream)
  2. CUCM knows that it’s obliged to send Early Offer to Service Provider so it will invoke MTP (via SCCP protocol)
  3. CUCM gets IP address and port from MTP
  4. CUCM creates INVITE with SDP, which contains IP/port of previously invoked MTP, and sends this INVITE over to Service Provider

flow3

That’s why and how we sometimes invoke MTP on Early Offer calls.

Obviously, it’s not only about SIP-to-SIP calls. Logic is same for every call where calling side for any reason doesn’t provide information for media setup. These can be some H323 setups, calls from SCCP endpoints, older SIP phones, or SIP GWs which didn’t send us Early Offer in the first place.

 

 

Thanks!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s