mirror of
https://github.com/asterisk/asterisk.git
synced 2026-07-05 14:27:25 -07:00
Issue #7380 - Cannot put a one-legged call on hold/off hold
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35336 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
+5
-5
@@ -4807,7 +4807,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
|
||||
p->t38.jointcapability);
|
||||
} else {
|
||||
p->t38.state = T38_DISABLED;
|
||||
if (option_debug > 1)
|
||||
if (option_debug > 2)
|
||||
ast_log(LOG_DEBUG, "T38 state changed to %d on channel %s\n", p->t38.state, p->owner ? p->owner->name : "<none>");
|
||||
}
|
||||
|
||||
@@ -4884,6 +4884,8 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
|
||||
if (!p->owner) /* There's no open channel owning us so we can return here. For a re-invite or so, we proceed */
|
||||
return 0;
|
||||
|
||||
if (option_debug > 3)
|
||||
ast_log(LOG_DEBUG, "We have an owner, now see if we need to change this call\n");
|
||||
|
||||
if (!(p->owner->nativeformats & p->jointcapability & AST_FORMAT_AUDIO_MASK)) {
|
||||
if (debug) {
|
||||
@@ -4907,7 +4909,6 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
|
||||
ast_queue_frame(p->owner, &ast_null_frame);
|
||||
} else {
|
||||
/* No address for RTP, we're on hold */
|
||||
|
||||
ast_moh_start(bridgepeer, NULL);
|
||||
if (sendonly)
|
||||
ast_rtp_stop(p->rtp);
|
||||
@@ -4919,7 +4920,6 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
|
||||
}
|
||||
|
||||
/* Manager Hold and Unhold events must be generated, if necessary */
|
||||
/* XXX Support for sendonly/recvonly needs to be fixed !!! */
|
||||
if (sin.sin_addr.s_addr && !sendonly) {
|
||||
if (ast_test_flag(&p->flags[0], SIP_CALL_ONHOLD)) {
|
||||
append_history(p, "Unhold", "%s", req->data);
|
||||
@@ -4946,7 +4946,6 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
|
||||
ast_set_flag(&p->flags[0], SIP_CALL_ONHOLD);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -12978,7 +12977,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
|
||||
transmit_response_with_sdp(p, "200 OK", req, XMIT_CRITICAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else /* No bridged peer */
|
||||
transmit_response_with_sdp(p, "200 OK", req, XMIT_CRITICAL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user