diff --git a/ring-android/app/src/main/java/cx/ring/model/SipCall.java b/ring-android/app/src/main/java/cx/ring/model/SipCall.java index f64a505458ff9cf8c61fce10ea730d12097ac04f..5524f202767230b96d354bd80fae89f698aed7f9 100644 --- a/ring-android/app/src/main/java/cx/ring/model/SipCall.java +++ b/ring-android/app/src/main/java/cx/ring/model/SipCall.java @@ -118,19 +118,20 @@ public class SipCall implements Parcelable { public interface direction { - public static final int CALL_TYPE_INCOMING = 1; - public static final int CALL_TYPE_OUTGOING = 2; + int CALL_TYPE_INCOMING = 1; + int CALL_TYPE_OUTGOING = 2; } public interface state { - public static final int CALL_STATE_NONE = 0; - public static final int CALL_STATE_RINGING = 2; - public static final int CALL_STATE_CURRENT = 3; - public static final int CALL_STATE_HUNGUP = 4; - public static final int CALL_STATE_BUSY = 5; - public static final int CALL_STATE_FAILURE = 6; - public static final int CALL_STATE_HOLD = 7; - public static final int CALL_STATE_UNHOLD = 8; + int CALL_STATE_NONE = 0; + int CALL_STATE_CONNECTING = 1; + int CALL_STATE_RINGING = 2; + int CALL_STATE_CURRENT = 3; + int CALL_STATE_HUNGUP = 4; + int CALL_STATE_BUSY = 5; + int CALL_STATE_FAILURE = 6; + int CALL_STATE_HOLD = 7; + int CALL_STATE_UNHOLD = 8; } @Override diff --git a/ring-android/app/src/main/java/cx/ring/service/CallManagerCallBack.java b/ring-android/app/src/main/java/cx/ring/service/CallManagerCallBack.java index 4f7c5a770a44f3cb52de0e1976cb5b0f742e04f2..66bc4aeacf3ae0043ea664279562b2f7fc6301dc 100644 --- a/ring-android/app/src/main/java/cx/ring/service/CallManagerCallBack.java +++ b/ring-android/app/src/main/java/cx/ring/service/CallManagerCallBack.java @@ -175,8 +175,13 @@ public class CallManagerCallBack extends Callback { } @Override - public void incomingMessage(String ID, String from, String msg) { - Log.w(TAG, "on_incoming_message:" + msg); + public void incomingMessage(String ID, String from, StringMap messages) { + Log.w(TAG, "on_incoming_message:" + messages); + + String msg = messages.get("text/plain"); + if (msg == null) + return; + Intent intent = new Intent(INCOMING_TEXT); intent.putExtra("CallID", ID); intent.putExtra("From", from); diff --git a/ring-android/app/src/main/java/cx/ring/service/ISipService.aidl b/ring-android/app/src/main/java/cx/ring/service/ISipService.aidl index 3342b7ccfedaf250cbec74822603a6141a3cbf2c..4708062d2546e61c2da59a5a9b86a1ae4ee57c9d 100644 --- a/ring-android/app/src/main/java/cx/ring/service/ISipService.aidl +++ b/ring-android/app/src/main/java/cx/ring/service/ISipService.aidl @@ -58,7 +58,9 @@ interface ISipService { /* IM */ void sendTextMessage(in String callID, in SipMessage message); - + void sendAccountTextMessage(in String accountid, in String to, in String msg); + + void transfer(in String callID, in String to); void attendedTransfer(in String transferID, in String targetID); diff --git a/ring-android/app/src/main/java/cx/ring/service/SipService.java b/ring-android/app/src/main/java/cx/ring/service/SipService.java index ea66a73e145ca0d7e6457a58d53b60bff583a1e0..8f9caae9db56547f7a76507b68e89520499fd9cc 100644 --- a/ring-android/app/src/main/java/cx/ring/service/SipService.java +++ b/ring-android/app/src/main/java/cx/ring/service/SipService.java @@ -930,7 +930,9 @@ public class SipService extends Service { @Override protected void doRun() throws SameThreadException, RemoteException { Log.i(TAG, "SipService.sendTextMessage() thread running..."); - Ringservice.sendTextMessage(callID, message.comment); + StringMap messages = new StringMap(); + messages.set("text/plain", message.comment); + Ringservice.sendTextMessage(callID, messages, "", false); if (getConferences().get(callID) != null) getConferences().get(callID).addSipMessage(message); } @@ -938,6 +940,17 @@ public class SipService extends Service { } + @Override + public void sendAccountTextMessage(final String accountid, final String to, final String msg) { + getExecutor().execute(new SipRunnable() { + @Override + protected void doRun() throws SameThreadException, RemoteException { + Log.i(TAG, "SipService.sendAccountTextMessage() thread running... " + accountid + " " + to + " " + msg); + Ringservice.sendAccountTextMessage(accountid, to, msg); + } + }); + } + @Override public List<Codec> getAudioCodecList(final String accountID) throws RemoteException { return getExecutor().executeAndReturn(new SipRunnableWithReturn<ArrayList<Codec>>() { @@ -1064,7 +1077,7 @@ public class SipService extends Service { @Override protected Map<String, String> doRun() throws SameThreadException { Log.i(TAG, "SipService.validateCertificatePath() thread running..."); - return Ringservice.validateCertificatePath(accountID, certificatePath, privateKeyPath, "").toNative(); + return Ringservice.validateCertificatePath(accountID, certificatePath, privateKeyPath, "", "").toNative(); } }); } diff --git a/ring-android/app/src/main/jni/callmanager.i b/ring-android/app/src/main/jni/callmanager.i index 9d29d4cc02a683242b737110097149630cc9abcc..8efe4e047af49b6cd3d3e970aa671e661d01ae6e 100644 --- a/ring-android/app/src/main/jni/callmanager.i +++ b/ring-android/app/src/main/jni/callmanager.i @@ -41,7 +41,7 @@ public: virtual void transferSucceeded(void){} virtual void recordPlaybackStopped(const std::string& path){} virtual void voiceMailNotify(const std::string& call_id, int nd_msg){} - virtual void incomingMessage(const std::string& id, const std::string& from, const std::string& msg){} + virtual void incomingMessage(const std::string& id, const std::string& from, const std::map<std::string, std::string>& messages){} virtual void incomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){} virtual void recordPlaybackFilepath(const std::string& id, const std::string& filename){} virtual void conferenceCreated(const std::string& conf_id){} @@ -129,8 +129,7 @@ void requestGoClear(const std::string& callID); void acceptEnrollment(const std::string& callID, bool accepted); /* Instant messaging */ -void sendTextMessage(const std::string& callID, const std::string& message); -void sendTextMessage(const std::string& callID, const std::string& message, const std::string& from); +void sendTextMessage(const std::string& callID, const std::map<std::string, std::string>& messages, const std::string& from, const bool& isMixed); } @@ -142,7 +141,7 @@ public: virtual void transferSucceeded(void){} virtual void recordPlaybackStopped(const std::string& path){} virtual void voiceMailNotify(const std::string& call_id, int nd_msg){} - virtual void incomingMessage(const std::string& id, const std::string& from, const std::string& msg){} + virtual void incomingMessage(const std::string& id, const std::string& from, const std::map<std::string, std::string>& messages){} virtual void incomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){} virtual void recordPlaybackFilepath(const std::string& id, const std::string& filename){} virtual void conferenceCreated(const std::string& conf_id){} diff --git a/ring-android/app/src/main/jni/configurationmanager.i b/ring-android/app/src/main/jni/configurationmanager.i index fe28f4583e50c1053acdb8c393408d7200dd7bb3..2450194c3c99952947f22d84ead1f51300399ee5 100644 --- a/ring-android/app/src/main/jni/configurationmanager.i +++ b/ring-android/app/src/main/jni/configurationmanager.i @@ -144,12 +144,13 @@ double getVolume(const std::string& device); std::map<std::string, std::string> validateCertificatePath(const std::string& accountId, const std::string& certificate, const std::string& privateKey, + const std::string& privateKeyPassword, const std::string& caList); std::map<std::string, std::string> validateCertificate(const std::string& accountId, const std::string& certificate); std::map<std::string, std::string> getCertificateDetails(const std::string& certificate); -std::map<std::string, std::string> getCertificateDetailsPath(const std::string& certificate); +std::map<std::string, std::string> getCertificateDetailsPath(const std::string& certificate, const std::string& privateKey, const std::string& privateKeyPass); std::vector<std::string> getPinnedCertificates();