diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-04-19 22:55:35 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-04-19 22:55:35 +0000 |
commit | 9fd34195007fe33e92d55b46ba9ccb35ee4223ce (patch) | |
tree | eac4730d0070195c3f6ffdba88e3c2b253a164e6 | |
parent | fd1adbae30b3df48c878e5b82f208fcb6364fe76 (diff) |
Fix trailing slash problem (Zap) and making sure refers get ignored the second tiem around.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2712 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | channels/chan_sip.c | 42 | ||||
-rwxr-xr-x | channels/chan_zap.c | 2 |
2 files changed, 23 insertions, 21 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 4621db465..a56d3527c 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -5528,29 +5528,31 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc transmit_response_with_allow(p, "484 Address Incomplete", req); else { transmit_response(p, "202 Accepted", req); - if (p->refer_call) { - ast_log(LOG_DEBUG,"202 Accepted (supervised)\n"); - attempt_transfer(p, p->refer_call); - ast_mutex_unlock(&p->refer_call->lock); - p->refer_call = NULL; - p->gotrefer = 1; - } else { - ast_log(LOG_DEBUG,"202 Accepted (blind)\n"); - c = p->owner; - if (c) { - transfer_to = c->bridge; - if (transfer_to) { - ast_moh_stop(transfer_to); - ast_async_goto(transfer_to,p->context, p->refer_to,1); - } else { - ast_queue_hangup(p->owner); + if (!ignore) { + if (p->refer_call) { + ast_log(LOG_DEBUG,"202 Accepted (supervised)\n"); + attempt_transfer(p, p->refer_call); + ast_mutex_unlock(&p->refer_call->lock); + p->refer_call = NULL; + p->gotrefer = 1; + } else { + ast_log(LOG_DEBUG,"202 Accepted (blind)\n"); + c = p->owner; + if (c) { + transfer_to = c->bridge; + if (transfer_to) { + ast_moh_stop(transfer_to); + ast_async_goto(transfer_to,p->context, p->refer_to,1); + } else { + ast_queue_hangup(p->owner); + } } + p->gotrefer = 1; } - p->gotrefer = 1; + /* Always increment on a BYE */ + transmit_request_with_auth(p, "BYE", 0, 1, 1); + p->alreadygone = 1; } - /* Always increment on a BYE */ - transmit_request_with_auth(p, "BYE", 0, 1, 1); - p->alreadygone = 1; } } else if (!strcasecmp(cmd, "CANCEL")) { check_via(p, req); diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 241908d60..f60c3a4f2 100755 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -1509,7 +1509,7 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout) if (c) c++; else - c = dest; + c = ""; if (strlen(c) < p->stripmsd) { ast_log(LOG_WARNING, "Number '%s' is shorter than stripmsd (%d)\n", c, p->stripmsd); return -1; |