Get into conference room during call?

suppose A calls to B and both start conversation. during conversation A or B press some key (like 1 in my case) to get both participants into conference room. my dial paln is following:

[outgoing]
exten => s,1,(DYNAMIC_FEATURES=nway-start)
exten => 3010,1,Dial(SIP/Zoiper1/,20)
exten => 3011,1,Dial(SIP/Zoiper2/,20)

[macro-nway-start]
exten => s,1,Read(DEST, , , , ,60)
same => n,ChannelRedirect(${BRIDGEPEER},nway,${DEST},1)

[nway]
exten => 1,1,MeetMe(3000,pHh)
same => n,Hangup()

where my features.conf is:
[applicationmap]
nway-start => 1,peer/both,Macro,nway-start

but during call, when i press 1, nothing happens???
“meetme list 3000” show no active meetme conference!

  1. There is no dialplan action application for s.

  2. The s extension finishes and will hang up after running this non-existent application, so, even if that was supposed to be Set, it won’t do anything useful.

i changed s to 3010 in exten => s,1,(DYNAMIC_FEATURES=nway-start) and modify [macro-nway-start] as:
exten => s,1,NoOp()
same => n,Read(DEST, , , , ,60)
same => n,ChannelRedirect(${BRIDGEPEER},nway,${DEST},1)

still same result???

There is still no application.

As described, you now have two priority 1’s for extension 3010.

ok, now i made following changes and succeed to get dtmf input:

[outgoing]

exten => 3010,1,(DYNAMIC_FEATURES=nway-start)
exten => 3010,n,Dial(SIP/Zoiper1/,20)
exten => 3011,1,(DYNAMIC_FEATURES=nway-start)
exten => 3011,n,Dial(SIP/Zoiper2/,20)

but conference room is still not active???
on pressing 1, CLI gives started music on hold…stopped music on hold…

i modified the whole code as:
[outgoing]
exten => 3010,1,(DYNAMIC_FEATURES=nway-start)
same => n,Dial(SIP/Zoiper1/,20)
exten => 3011,1,(DYNAMIC_FEATURES=nway-start)
same => n,Dial(SIP/Zoiper2/,20)

[nway-start]
exten => s,1,Answer()
same => n,Read(DEST, , , , ,60)
same => n,ChannelRedirect(${BRIDGEPEER},nway,${DEST},1)

[nway]
exten => 1,1,MeetMe(3000,pHh)
same => n,Hangup()

where my features.conf is:

[applicationmap]
nway-start => 1,peer/both,nway-start

by pressing 1, it gives not found nway-start…i think for macro nway-start, the declaration in [applicationmap] is not true??? i get stuck here…

https://wiki.asterisk.org/wiki/display/AST/Custom+Dynamic+Features

Look at the playmonkeys example.

[applicationmap]
nway-start => 1,peer/both,Macro(nway-start) along with [macro-nway-start] in dialplan solve the issue…
but now Read() does not catching anything…how to read dtmf input???${DEST}=’ '??

[edit] the reference says: “Enabling these features means that the PBX needs to stay in the media flow and media will not be re-directed if DTMF is sent in the media
stream”. rfc2833 send dtmf in rtp with different payload type so in this case, dtmf belongs to same media stream???

The missing application is in extensions.conf (and is probably meant to be Set).

OOHHH MY GOD! what the hell i was doing…(DYNAMIC_FEATURES=nway-start) without any application name…okay…i was manually typing commands…there is no such statement in real conf. file that i am working on…
i set canreinvite=no whereas dtmfmod=rfc2833. i could not figure out why Read() is not still catching dtmf signal during call???

There is no such option as dtmfmod!

sorry it was “dtmfmode”…i am able now to take caller into conference room through ChannelRedirect() but facing two issues here:

  1. the callee hangsup when caller enters the conference room
  2. only caller have access to use features defined in features.conf/[applicationmap]

where my features.conf:
nway-start => *1,peer,Macro(nway-start)

and extensions.conf:
[outgoing]
exten => 3010,1,Set(DYNAMIC_FEATURES=nway-start)
same => n,Dial(SIP/Zoiper1/,20)
exten => 3011,1,Set(DYNAMIC_FEATURES=nway-start)
same => n,Dial(SIP/Zoiper2/,20)

[nway-start]
exten => s,1,Set(CONFNO=3000)
exten => s,n,ChannelRedirect(${BRIDGEPEER},nway,${CONFNO},1)

[nway]
exten => 3000,1,Answer()
exten => 3000,n,Set(CONFNO=${EXTEN})
exten => 3000,n,Set(DYNAMIC_FEATURES=)
exten => 3000,n,MeetMe(3000,pHhM)
same => n,Hangup

  1. at the point of the cannel redirect, the callee channel has been taken out of a bridge so is no longer associated with any other channel. The only dialplan running on that channel is the feature code, so when that exits, there is nothing to look after the channel, so it has to be hung up.

This is expected behaviour, and you haven’t told us what behaviour you expected, although, if you wanted both in the conference, you might want to note that the AMI version of channel redirect can take two channels.

  1. I’m not completely sure, but think this is because you haven’t used _ to propagate the channel variable.

  2. there is still no application on priority 1 of 3010 and 3011

2 Likes

2nd issue resolved by following your suggestion(2nd point)…is there any method other than AMI to redirect both channels to conference room? i have tried following but failed probably because of 1st redirection as you have mentioned in your 1st point… i want to have grip on both channels so that redirect of one channel does not let another channel to hangup??? my dialplan:

[outgoing]
exten => 3010,1,Set(__DYNAMIC_FEATURES=nway-start)
same => n,Dial(SIP/Zoiper1/,20)
exten => 3011,1,Set(__DYNAMIC_FEATURES=nway-start)
same => n,Dial(SIP/Zoiper2/,20)

[macro-nway-start]
exten => s,1,Set(CONFNO=3000)
;;following app. redirect one channel to conf. room
exten => s,n,ChannelRedirect(${BRIDGEPEER},nway,${CONFNO},1)
;;to redirect other channel to conf. room (both get failed)
;exten => s,n,ChannelRedirect(${CHANNEL},nway,${CONFNO},4)
exten => s,n,ChannelRedirect(${CHANNEL},nway,${CONFNO},1)

[nway]
exten => 3000,1,Answer()
exten => 3000,2,Set(CONFNO=${EXTEN})
exten => 3000,3,Set(DYNAMIC_FEATURES=)
exten => 3000,4,MeetMe(3000,pHhM)
same => n,Hangup