i have temporarly deleted jingle features from the trunk, report you to http://beem-project.com/hg/beem-audio/ if you are interested
--- 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 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.beem.project.beem" android:versionCode="2"
- android:versionName="0.1.1">
+ package="com.beem.project.beem" android:versionCode="3"
+ android:versionName="0.1.2">
<application android:label="@string/app_name"
android:icon="@drawable/beem_launcher_icon_silver" android:theme="@style/Theme.BEEM.Default"
android:debuggable="true" android:name="@string/app_name">
Binary file libs/jlibrtp.jar has changed
Binary file libs/security.jar has changed
--- 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);
}
/**
--- 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 <http://www.gnu.org/licenses/>.
-
- 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<JingleMediaManager> 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<JingleMediaManager>();
- 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();
- }
- }
- }
-
-}
--- 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 <http://www.gnu.org/licenses/>.
-
- 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<PayloadType> 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<PayloadType> getPayloads() {
- // TODO Auto-generated method stub
- return mPayloads;
- }
-
- /**
- * Supported payload list.
- */
- private void setupPayloads() {
- mPayloads = new ArrayList<PayloadType>();
- mPayloads.add(new PayloadType.Audio(0, "PCMU"));
- mPayloads.add(new PayloadType.Audio(8, "PCMA"));
- }
-}
--- 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 <http://www.gnu.org/licenses/>.
-
- 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();
- }
- }
-}
--- 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 <http://www.gnu.org/licenses/>.
-
- 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();
- }
-}
--- 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 <http://www.gnu.org/licenses/>.
-
- 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;
- }
-}
--- 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 <http://www.gnu.org/licenses/>.
-
- 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;
- }
-
-}
--- 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 <http://www.gnu.org/licenses/>.
-
- 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);
- }
- });
-
- }
-*/
-}
--- 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 <http://www.gnu.org/licenses/>.
-
- 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;
-
--- 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 <http://www.gnu.org/licenses/>.
-
- 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;
-
--- 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)