Link to home
Start Free TrialLog in
Avatar of shaza
shaza

asked on

send voice from clients to server and the vise versa

Hi Friends
i have multi-cast application that send messages between multi users.The application work over(UDP protocol).i want to upgrade it to send voice between the users.i'm looking forwords for you to help me to send the voice from the server to the clients and the vise versa.
thank you very mutch.
  fayiz
Avatar of freshman3k
freshman3k

Hello

Go to this website:
http://lakeofsoft.com/i_vc_info.html

They have the cheapest component for your purpose, just $29

Good Luck
ASKER CERTIFIED SOLUTION
Avatar of Ahmed1
Ahmed1

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Mohammed Nasman
Hello

  another component but it's expensive

ASTA VoIP
http://www.astatech.com/products/voip/
Avatar of shaza

ASKER

hi friends:
if you know free componenet please tell me because i have no money .
thanks
fayiz
the link I gave you is free source :)
the components used are also free
all you need to do is to checkout that link
all the locations of 3rd party components are in the readme files
if you still need help let me know
Avatar of shaza

ASKER

hi ahmed1:
i have tried to use this code but i face some error while i'm runing the application ,the errors as follow :

Error: Play format not supported
Error: Record format not supported
Error: Problem creating play handle
Error: Problem creating record handle
Error: In Prepare error
Error: Add buffer error
Error: Start error

NOTE  that this error acure just when i use aseparet computers (one for client and one for the server).
And it doesn't acure when both client and server in the same computer.
   Shaza
why don't you check out thelink I gave you ?
I've made that app and it works
it's also very simple, made with some free components
Avatar of shaza

ASKER

hi lee nover:
i try to download the application but it give me error message like:
1."class TTBToolbar not found" when i try to download MainU.pas.
2."can not find resource file" when i try to download VoIP.dpr.
shaza
   
as I said .. all the 3rd party components are in the "3rdparty" directory, if not there then there's a link to them in the readme file
Avatar of shaza

ASKER

hi lee nover:
is this component send voice or voice and picture?
shaza
acm is only for audio
for video I've done something else
I might even make it a component
here's the link to the VideoCompression/Decompression unit
http://lee.nover.has.his.evilside.org/isapi/pas2html.dll/pas2html?File=/delphi/MiscFiles/VideoCoDec.pas

to send over internet I use Indy UDP and my TlnDynBuffer for buffering the frames
Avatar of shaza

ASKER

how i can install this component?
shaza
as you would any other ... I'm not going into installing components, that's the basics of delphi
hi shaza
     this code is running well on my network,
the format errors may be because of the default recording
or playback device setting in the control panel.
Avatar of shaza

ASKER

hi ahmed:
i will try to run it again ,but i want to ask you is this application send voice from client to server and from server to client too,or it send voice from client to server only ,and this two procedure are they belong to the same button because there is one button in this application.
procedure TForm1.ConnectButtonClick(Sender: TObject);
begin

      if ClientSocket1.Active then ClientSocket1.Active := False;
 if InputQuery('Computer to connect to', 'Address Name:', Server) then
   if Length(Server) > 0 then
     with ClientSocket1 do
     begin
        ClientSocket1.Port := 9999;
       Host := Server;
       Active := True;
       ClientSocket1.Host := RemoteHostEdit.Text;

     end;



end;
procedure TForm1.Button1Click(Sender: TObject);
begin
    if ClientSocket1.Active then ClientSocket1.Active := False;
 if InputQuery('Computer to connect to', 'Address Name:', Server) then
   if Length(Server) > 0 then
     with ClientSocket1 do
     begin
        ClientSocket1.Port := 9999;
        Host := Server;
        Active := True;

      // ClientSocket1.Host := RemoteHostEdit.Text;

       end;

   { ClientSocket1.Host := RemoteHostEdit.Text;
     ClientSocket1.Port := 9999;
     ClientSocket1.Open;}
end;

shaza.
Avatar of shaza

ASKER

hi lee nover:
i install two component (Acmin,Acmout) ,but a face a proplem when im trying to install (Tacmconvertor) component
i can't find the component to install please help me because the application dose not work until i install this component.
shaza.
if you downloaded acm.zip from my link then you should have the packages in there
first compile the pkg_ACMConvertor package, then the other two in any order
should work perfectly :)

oh btw .. the packages are in D6 format, but it should work with d5 as well
Avatar of shaza

ASKER

hi lee nover :
im compile pkg_acmconvertorpackage first but i face this problem:
[Fatal Error] ACMConvertorReg.pas(36): File not found: 'dfs.inc'
shaza
Avatar of shaza

ASKER

i compile it correctly but there is two component was install(acmin,acmout) in (sound) package.is it correct or there is an error?
shaza
Avatar of shaza

ASKER

we have error when we try to run the application after we install the three component . the error is:
class TTBToolbar not found.
shaza
my last post related to installing components !
dfs.inc is in the 3rdParty folder ! take a closer look !
TBToolbar is also there ...
Avatar of shaza

ASKER

hi ahmed1:
is the client application in form and the server application in another form or the two application(client,server) in the same form .
And tell me each procedure in this application refer to what?
please quicklly
shaza
Hi Shaza

   this program is to make voice chat, the same program must be runing in each computer (only 2), the program sends and receive voice at the same time (full dublex)

procedure TForm1.InitAudio;//to prepare sound parameters and open the Wavein, Wave out devices
procedure TForm1.CreateInBlock;// to handle the buffers creation during recording and sending
procedure TForm1.CreateOutBlock(memBlock: PmemBlock; size: Integer);// to make blocks to be sent using the socket
procedure TForm1.MMOutDone(var msg:Tmessage);// callback function called when playing sound is doneprocedure TForm1.MMInDone(var msg:Tmessage);//callback function called when recording is done
procedure TForm1.CloseAudio;// close wavein, waveout device
procedure TForm1.InitSocket;// set connection parameters
procedure TForm1.ConnectButtonClick(Sender: TObject);//
get the IP address from user and do connection
procedure TForm1.Read(Sender: TObject; Socket: TCustomWinSocket); // on data received from computer
procedure TForm1.Write(Sender: TObject;
 Socket: TCustomWinSocket);// on data sent to other computer
{procedure TForm1.Button1Click(Sender: TObject);} the same button click (one of them is linked to the button and the other can be deleted)

note
    this code is supplied to me by a friend , I did'nt event modify it.
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

Split between Lee_Nover and Ahmed1

Please leave any comments here within the next seven days.
 
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
 
Paul (pnh73)
EE Cleanup Volunteer