Here I will attempt to describe how to make N-way CILS from 2-way CILS.
First, you need trunk version of Asterisk.
All work done by two applications: meetme and channelredirect. You need zaptel driver to have meetme working.
Question:For Asterisk 1.4 do wee need to replace 'channelredirect' as used below with 'managerredirect' as in bug/patch 6508?
Here is dialplan example: [Default]
Exten => _ XXX, 1, set (dynamic_features = Nway-start)
Exten => _ XXX, N, dial (Sip/$ {exten })
[Dynamic-Nway]
Exten => _ XXX, 1, answer
Exten => _ XXX, N, set (confno =$ {exten })
Exten => _ XXX, N, set (meetme_exit_context = dynamic-Nway-invite)
Exten => _ XXX, N, set (dynamic_features =)
Exten => _ XXX, N, meetme ($ {confno}, pdmx)
Exten => _ XXX, N, hangup
[Dynamic-Nway-invite]
Exten => 0, 1, read (DEST, dial, I)
Exten => 0, N, set (dynamic_features = Nway-inv # Nway-noinv)
Exten => 0, N, dial (Local/$ {DEST} @ dynamic-Nway-Dest, g)
Exten => 0, N, set (dynamic_features =)
Exten => 0, N, Goto (Dynamic-Nway, $ {confno}, 1)
Exten => I, 1, Goto (Dynamic-Nway, $ {confno}, 1)
[Dynamic-Nway-Dest]
Exten => _ XXX, 1, dial (Sip/$ {exten })
[Macro-Nway-start]
Exten => S, 1, set (confno =$ {findfreeconf ()})
Exten => S, N, channelredirect ($ {bridgepeer}, dynamic-Nway, $ {confno}, 1)
Exten => S, N, read (DEST, dial, I)
Exten => S, N, set (dynamic_features = Nway-inv # Nway-noinv)
Exten => S, N, dial (Local/$ {DEST} @ dynamic-Nway-Dest, g)
Exten => S, N, set (dynamic_features =)
Exten => S, N, Goto (Dynamic-Nway, $ {confno}, 1)
[Macro-Nway-OK]
Exten => S, 1, channelredirect ($ {bridgepeer}, dynamic-Nway, $ {confno}, 1)
[Macro-Nway-notok]
Exten => S, 1, softhangup ($ {bridgepeer })
Note, you need to provide findfreeconf () function (or any other way) to get free conference number.
And, to make all this work, here is features. conf: [applicationmap]
Nway-Start => * 0, caller, Macro, Nway-start
Nway-inv => **, caller, Macro, Nway-OK
Nway-noinv => * #, caller, Macro, Nway-notok
[Edit] how this works:
When you speak with other party, press * 0 (macro Nway-start is executed ). called party is immediately transferred to free conference, and you get dialtone to enter number of party you want to invite. after call established and you talk to third user, you can press ** to invite him to conference and * # To hangup call and return to conference. from conference any user can invite anyone else by pressing 0 (all other steps are same as for * 0)