aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-19 23:34:57 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-19 23:34:57 +0000
commit83a4b299245d4b0ea76ef2234ef6b4597393c6ce (patch)
tree0356272ce81a6e605d3d2322e40187c011a7abd3 /channels
parent37b839df49d82dcbdc7feae0c7cc4f42c5a2409c (diff)
Backport of AUDIOHOOK_INHERIT for Asterisk 1.4
(closes issue #13538) Reported by: mbit Patches: 13538.patch uploaded by putnopvut (license 60) Tested by: putnopvut git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@166157 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index b3367e488..284670ad1 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -14189,7 +14189,6 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
char *uri = ast_strdupa(req->rlPart2);
char *at = strchr(uri, '@');
char *peerorhost;
- struct sip_pkt *pkt = NULL;
if (option_debug > 2) {
ast_log(LOG_DEBUG, "Potential spiral detected. Original RURI was %s, new RURI is %s\n", p->initreq.rlPart2, req->rlPart2);
}
@@ -14200,14 +14199,12 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
if ((peerorhost = strchr(uri, ':'))) {
*peerorhost++ = '\0';
}
- create_addr(p, peerorhost);
ast_string_field_free(p, theirtag);
- for (pkt = p->packets; pkt; pkt = pkt->next) {
- if (pkt->seqno == p->icseq && pkt->method == SIP_INVITE) {
- AST_SCHED_DEL(sched, pkt->retransid);
- }
- }
- return transmit_invite(p, SIP_INVITE, 1, 3);
+ /* Treat this as if there were a call forward instead...
+ */
+ ast_string_field_set(p->owner, call_forward, peerorhost);
+ ast_queue_control(p->owner, AST_CONTROL_BUSY);
+ return 0;
}
}