# Call Redirecting Problem

**URL:** <https://community.asterisk.org/t/call-redirecting-problem/84870>\
**Category:** Asterisk Dialplan\
**Created:** [July 9, 2020, 10:51am UTC](https://community.asterisk.org/t/call-redirecting-problem/84870 "2020-07-09T10:51:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![onurcomert60](https://avatars.discourse-cdn.com/v4/letter/o/b38774/32.png) [@onurcomert60](https://community.asterisk.org/u/onurcomert60)\
**Post date:** [July 9, 2020, 10:51am UTC](https://community.asterisk.org/t/call-redirecting-problem/84870/1 "2020-07-09T10:51:48Z")

</div>

System Informations:  
-Asterisk 16.10

Created Scenario:

1. A-agent run [RCOUT\_MANUEL\_A] (DIAL,1) dialplan by originate.
2. same =\> n,Dial(PJSIP/${OPEXTEN},15,tTg) calls A-agent.
3. A-agent answers the call by automatic. And [RCOUT\_MANUEL\_A] (ANSWERED,1) has been executed.
4. The Number determined by A-agent at the [RCOUT\_MANUEL\_A] (ANSWERED,1) is called.
5. A-agent redirects the call to Dialplan [ar\_aktar] (s,1) by using AMI Redirect for transfer the call to B-agent.

Problem:  
After the transfer is made, the called number is connected to the B-agent. The softphone of the A-agent shuts down. However, [RCOUT\_MANUEL\_A] (ANSWERED, 1) does not continue to execute until B-Agent ends the call. So A-agent’s dialplan hangs until B-agent ends the call.  
Please help 🙂

;where the call starts

[RCOUT\_MANUEL\_A]  
exten =\> DIAL,1,NoOp()  
same =\> n,Verbose(1, RCOUT\_MANUEL 1 {OPEXTEN} - {CHANNEL(linkedid)})  
same =\> n,Set(RCUID={CHANNEL(linkedid)}) same =\> n,Set(RCTIP={CUT(RCUID,-,1)})  
same =\> n,Set(RCKID={CUT(RCUID,-,2)}) same =\> n,Set(RCAID={CUT(RCUID,-,4)})  
same =\> n,Dial(PJSIP/${OPEXTEN},15,tTg)  
same =\> n,Hangup()

;when the operator opens  
exten =\> ANSWERED,1,Answer()  
same =\> n,Set(RCUID={CHANNEL(linkedid)}) same =\> n,Set(RCKID={CUT(RCUID,-,2)})  
same =\> n,Set(RCDTID={CUT(RCUID,-,3)}) same =\> n,Set(RCAID={CUT(RCUID,-,4)})  
same =\> n,Set(_localchannel={CHANNEL(name)}); same =\> n,Verbose(1, RCOUT\_MANUEL 2 - debug:{RCARAYAN:0:1}- {OPEXTEN} - {CHANNEL(linkedid)} - {CHANNEL(name)} - {STRFTIME({EPOCH},,%Y-%m-%d\_%H:%M:%S)}) same =\> n,Set(CALLERID(num)={IF(["{RCARAYAN:0:1}" = “+”]?{RCARAYAN:1}{RAND(1000,99999)}:{RCARAYAN})}) same =\> n,Dial({RCCHANNEL},{RCTIMEOUT},tTgb(RCOUT\_MANUEL\_A^ARANDI^1({OPEXTEN}))U(RCOUT\_MANUEL\_A\_CEVAP^{OPEXTEN})) same =\> n,GotoIf(["{DIALSTATUS}" = "ANSWER"]?kapat) same =\> n,Verbose(1, roooot codes {DIALSTATUS})  
same =\> n,Set(GELEN={ODBC\_RCOUTMANDIALEND({DIALSTATUS},{RCKID},{RCAID},{STRFTIME({EPOCH},%Y-%m-%d%H:%M:%S)})=})  
same =\> n,GotoIf(["{GELEN}" = “1”]?atla)  
same =\> n,Set(GELEN={ODBC\_RCOUTMANDIALEND({DIALSTATUS},{RCKID},{RCAID},{STRFTIME({EPOCH},%Y-%m-%d_%H:%M:%S)})=})  
same =\> n,GotoIf(["{GELEN}" = “1”]?atla)  
same =\> n,UserEvent(RCAramaDB,RCSP:sp\_ast\_rcout\_manuel\_DialEnd,RCKID:{RCKID},RCAID:{RCAID},RCUID:0,RCCID:0,RCEXTEN:0,RCDURUM:{DIALSTATUS},RCZID:{STRFTIME({EPOCH},,%Y-%m-%d\_%H:%M:%S)}) same =\> n(atla),NoOp() same =\> n,UserEvent(RCAramaTetikle,RCTIP:{RCTIP},RCKID:${RCKID})  
same =\> n(kapat),Hangup()

exten =\> ARANDI,1,Verbose(1, RCOUT\_MANUEL 3 {RCCHANNEL} - {CHANNEL(linkedid)} - {CHANNEL(name)} - {CONTEXT} - {CHANNEL} - {EXTEN} - {STRREPLACE(CDR(start)," ","\_")}) same =\> n,Set(RCUID={CHANNEL(linkedid)})  
same =\> n,Set(RCKID={CUT(RCUID,-,2)}) same =\> n,Set(RCAID={CUT(RCUID,-,4)})  
same =\> n,Set(\_\_RCCID={CHANNEL(name)}) same =\> n,Set(GELEN={ODBC\_RCOUTMANDIALBEGIN({RCKID},{RCAID},{ARG1},{RCUID},{RCCID},{STRREPLACE(CDR(start)," “,”\_")})=})  
same =\> n,GotoIf(["{GELEN}" = “1”]?atla)  
same =\> n,Set(GELEN={ODBC\_RCOUTMANDIALBEGIN({RCKID},{RCAID},{ARG1},{RCUID},{RCCID},{STRREPLACE(CDR(start)," ","\_")})=}) same =\> n,GotoIf(["{GELEN}" = "1"]?atla) same =\> n,UserEvent(RCAramaDB,RCSP:sp\_ast\_rcout\_manuel\_DialBegin,RCKID:{RCKID},RCAID:{RCAID},RCUID:{RCUID},RCCID:{RCCID},RCEXTEN:{ARG1},RCDURUM:0,RCZID:{STRREPLACE(CDR(start)," ","\_")}) same =\> n(atla),NoOp() same =\> n,Set(CHANNEL(hangup\_handler\_push)=RCOUT\_MANUEL\_A,HANGUPHANDLER,1({ARG1}))  
same =\> n,UserEvent(RCCreateChannel,RCKID:{RCKID},RCAID:{RCAID},RCDNID:{CHANNEL(accountcode)},CHANNEL:{RCCID},RCEXTEN:${ARG1})  
same =\> n,Return()

;[hangup-handler]  
exten =\> HANGUPHANDLER,1,Verbose(1, RCOUT\_MANUEL 4 {RCCHANNEL} - {CHANNEL(linkedid)} - {CHANNEL(name)} - {CONTEXT} - {CHANNEL} - {EXTEN} - {CALLERID(num)} - {DIALSTATUS} - {HANGUPCAUSE} - {CDR(billsec,f)} - {STRFTIME({EPOCH},%Y-%m-%d\_%H:%M:%S)})  
same =\> n,Set(RCUID={CHANNEL(linkedid)}) same =\> n,Set(RCTIP={CUT(RCUID,-,1)})  
same =\> n,Set(RCKID={CUT(RCUID,-,2)}) same =\> n,Set(RCAID={CUT(RCUID,-,4)})  
same =\> n,Set(GELEN={ODBC\_RCOUTMANHANGUP({RCAID},{HANGUPCAUSE},{STRFTIME({EPOCH},,%Y-%m-%d\_%H:%M:%S)})=}) same =\> n,GotoIf(["{GELEN}" = "1"]?atla) same =\> n,Set(GELEN={ODBC\_RCOUTMANHANGUP({RCAID},{HANGUPCAUSE},{STRFTIME({EPOCH},%Y-%m-%d\_%H:%M:%S)})=})  
same =\> n,GotoIf(["{GELEN}" = “1”]?atla)  
same =\> n,UserEvent(RCAramaDB,RCSP:sp\_ast\_rcout\_manuel\_Hangup,RCKID:0,RCAID:{RCAID},RCUID:0,RCCID:0,RCEXTEN:0,RCDURUM:{HANGUPCAUSE},RCZID:{STRREPLACE(CDR(start)," ","\_")}) same =\> n(atla),NoOp() same =\> n,UserEvent(RCHangup,RCTIP:{RCTIP},RCKID:{RCKID},RCAID:{RCAID},RCDNID:{CHANNEL(accountcode)},SEBEP:{HANGUPCAUSE},RCEXTEN:${ARG1})  
same =\> n,Return()

[RCOUT\_MANUEL\_A\_CEVAP]  
exten =\> s,1,Verbose(1, RCOUT\_MANUEL 3 {RCCHANNEL} - {CHANNEL(linkedid)} - {CHANNEL(name)} - {CHANNEL} - {EXTEN} and {CALLERID(num)} - {CDR(answer,f)}) same =\> n,Set(RCUID={CHANNEL(linkedid)})  
same =\> n,Set(RCKID={CUT(RCUID,-,2)}) same =\> n,Set(RCDTID={CUT(RCUID,-,3)})  
same =\> n,Set(RCAID={CUT(RCUID,-,4)}) same =\> n,GoSub(RCAMD,s,1({RCKID},{RCAID},{RCISAMD})) ;AMD ----------  
same =\> n,Set(RCSTATU={GOSUB\_RETVAL}) same =\> n,Set(GELEN={ODBC\_RCOUTMANDIALEND({RCSTATU},{RCKID},{RCAID},{STRREPLACE(CDR(answer)," “,”\_")})=})  
same =\> n,GotoIf(["{GELEN}" = “1”]?atla)  
same =\> n,Set(GELEN={ODBC\_RCOUTMANDIALEND({RCSTATU},{RCKID},{RCAID},{STRREPLACE(CDR(answer)," ","\_")})=}) same =\> n,GotoIf(["{GELEN}" = "1"]?atla) same =\> n,UserEvent(RCAramaDB,RCSP:sp\_ast\_rcout\_manuel\_DialEnd,RCKID:{RCKID},RCAID:{RCAID},RCUID:0,RCCID:0,RCEXTEN:0,RCDURUM:{RCSTATU},RCZID:{STRREPLACE(CDR(answer)," ","\_")}) same =\> n(atla),NoOp() same =\> n,GotoIf(["{RCSTATU}" = "telesekreter"]?kapat) same =\> n,Set(RECDOSYA=/var/spool/asterisk/recording/{RCAID}-)  
same =\> n,MixMonitor({RECDOSYA}sistem.wav,a) same =\> n,UserEvent(RCDialBegin\_Op,RCAID:{RCAID},RCDTID:{RCDTID},RCUYE:{ARG1},RCDNID:${CHANNEL(accountcode)})  
same =\> n,GoTo(bitir)  
same =\> n(kapat),Hangup(16)  
same =\> n(bitir),Return()

;where the call was transferred  
[ar\_aktar]  
exten =\> s,1,NoOp(ar\_aktar)  
same =\> n,Answer()  
same =\> n,Set(ARUID={CHANNEL(linkedid)}) same =\> n,Set(AREXAID={CUT(ARUID,-,4)})  
same =\> n,Set(ARRAY(SONUC,\_\_ARID,\_\_ARKAMPANYAID,\_\_ARDATAID,\_\_ARDATANUMID,\__ARKUYRUK)={ODBC\_ARAKTARINFO({AREXAID},{STRFTIME({EPOCH},%Y-%m-%d_%H:%M:%S)})=})  
same =\> n,GotoIf(["{SONUC}" = “1”]?atla)  
same =\> n,Set(ARRAY(SONUC,\_\_ARID,\_\_ARKAMPANYAID,\_\_ARDATAID,\_\_ARDATANUMID,\__ARKUYRUK)={ODBC\_ARAKTARINFO({AREXAID},{STRFTIME({EPOCH},%Y-%m-%d_%H:%M:%S)})=})  
same =\> n(atla),NoOp()  
same =\> n,Set(ARCHANNEL={CHANNEL}) same =\> n,Verbose(1, ar 1 - {ARID}-{ARKAMPANYAID}-{ARDATAID}-{ARDATANUMID}) same =\> n,Set(CHANNEL(hangup\_handler\_push)=ar\_aktar,hanguphandler,1) same =\> n,queue({ARKUYRUK},tn,300,ar\_aktar\_kuyruk\_uye)  
same =\> n(bitir),Hangup()

exten =\> hanguphandler,1,Verbose(1, ar\_aktar 2 {ARID} - {CHANNEL(linkedid)} - {CHANNEL(name)} - {CONTEXT} - {CHANNEL} - {EXTEN} - {CALLERID(num)} - {DIALSTATUS} - {HANGUPCAUSE} - {CDR(billsec,f)} - {STRFTIME({EPOCH},%Y-%m-%d\_%H:%M:%S)})  
same =\> n,Set(GELEN={ODBC\_ARAKTARHANGUP({ARID},{HANGUPCAUSE},{STRFTIME({EPOCH},,%Y-%m-%d\_%H:%M:%S)})=}) same =\> n,GotoIf(["{GELEN}" = "1"]?atla) same =\> n,Set(GELEN={ODBC\_ARAKTARHANGUP({ARID},{HANGUPCAUSE},{STRFTIME({EPOCH},%Y-%m-%d\_%H:%M:%S)})=})  
same =\> n,GotoIf(["{GELEN}" = “1”]?atla)  
same =\> n(atla),NoOp()  
same =\> n,UserEvent(RCHangup,RCTIP:g,RCKID:{ARKAMPANYAID},RCAID:{ARID},RCDNID:{ARDATANUMID},SEBEP:{HANGUPCAUSE},ARAKTAR:1)  
same =\> n,Return()

[ar\_aktar\_kuyruk\_uye]  
exten =\> s,1,NoOp()  
same =\> n,Verbose(1, ar\_aktar 3 1:{ARID} - {ARDATANUMID} - {CHANNEL(name)} - {CONTEXT} - {CHANNEL} - {EXTEN})  
same =\> n,Set(RECDOSYA=/var/spool/asterisk/recording/{ARID}-) same =\> n,Set(GELEN={ODBC\_ARAKTARKUYRUK({ARID},{CALLERID(num)},{STRFTIME({EPOCH},%Y-%m-%d\_%H:%M:%S)})=})  
same =\> n,GotoIf(["{GELEN}" = “1”]?atla)  
same =\> n,Set(GELEN={ODBC\_ARAKTARKUYRUK({ARID},{CALLERID(num)},{STRFTIME({EPOCH},,%Y-%m-%d\_%H:%M:%S)})=}) same =\> n,GotoIf(["{GELEN}" = "1"]?atla) same =\> n(atla),NoOp() same =\> n,UserEvent(RCCreateChannel,RCKID:{ARKAMPANYAID},RCAID:{ARID},RCDNID:{ARDATANUMID},CHANNEL:{ARCHANNEL},RCEXTEN:{CALLERID(num)})  
same =\> n,UserEvent(RCDialBegin\_Op,RCAID:{ARID},RCDTID:{ARDATAID},RCUYE:{CALLERID(num)},RCDNID:{ARDATANUMID},ARAKTAR:1)  
same =\> n,MixMonitor(${RECDOSYA}sistem.wav,a)  
same =\> n,Return()

;codes that transfer the call  
const action = new asterAmiio.Action.Action(‘Redirect’);  
action.Channel = data.Channel;  
[//action.ExtraChannel](https://action.ExtraChannel) = data.ExtraChannel;  
action.Exten = data.Exten;  
[//action.ExtraExten](https://action.ExtraExten) = data.ExtraExten;  
action.Context = data.Context;  
[//action.ExtraContext](https://action.ExtraContext) = data.ExtraContext;  
action.Priority = data.Priority;  
[//action.ExtraPriority](https://action.ExtraPriority) = data.ExtraPriority;  
asterAmiClient.send(action, (err, astData) =\> {  
fn({ err: err, data: astData });  
});

---

<div class="post-metadata">

**Author:** ![penguinpbx](https://sea1.discourse-cdn.com/asterisk/user_avatar/community.asterisk.org/penguinpbx/32/8856_2.png) [@penguinpbx](https://community.asterisk.org/u/penguinpbx)\
**Post date:** [August 6, 2020, 9:05pm UTC](https://community.asterisk.org/t/call-redirecting-problem/84870/2 "2020-08-06T21:05:51Z")

</div>

> [@onurcomert60](#):
>
> using AMI Redirect

Can you try AMI BlindTransfer instead ?

---

<div class="post-metadata">

**Author:** ![onurcomert60](https://avatars.discourse-cdn.com/v4/letter/o/b38774/32.png) [@onurcomert60](https://community.asterisk.org/u/onurcomert60)\
**Post date:** [September 2, 2020, 11:19am UTC](https://community.asterisk.org/t/call-redirecting-problem/84870/3 "2020-09-02T11:19:26Z")

</div>

I have tried it. It didnt work.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/asterisk/original/2X/4/475d0c889911cfb84ac4881ad6df8b523e3f9105.png) [@system](https://community.asterisk.org/u/system)\
**Post date:** [October 2, 2020, 11:19am UTC](https://community.asterisk.org/t/call-redirecting-problem/84870/4 "2020-10-02T11:19:34Z")

</div>

Closed on October 2, 2020, 11:19am UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
