# HG changeset patch # User nikita@nikita-laptop # Date 1266269852 -3600 # Node ID 25f6fded204ab05c9f89556cbc08cd191e0f2c52 # Parent 9fb7971592360efee167c8ca73163877368970ac i have temporarly deleted jingle features from the trunk, report you to http://beem-project.com/hg/beem-audio/ if you are interested diff -r 9fb797159236 -r 25f6fded204a AndroidManifest.xml --- a/AndroidManifest.xml Sat Feb 13 22:43:21 2010 +0100 +++ b/AndroidManifest.xml Mon Feb 15 22:37:32 2010 +0100 @@ -1,7 +1,7 @@ + package="com.beem.project.beem" android:versionCode="3" + android:versionName="0.1.2"> diff -r 9fb797159236 -r 25f6fded204a libs/jlibrtp.jar Binary file libs/jlibrtp.jar has changed diff -r 9fb797159236 -r 25f6fded204a libs/security.jar Binary file libs/security.jar has changed diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/BeemService.java --- a/src/com/beem/project/beem/BeemService.java Sat Feb 13 22:43:21 2010 +0100 +++ b/src/com/beem/project/beem/BeemService.java Mon Feb 15 22:37:32 2010 +0100 @@ -67,7 +67,6 @@ import android.preference.PreferenceManager; import android.util.Log; -import com.beem.project.beem.jingle.JingleService; import com.beem.project.beem.service.XmppConnectionAdapter; import com.beem.project.beem.service.XmppFacade; import com.beem.project.beem.service.aidl.IXmppFacade; @@ -90,7 +89,6 @@ private NotificationManager mNotificationManager; private XmppConnectionAdapter mConnection; - private JingleService mJingle; private SharedPreferences mSettings; private String mLogin; private String mPassword; @@ -195,8 +193,7 @@ mConnection = new XmppConnectionAdapter(mConnectionConfiguration, mLogin, mPassword, this); Roster.setDefaultSubscriptionMode(SubscriptionMode.manual); - mJingle = new JingleService(mConnection.getAdaptee()); - mBind = new XmppFacade(mConnection, mJingle); + mBind = new XmppFacade(mConnection); Log.d(TAG, "ONCREATE"); } @@ -259,7 +256,6 @@ * @param adaptee XmppConnection used for jingle. */ public void initJingle(XMPPConnection adaptee) { - mJingle.initWhenConntected(adaptee); } /** diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/JingleService.java --- a/src/com/beem/project/beem/jingle/JingleService.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,271 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle; - -import java.util.ArrayList; -import java.util.List; - -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smackx.jingle.JingleManager; -import org.jivesoftware.smackx.jingle.JingleSession; -import org.jivesoftware.smackx.jingle.JingleSessionRequest; -import org.jivesoftware.smackx.jingle.listeners.JingleSessionListener; -import org.jivesoftware.smackx.jingle.listeners.JingleSessionRequestListener; -import org.jivesoftware.smackx.jingle.media.JingleMediaManager; -import org.jivesoftware.smackx.jingle.media.PayloadType; -import org.jivesoftware.smackx.jingle.nat.BasicTransportManager; -import org.jivesoftware.smackx.jingle.nat.TransportCandidate; - -import android.util.Log; - -// TODO: Auto-generated Javadoc -/** - * Beem Jingle Service, manage jingle call. - * @author nikita - */ -public class JingleService { - private static final String TAG = "JingleService"; - private JingleManager mJingleManager; - private final List mMediaManagers; - private JingleSession mIn; - private JingleSession mOut; - - /** - * JingleService constructor. - * @param xmppConnection a valid XMPPConnection - */ - public JingleService(final XMPPConnection xmppConnection) { - BasicTransportManager bt = new BasicTransportManager(); - // JingleTransportManager tm = new ICETransportManager(); - - mMediaManagers = new ArrayList(); - mMediaManagers.add(new MicrophoneRTPManager(bt)); - } - - /** - * finish to construct the instance. - * @param conn the xmppConnection used with constructor - */ - public void initWhenConntected(XMPPConnection conn) { - mJingleManager = new JingleManager(conn, mMediaManagers); - mJingleManager.addJingleSessionRequestListener(new BeemJingleSessionRequestListener()); - } - - /** - * begin a jingle call. - * @param receiver the call receiver - */ - public void call(final String receiver) { - try { - mOut = mJingleManager.createOutgoingJingleSession(receiver); - // TODO configure out avec addMediaSession et addNegociator - mOut.addListener(new BeemJingleCallerSessionListener()); - mOut.startOutgoing(); - } catch (XMPPException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - /* - * private void receiveData(String ip, int port) throws IOException { Socket s = null; try { s = new Socket(ip, - * port); System.out.println("Waiting data"); InputStream in = s.getInputStream(); int a; while ((a = in.read()) != - * -1) { System.out.println("Received " + a); } System.out.println("End receiving data"); } finally { if (s != null) - * s.close(); } } - */ - /** - * Listen on receiver session events. - * @author nikita - */ - private class BeemJingleReceiverSessionListener implements JingleSessionListener { - - /** - * constructor. - */ - public BeemJingleReceiverSessionListener() { - super(); - // TODO Auto-generated constructor stub - } - - @Override - public void sessionClosed(String reason, JingleSession jingleSession) { - // System.out.println("Session " + jingleSession.getResponder() + - // "closedd because " + reason); - } - - @Override - public void sessionClosedOnError(XMPPException e, JingleSession jingleSession) { - // TODO Auto-generated method stub - // System.out.println("Session " + jingleSession.getResponder() + - // " closed"); - - } - - @Override - public void sessionDeclined(String reason, JingleSession jingleSession) { - Log.d(TAG, "Session " + jingleSession.getResponder() + "declined because " + reason); - } - - @Override - public void sessionEstablished(PayloadType pt, TransportCandidate remoteCandidate, - TransportCandidate localCandidate, JingleSession jingleSession) { - // System.out.println("Session established"); - // System.out.println("Je recois sur " + remoteCandidate.getIp() + - // ":" + remoteCandidate.getPort()); - // TODO choose the right RTPReceiver depending on the payload type - // RTPReceiver rtpReceiver = new - // RTPReceiver(remoteCandidate.getPort()); - Log.d(TAG, "Session " + jingleSession.getResponder() + "established"); - } - - @Override - public void sessionMediaReceived(JingleSession jingleSession, String participant) { - // System.out.println("Session Media received from " + participant); - } - - @Override - public void sessionRedirected(String redirection, JingleSession jingleSession) { - } - } - - /** - * Listen on caller session events. - * @author nikita - */ - private class BeemJingleCallerSessionListener implements JingleSessionListener { - - private static final int SLP_DURATION = 20000; - - /** - * constructor. - */ - public BeemJingleCallerSessionListener() { - super(); - // TODO Auto-generated constructor stub - } - - @Override - public void sessionClosed(final String reason, final JingleSession jingleSession) { - // System.out.println("Session " + jingleSession.getResponder() + - // "closed because " + reason); - } - - @Override - public void sessionClosedOnError(final XMPPException e, final JingleSession jingleSession) { - // System.out.println("Session " + jingleSession.getResponder() + - // " closed on error"); - - } - - @Override - public void sessionDeclined(final String reason, final JingleSession jingleSession) { - // System.out.println("Session " + jingleSession.getResponder() + - // "declined because " + reason); - Log.d(TAG, "Session " + jingleSession.getResponder() + "declined because " + reason); - } - - @Override - public void sessionEstablished(final PayloadType pt, final TransportCandidate remoteCandidate, - final TransportCandidate localCandidate, final JingleSession jingleSession) { - Log.d(TAG, "Session " + jingleSession.getResponder() + "established"); - // String name = localCandidate.getName(); - String ip = localCandidate.getIp(); - int port = localCandidate.getPort(); - // System.out.println("Session established waiting connection on " + - // ip + ":" + port); - - RTPTransmitter transm = new PCMTransmitter(ip, port); - - transm.run(); - try { - Thread.sleep(SLP_DURATION); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - transm.stop(); - // System.out.println("End of transfer"); - - } - - @Override - public void sessionMediaReceived(final JingleSession jingleSession, final String participant) { - // TODO Auto-generated method stub - System.out.println("Session Media received from " + participant); - } - - @Override - public void sessionRedirected(final String redirection, final JingleSession jingleSession) { - // TODO Auto-generated method stub - } - } - - /** - * Listen for a Jingle session request. - * @author nikita - */ - private class BeemJingleSessionRequestListener implements JingleSessionRequestListener { - - /** - * Constructor. - */ - public BeemJingleSessionRequestListener() { - super(); - } - - @Override - public void sessionRequested(JingleSessionRequest request) { - System.out.println("Jingle Session request from " + request.getFrom()); - try { - mIn = request.accept(); - mIn.addListener(new BeemJingleReceiverSessionListener()); - mIn.startIncoming(); - } catch (XMPPException e) { - e.printStackTrace(); - } - } - } - -} diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/MicrophoneRTPManager.java --- a/src/com/beem/project/beem/jingle/MicrophoneRTPManager.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle; - -import java.util.ArrayList; -import java.util.List; - -import org.jivesoftware.smackx.jingle.JingleSession; -import org.jivesoftware.smackx.jingle.media.JingleMediaManager; -import org.jivesoftware.smackx.jingle.media.JingleMediaSession; -import org.jivesoftware.smackx.jingle.media.PayloadType; -import org.jivesoftware.smackx.jingle.nat.JingleTransportManager; -import org.jivesoftware.smackx.jingle.nat.TransportCandidate; - -// TODO: Auto-generated Javadoc -/** - * RTPMediaManager, gere les payloads et renvoie une session RTP. - * @author nikita - */ -public class MicrophoneRTPManager extends JingleMediaManager { - - /** RTP media name. */ - public static final String MEDIA_NAME = "Microphone"; - - private List mPayloads; - - /** - * Manage Microphone data transmission trough RTP. - * @param transportManager current jingle transport manager(basic,upnp,ice...). - */ - public MicrophoneRTPManager(final JingleTransportManager transportManager) { - super(transportManager); - // TODO Auto-generated constructor stub - setupPayloads(); - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaManager#createMediaSession(org.jivesoftware.smackx.jingle.media.PayloadType, org.jivesoftware.smackx.jingle.nat.TransportCandidate, org.jivesoftware.smackx.jingle.nat.TransportCandidate, org.jivesoftware.smackx.jingle.JingleSession) - */ - @Override - public JingleMediaSession createMediaSession(PayloadType payloadType, TransportCandidate remote, - TransportCandidate local, JingleSession jingleSession) { - // TODO Auto-generated method stub - return new MicrophoneRTPSession(payloadType, remote, local, null, jingleSession); - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaManager#getName() - */ - @Override - public String getName() { - return MEDIA_NAME; - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaManager#getPayloads() - */ - @Override - public List getPayloads() { - // TODO Auto-generated method stub - return mPayloads; - } - - /** - * Supported payload list. - */ - private void setupPayloads() { - mPayloads = new ArrayList(); - mPayloads.add(new PayloadType.Audio(0, "PCMU")); - mPayloads.add(new PayloadType.Audio(8, "PCMA")); - } -} diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/MicrophoneRTPSession.java --- a/src/com/beem/project/beem/jingle/MicrophoneRTPSession.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle; - -import org.jivesoftware.smackx.jingle.JingleSession; -import org.jivesoftware.smackx.jingle.media.JingleMediaSession; -import org.jivesoftware.smackx.jingle.media.PayloadType; -import org.jivesoftware.smackx.jingle.nat.TransportCandidate; - -// TODO: Auto-generated Javadoc -/** - * Manage microphone RTP session. - * @author nikita - */ -public class MicrophoneRTPSession extends JingleMediaSession { - - private RTPTransmitter mTransmitter; - private RTPReceiver mReceiver; - - /** - * constructor. - * @param payloadType the payload typ used - * @param remote the remote transport info - * @param local the local tranport info - * @param mediaLocator don't know - * @param jingleSession the current jingle session - */ - public MicrophoneRTPSession(final PayloadType payloadType, final TransportCandidate remote, - final TransportCandidate local, final String mediaLocator, final JingleSession jingleSession) { - super(payloadType, remote, local, mediaLocator, jingleSession); - - // TODO le transmitter ne devrait peut etre pas etre init ici, c'est - // peut etre encore un peu tot, a voir. - mTransmitter = new PCMTransmitter(remote.getIp(), getRemote().getPort()); - // mReceiver = new MicroRTPReceiver(getLocal().getPort()); - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaSession#initialize() - */ - @Override - public void initialize() { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaSession#setTrasmit(boolean) - */ - @Override - public void setTrasmit(boolean active) { - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaSession#startReceive() - */ - @Override - public void startReceive() { - - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaSession#startTrasmit() - */ - @Override - public void startTrasmit() { - - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaSession#stopReceive() - */ - @Override - public void stopReceive() { - if (mReceiver != null) { - mReceiver.stop(); - } - } - - /* (non-Javadoc) - * @see org.jivesoftware.smackx.jingle.media.JingleMediaSession#stopTrasmit() - */ - @Override - public void stopTrasmit() { - if (mTransmitter != null) { - mTransmitter.stop(); - } - } -} diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/PCMTransmitter.java --- a/src/com/beem/project/beem/jingle/PCMTransmitter.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle; - -import android.media.AudioFormat; -import android.media.AudioRecord; -import android.media.MediaRecorder; - -// TODO: Auto-generated Javadoc -/** - * Transmit Microphone data through RTP. - * @author nikita - */ -public class PCMTransmitter extends RTPTransmitter { - - private static final int BUFF_SIZE = 1024; - private static final int RATE_IN_HZ = 8000; - private static final int SLP_DURATION = 200; - - /** - * Constructor. - * @param remoteIP receiver IP. - * @param remotePort receiver port. - */ - public PCMTransmitter(final String remoteIP, final int remotePort) { - super(remoteIP, remotePort); - } - - /* (non-Javadoc) - * @see com.beem.project.beem.jingle.RTPTransmitter#start() - */ - @Override - void start() { - AudioRecord audRec = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, RATE_IN_HZ, - AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, AudioRecord.getMinBufferSize( - RATE_IN_HZ, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT) * 4); - byte[] audioData = new byte[BUFF_SIZE]; - int byteReaded = 0; - while (!isKillme()) { - byteReaded = audRec.read(audioData, byteReaded, BUFF_SIZE); - System.out.println("readed " + byteReaded); - getRtpSession().sendData(audioData); - } - try { - Thread.sleep(SLP_DURATION); - } catch (InterruptedException e) { - e.printStackTrace(); - } - this.getRtpSession().endSession(); - } -} diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/RTPReceiver.java --- a/src/com/beem/project/beem/jingle/RTPReceiver.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle; - -import java.net.DatagramSocket; -import java.net.SocketException; - -import org.jlibrtp.jlibrtp.Participant; -import org.jlibrtp.jlibrtp.RTPAppIntf; -import org.jlibrtp.jlibrtp.RTPSession; - -// TODO: Auto-generated Javadoc -/** - * abstract RTP receiver class. - * @author nikita - */ -public abstract class RTPReceiver implements Runnable, RTPAppIntf { - - private boolean mKillme; - private RTPSession mRtpSession; - - /** - * constructor. - * @param rtpPort local or distant?. - */ - public RTPReceiver(final int rtpPort) { - DatagramSocket rtpSocket = null; - - try { - rtpSocket = new DatagramSocket(rtpPort); - } catch (SocketException e) { - e.printStackTrace(); - return; - } - mRtpSession = new RTPSession(rtpSocket, null); - mRtpSession.naivePktReception(true); - mRtpSession.RTPSessionRegister(this, null, null); - } - - /* (non-Javadoc) - * @see org.jlibrtp.jlibrtp.RTPAppIntf#frameSize(int) - */ - @Override - public int frameSize(int payloadType) { - return 1; - } - - /* (non-Javadoc) - * @see java.lang.Runnable#run() - */ - @Override - public void run() { - start(); - this.mRtpSession.endSession(); - } - - /** - * main reception loop. - */ - protected abstract void start(); - - /** - * Stop the reception. - */ - public void stop() { - this.setKillme(true); - } - - /* (non-Javadoc) - * @see org.jlibrtp.jlibrtp.RTPAppIntf#userEvent(int, org.jlibrtp.jlibrtp.Participant[]) - */ - @Override - public void userEvent(int arg0, Participant[] arg1) { - // TODO Auto-generated method stub - } - - /** - * mKillme setter. - * @param killme the mKillme to set - */ - public void setKillme(final boolean killme) { - this.mKillme = killme; - } - - /** - * mKillme getter. - * @return the mKillme - */ - public boolean isKillme() { - return mKillme; - } -} diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/RTPTransmitter.java --- a/src/com/beem/project/beem/jingle/RTPTransmitter.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,170 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle; - -import java.net.DatagramSocket; -import java.net.SocketException; - -import org.jlibrtp.jlibrtp.DataFrame; -import org.jlibrtp.jlibrtp.Participant; -import org.jlibrtp.jlibrtp.RTPAppIntf; -import org.jlibrtp.jlibrtp.RTPSession; - -import com.beem.project.beem.utils.FreePort; - -// TODO: Auto-generated Javadoc -/** - * abstract RTP transmitter class. - * @author nikita - */ -public abstract class RTPTransmitter implements Runnable, RTPAppIntf { - /** - * RTPSession instance. - */ - private RTPSession mRtpSession; - /** - * process status manipulation. - */ - private boolean mKillme; - - /** - * constructor. - * @param remoteIP receiver IP. - * @param remotePort receiver port. - */ - public RTPTransmitter(final String remoteIP, final int remotePort) { - DatagramSocket rtpSocket = null; - int rtpPort = 0; - - try { - rtpPort = FreePort.getFreePort(); - rtpSocket = new DatagramSocket(rtpPort); - } catch (SocketException e) { - e.printStackTrace(); - return; - } - setRtpSession(new RTPSession(rtpSocket, null)); - getRtpSession().naivePktReception(true); - getRtpSession().RTPSessionRegister(this, null, null); - getRtpSession().addParticipant(new Participant(remoteIP, remotePort, 0)); - } - - /* (non-Javadoc) - * @see org.jlibrtp.jlibrtp.RTPAppIntf#frameSize(int) - */ - @Override - public int frameSize(int payloadType) { - return 1; - } - - /* (non-Javadoc) - * @see org.jlibrtp.jlibrtp.RTPAppIntf#receiveData(org.jlibrtp.jlibrtp.DataFrame, org.jlibrtp.jlibrtp.Participant) - */ - @Override - public void receiveData(DataFrame frame, Participant participant) { - // On envoie uniquement - } - - /* (non-Javadoc) - * @see java.lang.Runnable#run() - */ - @Override - public void run() { - start(); - } - - /** - * A implementer pour chaque type d'envoi specifique. - */ - abstract void start(); - - /** - * Stop the transmission. - */ - public void stop() { - mKillme = true; - } - - /* (non-Javadoc) - * @see org.jlibrtp.jlibrtp.RTPAppIntf#userEvent(int, org.jlibrtp.jlibrtp.Participant[]) - */ - @Override - public void userEvent(int type, Participant[] participant) { - // je sais pas ce que c'est - - } - - /** - * mKillme setter. - * @param killme the mKillme to set - */ - public void setKillme(final boolean killme) { - this.mKillme = killme; - } - - /** - * mKillme getter. - * @return the mKillme. - */ - public boolean isKillme() { - return mKillme; - } - - /** - * mRtpSession setter. - * @param rtpSession the mRtpSession to set. - */ - public void setRtpSession(RTPSession rtpSession) { - this.mRtpSession = rtpSession; - } - - /** - * mRtpSession getter. - * @return the mRtpSession - */ - public RTPSession getRtpSession() { - return mRtpSession; - } - -} diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/demo/JingleCallActivity.java --- a/src/com/beem/project/beem/jingle/demo/JingleCallActivity.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle.demo; -/* -import org.jivesoftware.smack.ConnectionConfiguration; -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode; -import org.jivesoftware.smack.util.StringUtils; - -import android.os.Bundle; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.EditText; -import android.widget.Toast; - -import com.beem.project.beem.R; -import com.beem.project.beem.jingle.JingleService; -*/ -import android.app.Activity; - -/** - * Activity used to test Jingle call. - * @author darisk - */ -public class JingleCallActivity extends Activity { -/* - private static final int SLP_DURATION = 3000; - private static final int DEFAULT_XMPP_PORT = 5222; - - private XMPPConnection mConnection; - private ConnectionConfiguration mConf; - private JingleService mJingle; - - private Button mBtconnect; - private Button mBtcall; - private EditText mEdJID; - private EditText mEdPassword; - private EditText mEdReceiver; - - /** - * Constructor. - * - public JingleCallActivity() { - } - - /* (non-Javadoc) - * @see android.app.Activity#onCreate(android.os.Bundle) - * - @Override - protected void onCreate(Bundle savedInstanceState) { - java.security.Security.addProvider(new com.sun.security.sasl.Provider()); - super.onCreate(savedInstanceState); - setContentView(R.layout.jingle_call_activity); - mConf = new ConnectionConfiguration("10.0.2.2", DEFAULT_XMPP_PORT); - // mConf = new ConnectionConfiguration("elyzion.net", - // DEFAULT_XMPP_PORT); - mConf.setSecurityMode(SecurityMode.required); - mEdJID = (EditText) findViewById(R.id.jingledemocalljid); - mEdPassword = (EditText) findViewById(R.id.jingledemocallpassword); - mEdReceiver = (EditText) findViewById(R.id.jingledemocallreceiver); - mBtconnect = (Button) findViewById(R.id.jingledemocallconnectbutton); - mBtconnect.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View arg0) { - String jid = mEdJID.getText().toString(); - String login = StringUtils.parseName(jid); - mConnection = new XMPPConnection(mConf); - String password = mEdPassword.getText().toString(); - try { - mConnection.connect(); - Thread.sleep(SLP_DURATION); - mConnection.login(login, password); - mJingle = new JingleService(mConnection); - mJingle.initWhenConntected(mConnection); - mBtcall.setEnabled(true); - Toast.makeText(JingleCallActivity.this, "Connected", Toast.LENGTH_SHORT); - } catch (XMPPException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - }); - mBtcall = (Button) findViewById(R.id.jingledemocallbutton); - mBtcall.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View arg0) { - String jid = mEdReceiver.getText().toString(); - if (!"".equals(jid)) { - mJingle.call(jid); - Toast.makeText(JingleCallActivity.this, "Appel en cours", Toast.LENGTH_SHORT); - } else - Toast.makeText(JingleCallActivity.this, "Remplir le champ (JID complet en toto@tutu.com/truc)", - Toast.LENGTH_SHORT); - } - }); - - } -*/ -} diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/demo/package-info.java --- a/src/com/beem/project/beem/jingle/demo/package-info.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle.demo; - diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/jingle/package-info.java --- a/src/com/beem/project/beem/jingle/package-info.java Sat Feb 13 22:43:21 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* - BEEM is a videoconference application on the Android Platform. - - Copyright (C) 2009 by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - This file is part of BEEM. - - BEEM is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - BEEM is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with BEEM. If not, see . - - Please send bug reports with examples or suggestions to - contact@beem-project.com or http://dev.beem-project.com/ - - Epitech, hereby disclaims all copyright interest in the program "Beem" - written by Frederic-Charles Barthelery, - Jean-Manuel Da Silva, - Nikita Kozlov, - Philippe Lago, - Jean Baptiste Vergely, - Vincent Veronis. - - Nicolas Sadirac, November 26, 2009 - President of Epitech. - - Flavien Astraud, November 26, 2009 - Head of the EIP Laboratory. - -*/ -package com.beem.project.beem.jingle; - diff -r 9fb797159236 -r 25f6fded204a src/com/beem/project/beem/service/XmppFacade.java --- a/src/com/beem/project/beem/service/XmppFacade.java Sat Feb 13 22:43:21 2010 +0100 +++ b/src/com/beem/project/beem/service/XmppFacade.java Mon Feb 15 22:37:32 2010 +0100 @@ -49,7 +49,6 @@ import android.os.RemoteException; -import com.beem.project.beem.jingle.JingleService; import com.beem.project.beem.service.aidl.IChatManager; import com.beem.project.beem.service.aidl.IPrivacyListManager; import com.beem.project.beem.service.aidl.IRoster; @@ -64,16 +63,13 @@ public class XmppFacade extends IXmppFacade.Stub { private final XmppConnectionAdapter mConnexion; - private final JingleService mJingle; /** * Constructor for XMPPFacade. * @param connection the connection use by the facade - * @param jingle the jingle session */ - public XmppFacade(final XmppConnectionAdapter connection, final JingleService jingle) { + public XmppFacade(final XmppConnectionAdapter connection) { this.mConnexion = connection; - this.mJingle = jingle; } /** @@ -152,7 +148,6 @@ */ @Override public void call(String jid) throws RemoteException { - mJingle.call(jid); } /* (non-Javadoc)