--- a/AndroidManifest.xml Tue Jun 05 16:44:38 2012 +0200
+++ b/AndroidManifest.xml Wed Jun 06 23:24:12 2012 +0200
@@ -66,6 +66,9 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="com.beem.project.beem.BEEM_SERVICE"/>
+
+ <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
+
<uses-feature name="android.hardware.touchscreen" required="false" />
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" />
<supports-screens android:largeScreens="true"
Binary file libs/asmack-android-10-beem.jar has changed
--- a/src/com/beem/project/beem/BeemService.java Tue Jun 05 16:44:38 2012 +0200
+++ b/src/com/beem/project/beem/BeemService.java Wed Jun 06 23:24:12 2012 +0200
@@ -86,6 +86,7 @@
import org.jivesoftware.smack.proxy.ProxyInfo;
import org.jivesoftware.smack.proxy.ProxyInfo.ProxyType;
import org.jivesoftware.smack.util.StringUtils;
+import org.jivesoftware.smackx.jingle.JingleManager;
import org.jivesoftware.smackx.packet.ChatStateExtension;
import org.jivesoftware.smackx.provider.DelayInfoProvider;
import org.jivesoftware.smackx.provider.DiscoverInfoProvider;
@@ -231,6 +232,7 @@
}
configure(ProviderManager.getInstance());
+ //JingleManager.setJingleServiceEnabled();
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
--- a/src/com/beem/project/beem/jingle/JingleService.java Tue Jun 05 16:44:38 2012 +0200
+++ b/src/com/beem/project/beem/jingle/JingleService.java Wed Jun 06 23:24:12 2012 +0200
@@ -102,7 +102,8 @@
* @param conn the xmppConnection used with constructor
*/
public void initWhenConntected(XMPPConnection conn) {
- mJingleManager = new JingleManager(conn, mMediaManagers);
+ JingleManager.setJingleServiceEnabled();
+ mJingleManager = new JingleManager(conn, mMediaManagers);
mJingleManager.addJingleSessionRequestListener(new BeemJingleSessionRequestListener());
}
@@ -146,7 +147,8 @@
public void acceptCall() throws RemoteException {
Log.d(TAG, "Accept Call");
try {
- mRequest.accept();
+ mIn = mRequest.accept(mIn);
+ mIn.addListener(new BeemJingleSessionListener());
mIn.start();
} catch (XMPPException e) {
e.printStackTrace();
@@ -167,20 +169,21 @@
mAudioSession = null;
if (isCaller) {
try {
- mOut.terminate("Cancelled");
+
+ mOut.terminate();
mOut.close();
} catch (XMPPException e) {
e.printStackTrace();
}
mOut = null;
} else {
- try {
+ //try {
mRequest.reject();
- mIn.terminate();
- mIn.close();
- } catch (XMPPException e) {
- e.printStackTrace();
- }
+ //mIn.terminate();
+ //mIn.close();
+ //} catch (XMPPException e) {
+ //e.printStackTrace();
+ //}
mIn = null;
}
}
@@ -200,7 +203,7 @@
@Override
public void sessionClosed(String reason, JingleSession jingleSession) {
- System.out.println("Session " + jingleSession.getResponder() + " closed because " + reason);
+ Log.d(TAG, "Session " + jingleSession.getResponder() + " closed because " + reason);
final int n = mRemoteJingleListeners.beginBroadcast();
for (int i = 0; i < n; i++) {
@@ -216,7 +219,7 @@
@Override
public void sessionClosedOnError(XMPPException e, JingleSession jingleSession) {
- System.out.println("Session " + jingleSession.getResponder() + " closed");
+ Log.d(TAG, "Session " + jingleSession.getResponder() + " closed");
final int n = mRemoteJingleListeners.beginBroadcast();
for (int i = 0; i < n; i++) {
@@ -294,14 +297,14 @@
try {
mIn = mJingleManager.createIncomingJingleSession(mRequest);
mIn.addListener(new BeemJingleSessionListener());
- mIn.startIncoming();
+ //mIn.startIncoming();
} catch (XMPPException e) {
e.printStackTrace();
}
- System.out.println("Jingle Session request from " + request.getFrom());
+ Log.d(TAG, "Jingle Session request from " + request.getFrom());
isCaller = false;
Intent intent = new Intent(mContext, Call.class);
- intent.setData(Uri.parse("jingle:"+request.getFrom()));
+ intent.setData(Uri.parse("xmpp:"+request.getFrom()));
intent.putExtra("isCaller", false);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
--- a/src/com/beem/project/beem/jingle/MicrophoneRTPManager.java Tue Jun 05 16:44:38 2012 +0200
+++ b/src/com/beem/project/beem/jingle/MicrophoneRTPManager.java Wed Jun 06 23:24:12 2012 +0200
@@ -54,7 +54,6 @@
import org.jivesoftware.smackx.jingle.nat.TransportCandidate;
import android.content.Context;
-import android.provider.MediaStore.Audio;
/**
* RTPMediaManager, gere les payloads et renvoie une session RTP.
--- a/src/com/beem/project/beem/ui/Call.java Tue Jun 05 16:44:38 2012 +0200
+++ b/src/com/beem/project/beem/ui/Call.java Wed Jun 06 23:24:12 2012 +0200
@@ -56,6 +56,7 @@
import android.os.IBinder;
import android.os.RemoteException;
import android.os.Vibrator;
+import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -83,6 +84,7 @@
static {
SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
}
+ private static final String TAG="Jingle/Call";
private ImageView mLogo;
private TextView mCallInfo;
private Animation mRotateAnim;
@@ -94,6 +96,7 @@
private Button mAcceptCall;
private IJingle mJingle;
private Intent mIntent;
+ private boolean mIsCaller;
final static long[] vibratePattern = {0,1000,1000};
@@ -142,7 +145,8 @@
mRotateAnim = AnimationUtils.loadAnimation(this, R.anim.rotate_and_scale);
mCloseCall = (Button) findViewById(R.id.call_cancel_button);
mCloseCall.setOnClickListener(new ClickListener());
- if (mIntent.getBooleanExtra("isCaller", false)) {
+ mIsCaller = mIntent.getBooleanExtra("isCaller", false);
+ if (mIsCaller) {
mAcceptCall = (Button) findViewById(R.id.call_accept_button);
mAcceptCall.setVisibility(View.GONE);
call_state = UA_STATE_OUTGOING_CALL;
@@ -241,15 +245,16 @@
mJingle.closeCall();
stopRingtone();
Call.call_state = UA_STATE_IDLE;
+ finish();
} else if (v == mAcceptCall) {
mJingle.acceptCall();
stopRingtone();
Call.call_state = UA_STATE_INCALL;
+ mAcceptCall.setVisibility(View.GONE);
}
} catch (RemoteException e) {
e.printStackTrace();
}
- finish();
}
}
@@ -282,7 +287,7 @@
@Override
public void sessionClosed(final String reason) {
- android.util.Log.d("TEST", "TEST " + reason);
+ Log.d(TAG, "sessionClosed " + reason);
Call.stopRingtone();
call_state = UA_STATE_IDLE;
mHandler.post(new RunnableChange(reason));
@@ -290,7 +295,7 @@
@Override
public void sessionDeclined(final String reason) {
- android.util.Log.d("TEST", "TEST4 " + reason);
+ Log.d(TAG, "sessionDeclined " + reason);
Call.stopRingtone();
call_state = UA_STATE_IDLE;
mHandler.post(new RunnableChange(reason));
@@ -298,7 +303,7 @@
@Override
public void sessionClosedOnError(final String error) {
- android.util.Log.d("TEST", "TEST5 " + error);
+ Log.d(TAG, "sessionClosedOnError " + error);
Call.stopRingtone();
call_state = UA_STATE_IDLE;
mHandler.post(new RunnableChange(error));
@@ -306,7 +311,7 @@
@Override
public void sessionEstablished() {
- android.util.Log.d("TEST", "TEST2 ");
+ Log.d(TAG, "sessionEstablished ");
call_state = UA_STATE_INCALL;
Call.stopRingtone();
mHandler.post(new RunnableChange("established"));
@@ -314,7 +319,7 @@
@Override
public void sessionRequested(final String fromJID) {
- android.util.Log.d("TEST", "TEST3 " + fromJID);
+ Log.d(TAG, "sessionRequested " + fromJID);
mHandler.post(new RunnableChange(fromJID));
}
}
@@ -338,8 +343,10 @@
try {
mJingle = mXmppFacade.getJingleService();
mJingle.addJingleListener(mJingleListener);
+ if (mIsCaller) {
mContact = new Contact(getIntent().getData());
mJingle.call(mContact.getJIDWithRes());
+ }
} catch (RemoteException e) {
e.printStackTrace();
}
--- a/src/org/sipdroid/media/RtpStreamReceiver.java Tue Jun 05 16:44:38 2012 +0200
+++ b/src/org/sipdroid/media/RtpStreamReceiver.java Wed Jun 06 23:24:12 2012 +0200
@@ -24,24 +24,22 @@
import java.io.IOException;
import java.net.SocketException;
-import com.beem.project.beem.jingle.JingleService;
-import com.beem.project.beem.ui.Call;
import org.sipdroid.net.RtpPacket;
import org.sipdroid.net.RtpSocket;
import org.sipdroid.net.SipdroidSocket;
import org.sipdroid.pjlib.Codec;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences.Editor;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.media.ToneGenerator;
-import android.os.PowerManager;
import android.os.RemoteException;
import android.preference.PreferenceManager;
-import android.provider.Settings;
+
+import com.beem.project.beem.jingle.JingleService;
+import com.beem.project.beem.ui.Call;
/**
* RtpStreamReceiver is a generic stream receiver. It receives packets from RTP
@@ -67,7 +65,6 @@
/** Whether it is running */
private boolean running;
private AudioManager am;
- private ContentResolver cr;
public static int speakermode;
private JingleService mJingle;
@@ -194,12 +191,9 @@
int oldvibrate2 = am.getVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION);
if (!PreferenceManager.getDefaultSharedPreferences(Call.mContext).contains("oldvibrate2"))
oldvibrate2 = AudioManager.VIBRATE_SETTING_ON;
- int oldpolicy = android.provider.Settings.System.getInt(cr, android.provider.Settings.System.WIFI_SLEEP_POLICY,
- Settings.System.WIFI_SLEEP_POLICY_DEFAULT);
Editor edit = PreferenceManager.getDefaultSharedPreferences(Call.mContext).edit();
edit.putInt("oldvibrate", oldvibrate);
edit.putInt("oldvibrate2", oldvibrate2);
- edit.putInt("oldpolicy", oldpolicy);
edit.putInt("oldring",am.getStreamVolume(AudioManager.STREAM_RING));
edit.putBoolean("oldvalid", true);
edit.commit();
@@ -223,21 +217,14 @@
public static void restoreSettings() {
if (PreferenceManager.getDefaultSharedPreferences(Call.mContext).getBoolean("oldvalid",true)) {
AudioManager am = (AudioManager) Call.mContext.getSystemService(Context.AUDIO_SERVICE);
- ContentResolver cr = Call.mContext.getContentResolver();
int oldvibrate = PreferenceManager.getDefaultSharedPreferences(Call.mContext).getInt("oldvibrate",0);
int oldvibrate2 = PreferenceManager.getDefaultSharedPreferences(Call.mContext).getInt("oldvibrate2",0);
- int oldpolicy = PreferenceManager.getDefaultSharedPreferences(Call.mContext).getInt("oldpolicy",0);
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,oldvibrate);
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,oldvibrate2);
- Settings.System.putInt(cr, Settings.System.WIFI_SLEEP_POLICY, oldpolicy);
setStreamVolume(AudioManager.STREAM_RING, PreferenceManager.getDefaultSharedPreferences(Call.mContext).getInt("oldring",0), 0);
Editor edit = PreferenceManager.getDefaultSharedPreferences(Call.mContext).edit();
edit.putBoolean("oldvalid", false);
edit.commit();
- PowerManager pm = (PowerManager) Call.mContext.getSystemService(Context.POWER_SERVICE);
- PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
- PowerManager.ACQUIRE_CAUSES_WAKEUP, "Sipdroid.RtpStreamReceiver");
- wl.acquire(1000);
}
restoreMode();
}
@@ -288,9 +275,8 @@
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO);
am = (AudioManager) Call.mContext.getSystemService(Context.AUDIO_SERVICE);
- cr = Call.mContext.getContentResolver();
+ Call.mContext.getContentResolver();
saveSettings();
- Settings.System.putInt(cr, Settings.System.WIFI_SLEEP_POLICY,Settings.System.WIFI_SLEEP_POLICY_NEVER);
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF);
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF);
int oldvol = am.getStreamVolume(AudioManager.STREAM_MUSIC);
--- a/src/org/sipdroid/media/RtpStreamSender.java Tue Jun 05 16:44:38 2012 +0200
+++ b/src/org/sipdroid/media/RtpStreamSender.java Wed Jun 06 23:24:12 2012 +0200
@@ -26,16 +26,10 @@
import java.net.InetAddress;
import java.util.Random;
-
-import org.sipdroid.pjlib.Codec;
-
-import org.sipdroid.media.RtpStreamReceiver;
import org.sipdroid.net.RtpPacket;
import org.sipdroid.net.RtpSocket;
import org.sipdroid.net.SipdroidSocket;
-
-import com.beem.project.beem.ui.Call;
-import com.beem.project.beem.utils.BeemConnectivity;
+import org.sipdroid.pjlib.Codec;
import android.content.Context;
import android.media.AudioFormat;
@@ -43,9 +37,10 @@
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.preference.PreferenceManager;
-import android.provider.Settings;
import android.telephony.TelephonyManager;
+import com.beem.project.beem.ui.Call;
+
/**
* RtpStreamSender is a generic stream sender. It takes an InputStream and sends
* it through RTP.
--- a/src/org/sipdroid/net/SipdroidSocket.java Tue Jun 05 16:44:38 2012 +0200
+++ b/src/org/sipdroid/net/SipdroidSocket.java Wed Jun 06 23:24:12 2012 +0200
@@ -78,7 +78,7 @@
if (!loaded) super.connect(addr,port);
}
- static {
+ /*static {
try {
System.loadLibrary("OSNetworkSystem");
OSNetworkSystem.getOSNetworkSystem().oneTimeInitialization(true);
@@ -86,5 +86,5 @@
} catch (Throwable e) {
e.printStackTrace();
}
- }
+ }*/
}