aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authoroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-21 19:58:03 +0000
committeroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-21 19:58:03 +0000
commitf69b89cb5263afefdff2024b0401aeec9a4ee13e (patch)
tree5d22f1366bd9671198d78b87b8741bdd4238a506 /channels
parent3e24a7199a9431e8893d8f7ba35372c102676dae (diff)
Issue #7380 - Cannot put a one-legged call on hold/off hold
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@35336 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index c484e183d..498087cdc 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -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: