Merged revisions 307879 via svnmerge from
authorRichard Mudgett <rmudgett@digium.com>
Tue, 15 Feb 2011 16:18:43 +0000 (16:18 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 15 Feb 2011 16:18:43 +0000 (16:18 +0000)
commitb2ef13cb609b31702cfd34063712848d41575421
treed17a67521cd32055cac303149950f021647b50fa
parente38fa2d3cdf46f6ddd4143d39e966abed21b613f
Merged revisions 307879 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r307879 | rmudgett | 2011-02-15 10:13:55 -0600 (Tue, 15 Feb 2011) | 37 lines

  No response sent for SIP CC subscribe/resubscribe request.

  Asterisk does not send a response if we try to subscribe for call
  completion after we have received a 180 Ringing.  You can only subscribe
  for call completion when the call has been cleared.

  When we receive the 180 Ringing, for this call, its call-completion state
  is 'CC_AVAILABLE'.  If we then send a subscribe message to Asterisk, it
  trys to change the call-completion state to 'CC_CALLER_REQUESTED'.
  Because this is an invalid state change, it just ignores the message.  The
  only state Asterisk will accept our subscribe message is in the
  'CC_CALLER_OFFERED' state.

  Asterisk will go into the 'CC_CALLER_OFFERED' when the SIP client clears
  the call by sending a CANCEL.

  Asterisk should always send a response.  Even if its a negative one.

  The fix is to allow for the CCSS core to notify a CC agent that a failure
  has occurred when CC is requested.  The "ack" callback is replaced with a
  "respond" callback.  The "respond" callback has a parameter indicating
  either a successful response or a specific type of failure that may need
  to be communicated to the requester.

  (closes issue #18336)
  Reported by: GeorgeKonopacki
  Tested by: mmichelson, rmudgett

  JIRA SWP-2633

  (closes issue #18337)
  Reported by: GeorgeKonopacki
  Tested by: mmichelson

  JIRA SWP-2634
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@307883 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_dahdi.c
channels/chan_sip.c
channels/sig_pri.c
channels/sig_pri.h
include/asterisk/ccss.h
main/ccss.c