diff options
author | Richard Mudgett <rmudgett@digium.com> | 2011-02-15 16:18:43 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2011-02-15 16:18:43 +0000 |
commit | b2ef13cb609b31702cfd34063712848d41575421 (patch) | |
tree | d17a67521cd32055cac303149950f021647b50fa /channels/sig_pri.h | |
parent | e38fa2d3cdf46f6ddd4143d39e966abed21b613f (diff) |
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
Diffstat (limited to 'channels/sig_pri.h')
-rw-r--r-- | channels/sig_pri.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/channels/sig_pri.h b/channels/sig_pri.h index ae2f97c52..14383963f 100644 --- a/channels/sig_pri.h +++ b/channels/sig_pri.h @@ -591,7 +591,7 @@ void sig_pri_sendtext(struct sig_pri_chan *pchan, const char *text); int sig_pri_cc_agent_init(struct ast_cc_agent *agent, struct sig_pri_chan *pvt_chan); int sig_pri_cc_agent_start_offer_timer(struct ast_cc_agent *agent); int sig_pri_cc_agent_stop_offer_timer(struct ast_cc_agent *agent); -void sig_pri_cc_agent_req_ack(struct ast_cc_agent *agent); +void sig_pri_cc_agent_req_rsp(struct ast_cc_agent *agent, enum ast_cc_agent_response_reason reason); int sig_pri_cc_agent_status_req(struct ast_cc_agent *agent); int sig_pri_cc_agent_stop_ringing(struct ast_cc_agent *agent); int sig_pri_cc_agent_party_b_free(struct ast_cc_agent *agent); |