aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-04-19 22:55:35 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-04-19 22:55:35 +0000
commit9fd34195007fe33e92d55b46ba9ccb35ee4223ce (patch)
treeeac4730d0070195c3f6ffdba88e3c2b253a164e6
parentfd1adbae30b3df48c878e5b82f208fcb6364fe76 (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-xchannels/chan_sip.c42
-rwxr-xr-xchannels/chan_zap.c2
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;