| View previous topic :: View next topic |
| Author |
Message |
Georgi Sandev Guest
|
Posted: Thu Apr 29, 2004 9:31 am Post subject: Need several fresh ideas |
|
|
Hello
I need several ideas about the following:
I have to make an application very similar to Yahoo Messanger - i.e. it has
to provide users with the ability to chat in a public room and also to be
able to speak to each other and view each other - i.e. This application is
supposed to make audio and video transmission.
Now according to the text chatting I have no problems. I am using Indy and I
have organized a server application that is listening on a port and accepts
users messages and broadcast them to the other users.
This is OK. Here are my dificulties:
I am not quite sure how I have to organize the audio and video transmission.
If I follow the Yahoo Messanger ideas I am supposed to make point to point
A/V streaming - i.e. when User1 requests to view User2's web cam User2 must
open a port and to start broadcast his video on this port i.e. User2 two
becomes a server and User1 connects directly to it. Is it a good idea to use
this approach or you have some other better ideas?
Also - what will happen if User2 is behind a proxy and his real IP address
is masked?
I would appreciate all your experience and you ideas about this and also
about the way how to design such an application.
Please note here that my questions are not concerning the actual A/V
streaming techniques (I am using DSPack for this) but they are more
design-oriented.
Thanks
|
|
| Back to top |
|
 |
Ioan Ghip Guest
|
Posted: Thu Apr 29, 2004 4:45 pm Post subject: Re: Need several fresh ideas |
|
|
| Quote: | Also - what will happen if User2 is behind a proxy and his real IP address
is masked?
|
then you connect both users using a central server, same way you do with
text messages and send from one user to the other one just jpeg images as
fast as you can
-ioan
|
|
| Back to top |
|
 |
Georgi Sandev Guest
|
Posted: Thu Apr 29, 2004 4:50 pm Post subject: Re: Need several fresh ideas |
|
|
Thanks.
I thought about this approach but I think that this will increase the delay
because of the one extra point - i.e. the server.
"Ioan Ghip" <delphi5eAThotmailDOTcom> wrote
| Quote: |
Also - what will happen if User2 is behind a proxy and his real IP
address
is masked?
then you connect both users using a central server, same way you do with
text messages and send from one user to the other one just jpeg images as
fast as you can
-ioan
|
|
|
| Back to top |
|
 |
Ioan Ghip Guest
|
Posted: Thu Apr 29, 2004 5:01 pm Post subject: Re: Need several fresh ideas |
|
|
| Quote: | Thanks.
I thought about this approach but I think that this will increase the
delay
because of the one extra point - i.e. the server.
|
I think is the only way to do it if the user who braodcast the video is
behind a proxy firewall.
I think Yahoo is doing in the same way, only in super mode I think the video
connection is point to point, all other conections are using a central
server (you can see this in webcam's connection statistics).
-ioan
|
|
| Back to top |
|
 |
Tony Caduto Guest
|
Posted: Thu Apr 29, 2004 6:20 pm Post subject: Re: Need several fresh ideas |
|
|
Here is what you could do.
Since you are creating and controling the client and server it's easy to
determine if they are behind a proxy/router.
during the connection/logon to your directory server etc, pass the clients
local IP address and compare it with the peer IP address at the server.
If they are the same the user is not behind a router/firewall/proxy, if they
are different then they are. If they are behind a firewall etc the peer IP
will be the address of the firewall.
You can then tell the client to route all communications to other users via
the server instead of point to point.
It works well, and I have clients with 300+ users on conncurently using this
method. I am not doing the video/audio though.
--
Tony Caduto
AM Software Design
Inexpensive Corporate Instant Messaging
http://www.amsoftwaredesign.com
|
|
| Back to top |
|
 |
Georgi Sandev Guest
|
Posted: Fri Apr 30, 2004 5:19 am Post subject: Re: Need several fresh ideas |
|
|
Thanks. I'll think about this one
"Tony Caduto" <acaduto (AT) amsoftwaredesign (DOT) com> wrote
| Quote: | Here is what you could do.
Since you are creating and controling the client and server it's easy to
determine if they are behind a proxy/router.
during the connection/logon to your directory server etc, pass the clients
local IP address and compare it with the peer IP address at the server.
If they are the same the user is not behind a router/firewall/proxy, if
they
are different then they are. If they are behind a firewall etc the peer
IP
will be the address of the firewall.
You can then tell the client to route all communications to other users
via
the server instead of point to point.
It works well, and I have clients with 300+ users on conncurently using
this
method. I am not doing the video/audio though.
--
Tony Caduto
AM Software Design
Inexpensive Corporate Instant Messaging
http://www.amsoftwaredesign.com
|
|
|
| Back to top |
|
 |
Dan F Guest
|
Posted: Fri Apr 30, 2004 10:21 pm Post subject: Re: Need several fresh ideas |
|
|
"Georgi Sandev" <georgi_sandev (AT) atianet (DOT) bg> wrote
| Quote: | Thanks. I'll think about this one
"Tony Caduto" <acaduto (AT) amsoftwaredesign (DOT) com> wrote in message
news:40914754 (AT) newsgroups (DOT) borland.com...
Here is what you could do.
Since you are creating and controling the client and server it's easy to
determine if they are behind a proxy/router.
during the connection/logon to your directory server etc, pass the
clients
local IP address and compare it with the peer IP address at the server.
If they are the same the user is not behind a router/firewall/proxy, if
they
are different then they are. If they are behind a firewall etc the peer
IP
will be the address of the firewall.
You can then tell the client to route all communications to other users
via
the server instead of point to point.
It works well, and I have clients with 300+ users on conncurently using
this
method. I am not doing the video/audio though.
--
Tony Caduto
AM Software Design
Inexpensive Corporate Instant Messaging
http://www.amsoftwaredesign.com
If you are using TCP and only one person is behind a firewall/router as |
detected by the method above, then just have the person who is behind the
router connect to the open user. If both are behind routers you will have
to go through the server. You might also want to look into the Windows XP
UPnP NAT API which allows programs behind UPnP routers to forward ports and
determine their external IP.
Dan
|
|
| Back to top |
|
 |
|