Hi,
I am using Asterisk Version 1.4. We are basically trying to provide incall services to the Asterisk SIP users via an IVR menu.
For example:
- A and B are in a call
- A press “*3” to activate the IVR menu.
- Party B is parked while an IVR is being played to party A.
The Dialplan is:
[park-and-announce-temp]
exten => _.,1,Goto(dynamic-nway,s,postparkedstep)
[park-other-party]
exten => s,1,NoOp(PARKING THE REMOTE PARTY)
exten => s,n,ParkAndAnnounce(PARKED,20,Local/${EXTEN}@park-and-announce-temp)
exten => s,n(postparkedstep),NoOp(PARKED AT EXTENSION ${PARKEDAT}****)
exten => s,n,Set(DB(LastParkedCall)=${PARKEDAT})
[macro-incall-ivr]
exten => s,1,ChannelRedirect(${BRIDGEPEER},park-other-party,s,1)
exten => s,n,Playback(Press_one_to_pickup_call)
exten => s,n,Read(readdigit,1)
exten => s,n,GoToIf([${readdigit} = 1]?pickup_other:exit)
exten => s,n(exit),Hangup
exten => s,n(pickup_other),ParkedCall(${LastParkedCall})
And here is the applicationmap defined in the features.conf:
[applicatiomap]
dynamic-incall-ivr => *3,self/both,macro,incall-ivr
The above works fine when the calling party invokes the feature code(*3).
The problem occurs when the called party invokes the feature code for playing the ivr. In this case the calling party is not sent to the [park-other-party] context by application channelRedirect and Asterisk issues softhangup on the channel.
The channelRedirect application is correctly breaking the bridged call and sending the called party to some context|exten|prio when dynamic feature code is invoked by calling party
But when the called party invokes the dynamic feature code (*3), channelRedirect should do the opposite i.e breaking the bridged channel and send the calling party to some context|exten|prio. But this is not happening.
Is it possible? If not, then can anyone suggest some other way to do this.
Thanks,
Manu