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
1.4
Olle Johansson 19 years ago
parent 4c066de7cf
commit a256bcb080

@ -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:

Loading…
Cancel
Save