I am confused "session" with "channel" in FreeSwitch. A channel is a connection which brings in a call to the FreeSwitch. Once a call is established, it is named "session". So multi session could exist in one channel, am I right? Will
The other way around. An endpoint (mod_exosip, mod_iax) creates a new session when it is necessary, e.g. when a SIP endpoint receives an INVITE. A channel is a representation of the audio stream, so you would have multiple channels inside a session. James On 30/08/2006, at 6:35 PM, will wrote:
I am confused “session” with “channel” in FreeSwitch.
A channel is a connection which brings in a call to the FreeSwitch.
Once a call is established, it is named “session”.
So multi session could exist in one channel, am I right?
Will
_______________________________________________ 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
Essentially the session is the high level entity that represents an outside connection and the channel is an object inside the session that is a collection of the higher level components of the call. see http://www.freeswitch.org/docs/structswitch__core__session.html At this point channel is just a struct inside session that shows you things you are allowed to safely play with. Think of it like C++ as if channel is a class based on session as a base class. The switch_channel.c api has no idea what a session is and the core_session api has no idea what a channel is they only know they have an opaque pointer to each other to use api calls on when the time comes. The session contains all the low level things like access to memory pools and the I/O routines where the channel has things like channel variables and is the main entitiy that travels in the state machine and passes messages and dtmf around. So the short answer is that it's purely asthetic for the sake of a clean API. Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com JABBER:anthony.minessale@gmail.com FreeSWITCH Developer Conference sip:888@66.250.68.194 iax:guest@66.250.68.194/888 googletalk:freeswitch@gmail.com pstn:712-432-7800 ----- Original Message ---- From: will <will@camangi.com> To: freeswitch-users@lists.freeswitch.org Sent: Wednesday, August 30, 2006 3:35:07 AM Subject: [Freeswitch-users] What's differents with "session" and "channel"? I am confused “session” with “channel” in FreeSwitch. A channel is a connection which brings in a call to the FreeSwitch. Once a call is established, it is named “session”. So multi session could exist in one channel, am I right? Will _______________________________________________ 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
Tony, Thanks for clearing this up, I was curious about the distinction myself. On 8/31/06, Anthony Minessale <anthmct@yahoo.com> wrote:
Essentially the session is the high level entity that represents an outside connection and the channel is an object inside the session that is a collection of the higher level components of the call.
see http://www.freeswitch.org/docs/structswitch__core__session.html
At this point channel is just a struct inside session that shows you things you are allowed to safely play with.
Think of it like C++ as if channel is a class based on session as a base class.
The switch_channel.c api has no idea what a session is and the core_session api has no idea what a channel is they only know they have an opaque pointer to each other to use api calls on when the time comes.
The session contains all the low level things like access to memory pools and the I/O routines where the channel has things like channel variables and is the main entitiy that travels in the state machine and passes messages and dtmf around.
So the short answer is that it's purely asthetic for the sake of a clean API.
Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com JABBER:anthony.minessale@gmail.com
FreeSWITCH Developer Conference sip:888@66.250.68.194 iax:guest@66.250.68.194/888 googletalk:freeswitch@gmail.com pstn:712-432-7800
----- Original Message ---- From: will <will@camangi.com> To: freeswitch-users@lists.freeswitch.org Sent: Wednesday, August 30, 2006 3:35:07 AM Subject: [Freeswitch-users] What's differents with "session" and "channel"?
I am confused "session" with "channel" in FreeSwitch.
A channel is a connection which brings in a call to the FreeSwitch.
Once a call is established, it is named "session".
So multi session could exist in one channel, am I right?
Will _______________________________________________ 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
Thanks for the explaining, very clearly! _____ From: Anthony Minessale [mailto:anthmct@yahoo.com] Sent: Thursday, August 31, 2006 7:18 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] What's differents with "session" and"channel"? Essentially the session is the high level entity that represents an outside connection and the channel is an object inside the session that is a collection of the higher level components of the call. see http://www.freeswitch.org/docs/structswitch__core__session.html At this point channel is just a struct inside session that shows you things you are allowed to safely play with. Think of it like C++ as if channel is a class based on session as a base class. The switch_channel.c api has no idea what a session is and the core_session api has no idea what a channel is they only know they have an opaque pointer to each other to use api calls on when the time comes. The session contains all the low level things like access to memory pools and the I/O routines where the channel has things like channel variables and is the main entitiy that travels in the state machine and passes messages and dtmf around. So the short answer is that it's purely asthetic for the sake of a clean API. Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com JABBER:anthony.minessale@gmail.com FreeSWITCH Developer Conference sip:888@66.250.68.194 iax:guest@66.250.68.194/888 googletalk:freeswitch@gmail.com pstn:712-432-7800 ----- Original Message ---- From: will <will@camangi.com> To: freeswitch-users@lists.freeswitch.org Sent: Wednesday, August 30, 2006 3:35:07 AM Subject: [Freeswitch-users] What's differents with "session" and "channel"? I am confused "session" with "channel" in FreeSwitch. A channel is a connection which brings in a call to the FreeSwitch. Once a call is established, it is named "session". So multi session could exist in one channel, am I right? Will _______________________________________________ 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 <http://www.freeswitch.org/>
participants (4)
-
Anthony Minessale
-
James Martelletti
-
Justin Unger
-
will