Summary:ASTERISK-10679: Asterisk does not retry a call on receving a 3XX response
Reporter:Raj Jain (rjain)Labels:
Date Opened:2007-11-03 08:17:12Date Closed:2007-11-19 09:39:51.000-0600
Versions:Frequency of
Environment:Attachments:( 0) 302_promiscredir_no.txt
( 1) 302_promiscredir_yes.txt
Description:Asterisk seems to be failing to retry a SIP INVITE when it receives a 3XX response. I've tried this with promiscredir=yes and promiscredir=no but to no avail. Both debug logs are attached. If I'm missing something in the config to get this working, pls shed some light.

According to RFC 3261, a UAS SHOULD retry the call when it receives a 301 or 302 response. However, it's a MUST for a 305 response. Below is a relevant quote from RFC 3261:

21.3.4 305 Use Proxy

  The requested resource MUST be accessed through the proxy given by
  the Contact field.  The Contact field gives the URI of the proxy.
  The recipient is expected to repeat this single request via the
  proxy.  305 (Use Proxy) responses MUST only be generated by UASs.

This issue was previously reported in:
Comments:By: Olle Johansson (oej) 2007-11-05 14:36:54.000-0600

I don't think we have any support for 305 implemented. That would be categorized as a feature request.

By: Raj Jain (rjain) 2007-11-06 06:50:28.000-0600

A UAC processes a 305 response in the same way it processes a 302 response. There is absolutely no difference between the two from the UAC perspective.

If we can handle 302 we get 305 handling for free. Basically, all we have to do is stick in a case 305: along with case 302:.

By: Olle Johansson (oej) 2007-11-06 07:04:01.000-0600

Not at all. 302 redirects to another URI and is sent to the dialplan. It works now.

305, as far as I understand, redirects to another proxy but the URI stays the same. That's a different function for Asterisk.

By: Raj Jain (rjain) 2007-11-06 08:17:24.000-0600

oej, you're right about the difference in 302 and 305 handing at the UAC. Based on that, I agree that 305 handling should be treated as a feature request.

By: Joshua C. Colp (jcolp) 2007-11-07 20:54:05.000-0600

Since there has been mutual agreement that this is a feature request I'm suspending it for now. If you end up with a patch feel free to reopen this. Peace!

By: Raj Jain (rjain) 2007-11-08 04:42:16.000-0600

What we mutually agreed upon is that 305 handling is a feature request. The 302 handling is not a feature request because Asterisk supports it but currently it seems to be broken. That would fall in the bug category.

Barring any config errors in my setup or that of the reporter of 10828, the Asterisk is not redirecting the INVITE to the Contact address provided in a 302 response.

By: Joshua C. Colp (jcolp) 2007-11-08 08:07:54.000-0600

This is actually because you're using a call file do it. That code doesn't handle call forwards (which is what this is).

By: Olle Johansson (oej) 2007-11-19 09:39:18.000-0600

rjain: Asterisk is controlled by the dialplan. Everything goes there, including redirects by 302. This surely works, so please check your asterisk configuration and try again. If you still find something broken, then re-open. If you have any questions, find us on IRC #asterisk-bugs or #asterisk-dev