Move it on Over — SIP Redirection

A few weeks back I wrote about my favorite SIP request message.  It should come as no surprise that I also have a favorite SIP response.  Actually, it’s two responses, but since they essentially do the same thing, I’ll count them as one.

Before I tell you what it is, I want to remind you that a SIP solution is built from a number of different server types (for a deeper dive please refer to my article on SIP Servers and Services).  Endpoints are called User Agents and they come in the form of a User Agent Client, a User Agent Server, or a User Agent Client/Server.  Then there are the network elements.  Of importance to this discussion are the SIP Proxy and the SIP Redirect Server.  The job of the SIP proxy is to accept SIP messages and forward them on to the appropriate next hop.  The Redirect Server also accepts SIP messages, but instead of forwarding them on, it tells the sender the next hop and lets it move the message along to its final destination.

Simply put, a Redirect Server redirects.  But how does it do that?  Well, that’s where my favorite SIP response comes in.

302-redirect

The 3xx class of SIP responses are the Redirection Responses and are sent by a Redirection Server to inform the sender where the next hop is.  Specifically, I am extremely partial to 302 Moved Temporarily.  Contained within the 302 response is the contact information of the next hop which the sender will use when it re-sends the message.

For example, Andrew wants to talk to Linda.  Andrew sends a SIP Invite to his configured SIP server which happens to be a Redirect Server.  The Redirect Server replies to Andrew with a 302 response.  The 302 contains the IP address of Linda’s SIP phone.  Andrew now sends the Invite directly to Linda bypassing the Redirect Server.

So, what’s the big deal?  The deal is that this underscores how SIP distributes control throughout its network of devices.  In a traditional PBX, the endpoints are dumb and the core processor executes any and all redirection.  However, with SIP it’s understood (and expected) that intelligence exists outside of the core and a SIP endpoint can perform the redirection on its own.  A Redirect Server can be fast and efficient because it knows that it can rely upon the rest of the SIP solution to get the job done.  This is a major paradigm shift from how we did communications in the olden days and it’s the basis for building powerful, scalable systems.

I mentioned that my one message is really two.  The sister message to 302 Moved Temporarily is 301 Moved Permanently.  From a redirection standpoint they do the same thing.  The difference is that if the sender receives a 301 it might want to update its configuration or address book with the new contact information.  Again, more intelligence at the endpoint.

I expect that you aren’t as excited about this as I am, but you really should be.  This separation of church and state comes into play all over a SIP network.  It’s what makes SIP the platform of the future and every other communications protocol (I’m talking to you, H.323) the  buggy whip for a horse drawn carriage.

6 comments

  1. Mike Huot · · Reply

    I have to agree with your favorite. I have been thinking how handy sending a 302 could be to inbound calls from SIP carriers when we do maintenance or have downtime!

  2. The 302 is my favorite response too. It keeps things lean and mean 😉

  3. Nice write-up Andrew; however the problem with distributing and assuming intelligence outside the system is that there may be idiots thinking themselves to be intelligent enough and making decision. 🙂
    In present context, a 302 (and 301) response can not guarantee a completed call simply because not all SIP UAs will know how to handle this response. Some will simply display ‘Moved’ or ‘302’ msg or more idiotically ‘Connection Error’
    I am still looking for a foolproof response/solution to forward my calls with a lightweight redirect server.

    1. I agree. There is always room for improvement. 🙂

  4. Which one is your favorite redirect server?

  5. SBoobathy · · Reply

    (I’m talking to you, H.323)…. nice finishing touch..:)

Leave a comment