mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-28 07:01:07 +00:00
- CANCEL never uses authentication
- Add docs on canreinvite git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -3422,7 +3422,7 @@ static int sip_hangup(struct ast_channel *ast)
|
|||||||
/* Do we need a timer here if we don't hear from them at all? */
|
/* Do we need a timer here if we don't hear from them at all? */
|
||||||
} else {
|
} else {
|
||||||
/* Send a new request: CANCEL */
|
/* Send a new request: CANCEL */
|
||||||
transmit_request_with_auth(p, SIP_CANCEL, p->ocseq, XMIT_RELIABLE, FALSE);
|
transmit_request(p, SIP_CANCEL, p->ocseq, XMIT_RELIABLE, FALSE);
|
||||||
/* Actually don't destroy us yet, wait for the 487 on our original
|
/* Actually don't destroy us yet, wait for the 487 on our original
|
||||||
INVITE, but do set an autodestruct just in case we never get it. */
|
INVITE, but do set an autodestruct just in case we never get it. */
|
||||||
needdestroy = 0;
|
needdestroy = 0;
|
||||||
@@ -11647,11 +11647,11 @@ static void check_pendings(struct sip_pvt *p)
|
|||||||
if (ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) {
|
if (ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) {
|
||||||
/* if we can't BYE, then this is really a pending CANCEL */
|
/* if we can't BYE, then this is really a pending CANCEL */
|
||||||
if (!ast_test_flag(&p->flags[0], SIP_CAN_BYE))
|
if (!ast_test_flag(&p->flags[0], SIP_CAN_BYE))
|
||||||
transmit_request_with_auth(p, SIP_CANCEL, p->ocseq, 1, 0);
|
transmit_request(p, SIP_CANCEL, p->ocseq, XMIT_RELIABLE, FALSE);
|
||||||
/* Actually don't destroy us yet, wait for the 487 on our original
|
/* Actually don't destroy us yet, wait for the 487 on our original
|
||||||
INVITE, but do set an autodestruct just in case we never get it. */
|
INVITE, but do set an autodestruct just in case we never get it. */
|
||||||
else
|
else
|
||||||
transmit_request_with_auth(p, SIP_BYE, 0, 1, 1);
|
transmit_request_with_auth(p, SIP_BYE, 0, XMIT_RELIABLE, TRUE);
|
||||||
ast_clear_flag(&p->flags[0], SIP_PENDINGBYE);
|
ast_clear_flag(&p->flags[0], SIP_PENDINGBYE);
|
||||||
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
|
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
|
||||||
} else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
|
} else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
|
||||||
|
|||||||
@@ -266,6 +266,12 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls
|
|||||||
; route = Assume NAT, don't send rport
|
; route = Assume NAT, don't send rport
|
||||||
; (work around more UNIDEN bugs)
|
; (work around more UNIDEN bugs)
|
||||||
|
|
||||||
|
;----------------------------------- MEDIA HANDLING --------------------------------
|
||||||
|
; By default, Asterisk tries to re-invite the audio to an optimal path. If there's
|
||||||
|
; no reason for Asterisk to stay in the media path, the media will be redirected.
|
||||||
|
; This does not really work with in the case where Asterisk is outside and have
|
||||||
|
; clients on the inside of a NAT. In that case, you want to set canreinvite=nonat
|
||||||
|
;
|
||||||
;canreinvite=yes ; Asterisk by default tries to redirect the
|
;canreinvite=yes ; Asterisk by default tries to redirect the
|
||||||
; RTP media stream (audio) to go directly from
|
; RTP media stream (audio) to go directly from
|
||||||
; the caller to the callee. Some devices do not
|
; the caller to the callee. Some devices do not
|
||||||
|
|||||||
Reference in New Issue
Block a user