[asterisk-users] Use of "603 Declined"

Kristian Kielhofner kristian.kielhofner at gmail.com
Thu Jan 28 15:17:49 CST 2010


Hello everyone,

  I've had the time to examine some specific serial/parallel forking
scenarios with Asterisk lately.  Looking at chan_sip it appears that
anytime Asterisk wants to tear down a call before it's brought up, it
sends a 603 Declined:

                       } else {        /* Incoming call, not up */
   	                        const char *res;
                                if (p->hangupcause && (res =
hangup_cause2sip(p->hangupcause)))
                                        transmit_response_reliable(p,
res, &p->initreq);
                                else
                                    	transmit_response_reliable(p,
"603 Declined", &p->initreq);
                                p->invitestate = INV_TERMINATED;


  Obviously this doesn't include cases where the URI is not found, the
codec is incompatible, etc.  More just general failure stuff like
executing Hangup() on an unanswered channel.

  However, 6xxx responses are somewhat religious/political in the SIP
sphere...  Being that they are "global responses", how could this
single Asterisk instance know that this call is unacceptable
everywhere/anywhere?  From RFC3261:

21.6.2 603 Decline

   The callee's machine was successfully contacted but the user
   explicitly does not wish to or cannot participate.  The response MAY
   indicate a better time to call in the Retry-After header field.  This
   status response is returned only if the client knows that no other
   end point will answer the request.

  I suppose manually executing Hangup() justifies the first statement
but it's the last sentence that bothers me:

"returned only if the client (Asterisk) knows that no other end point
will answer the request"

  That's a little presumptive of the Asterisk system, don't you think?
;)  While I don't have any better alternative responses I'm just
bothered by the "global" nature of 6xx failures in the first place.

  Any thoughts?

-- 
Kristian Kielhofner
http://www.astlinux.org
http://blog.krisk.org
http://www.star2star.com
http://www.submityoursip.com
http://www.voalte.com



More information about the asterisk-users mailing list