VoIP Mailing List Archives
Mailing list archives for the VoIP community |
|
View previous topic :: View next topic |
Author |
Message |
anthony.minessale at g... Guest
|
Posted: Wed Dec 17, 2008 10:46 am Post subject: [Freeswitch-users] dynamic conference |
|
|
you could make up a uuid just for the conference name in the original call
<action application="export" data="my_conf_id=${create_uuid()}"/>
Now this channel and any other channel created by this channel will inherit this var
On Wed, Dec 17, 2008 at 8:24 AM, Carole O. <carole.olivier@enst.fr (carole.olivier@enst.fr)> wrote:
--
Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
AIM: anthm
MSN:anthony_minessale@hotmail.com ([email]MSN%3Aanthony_minessale@hotmail.com[/email])
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com ([email]PAYPAL%3Aanthony.minessale@gmail.com[/email])
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org ([email]sip%3A888@conference.freeswitch.org[/email])
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org ([email]googletalk%3Aconf%2B888@conference.freeswitch.org[/email])
pstn:213-799-1400 |
|
Back to top |
|
|
freeswitch-users at li... Guest
|
Posted: Wed Dec 17, 2008 10:59 am Post subject: [Freeswitch-users] dynamic conference |
|
|
On 12/17/2008 7:34 AM, Carole O. wrote:
Quote: | My main problem is the name of the conference. Since everybody should be
able to convert a simple call into a conference, the conference's name has
to be unique each time. I have chosen to make it dependent on the caller
number which is not perfect because then he is the only one which can bridge
the call and add member. However, I do not have any other idea, maybe I have
missed another possibility.
|
If the conf name has to be unique, why not ensure that by making the
conference name based on the uuid of the a-leg?
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
freeswitch-users at li... Guest
|
Posted: Wed Dec 17, 2008 11:20 am Post subject: [Freeswitch-users] dynamic conference |
|
|
On 12/17/2008 8:24 AM, Carole O. wrote:
Quote: | It would be unique you are right but I am not sure I can get its value if A
puts the call on hold, calls C and wants to add it to the conference whose
name dependent of the uuid of another session.
I think if I use ${uuid} to add C I will have the uuid of the session
between A and C and not A and B no?
And I really have to configure this from the dialplan so statically.
Am I wrong somewhere??
Carole
|
Ah, yeah. uuid would not be the same when initiating a new call that
you then transfer to the conference call. You need something that is
intrinsic to the endpoint.
I did a quick info dump to an originated call. Depending on your
use-case (are these calls originating from registered handsets, trunked
from a sip provider, etc) you might want to rely on the variable
"sip_contact_uri" which is a combination of registered user name and ip
(and port if port isn't 5060). This should be unique per endpoint.
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
carole.olivier at enst.fr Guest
|
Posted: Wed Dec 17, 2008 11:26 am Post subject: [Freeswitch-users] dynamic conference |
|
|
It would be unique you are right but I am not sure I can get its value if A
puts the call on hold, calls C and wants to add it to the conference whose
name dependent of the uuid of another session.
I think if I use ${uuid} to add C I will have the uuid of the session
between A and C and not A and B no?
And I really have to configure this from the dialplan so statically.
Am I wrong somewhere??
Carole
Rupa Schomaker (lists)-2 wrote:
Quote: |
On 12/17/2008 7:34 AM, Carole O. wrote:
Quote: | My main problem is the name of the conference. Since everybody should be
able to convert a simple call into a conference, the conference's name
has
to be unique each time. I have chosen to make it dependent on the caller
number which is not perfect because then he is the only one which can
bridge
the call and add member. However, I do not have any other idea, maybe I
have
missed another possibility.
|
If the conf name has to be unique, why not ensure that by making the
conference name based on the uuid of the a-leg?
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
|
--
View this message in context: http://www.nabble.com/dynamic-conference-tp21053181p21054080.html
Sent from the Freeswitch-users mailing list archive at Nabble.com.
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
carole.olivier at enst.fr Guest
|
Posted: Thu Dec 18, 2008 4:44 am Post subject: [Freeswitch-users] dynamic conference |
|
|
Hello,
Thanks for your answers!
Concerning the creation of a new variable for the conference the problem is
that I do not create channels from the conference. I call separately a new
member on a new channel and add it on the conference only if he agrees to
enter it. So it was the same problem as for the uuid, I am not sure I can
access the good variable from anywhere in case many conferences are running.
So, I do the following if somebody is interested in:
<extension name="Local_Extension">
.....................
<condition field="destination_number"
expression="^${caller_id_number}$">
<anti-action application="bind_meta_app" data="1 a o transfer::
transf_opp_leg_${db(select/conference/${caller_id_number})}_${destination_number}"/>
<anti-action application="bind_meta_app" data="2 ab s
transfer::-both
transf_both_${uuid}_${caller_id_number}_${destination_number}"/>
..........
</extension>
<extension name="transf_both_legs">
<condition field="destination_number"
expression="^transf_both_(.*)_(.*)_(.*)$">
<action application="db" data="insert/conference/$2/conf_$1"/>
<action application="db" data="insert/conference/$3/conf_$1"/>
<action application="answer"/>
<action application="conference" data="conf_$1@conf_dynamic"/>
</condition>
</extension>
<extension name="transf_opposite_leg">
<condition field="destination_number"
expression="^transf_opp_leg_(.*)_(.*)$">
<action application="db" data="insert/conference/$2/$1"/>
<action application="answer"/>
<action application="conference" data="$1@conf_dynamic"/>
</condition>
</extension>
This is not perfect and I am not sure it is "cleanly" programmed but it
works and it is flexible. All the members in the conference can invite new
members thanks to the conference name they all have in the database.
If you still have critics they are all welcome!
Thanks for your help,
Best regards,
Carole
Rupa Schomaker (lists)-2 wrote:
Quote: |
On 12/17/2008 8:24 AM, Carole O. wrote:
Quote: | It would be unique you are right but I am not sure I can get its value if
A
puts the call on hold, calls C and wants to add it to the conference
whose
name dependent of the uuid of another session.
I think if I use ${uuid} to add C I will have the uuid of the session
between A and C and not A and B no?
And I really have to configure this from the dialplan so statically.
Am I wrong somewhere??
Carole
|
Ah, yeah. uuid would not be the same when initiating a new call that
you then transfer to the conference call. You need something that is
intrinsic to the endpoint.
I did a quick info dump to an originated call. Depending on your
use-case (are these calls originating from registered handsets, trunked
from a sip provider, etc) you might want to rely on the variable
"sip_contact_uri" which is a combination of registered user name and ip
(and port if port isn't 5060). This should be unique per endpoint.
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
|
--
View this message in context: http://www.nabble.com/dynamic-conference-tp21053181p21069519.html
Sent from the Freeswitch-users mailing list archive at Nabble.com.
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
fidibus83 at aol.com Guest
|
Posted: Thu Dec 18, 2008 9:49 am Post subject: [Freeswitch-users] dynamic conference |
|
|
Hello,
Carole, your conference-programm is what I looked for. It's great. I try it.
But I get an Error, when I press *1 and I don't know what it mean... Have
you an idea?
[ERR] mod_conference.c:4849 conference_new() invalid Record! No name.
[CRIT] mod_conference.c:4314 conference_function() Memory Error!
Thanks!
-----Ursprüngliche Nachricht-----
Von: freeswitch-users-bounces@lists.freeswitch.org
[mailto:freeswitch-users-bounces@lists.freeswitch.org] Im Auftrag von Carole
O.
Gesendet: Donnerstag, 18. Dezember 2008 10:38
An: freeswitch-users@lists.freeswitch.org
Betreff: Re: [Freeswitch-users] dynamic conference
Hello,
Thanks for your answers!
Concerning the creation of a new variable for the conference the problem is
that I do not create channels from the conference. I call separately a new
member on a new channel and add it on the conference only if he agrees to
enter it. So it was the same problem as for the uuid, I am not sure I can
access the good variable from anywhere in case many conferences are running.
So, I do the following if somebody is interested in:
<extension name="Local_Extension">
.....................
<condition field="destination_number"
expression="^${caller_id_number}$">
<anti-action application="bind_meta_app" data="1 a o transfer::
transf_opp_leg_${db(select/conference/${caller_id_number})}_${destination_nu
mber}"/>
<anti-action application="bind_meta_app" data="2 ab s
transfer::-both
transf_both_${uuid}_${caller_id_number}_${destination_number}"/>
..........
</extension>
<extension name="transf_both_legs">
<condition field="destination_number"
expression="^transf_both_(.*)_(.*)_(.*)$">
<action application="db" data="insert/conference/$2/conf_$1"/>
<action application="db" data="insert/conference/$3/conf_$1"/>
<action application="answer"/>
<action application="conference" data="conf_$1@conf_dynamic"/>
</condition>
</extension>
<extension name="transf_opposite_leg">
<condition field="destination_number"
expression="^transf_opp_leg_(.*)_(.*)$">
<action application="db" data="insert/conference/$2/$1"/>
<action application="answer"/>
<action application="conference" data="$1@conf_dynamic"/>
</condition>
</extension>
This is not perfect and I am not sure it is "cleanly" programmed but it
works and it is flexible. All the members in the conference can invite new
members thanks to the conference name they all have in the database.
If you still have critics they are all welcome!
Thanks for your help,
Best regards,
Carole
Rupa Schomaker (lists)-2 wrote:
Quote: |
On 12/17/2008 8:24 AM, Carole O. wrote:
Quote: | It would be unique you are right but I am not sure I can get its value if
A
puts the call on hold, calls C and wants to add it to the conference
whose
name dependent of the uuid of another session.
I think if I use ${uuid} to add C I will have the uuid of the session
between A and C and not A and B no?
And I really have to configure this from the dialplan so statically.
Am I wrong somewhere??
Carole
|
Ah, yeah. uuid would not be the same when initiating a new call that
you then transfer to the conference call. You need something that is
intrinsic to the endpoint.
I did a quick info dump to an originated call. Depending on your
use-case (are these calls originating from registered handsets, trunked
from a sip provider, etc) you might want to rely on the variable
"sip_contact_uri" which is a combination of registered user name and ip
(and port if port isn't 5060). This should be unique per endpoint.
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
|
--
View this message in context:
http://www.nabble.com/dynamic-conference-tp21053181p21069519.html
Sent from the Freeswitch-users mailing list archive at Nabble.com.
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
intralanman at freeswi... Guest
|
Posted: Thu Dec 18, 2008 2:07 pm Post subject: [Freeswitch-users] dynamic conference |
|
|
Carole O. wrote:
Quote: | Hello,
Thanks for your answers!
Concerning the creation of a new variable for the conference the problem is
that I do not create channels from the conference. I call separately a new
member on a new channel and add it on the conference only if he agrees to
enter it. So it was the same problem as for the uuid, I am not sure I can
access the good variable from anywhere in case many conferences are running.
| you could use the db app to hold state across multiple calls... maybe
use the ${caller_id_number} and the ${destination_number} as keys for
the insert/select so that there's something constant to use in the
select... and another extension or two may be needed...
You could do the db lookup before you make the call so that you see if
your caller is already a member of a conference.... if he is, then the
transfer from *1 would work much the same as it does now except you'd
use the result of the db lookup as the conference number... if he's not
a member of an existing conference, then you could generate the uuid
like Anthony said before, then do a db insert for ${caller_id_number}
and ${destination_number} to insert that newly created uuid and use it
as the conference number.... one caveat that i see here is that the
destination_number would have to be exactly the same as if that user
were callling and it was his caller_id_number, otherwise your query will
fail.
you'll also need to "clean" the db when you hangup, which should be able
to be accomplished with an execute_on_hangup that does a delete of the
conf data for each user
-Ray
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
carole.olivier at enst.fr Guest
|
Posted: Mon Dec 22, 2008 2:27 am Post subject: [Freeswitch-users] dynamic conference |
|
|
Hello,
Ray, thanks for your detailed answer!!
Fidibus83, when are you pressing *1 ? Because the last version of the
program I gave is thought to be executed like the following:
- A and B are on call
- A and B decide to change their call into a conference in order to invite
other people. So A or B press first *2. In this way, both legs are
transferred to the extension named transf_both_legs. In this extension, the
name of the conference will be created and added in the database so you can
not skip it.
- A and B are now in a conference
- A (or B) puts B (or A) on hold.
- A (or B) calls C.
- if C answers and agrees then A (or B) press *1. This transfers the
opposite leg, this means C, to the extension transf_opposite_leg. C will be
here transferred to the conference whose name will also be added in the db
as an entry for C.
- A (or B) comes back to the conference it had put on hold.
- A, B and C are now all in the conference.
So I am not sure but maybe you press first *1 instead of *2 isn't?
If this is not the case then you could press F8 to debug and find out what's
wrong. I am sorry but I can not help you more, I am new with freeswitch and
not very experienced.
Thanks to all of you for your help,
I am going to improve this small program,
Best regards,
Carole
Raymond Chandler-2 wrote:
Quote: |
Carole O. wrote:
Quote: | Hello,
Thanks for your answers!
Concerning the creation of a new variable for the conference the problem
is
that I do not create channels from the conference. I call separately a
new
member on a new channel and add it on the conference only if he agrees to
enter it. So it was the same problem as for the uuid, I am not sure I can
access the good variable from anywhere in case many conferences are
running.
| you could use the db app to hold state across multiple calls... maybe
use the ${caller_id_number} and the ${destination_number} as keys for
the insert/select so that there's something constant to use in the
select... and another extension or two may be needed...
You could do the db lookup before you make the call so that you see if
your caller is already a member of a conference.... if he is, then the
transfer from *1 would work much the same as it does now except you'd
use the result of the db lookup as the conference number... if he's not
a member of an existing conference, then you could generate the uuid
like Anthony said before, then do a db insert for ${caller_id_number}
and ${destination_number} to insert that newly created uuid and use it
as the conference number.... one caveat that i see here is that the
destination_number would have to be exactly the same as if that user
were callling and it was his caller_id_number, otherwise your query will
fail.
you'll also need to "clean" the db when you hangup, which should be able
to be accomplished with an execute_on_hangup that does a delete of the
conf data for each user
-Ray
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
|
--
View this message in context: http://www.nabble.com/dynamic-conference-tp21053181p21123756.html
Sent from the Freeswitch-users mailing list archive at Nabble.com.
_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|