Subject: Re: SIP, voicemail, and UPT

From: [email-masked]
Date: Tue, 10 Aug 1999 10:52:01 -0500

Jonathan wrote:
               Anders Kristensen wrote:
     >
     > > As Henning has pointed out, this is supported readily in the calller
     > > preferences draft. Specifically,  the INVITE would contain:
     > >
     > > Accept-Contact: *;feature=!voice-mail
     > >
     > > Locations with voicemail would register:
     > >
     > > REGISTER sip:host.com
     > > Contact: sip:[email-masked];feature=voicemail
     > >
     > > and the proxy would not forward the INVITE to these destinations.
     > >
     >
     > But you *do* want it go to voicemail, but only if a non-voicemail
     > contact definitely cannot be found.  This would seem to imply that the
     > UPT-proxy needs to be able to tell the difference between an "ordinary"
     > 404 (Not Found) failure and one that's the result of an INVITE being
     > rejected because of constraining caller-prefs.  So maybe that really is
     > best done using a new error code?
     > I see. I'm not sure how a special error response code helps, though.
     > Lets say a proxy has three addresses it can forward to, one of which
     > says voicemail. It forwards to all three, and the voicemail UAC rejects
     > the the call since the caller preferences indicate no voicemail.
     > However, a rejection comes from the other two. The problem is that the
     > voicemail UAS has already rejected the call. I guess this rejection
     > could get propagated back to the UAC, and then it could try again
     > without the !voicemail attribute.

        >Another possibility is if the proxy first tried the non-voicemail
        >addresses, and then if both fail, tried the voicemail one. This can
        >also
        >be supported in the current caller preferences framework:

        >Accept-Contact: *;feature=!voice-mail;q=0.8,
                        *;feature=voice-mail;q=0.1
        >Request-Disposition: sequential

I wonder how would you register these two contacts. According to spec 4.2.6
"Registrations using SIP URIs that differ in one or more of host, port,
transport-param or maddr-param (see Figure 3) from an existing registration are
added to the list of registrations.
If the URIs are equivalent to that of an existing registration, the new
registration replaces the old one if it has a higher q value or, for the same
value of q, if the ttl value is higher. "

therefore the registration
     REGISTER sip:host.com
     Contact: sip:[email-masked];feature=!voicemail;q=0.8
would replace the
     REGISTER sip:host.com
     Contact: sip:[email-masked];feature=voicemail;q=0.1
since they are identical on host, port, transport-param and maddr-param and one
has higher q value than the other.
By the way, shouldn't the registrations be compared on user (in addition to
host, port, transport-param and maddr-param) for equivalency?

regards, Jacek G

---

From: Henning Schulzrinne <[email-masked]>
Date: Mon, 16 Aug 1999 16:33:16 -0400

> has higher q value than the other.

Maybe I'm missing context, but wouldn't the registration be different
for voicemail, something like

Contact: sip:[email-masked];feature=!voicemail;q=0,9,
sip:[email-masked];feature=voicemail;q=0.1

This would try phone348 first and then voicemail.company.com.

> host, port, transport-param and maddr-param) for equivalency?

Good point. I've added userinfo as one of the items to compare on.

-- 
Henning Schulzrinne   http://www.cs.columbia.edu/~hgs