android: bump dring API
Update SWIG interface and retated code to build with lasted daemon APIs
Refs #74605
Change-Id: Id6e0a2ddecbb7329eacce0788329985e1287cf1e
diff --git a/ring-android/jni/callmanager.i b/ring-android/jni/callmanager.i
index 0ea1ab5..9d29d4c 100644
--- a/ring-android/jni/callmanager.i
+++ b/ring-android/jni/callmanager.i
@@ -31,33 +31,38 @@
%header %{
#include "dring/dring.h"
+#include "dring/callmanager_interface.h"
class Callback {
public:
virtual ~Callback() {}
- virtual void callOnStateChange(const std::string& call_id, const std::string& state){}
- virtual void callOnTransferFail(void){}
- virtual void callOnTransferSuccess(void){}
- virtual void callOnRecordPlaybackStopped(const std::string& path){}
- virtual void callOnVoiceMailNotify(const std::string& call_id, int nd_msg){}
- virtual void callOnIncomingMessage(const std::string& id, const std::string& from, const std::string& msg){}
- virtual void callOnIncomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){}
- virtual void callOnRecordPlaybackFilepath(const std::string& id, const std::string& filename){}
- virtual void callOnConferenceCreated(const std::string& conf_id){}
- virtual void callOnConferenceChanged(const std::string& conf_id, const std::string& state){}
- virtual void callOnUpdatePlaybackScale(const std::string& filepath, int position, int scale){}
- virtual void callOnConferenceRemove(const std::string& conf_id){}
- virtual void callOnNewCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
- virtual void callOnSipCallStateChange(const std::string& call_id, const std::string& state, int code){}
- virtual void callOnRecordStateChange(const std::string& call_id, int state){}
- virtual void callOnSecureSdesOn(const std::string& call_id){}
- virtual void callOnSecureSdesOff(const std::string& call_id){}
- virtual void callOnSecureZrtpOn(const std::string& call_id, const std::string& cipher){}
- virtual void callOnSecureZrtpOff(const std::string& call_id){}
- virtual void callOnShowSas(const std::string& call_id, const std::string& sas, int verified){}
- virtual void callOnZrtpNotSuppOther(const std::string& call_id){}
- virtual void callOnZrtpNegotiationFail(const std::string& call_id, const std::string& reason, const std::string& severity){}
- virtual void callOnRtcpReceiveReport(const std::string& call_id, const std::map<std::string, int>& stats){}
+ virtual void callStateChanged(const std::string& call_id, const std::string& state, int detail_code){}
+ virtual void transferFailed(void){}
+ 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 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){}
+ virtual void conferenceChanged(const std::string& conf_id, const std::string& state){}
+ virtual void conferenceRemoved(const std::string& conf_id){}
+ virtual void newCallCreated(const std::string& call_id, const std::string&, const std::string&){}
+ virtual void updatePlaybackScale(const std::string& filepath, int position, int scale){}
+ virtual void conferenceRemove(const std::string& conf_id){}
+ virtual void newCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
+ virtual void sipCallStateChange(const std::string& call_id, const std::string& state, int code){}
+ virtual void recordingStateChanged(const std::string& call_id, int code){}
+ virtual void recordStateChange(const std::string& call_id, int state){}
+ virtual void secureSdesOn(const std::string& call_id){}
+ virtual void secureSdesOff(const std::string& call_id){}
+ virtual void secureZrtpOn(const std::string& call_id, const std::string& cipher){}
+ virtual void secureZrtpOff(const std::string& call_id){}
+ virtual void showSAS(const std::string& call_id, const std::string& sas, int verified){}
+ virtual void zrtpNotSuppOther(const std::string& call_id){}
+ virtual void zrtpNegotiationFailed(const std::string& call_id, const std::string& reason, const std::string& severity){}
+ virtual void onRtcpReportReceived(const std::string& call_id, const std::map<std::string, int>& stats){}
+ virtual void peerHold(const std::string& call_id, bool holding){}
};
@@ -65,72 +70,98 @@
%feature("director") Callback;
-bool sflph_call_place(const std::string& account_id, const std::string& call_id, const std::string& to);
-bool sflph_call_refuse(const std::string& call_id);
-bool sflph_call_accept(const std::string& call_id);
-bool sflph_call_hang_up(const std::string& call_id);
-bool sflph_call_hold(const std::string& call_id);
-bool sflph_call_unhold(const std::string& call_id);
-bool sflph_call_transfer(const std::string& call_id, const std::string& to);
-bool sflph_call_attended_transfer(const std::string& transfer_id, const std::string& target_id);
-std::map<std::string, std::string> sflph_call_get_call_details(const std::string& call_id);
-std::vector<std::string> sflph_call_get_call_list(void);
-void sflph_call_remove_conference(const std::string& conf_id);
-bool sflph_call_join_participant(const std::string& sel_call_id, const std::string& drag_call_id);
-void sflph_call_create_conf_from_participant_list(const std::vector<std::string>& participants);
-bool sflph_call_is_conference_participant(const std::string& call_id);
-bool sflph_call_add_participant(const std::string& call_id, const std::string& conf_id);
-bool sflph_call_add_main_participant(const std::string& conf_id);
-bool sflph_call_detach_participant(const std::string& call_id);
-bool sflph_call_join_conference(const std::string& sel_conf_id, const std::string& drag_conf_id);
-bool sflph_call_hang_up_conference(const std::string& conf_id);
-bool sflph_call_hold_conference(const std::string& conf_id);
-bool sflph_call_unhold_conference(const std::string& conf_id);
-std::vector<std::string> sflph_call_get_conference_list(void);
-std::vector<std::string> sflph_call_get_participant_list(const std::string& conf_id);
-std::vector<std::string> sflph_call_get_display_names(const std::string& conf_id);
-std::string sflph_call_get_conference_id(const std::string& call_id);
-std::map<std::string, std::string> sflph_call_get_conference_details(const std::string& call_id);
-bool sflph_call_play_recorded_file(const std::string& path);
-void sflph_call_stop_recorded_file(const std::string& path);
-bool sflph_call_toggle_recording(const std::string& call_id);
-void sflph_call_set_recording(const std::string& call_id);
-void sflph_call_record_playback_seek(double pos);
-bool sflph_call_is_recording(const std::string& call_id);
-std::string sflph_call_get_current_audio_codec_name(const std::string& call_id);
-void sflph_call_play_dtmf(const std::string& key);
-void sflph_call_start_tone(int start, int type);
-void sflph_call_set_sas_verified(const std::string& call_id);
-void sflph_call_reset_sas_verified(const std::string& call_id);
-void sflph_call_set_confirm_go_clear(const std::string& call_id);
-void sflph_call_request_go_clear(const std::string& call_id);
-void sflph_call_accept_enrollment(const std::string& call_id, bool accepted);
-void sflph_call_send_text_message(const std::string& call_id, const std::string& message);
+namespace DRing {
+
+/* Call related methods */
+std::string placeCall(const std::string& accountID, const std::string& to);
+
+bool refuse(const std::string& callID);
+bool accept(const std::string& callID);
+bool hangUp(const std::string& callID);
+bool hold(const std::string& callID);
+bool unhold(const std::string& callID);
+bool muteLocalMedia(const std::string& callid, const std::string& mediaType, bool mute);
+bool transfer(const std::string& callID, const std::string& to);
+bool attendedTransfer(const std::string& transferID, const std::string& targetID);
+std::map<std::string, std::string> getCallDetails(const std::string& callID);
+std::vector<std::string> getCallList();
+
+/* Conference related methods */
+void removeConference(const std::string& conference_id);
+bool joinParticipant(const std::string& sel_callID, const std::string& drag_callID);
+void createConfFromParticipantList(const std::vector<std::string>& participants);
+bool isConferenceParticipant(const std::string& call_id);
+bool addParticipant(const std::string& callID, const std::string& confID);
+bool addMainParticipant(const std::string& confID);
+bool detachParticipant(const std::string& callID);
+bool joinConference(const std::string& sel_confID, const std::string& drag_confID);
+bool hangUpConference(const std::string& confID);
+bool holdConference(const std::string& confID);
+bool unholdConference(const std::string& confID);
+std::vector<std::string> getConferenceList();
+std::vector<std::string> getParticipantList(const std::string& confID);
+std::vector<std::string> getDisplayNames(const std::string& confID);
+std::string getConferenceId(const std::string& callID);
+std::map<std::string, std::string> getConferenceDetails(const std::string& callID);
+
+/* File Playback methods */
+bool startRecordedFilePlayback(const std::string& filepath);
+void stopRecordedFilePlayback(const std::string& filepath);
+
+/* General audio methods */
+bool toggleRecording(const std::string& callID);
+/* DEPRECATED */
+void setRecording(const std::string& callID);
+
+void recordPlaybackSeek(double value);
+bool getIsRecording(const std::string& callID);
+std::string getCurrentAudioCodecName(const std::string& callID);
+void playDTMF(const std::string& key);
+void startTone(int32_t start, int32_t type);
+
+bool switchInput(const std::string& callID, const std::string& resource);
+
+/* Security related methods */
+void setSASVerified(const std::string& callID);
+void resetSASVerified(const std::string& callID);
+void setConfirmGoClear(const std::string& callID);
+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);
+
+}
class Callback {
public:
- virtual ~Callback();
- virtual void callOnStateChange(const std::string& call_id, const std::string& state);
- virtual void callOnTransferFail(void);
- virtual void callOnTransferSuccess(void);
- virtual void callOnRecordPlaybackStopped(const std::string& path);
- virtual void callOnVoiceMailNotify(const std::string& call_id, int nd_msg);
- virtual void callOnIncomingMessage(const std::string& id, const std::string& from, const std::string& msg);
- virtual void callOnIncomingCall(const std::string& account_id, const std::string& call_id, const std::string& from);
- virtual void callOnRecordPlaybackFilepath(const std::string& id, const std::string& filename);
- virtual void callOnConferenceCreated(const std::string& conf_id);
- virtual void callOnConferenceChanged(const std::string& conf_id, const std::string& state);
- virtual void callOnUpdatePlaybackScale(const std::string& filepath, int position, int scale);
- virtual void callOnConferenceRemove(const std::string& conf_id);
- virtual void callOnNewCall(const std::string& account_id, const std::string& call_id, const std::string& to);
- virtual void callOnSipCallStateChange(const std::string& call_id, const std::string& state, int code);
- virtual void callOnRecordStateChange(const std::string& call_id, int state);
- virtual void callOnSecureSdesOn(const std::string& call_id);
- virtual void callOnSecureSdesOff(const std::string& call_id);
- virtual void callOnSecureZrtpOn(const std::string& call_id, const std::string& cipher);
- virtual void callOnSecureZrtpOff(const std::string& call_id);
- virtual void callOnShowSas(const std::string& call_id, const std::string& sas, int verified);
- virtual void callOnZrtpNotSuppOther(const std::string& call_id);
- virtual void callOnZrtpNegotiationFail(const std::string& call_id, const std::string& reason, const std::string& severity);
- virtual void callOnRtcpReceiveReport(const std::string& call_id, const std::map<std::string, int>& stats);
+ virtual ~Callback() {}
+ virtual void callStateChanged(const std::string& call_id, const std::string& state, int detail_code){}
+ virtual void transferFailed(void){}
+ 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 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){}
+ virtual void conferenceChanged(const std::string& conf_id, const std::string& state){}
+ virtual void conferenceRemoved(const std::string& conf_id){}
+ virtual void newCallCreated(const std::string& call_id, const std::string&, const std::string&){}
+ virtual void updatePlaybackScale(const std::string& filepath, int position, int scale){}
+ virtual void conferenceRemove(const std::string& conf_id){}
+ virtual void newCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
+ virtual void sipCallStateChange(const std::string& call_id, const std::string& state, int code){}
+ virtual void recordingStateChanged(const std::string& call_id, int code){}
+ virtual void recordStateChange(const std::string& call_id, int state){}
+ virtual void secureSdesOn(const std::string& call_id){}
+ virtual void secureSdesOff(const std::string& call_id){}
+ virtual void secureZrtpOn(const std::string& call_id, const std::string& cipher){}
+ virtual void secureZrtpOff(const std::string& call_id){}
+ virtual void showSAS(const std::string& call_id, const std::string& sas, int verified){}
+ virtual void zrtpNotSuppOther(const std::string& call_id){}
+ virtual void zrtpNegotiationFailed(const std::string& call_id, const std::string& reason, const std::string& severity){}
+ virtual void onRtcpReportReceived(const std::string& call_id, const std::map<std::string, int>& stats){}
+ virtual void peerHold(const std::string& call_id, bool holding){}
};
diff --git a/ring-android/jni/configurationmanager.i b/ring-android/jni/configurationmanager.i
index 2be3627..6374257 100644
--- a/ring-android/jni/configurationmanager.i
+++ b/ring-android/jni/configurationmanager.i
@@ -29,102 +29,162 @@
%header %{
#include "dring/dring.h"
+#include "dring/configurationmanager_interface.h"
class ConfigurationCallback {
public:
virtual ~ConfigurationCallback(){}
- virtual void configOnVolumeChange(const std::string& device, int value){}
- virtual void configOnAccountsChange(void){}
- virtual void configOnHistoryChange(void){}
- virtual void configOnStunStatusFail(const std::string& account_id){}
- virtual void configOnRegistrationStateChange(const std::string& account_id, int state){}
- virtual void configOnSipRegistrationStateChange(const std::string& account_id, const std::string& state, int code){}
- virtual void configOnVolatileAccountsChange(const std::string& account_id, const std::map<std::string, std::string>& details){}
- virtual void configOnError(int alert){}
+ virtual void volumeChanged(const std::string& device, int value){}
+ virtual void accountsChanged(void){}
+ virtual void historyChanged(void){}
+ virtual void stunStatusFailure(const std::string& account_id){}
+ virtual void registrationStateChanged(const std::string& account_id, const std::string& state, int code, const std::string& detail_str){}
+ virtual void volatileAccountDetailsChanged(const std::string& account_id, const std::map<std::string, std::string>& details){}
+ virtual void incomingAccountMessage(const std::string& /*account_id*/, const std::string& /*from*/, const std::string& /*message*/){}
+ virtual void incomingTrustRequest(const std::string& /*account_id*/, const std::string& /*from*/, time_t received){}
+
+ virtual void certificatePinned(const std::string& /*certId*/){}
+ virtual void certificatePathPinned(const std::string& /*path*/, const std::vector<std::string>& /*certId*/){}
+ virtual void certificateExpired(const std::string& /*certId*/){}
+ virtual void certificateStateChanged(const std::string& /*account_id*/, const std::string& /*certId*/, const std::string& /*state*/){}
+
+ virtual void errorAlert(int alert){}
virtual std::vector<int32_t> configGetHardwareAudioFormat(void){}
};
%}
%feature("director") ConfigurationCallback;
-std::map<std::string, std::string> sflph_config_get_account_details(const std::string& account_id);
-void sflph_config_set_account_details(const std::string& account_id, const std::map<std::string, std::string>& details);
-std::map<std::string, std::string> sflph_config_get_account_template(void);
-std::string sflph_config_add_account(const std::map<std::string, std::string>& details);
-void sflph_config_remove_account(const std::string& account_id);
-std::vector<std::string> sflph_config_get_account_list(void);
-void sflph_config_send_register(const std::string& account_id, bool enable);
-void sflph_config_register_all_accounts(void);
-std::map<std::string, std::string> sflph_config_get_tls_default_settings(void);
-std::vector<int> sflph_config_get_audio_codec_list(void);
-std::vector<std::string> sflph_config_get_supported_tls_method(void);
-std::vector<std::string> sflph_config_get_audio_codec_details(int payload);
-std::vector<int> sflph_config_get_active_audio_codec_list(const std::string& account_id);
-void sflph_config_set_active_audio_codec_list(const std::vector<std::string>& list, const std::string& account_id);
-std::vector<std::string> sflph_config_get_audio_plugin_list(void);
-void sflph_config_set_audio_plugin(const std::string& audio_plugin);
-std::vector<std::string> sflph_config_get_audio_output_device_list();
-void sflph_config_set_audio_output_device(int index);
-void sflph_config_set_audio_input_device(int index);
-void sflph_config_set_audio_ringtone_device(int index);
-std::vector<std::string> sflph_config_get_audio_input_device_list(void);
-std::vector<std::string> sflph_config_get_current_audio_devices_index(void);
-int sflph_config_get_audio_input_device_index(const std::string& name);
-int sflph_config_get_audio_output_device_index(const std::string& name);
-std::string sflph_config_get_current_audio_output_plugin(void);
-bool sflph_config_get_noise_suppress_state(void);
-void sflph_config_set_noise_suppress_state(bool state);
-bool sflph_config_is_agc_enabled(void);
-void sflph_config_enable_agc(bool enabled);
-void sflph_config_mute_dtmf(bool mute);
-bool sflph_config_is_dtmf_muted(void);
-bool sflph_config_is_capture_muted(void);
-void sflph_config_mute_capture(bool mute);
-bool sflph_config_is_playback_muted(void);
-void sflph_config_mute_playback(int mute);
-std::map<std::string, std::string> sflph_config_get_ringtone_list(void);
-std::string sflph_config_get_audio_manager(void);
-bool sflph_config_set_audio_manager(const std::string& api);
-std::vector<std::string> sflph_config_get_supported_audio_managers(void);
-int sflph_config_is_iax2_enabled(void);
-std::string sflph_config_get_record_path(void);
-void sflph_config_set_record_path(const std::string& path);
-bool sflph_config_is_always_recording(void);
-void sflph_config_set_always_recording(bool rec);
-void sflph_config_set_history_limit(int days);
-int sflph_config_get_history_limit(void);
-void sflph_config_clear_history(void);
-void sflph_config_set_accounts_order(const std::string& order);
-std::map<std::string, std::string> sflph_config_get_hook_settings(void);
-void sflph_config_set_hook_settings(const std::map<std::string, std::string>& settings);
-std::vector<std::map<std::string, std::string> > sflph_config_get_history(void);
-std::map<std::string, std::string> sflph_config_get_tls_settings();
-void sflph_config_set_tls_settings(const std::map< std::string, std::string >& settings);
-std::map<std::string, std::string> sflph_config_get_ip2ip_details(void);
-std::vector<std::map<std::string, std::string> > sflph_config_get_credentials(const std::string& account_id);
-void sflph_config_set_credentials(const std::string& account_id, const std::vector<std::map<std::string, std::string> >& details);
-std::string sflph_config_get_addr_from_interface_name(const std::string& interface);
-std::vector<std::string> sflph_config_get_all_ip_interface(void);
-std::vector<std::string> sflph_config_get_all_ip_interface_by_name(void);
-std::map<std::string, std::string> sflph_config_get_shortcuts();
-void sflph_config_set_shortcuts(const std::map<std::string, std::string>& shortcuts);
-void sflph_config_set_volume(const std::string& device, double value);
-double sflph_config_get_volume(const std::string& device);
-bool sflph_config_check_for_private_key(const std::string& pem_path);
-bool sflph_config_check_certificate_validity(const std::string& ca_path, const std::string& pem_path);
-bool sflph_config_check_hostname_certificate(const std::string& host, const std::string& port);
+namespace DRing {
+std::map<std::string, std::string> getAccountDetails(const std::string& accountID);
+std::map<std::string, std::string> getVolatileAccountDetails(const std::string& accountID);
+void setAccountDetails(const std::string& accountID, const std::map<std::string, std::string>& details);
+std::map<std::string, std::string> getAccountTemplate(const std::string& accountType);
+std::string addAccount(const std::map<std::string, std::string>& details);
+void removeAccount(const std::string& accountID);
+std::vector<std::string> getAccountList();
+void sendRegister(const std::string& accountID, bool enable);
+void registerAllAccounts(void);
+void sendAccountTextMessage(const std::string& accountID, const std::string& to, const std::string& message);
+
+std::map<std::string, std::string> getTlsDefaultSettings();
+
+std::vector<unsigned> getCodecList();
+std::vector<std::string> getSupportedTlsMethod();
+std::vector<std::string> getSupportedCiphers(const std::string& accountID);
+std::map<std::string, std::string> getCodecDetails(const std::string& accountID, const unsigned& codecId);
+bool setCodecDetails(const std::string& accountID, const unsigned& codecId, const std::map<std::string, std::string>& details);
+std::vector<unsigned> getActiveCodecList(const std::string& accountID);
+
+void setActiveCodecList(const std::string& accountID, const std::vector<unsigned>& list);
+
+std::vector<std::string> getAudioPluginList();
+void setAudioPlugin(const std::string& audioPlugin);
+std::vector<std::string> getAudioOutputDeviceList();
+void setAudioOutputDevice(int32_t index);
+void setAudioInputDevice(int32_t index);
+void setAudioRingtoneDevice(int32_t index);
+std::vector<std::string> getAudioInputDeviceList();
+std::vector<std::string> getCurrentAudioDevicesIndex();
+int32_t getAudioInputDeviceIndex(const std::string& name);
+int32_t getAudioOutputDeviceIndex(const std::string& name);
+std::string getCurrentAudioOutputPlugin();
+bool getNoiseSuppressState();
+void setNoiseSuppressState(bool state);
+
+bool isAgcEnabled();
+void setAgcState(bool enabled);
+
+void muteDtmf(bool mute);
+bool isDtmfMuted();
+
+bool isCaptureMuted();
+void muteCapture(bool mute);
+bool isPlaybackMuted();
+void mutePlayback(bool mute);
+
+std::string getAudioManager();
+bool setAudioManager(const std::string& api);
+
+int32_t isIax2Enabled();
+std::string getRecordPath();
+void setRecordPath(const std::string& recPath);
+bool getIsAlwaysRecording();
+void setIsAlwaysRecording(bool rec);
+
+void setHistoryLimit(int32_t days);
+int32_t getHistoryLimit();
+
+void setAccountsOrder(const std::string& order);
+
+std::map<std::string, std::string> getHookSettings();
+void setHookSettings(const std::map<std::string, std::string>& settings);
+
+std::map<std::string, std::string> getIp2IpDetails();
+
+std::vector<std::map<std::string, std::string> > getCredentials(const std::string& accountID);
+void setCredentials(const std::string& accountID, const std::vector<std::map<std::string, std::string> >& details);
+
+std::string getAddrFromInterfaceName(const std::string& interface);
+
+std::vector<std::string> getAllIpInterface();
+std::vector<std::string> getAllIpInterfaceByName();
+
+std::map<std::string, std::string> getShortcuts();
+void setShortcuts(const std::map<std::string, std::string> &shortcutsMap);
+
+void setVolume(const std::string& device, double value);
+double getVolume(const std::string& device);
+
+/*
+ * Security
+ */
+std::map<std::string, std::string> validateCertificate(const std::string& accountId,
+ const std::string& certificate, const std::string& privateKey);
+std::map<std::string, std::string> validateCertificateRaw(const std::string& accountId,
+ const std::vector<uint8_t>& certificate);
+std::map<std::string, std::string> getCertificateDetails(const std::string& certificate);
+std::map<std::string, std::string> getCertificateDetailsRaw(const std::vector<uint8_t>& certificate);
+
+std::vector<std::string> getPinnedCertificates();
+
+std::string pinCertificate(const std::vector<uint8_t>& certificate, bool local);
+bool unpinCertificate(const std::string& certId);
+
+void pinCertificatePath(const std::string& path);
+unsigned unpinCertificatePath(const std::string& path);
+
+bool pinRemoteCertificate(const std::string& accountId, const std::string& certId);
+bool setCertificateStatus(const std::string& account, const std::string& certId, const std::string& status);
+std::vector<std::string> getCertificatesByStatus(const std::string& account, const std::string& status);
+
+/* contact requests */
+std::map<std::string, std::string> getTrustRequests(const std::string& accountId);
+bool acceptTrustRequest(const std::string& accountId, const std::string& from);
+bool discardTrustRequest(const std::string& accountId, const std::string& from);
+
+void sendTrustRequest(const std::string& accountId, const std::string& to);
+
+}
class ConfigurationCallback {
public:
- virtual ~ConfigurationCallback();
- virtual void configOnVolumeChange(const std::string& device, int value);
- virtual void configOnAccountsChange(void);
- virtual void configOnHistoryChange(void);
- virtual void configOnStunStatusFail(const std::string& account_id);
- virtual void configOnRegistrationStateChange(const std::string& account_id, int state);
- virtual void configOnSipRegistrationStateChange(const std::string& account_id, const std::string& state, int code);
- virtual void configOnError(int alert);
- virtual std::vector<int32_t> configGetHardwareAudioFormat(void);
-};
+ virtual ~ConfigurationCallback(){}
+ virtual void volumeChanged(const std::string& device, int value){}
+ virtual void accountsChanged(void){}
+ virtual void historyChanged(void){}
+ virtual void stunStatusFailure(const std::string& account_id){}
+ virtual void registrationStateChanged(const std::string& account_id, const std::string& state, int code, const std::string& detail_str){}
+ virtual void volatileAccountDetailsChanged(const std::string& account_id, const std::map<std::string, std::string>& details){}
+ virtual void incomingAccountMessage(const std::string& /*account_id*/, const std::string& /*from*/, const std::string& /*message*/){}
+ virtual void incomingTrustRequest(const std::string& /*account_id*/, const std::string& /*from*/, time_t received){}
+ virtual void certificatePinned(const std::string& /*certId*/){}
+ virtual void certificatePathPinned(const std::string& /*path*/, const std::vector<std::string>& /*certId*/){}
+ virtual void certificateExpired(const std::string& /*certId*/){}
+ virtual void certificateStateChanged(const std::string& /*account_id*/, const std::string& /*certId*/, const std::string& /*state*/){}
+
+ virtual void errorAlert(int alert){}
+ virtual std::vector<int32_t> configGetHardwareAudioFormat(void){}
+};
\ No newline at end of file
diff --git a/ring-android/jni/jni_interface.i b/ring-android/jni/jni_interface.i
index 2933ae4..153200b 100644
--- a/ring-android/jni/jni_interface.i
+++ b/ring-android/jni/jni_interface.i
@@ -39,6 +39,11 @@
%include "std_map.i";
%include "std_vector.i";
%include "stdint.i";
+%header %{
+
+#include <android/log.h>
+
+%}
/* void* shall be handled as byte arrays */
%typemap(jni) void * "void *"
@@ -57,11 +62,63 @@
}
namespace std {
+
+ %typemap(javacode) map<string, string> %{
+ public $javaclassname(java.util.Map<String,String> in) {
+ for (java.util.Map.Entry<String, String> entry : in.entrySet()) {
+ this.set(entry.getKey(), entry.getValue());
+ }
+ }
+ public java.util.Map<String,String> toNative() {
+ java.util.Map<String,String> out = new java.util.HashMap<String,String>();
+ StringVect keys = keys();
+ for (String s : keys)
+ out.put(s, get(s));
+ return out;
+ }
+ %}
+ %extend map<string, string> {
+ std::vector<std::string> keys() const {
+ std::vector<std::string> k;
+ k.reserve($self->size());
+ for (const auto& i : *$self)
+ k.push_back(i.first);
+ return k;
+ }
+ }
%template(StringMap) map<string, string>;
+
+ %typemap(javabase) vector<string> "java.util.AbstractList<String>"
+ %typemap(javainterface) vector<string> "java.util.RandomAccess"
+ %extend vector<string> {
+ value_type set(int i, const value_type& in) throw (std::out_of_range) {
+ const std::string old = $self->at(i);
+ $self->at(i) = in;
+ return old;
+ }
+ bool add(const value_type& in) {
+ $self->push_back(in);
+ return true;
+ }
+ int32_t size() const {
+ return $self->size();
+ }
+ }
%template(StringVect) vector<string>;
+
+ %typemap(javacode) vector< map<string,string> > %{
+ public java.util.ArrayList<java.util.Map<String, String>> toNative() {
+ java.util.ArrayList<java.util.Map<String, String>> out = new java.util.ArrayList<>();
+ for (int i = 0; i < size(); ++i)
+ out.add(get(i).toNative());
+ return out;
+ }
+ %}
%template(VectMap) vector< map<string,string> >;
%template(IntegerMap) map<string,int>;
%template(IntVect) vector<int32_t>;
+ %template(UintVect) vector<uint32_t>;
+ %template(Blob) vector<uint8_t>;
}
/* not parsed by SWIG but needed by generated C files */
@@ -79,62 +136,99 @@
%include "callmanager.i"
%include "configurationmanager.i"
+#include "dring/callmanager_interface.h"
+
%inline %{
/* some functions that need to be declared in *_wrap.cpp
* that are not declared elsewhere in the c++ code
*/
-void init(ConfigurationCallback* conf_cb, Callback* call_cb) {
+void init(ConfigurationCallback* confM, Callback* callM) {
using namespace std::placeholders;
- using std::bind;
+ using std::bind;
+ using DRing::exportable_callback;
+ using DRing::CallSignal;
+ using DRing::ConfigurationSignal;
+
+ using SharedCallback = std::shared_ptr<DRing::CallbackWrapperBase>;
// Call event handlers
- sflph_call_ev_handlers callEvHandlers = {
- bind(&Callback::callOnStateChange, call_cb, _1, _2),
- bind(&Callback::callOnTransferFail, call_cb),
- bind(&Callback::callOnTransferSuccess, call_cb),
- bind(&Callback::callOnRecordPlaybackStopped, call_cb, _1),
- bind(&Callback::callOnVoiceMailNotify, call_cb, _1, _2),
- bind(&Callback::callOnIncomingMessage, call_cb, _1, _2, _3),
- bind(&Callback::callOnIncomingCall, call_cb, _1, _2, _3),
- bind(&Callback::callOnRecordPlaybackFilepath, call_cb, _1, _2),
- bind(&Callback::callOnConferenceCreated, call_cb, _1),
- bind(&Callback::callOnConferenceChanged, call_cb, _1, _2),
- bind(&Callback::callOnUpdatePlaybackScale, call_cb, _1, _2, _3),
- bind(&Callback::callOnConferenceRemove, call_cb, _1),
- bind(&Callback::callOnNewCall, call_cb, _1, _2, _3),
- bind(&Callback::callOnSipCallStateChange, call_cb, _1, _2, _3),
- bind(&Callback::callOnRecordStateChange, call_cb, _1, _2),
- bind(&Callback::callOnSecureSdesOn, call_cb, _1),
- bind(&Callback::callOnSecureSdesOff, call_cb, _1),
- bind(&Callback::callOnSecureZrtpOn, call_cb, _1, _2),
- bind(&Callback::callOnSecureZrtpOff, call_cb, _1),
- bind(&Callback::callOnShowSas, call_cb, _1, _2, _3),
- bind(&Callback::callOnZrtpNotSuppOther, call_cb, _1),
- bind(&Callback::callOnZrtpNegotiationFail, call_cb, _1, _2, _3),
- bind(&Callback::callOnRtcpReceiveReport, call_cb, _1, _2)
+ const std::map<std::string, SharedCallback> callEvHandlers = {
+ exportable_callback<CallSignal::StateChange>(bind(&Callback::callStateChanged, callM, _1, _2, _3)),
+ exportable_callback<CallSignal::TransferFailed>(bind(&Callback::transferFailed, callM)),
+ exportable_callback<CallSignal::TransferSucceeded>(bind(&Callback::transferSucceeded, callM)),
+ exportable_callback<CallSignal::RecordPlaybackStopped>(bind(&Callback::recordPlaybackStopped, callM, _1)),
+ exportable_callback<CallSignal::VoiceMailNotify>(bind(&Callback::voiceMailNotify, callM, _1, _2)),
+ exportable_callback<CallSignal::IncomingMessage>(bind(&Callback::incomingMessage, callM, _1, _2, _3)),
+ exportable_callback<CallSignal::IncomingCall>(bind(&Callback::incomingCall, callM, _1, _2, _3)),
+ exportable_callback<CallSignal::RecordPlaybackFilepath>(bind(&Callback::recordPlaybackFilepath, callM, _1, _2)),
+ exportable_callback<CallSignal::ConferenceCreated>(bind(&Callback::conferenceCreated, callM, _1)),
+ exportable_callback<CallSignal::ConferenceChanged>(bind(&Callback::conferenceChanged, callM, _1, _2)),
+ exportable_callback<CallSignal::UpdatePlaybackScale>(bind(&Callback::updatePlaybackScale, callM, _1, _2, _3)),
+ exportable_callback<CallSignal::ConferenceRemoved>(bind(&Callback::conferenceRemoved, callM, _1)),
+ exportable_callback<CallSignal::NewCallCreated>(bind(&Callback::newCallCreated, callM, _1, _2, _3)),
+ exportable_callback<CallSignal::RecordingStateChanged>(bind(&Callback::recordingStateChanged, callM, _1, _2)),
+ exportable_callback<CallSignal::SecureSdesOn>(bind(&Callback::secureSdesOn, callM, _1)),
+ exportable_callback<CallSignal::SecureSdesOff>(bind(&Callback::secureSdesOff, callM, _1)),
+ exportable_callback<CallSignal::SecureZrtpOn>(bind(&Callback::secureZrtpOn, callM, _1, _2)),
+ exportable_callback<CallSignal::SecureZrtpOff>(bind(&Callback::secureZrtpOff, callM, _1)),
+ exportable_callback<CallSignal::ShowSAS>(bind(&Callback::showSAS, callM, _1, _2, _3)),
+ exportable_callback<CallSignal::ZrtpNotSuppOther>(bind(&Callback::zrtpNotSuppOther, callM, _1)),
+ exportable_callback<CallSignal::ZrtpNegotiationFailed>(bind(&Callback::zrtpNegotiationFailed, callM, _1, _2, _3)),
+ exportable_callback<CallSignal::RtcpReportReceived>(bind(&Callback::onRtcpReportReceived, callM, _1, _2)),
+ exportable_callback<CallSignal::PeerHold>(bind(&Callback::peerHold, callM, _1, _2))
};
// Configuration event handlers
- sflph_config_ev_handlers configEvHandlers = {
- bind(&ConfigurationCallback::configOnVolumeChange, conf_cb, _1, _2),
- bind(&ConfigurationCallback::configOnAccountsChange, conf_cb),
- bind(&ConfigurationCallback::configOnHistoryChange, conf_cb),
- bind(&ConfigurationCallback::configOnStunStatusFail, conf_cb, _1),
- bind(&ConfigurationCallback::configOnRegistrationStateChange, conf_cb, _1, _2),
- bind(&ConfigurationCallback::configOnSipRegistrationStateChange, conf_cb, _1, _2, _3),
- bind(&ConfigurationCallback::configOnVolatileAccountsChange, conf_cb, _1, _2),
- bind(&ConfigurationCallback::configOnError, conf_cb, _1)
+ const std::map<std::string, SharedCallback> configEvHandlers = {
+ exportable_callback<ConfigurationSignal::VolumeChanged>(bind(&ConfigurationCallback::volumeChanged, confM, _1, _2)),
+ exportable_callback<ConfigurationSignal::AccountsChanged>(bind(&ConfigurationCallback::accountsChanged, confM)),
+ exportable_callback<ConfigurationSignal::StunStatusFailed>(bind(&ConfigurationCallback::stunStatusFailure, confM, _1)),
+ exportable_callback<ConfigurationSignal::RegistrationStateChanged>(bind(&ConfigurationCallback::registrationStateChanged, confM, _1, _2, _3, _4)),
+ exportable_callback<ConfigurationSignal::VolatileDetailsChanged>(bind(&ConfigurationCallback::volatileAccountDetailsChanged, confM, _1, _2)),
+ exportable_callback<ConfigurationSignal::Error>(bind(&ConfigurationCallback::errorAlert, confM, _1)),
+ exportable_callback<ConfigurationSignal::IncomingAccountMessage>(bind(&ConfigurationCallback::incomingAccountMessage, confM, _1, _2, _3 )),
+ exportable_callback<ConfigurationSignal::IncomingTrustRequest>(bind(&ConfigurationCallback::incomingTrustRequest, confM, _1, _2, _3 )),
+ exportable_callback<ConfigurationSignal::CertificatePinned>(bind(&ConfigurationCallback::certificatePinned, confM, _1 )),
+ exportable_callback<ConfigurationSignal::CertificatePathPinned>(bind(&ConfigurationCallback::certificatePathPinned, confM, _1, _2 )),
+ exportable_callback<ConfigurationSignal::CertificateExpired>(bind(&ConfigurationCallback::certificateExpired, confM, _1 )),
+ exportable_callback<ConfigurationSignal::CertificateStateChanged>(bind(&ConfigurationCallback::certificateStateChanged, confM, _1, _2, _3 )),
};
- // All event handlers
- sflph_ev_handlers evHandlers = {};
- evHandlers.call_ev_handlers = callEvHandlers;
- evHandlers.config_ev_handlers = configEvHandlers;
- sflph_init(&evHandlers, 0);
+/*
+ // Presence event handlers
+ const std::map<std::string, SharedCallback> presEvHandlers = {
+ exportable_callback<PresenceSignal::NewServerSubscriptionRequest>(bind(&DBusPresenceManager::newServerSubscriptionRequest, presM, _1)),
+ exportable_callback<PresenceSignal::ServerError>(bind(&DBusPresenceManager::serverError, presM, _1, _2, _3)),
+ exportable_callback<PresenceSignal::NewBuddyNotification>(bind(&DBusPresenceManager::newBuddyNotification, presM, _1, _2, _3, _4)),
+ exportable_callback<PresenceSignal::SubscriptionStateChanged>(bind(&DBusPresenceManager::subscriptionStateChanged, presM, _1, _2, _3)),
+ };
+
+#ifdef RING_VIDEO
+ // Video event handlers
+ const std::map<std::string, SharedCallback> videoEvHandlers = {
+ exportable_callback<VideoSignal::DeviceEvent>(bind(&DBusVideoManager::deviceEvent, videoM)),
+ exportable_callback<VideoSignal::DecodingStarted>(bind(&DBusVideoManager::startedDecoding, videoM, _1, _2, _3, _4, _5)),
+ exportable_callback<VideoSignal::DecodingStopped>(bind(&DBusVideoManager::stoppedDecoding, videoM, _1, _2, _3)),
+ };
+#endif
+*/
+
+ if (!DRing::init(static_cast<DRing::InitFlag>(DRing::DRING_FLAG_DEBUG)))
+ return -1;
+
+ registerCallHandlers(callEvHandlers);
+ registerConfHandlers(configEvHandlers);
+/* registerPresHandlers(presEvHandlers);
+#ifdef RING_VIDEO
+ registerVideoHandlers(videoEvHandlers);
+#endif
+*/
+ DRing::start();
}
+
%}
#ifndef SWIG
/* some bad declarations */
diff --git a/ring-android/jni/managerimpl.i b/ring-android/jni/managerimpl.i
index 59b89c8..3e6409e 100644
--- a/ring-android/jni/managerimpl.i
+++ b/ring-android/jni/managerimpl.i
@@ -33,13 +33,16 @@
#include "dring/dring.h"
%}
+namespace DRing {
/**
* Finalizes libsflphone, freeing any resource allocated by the library.
*/
-void sflph_fini(void);
+void fini(void);
/**
* Poll for SIP/IAX events
*/
-void sflph_poll_events(void);
+void pollEvents(void);
+
+}
diff --git a/ring-android/src/cx/ring/client/CallActivity.java b/ring-android/src/cx/ring/client/CallActivity.java
index 8f664cd..9f2071c 100644
--- a/ring-android/src/cx/ring/client/CallActivity.java
+++ b/ring-android/src/cx/ring/client/CallActivity.java
@@ -220,8 +220,8 @@
CallContact c = CallContact.ContactBuilder.buildUnknownContact(u.getSchemeSpecificPart());
try {
String accountID = (String) mService.getAccountList().get(1); // We use the first account to place outgoing calls
- HashMap<String, String> details = (HashMap<String, String>) mService.getAccountDetails(accountID);
- ArrayList<HashMap<String, String>> credentials = (ArrayList<HashMap<String, String>>) mService.getCredentials(accountID);
+ Map<String, String> details = (Map<String, String>) mService.getAccountDetails(accountID);
+ ArrayList<Map<String, String>> credentials = (ArrayList<Map<String, String>>) mService.getCredentials(accountID);
Account acc = new Account(accountID, details, credentials);
Bundle args = new Bundle();
diff --git a/ring-android/src/cx/ring/fragments/AccountCreationFragment.java b/ring-android/src/cx/ring/fragments/AccountCreationFragment.java
index c6c272a..331527b 100644
--- a/ring-android/src/cx/ring/fragments/AccountCreationFragment.java
+++ b/ring-android/src/cx/ring/fragments/AccountCreationFragment.java
@@ -179,7 +179,7 @@
private void initCreation() {
try {
- HashMap<String, String> accountDetails = (HashMap<String, String>) mCallbacks.getService().getAccountTemplate();
+ HashMap<String, String> accountDetails = (HashMap<String, String>) mCallbacks.getService().getAccountTemplate("SIP");
accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS, mAlias);
accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME, mHostname);
accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME, mUsername);
diff --git a/ring-android/src/cx/ring/fragments/AudioManagementFragment.java b/ring-android/src/cx/ring/fragments/AudioManagementFragment.java
index 71789e4..ec688e0 100644
--- a/ring-android/src/cx/ring/fragments/AudioManagementFragment.java
+++ b/ring-android/src/cx/ring/fragments/AudioManagementFragment.java
@@ -105,7 +105,7 @@
mCallbacks = (Callbacks) activity;
try {
codecs = (ArrayList<Codec>) mCallbacks.getService().getAudioCodecList(mCallbacks.getAccount().getAccountID());
- mCallbacks.getService().getRingtoneList();
+ //mCallbacks.getService().getRingtoneList();
} catch (RemoteException e) {
e.printStackTrace();
}
@@ -135,11 +135,11 @@
private ListView mPrefsList;
- public ArrayList<String> getActiveCodecList() {
- ArrayList<String> results = new ArrayList<String>();
+ public ArrayList<Long> getActiveCodecList() {
+ ArrayList<Long> results = new ArrayList<>();
for (int i = 0; i < listAdapter.getCount(); ++i) {
if (listAdapter.getItem(i).isEnabled()) {
- results.add(listAdapter.getItem(i).getPayload().toString());
+ results.add(listAdapter.getItem(i).getPayload());
}
}
return results;
diff --git a/ring-android/src/cx/ring/fragments/DetailsHistoryEntryFragment.java b/ring-android/src/cx/ring/fragments/DetailsHistoryEntryFragment.java
index 0ca2b98..797717b 100644
--- a/ring-android/src/cx/ring/fragments/DetailsHistoryEntryFragment.java
+++ b/ring-android/src/cx/ring/fragments/DetailsHistoryEntryFragment.java
@@ -52,6 +52,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
import java.util.NavigableMap;
import java.util.Random;
@@ -135,8 +136,8 @@
@Override
public void onClick(View v) {
try {
- HashMap<String, String> details = (HashMap<String, String>) mCallbacks.getService().getAccountDetails(toDisplay.getAccountID());
- ArrayList<HashMap<String, String>> creds = (ArrayList<HashMap<String, String>>) mCallbacks.getService().getCredentials(toDisplay.getAccountID());
+ Map<String, String> details = (Map<String, String>) mCallbacks.getService().getAccountDetails(toDisplay.getAccountID());
+ ArrayList<Map<String, String>> creds = (ArrayList<Map<String, String>>) mCallbacks.getService().getCredentials(toDisplay.getAccountID());
Bundle args = new Bundle();
args.putString(SipCall.ID, Integer.toString(Math.abs(new Random().nextInt())));
args.putParcelable(SipCall.ACCOUNT, new Account(toDisplay.getAccountID(), details, creds));
diff --git a/ring-android/src/cx/ring/fragments/NestedSettingsFragment.java b/ring-android/src/cx/ring/fragments/NestedSettingsFragment.java
index 81a66ea..87e3581 100644
--- a/ring-android/src/cx/ring/fragments/NestedSettingsFragment.java
+++ b/ring-android/src/cx/ring/fragments/NestedSettingsFragment.java
@@ -88,20 +88,20 @@
}
public boolean checkCertificate(String crt) {
- try {
- return mCallbacks.getService().checkCertificateValidity(crt);
+ /*try {
+ return mCallbacks.getService().validateCertificate(crt);
} catch (RemoteException e) {
e.printStackTrace();
- }
+ }*/
return false;
}
public boolean findRSAKey(String pemPath) {
- try {
+ /*try {
return mCallbacks.getService().checkForPrivateKey(pemPath);
} catch (RemoteException e) {
e.printStackTrace();
- }
+ }*/
return false;
}
diff --git a/ring-android/src/cx/ring/loaders/AccountsLoader.java b/ring-android/src/cx/ring/loaders/AccountsLoader.java
index 8e038ff..0f9eb39 100644
--- a/ring-android/src/cx/ring/loaders/AccountsLoader.java
+++ b/ring-android/src/cx/ring/loaders/AccountsLoader.java
@@ -33,6 +33,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
import android.support.v4.content.AsyncTaskLoader;
import cx.ring.model.account.Account;
@@ -70,17 +71,17 @@
try {
ArrayList<String> accountIDs = (ArrayList<String>) service.getAccountList();
- HashMap<String, String> details;
- ArrayList<HashMap<String, String>> credentials;
+ Map<String, String> details;
+ ArrayList<Map<String, String>> credentials;
for (String id : accountIDs) {
if (id.contentEquals(ACCOUNT_IP2IP)) {
details = (HashMap<String, String>) service.getAccountDetails(id);
- IP2IP = new Account(ACCOUNT_IP2IP, details, new ArrayList<HashMap<String, String>>()); // Empty credentials
+ IP2IP = new Account(ACCOUNT_IP2IP, details, new ArrayList<Map<String, String>>()); // Empty credentials
continue;
}
- details = (HashMap<String, String>) service.getAccountDetails(id);
- credentials = (ArrayList<HashMap<String, String>>) service.getCredentials(id);
+ details = (Map<String, String>) service.getAccountDetails(id);
+ credentials = (ArrayList<Map<String, String>>) service.getCredentials(id);
Account tmp = new Account(id, details, credentials);
accounts.add(tmp);
diff --git a/ring-android/src/cx/ring/model/Codec.java b/ring-android/src/cx/ring/model/Codec.java
index 0bef48f..72cc8a6 100644
--- a/ring-android/src/cx/ring/model/Codec.java
+++ b/ring-android/src/cx/ring/model/Codec.java
@@ -31,25 +31,38 @@
package cx.ring.model;
+import cx.ring.service.StringMap;
import cx.ring.service.StringVect;
import android.os.Parcel;
import android.os.Parcelable;
+import android.util.Log;
+
+import java.util.Map;
public class Codec implements Parcelable {
- int payload;
+ long payload;
String name;
+ String type;
String sampleRate;
String bitRate;
String channels;
boolean enabled;
- public Codec(int i, StringVect audioCodecDetails, boolean b) {
+ public Codec(long i, StringMap audioCodecDetails, boolean b) {
+ Log.d("CodecDetail", Long.toString(i));
+ for (String s : audioCodecDetails.keys()) {
+ Log.d("CodecDetail", s + " -> " + audioCodecDetails.get(s));
+ }
payload = i;
- name = audioCodecDetails.get(0);
- sampleRate = audioCodecDetails.get(1);
- bitRate = audioCodecDetails.get(2);
- channels = audioCodecDetails.get(3);
+ name = audioCodecDetails.get("CodecInfo.name");
+ type = audioCodecDetails.get("CodecInfo.type");
+ if (audioCodecDetails.has_key("CodecInfo.sampleRate"))
+ sampleRate = audioCodecDetails.get("CodecInfo.sampleRate");
+ if (audioCodecDetails.has_key("CodecInfo.bitrate"))
+ bitRate = audioCodecDetails.get("CodecInfo.bitrate");
+ if (audioCodecDetails.has_key("CodecInfo.channelNumber"))
+ channels = audioCodecDetails.get("CodecInfo.channelNumber");
enabled = b;
}
@@ -60,7 +73,7 @@
@Override
public void writeToParcel(Parcel out, int flags) {
- out.writeInt(payload);
+ out.writeLong(payload);
out.writeString(name);
out.writeString(sampleRate);
out.writeString(bitRate);
@@ -103,7 +116,7 @@
}
public CharSequence getPayload() {
- return Integer.toString(payload);
+ return Long.toString(payload);
}
public CharSequence getName() {
diff --git a/ring-android/src/cx/ring/model/account/Account.java b/ring-android/src/cx/ring/model/account/Account.java
index c129dde..b6eaee3 100644
--- a/ring-android/src/cx/ring/model/account/Account.java
+++ b/ring-android/src/cx/ring/model/account/Account.java
@@ -34,6 +34,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import android.os.Parcel;
import android.os.Parcelable;
@@ -47,13 +48,13 @@
private AccountDetailTls tlsDetails = null;
private ArrayList<AccountCredentials> credentialsDetails;
- public Account(String bAccountID, HashMap<String, String> details, ArrayList<HashMap<String, String>> credentials) {
+ public Account(String bAccountID, final Map<String, String> details, ArrayList<Map<String, String>> credentials) {
accountID = bAccountID;
basicDetails = new AccountDetailBasic(details);
advancedDetails = new AccountDetailAdvanced(details);
srtpDetails = new AccountDetailSrtp(details);
tlsDetails = new AccountDetailTls(details);
- credentialsDetails = new ArrayList<AccountCredentials>();
+ credentialsDetails = new ArrayList<>();
for (int i = 0; i < credentials.size(); ++i) {
credentialsDetails.add(new AccountCredentials(credentials.get(i)));
}
diff --git a/ring-android/src/cx/ring/model/account/AccountCredentials.java b/ring-android/src/cx/ring/model/account/AccountCredentials.java
index bd0eebb..6a747fe 100644
--- a/ring-android/src/cx/ring/model/account/AccountCredentials.java
+++ b/ring-android/src/cx/ring/model/account/AccountCredentials.java
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
public class AccountCredentials implements AccountDetail {
@@ -45,7 +46,7 @@
return preference;
}
- public AccountCredentials(HashMap<String, String> pref) {
+ public AccountCredentials(Map<String, String> pref) {
privateArray = getPreferenceEntries();
for (AccountDetail.PreferenceEntry p : privateArray) {
diff --git a/ring-android/src/cx/ring/model/account/AccountDetailAdvanced.java b/ring-android/src/cx/ring/model/account/AccountDetailAdvanced.java
index 2d09ba5..41358c8 100644
--- a/ring-android/src/cx/ring/model/account/AccountDetailAdvanced.java
+++ b/ring-android/src/cx/ring/model/account/AccountDetailAdvanced.java
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
import android.util.Log;
@@ -55,7 +56,7 @@
private ArrayList<AccountDetail.PreferenceEntry> privateArray;
- public AccountDetailAdvanced(HashMap<String, String> pref) {
+ public AccountDetailAdvanced(Map<String, String> pref) {
privateArray = new ArrayList<AccountDetail.PreferenceEntry>();
for (String key : pref.keySet()) {
diff --git a/ring-android/src/cx/ring/model/account/AccountDetailBasic.java b/ring-android/src/cx/ring/model/account/AccountDetailBasic.java
index bec769e..6e95f12 100644
--- a/ring-android/src/cx/ring/model/account/AccountDetailBasic.java
+++ b/ring-android/src/cx/ring/model/account/AccountDetailBasic.java
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
import android.util.Log;
@@ -46,7 +47,7 @@
private ArrayList<AccountDetail.PreferenceEntry> privateArray;
- public AccountDetailBasic(HashMap<String, String> pref) {
+ public AccountDetailBasic(Map<String, String> pref) {
privateArray = new ArrayList<AccountDetail.PreferenceEntry>();
for (String key : pref.keySet()) {
diff --git a/ring-android/src/cx/ring/model/account/AccountDetailSrtp.java b/ring-android/src/cx/ring/model/account/AccountDetailSrtp.java
index 29b3ef5..0064aa4 100644
--- a/ring-android/src/cx/ring/model/account/AccountDetailSrtp.java
+++ b/ring-android/src/cx/ring/model/account/AccountDetailSrtp.java
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
public class AccountDetailSrtp implements AccountDetail {
@@ -54,7 +55,7 @@
return preference;
}
- public AccountDetailSrtp(HashMap<String, String> pref) {
+ public AccountDetailSrtp(Map<String, String> pref) {
privateArray = getPreferenceEntries();
for (AccountDetail.PreferenceEntry p : privateArray) {
p.mValue = pref.get(p.mKey);
diff --git a/ring-android/src/cx/ring/model/account/AccountDetailTls.java b/ring-android/src/cx/ring/model/account/AccountDetailTls.java
index 37054b6..595f9d8 100644
--- a/ring-android/src/cx/ring/model/account/AccountDetailTls.java
+++ b/ring-android/src/cx/ring/model/account/AccountDetailTls.java
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
public class AccountDetailTls implements AccountDetail {
@@ -64,7 +65,7 @@
return preference;
}
- public AccountDetailTls(HashMap<String, String> pref) {
+ public AccountDetailTls(Map<String, String> pref) {
privateArray = getPreferenceEntries();
for (AccountDetail.PreferenceEntry p : privateArray) {
diff --git a/ring-android/src/cx/ring/service/CallManagerCallBack.java b/ring-android/src/cx/ring/service/CallManagerCallBack.java
index 622f58f..791fb79 100644
--- a/ring-android/src/cx/ring/service/CallManagerCallBack.java
+++ b/ring-android/src/cx/ring/service/CallManagerCallBack.java
@@ -8,6 +8,7 @@
import cx.ring.utils.SwigNativeConverter;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Map;
import cx.ring.model.CallContact;
@@ -44,7 +45,7 @@
}
@Override
- public void callOnStateChange(String callID, String newState) {
+ public void callStateChanged(String callID, String newState, int detail_code) {
Log.d(TAG, "on_call_state_changed : (" + callID + ", " + newState + ")");
Conference toUpdate = mService.findConference(callID);
@@ -56,6 +57,7 @@
Intent intent = new Intent(CALL_STATE_CHANGED);
intent.putExtra("CallID", callID);
intent.putExtra("State", newState);
+ intent.putExtra("DetailCode", detail_code);
if (newState.equals("RINGING")) {
toUpdate.setCallState(callID, SipCall.state.CALL_STATE_RINGING);
@@ -84,7 +86,7 @@
} else if (newState.equals("FAILURE")) {
toUpdate.setCallState(callID, SipCall.state.CALL_STATE_FAILURE);
mService.getConferences().remove(toUpdate.getId());
- Ringservice.sflph_call_hang_up(callID);
+ Ringservice.hangUp(callID);
} else if (newState.equals("HOLD")) {
toUpdate.setCallState(callID, SipCall.state.CALL_STATE_HOLD);
} else if (newState.equals("UNHOLD")) {
@@ -96,13 +98,13 @@
@Override
- public void callOnIncomingCall(String accountID, String callID, String from) {
+ public void incomingCall(String accountID, String callID, String from) {
Log.d(TAG, "on_incoming_call(" + accountID + ", " + callID + ", " + from + ")");
try {
- StringMap details = Ringservice.sflph_config_get_account_details(accountID);
- VectMap credentials = Ringservice.sflph_config_get_credentials(accountID);
- Account acc = new Account(accountID, SwigNativeConverter.convertAccountToNative(details), SwigNativeConverter.convertCredentialsToNative(credentials));
+ StringMap details = Ringservice.getAccountDetails(accountID);
+ VectMap credentials = Ringservice.getCredentials(accountID);
+ Account acc = new Account(accountID, details.toNative(), credentials.toNative());
Bundle args = new Bundle();
args.putString(SipCall.ID, callID);
@@ -142,12 +144,12 @@
}
@Override
- public void callOnConferenceCreated(final String confID) {
+ public void conferenceCreated(final String confID) {
Log.w(TAG, "CONFERENCE CREATED:" + confID);
Intent intent = new Intent(CONF_CREATED);
Conference created = new Conference(confID);
- StringVect all_participants = Ringservice.sflph_call_get_participant_list(confID);
+ StringVect all_participants = Ringservice.getParticipantList(confID);
Log.w(TAG, "all_participants:" + all_participants.size());
for (int i = 0; i < all_participants.size(); ++i) {
if (mService.getConferences().get(all_participants.get(i)) != null) {
@@ -172,7 +174,7 @@
}
@Override
- public void callOnIncomingMessage(String ID, String from, String msg) {
+ public void incomingMessage(String ID, String from, String msg) {
Log.w(TAG, "on_incoming_message:" + msg);
Intent intent = new Intent(INCOMING_TEXT);
intent.putExtra("CallID", ID);
@@ -198,7 +200,7 @@
}
@Override
- public void callOnConferenceRemove(String confID) {
+ public void conferenceRemoved(String confID) {
Log.i(TAG, "on_conference_removed:");
Intent intent = new Intent(CONF_REMOVED);
intent.putExtra("confID", confID);
@@ -214,7 +216,7 @@
}
@Override
- public void callOnConferenceChanged(String confID, String state) {
+ public void conferenceChanged(String confID, String state) {
Log.i(TAG, "on_conference_state_changed:");
Intent intent = new Intent(CONF_CHANGED);
intent.putExtra("confID", confID);
@@ -227,7 +229,7 @@
Conference toModify = mService.getConferences().get(confID);
toModify.setCallState(confID, state);
- ArrayList<String> newParticipants = SwigNativeConverter.convertSwigToNative(Ringservice.sflph_call_get_participant_list(intent.getStringExtra("confID")));
+ ArrayList<String> newParticipants = SwigNativeConverter.convertSwigToNative(Ringservice.getParticipantList(intent.getStringExtra("confID")));
if (toModify.getParticipants().size() < newParticipants.size()) {
// We need to add the new participant to the conf
@@ -250,7 +252,7 @@
}
@Override
- public void callOnRecordPlaybackFilepath(String id, String filename) {
+ public void recordPlaybackFilepath(String id, String filename) {
Intent intent = new Intent();
intent.putExtra("callID", id);
intent.putExtra("file", filename);
@@ -258,7 +260,7 @@
}
@Override
- public void callOnSecureSdesOn(String callID) {
+ public void secureSdesOn(String callID) {
Log.i(TAG, "on_secure_sdes_on");
SecureSipCall call = (SecureSipCall) mService.getCallById(callID);
call.setInitialized();
@@ -266,7 +268,7 @@
}
@Override
- public void callOnSecureSdesOff(String callID) {
+ public void secureSdesOff(String callID) {
Log.i(TAG, "on_secure_sdes_off");
SecureSipCall call = (SecureSipCall) mService.getCallById(callID);
call.setInitialized();
@@ -274,7 +276,7 @@
}
@Override
- public void callOnSecureZrtpOn(String callID, String cipher) {
+ public void secureZrtpOn(String callID, String cipher) {
Log.i(TAG, "on_secure_zrtp_on");
Intent intent = new Intent(ZRTP_ON);
SecureSipCall call = (SecureSipCall) mService.getCallById(callID);
@@ -286,7 +288,7 @@
}
@Override
- public void callOnSecureZrtpOff(String callID) {
+ public void secureZrtpOff(String callID) {
Log.i(TAG, "on_secure_zrtp_off");
Intent intent = new Intent(ZRTP_OFF);
intent.putExtra("callID", callID);
@@ -302,7 +304,7 @@
}
@Override
- public void callOnShowSas(String callID, String sas, int verified) {
+ public void showSAS(String callID, String sas, int verified) {
Log.i(TAG, "on_show_sas:" + sas);
Intent intent = new Intent(DISPLAY_SAS);
SecureSipCall call = (SecureSipCall) mService.getCallById(callID);
@@ -317,7 +319,7 @@
}
@Override
- public void callOnZrtpNotSuppOther(String callID) {
+ public void zrtpNotSuppOther(String callID) {
Log.i(TAG, "on_zrtp_not_supported");
Intent intent = new Intent(ZRTP_NOT_SUPPORTED);
SecureSipCall call = (SecureSipCall) mService.getCallById(callID);
@@ -329,7 +331,7 @@
}
@Override
- public void callOnZrtpNegotiationFail(String callID, String reason, String severity) {
+ public void zrtpNegotiationFailed(String callID, String reason, String severity) {
Log.i(TAG, "on_zrtp_negociation_failed");
Intent intent = new Intent(ZRTP_NEGOTIATION_FAILED);
SecureSipCall call = (SecureSipCall) mService.getCallById(callID);
@@ -341,7 +343,7 @@
}
@Override
- public void callOnRtcpReceiveReport(String callID, IntegerMap stats) {
+ public void onRtcpReportReceived(String callID, IntegerMap stats) {
Log.i(TAG, "on_rtcp_report_received");
Intent intent = new Intent(RTCP_REPORT_RECEIVED);
mService.sendBroadcast(intent);
diff --git a/ring-android/src/cx/ring/service/ConfigurationManagerCallback.java b/ring-android/src/cx/ring/service/ConfigurationManagerCallback.java
index 953a655..cf691ab 100644
--- a/ring-android/src/cx/ring/service/ConfigurationManagerCallback.java
+++ b/ring-android/src/cx/ring/service/ConfigurationManagerCallback.java
@@ -28,7 +28,7 @@
public class ConfigurationManagerCallback extends ConfigurationCallback {
private SipService mService;
- private static final String TAG = "ConfigurationManagerCallback";
+ private static final String TAG = "ConfigurationManagerCb";
static public final String ACCOUNTS_CHANGED = "accounts-changed";
static public final String ACCOUNT_STATE_CHANGED = "account-state-changed";
@@ -39,69 +39,30 @@
}
@Override
- public void configOnVolumeChange(String device, int value) {
- super.configOnVolumeChange(device, value);
+ public void volumeChanged(String device, int value) {
+ super.volumeChanged(device, value);
}
@Override
- public void configOnAccountsChange() {
- super.configOnAccountsChange();
+ public void accountsChanged() {
+ super.accountsChanged();
Intent intent = new Intent(ACCOUNTS_CHANGED);
mService.sendBroadcast(intent);
}
@Override
- public void configOnStunStatusFail(String account_id) {
+ public void stunStatusFailure(String account_id) {
Log.d(TAG, "configOnStunStatusFail : (" + account_id);
}
@Override
- public void configOnRegistrationStateChange(String accoundID, int state) {
- String strState = "";
- switch (state){
- case 0:
- strState = "UNREGISTERED";
- break;
- case 1:
- strState = "TRYING";
- break;
- case 2:
- strState = "REGISTERED";
- break;
- case 3:
- strState = "ERROR_GENERIC";
- break;
- case 4:
- strState = "ERROR_AUTH";
- break;
- case 5:
- strState = "ERROR_NETWORK";
- break;
- case 6:
- strState = "ERROR_HOST";
- break;
- case 7:
- strState = "ERROR_EXIST_STUN";
- break;
- case 8:
- strState = "ERROR_NOT_ACCEPTABLE";
- break;
- case 9:
- strState = "NUMBER_OF_STATES";
- break;
- }
-
- sendAccountStateChangedMessage(accoundID, strState, 0);
+ public void registrationStateChanged(String account_id, String state, int code, String detail_str) {
+ sendAccountStateChangedMessage(account_id, state, 0);
}
@Override
- public void configOnSipRegistrationStateChange(String account_id, String state, int code) {
-
- }
-
- @Override
- public void configOnError(int alert) {
- Log.d(TAG, "configOnError : (" + alert);
+ public void errorAlert(int alert) {
+ Log.d(TAG, "errorAlert : " + alert);
}
private void sendAccountStateChangedMessage(String accoundID, String state, int code) {
diff --git a/ring-android/src/cx/ring/service/ISipService.aidl b/ring-android/src/cx/ring/service/ISipService.aidl
index d1ea05a..05880bc 100644
--- a/ring-android/src/cx/ring/service/ISipService.aidl
+++ b/ring-android/src/cx/ring/service/ISipService.aidl
@@ -19,7 +19,7 @@
void removeAccount(in String accoundId);
void setAccountOrder(in String order);
Map getAccountDetails(in String accountID);
- Map getAccountTemplate();
+ Map getAccountTemplate(in String accountType);
void registerAllAccounts();
void setAccountDetails(in String accountId, in Map accountDetails);
List getCredentials(in String accountID);
@@ -28,13 +28,12 @@
String getCurrentAudioOutputPlugin();
List getAudioCodecList(in String accountID);
void setActiveCodecList(in List codecs, in String accountID);
- Map getRingtoneList();
- boolean checkForPrivateKey(in String pemPath);
- boolean checkCertificateValidity(in String pemPath);
- boolean checkHostnameCertificate(in String certificatePath, in String host, in String port);
-
-
+ Map validateCertificate(in String accountID, in String certificatePath, in String privateKeyPath);
+ Map validateCertificateRaw(in String accountID, in byte[] certificateRaw);
+ Map getCertificateDetails(in String certificatePath);
+ Map getCertificateDetailsRaw(in byte[] certificateRaw);
+
// FIXME
void toggleSpeakerPhone(in boolean toggle);
diff --git a/ring-android/src/cx/ring/service/SipService.java b/ring-android/src/cx/ring/service/SipService.java
index 14d907a..575189c 100644
--- a/ring-android/src/cx/ring/service/SipService.java
+++ b/ring-android/src/cx/ring/service/SipService.java
@@ -59,7 +59,7 @@
private Runnable pollEvents = new Runnable() {
@Override
public void run() {
- Ringservice.sflph_poll_events();
+ Ringservice.pollEvents();
handler.postDelayed(this, POLLING_TIMEOUT);
}
};
@@ -225,7 +225,7 @@
private void stopDaemon() {
handler.removeCallbacks(pollEvents);
- Ringservice.sflph_fini();
+ Ringservice.fini();
isPjSipStackStarted = false;
}
@@ -234,13 +234,13 @@
return;
try {
- System.loadLibrary("codec_ulaw");
+ /*System.loadLibrary("codec_ulaw");
System.loadLibrary("codec_alaw");
System.loadLibrary("codec_speex");
System.loadLibrary("codec_g729");
System.loadLibrary("codec_gsm");
- System.loadLibrary("codec_opus");
- System.loadLibrary("sflphonejni");
+ System.loadLibrary("codec_opus");*/
+ System.loadLibrary("ringjni");
isPjSipStackStarted = true;
} catch (UnsatisfiedLinkError e) {
@@ -350,7 +350,7 @@
}
mConferences.put(toAdd.getId(), toAdd);
mMediaManager.obtainAudioFocus(false);
- Ringservice.sflph_call_place(call.getAccount().getAccountID(), call.getCallId(), call.getmContact().getPhones().get(0).getNumber());
+ Ringservice.placeCall(call.getAccount().getAccountID(), call.getmContact().getPhones().get(0).getNumber());
}
});
}
@@ -362,7 +362,7 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.refuse() thread running...");
- Ringservice.sflph_call_refuse(callID);
+ Ringservice.refuse(callID);
}
});
}
@@ -374,7 +374,7 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.accept() thread running...");
- Ringservice.sflph_call_accept(callID);
+ Ringservice.accept(callID);
mMediaManager.RouteToInternalSpeaker();
}
});
@@ -388,7 +388,7 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.hangUp() thread running...");
- Ringservice.sflph_call_hang_up(callID);
+ Ringservice.hangUp(callID);
removeCall(callID);
if(mConferences.size() == 0) {
Log.i(TAG, "No more calls!");
@@ -404,7 +404,7 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.hold() thread running...");
- Ringservice.sflph_call_hold(callID);
+ Ringservice.hold(callID);
}
});
}
@@ -415,13 +415,13 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.unhold() thread running...");
- Ringservice.sflph_call_unhold(callID);
+ Ringservice.unhold(callID);
}
});
}
@Override
- public HashMap<String, String> getCallDetails(String callID) throws RemoteException {
+ public Map<String, String> getCallDetails(String callID) throws RemoteException {
class CallDetails extends SipRunnableWithReturn {
private String id;
@@ -430,9 +430,9 @@
}
@Override
- protected StringMap doRun() throws SameThreadException {
+ protected Map<String, String> doRun() throws SameThreadException {
Log.i(TAG, "SipService.getCallDetails() thread running...");
- return Ringservice.sflph_call_get_call_details(id);
+ return Ringservice.getCallDetails(id).toNative();
}
}
@@ -441,9 +441,7 @@
while (!runInstance.isDone()) {
}
- StringMap swigmap = (StringMap) runInstance.getVal();
-
- return SwigNativeConverter.convertCallDetailsToNative(swigmap);
+ return (Map<String, String>)runInstance.getVal();
}
@Override
@@ -452,7 +450,7 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.setAudioPlugin() thread running...");
- Ringservice.sflph_config_set_audio_plugin(audioPlugin);
+ Ringservice.setAudioPlugin(audioPlugin);
}
});
}
@@ -463,7 +461,7 @@
@Override
protected String doRun() throws SameThreadException {
Log.i(TAG, "SipService.getCurrentAudioOutputPlugin() thread running...");
- return Ringservice.sflph_config_get_current_audio_output_plugin();
+ return Ringservice.getCurrentAudioOutputPlugin();
}
}
@@ -481,7 +479,7 @@
@Override
protected StringVect doRun() throws SameThreadException {
Log.i(TAG, "SipService.getAccountList() thread running...");
- return Ringservice.sflph_config_get_account_list();
+ return Ringservice.getAccountList();
}
}
AccountList runInstance = new AccountList();
@@ -504,13 +502,13 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.setAccountsOrder() thread running...");
- Ringservice.sflph_config_set_accounts_order(order);
+ Ringservice.setAccountsOrder(order);
}
});
}
@Override
- public HashMap<String, String> getAccountDetails(final String accountID) {
+ public Map<String, String> getAccountDetails(final String accountID) {
class AccountDetails extends SipRunnableWithReturn {
private String id;
@@ -519,9 +517,9 @@
}
@Override
- protected StringMap doRun() throws SameThreadException {
+ protected Map<String, String> doRun() throws SameThreadException {
Log.i(TAG, "SipService.getAccountDetails() thread running...");
- return Ringservice.sflph_config_get_account_details(id);
+ return Ringservice.getAccountDetails(id).toNative();
}
}
@@ -530,24 +528,20 @@
while (!runInstance.isDone()) {
}
- StringMap swigmap = (StringMap) runInstance.getVal();
-
- return SwigNativeConverter.convertAccountToNative(swigmap);
+ return (Map<String, String>) runInstance.getVal();
}
@SuppressWarnings("unchecked")
// Hashmap runtime cast
@Override
public void setAccountDetails(final String accountId, final Map map) {
- HashMap<String, String> nativemap = (HashMap<String, String>) map;
-
- final StringMap swigmap = SwigNativeConverter.convertFromNativeToSwig(nativemap);
+ final StringMap swigmap = new StringMap(map);
getExecutor().execute(new SipRunnable() {
@Override
protected void doRun() throws SameThreadException {
- Ringservice.sflph_config_set_account_details(accountId, swigmap);
+ Ringservice.setAccountDetails(accountId, swigmap);
Log.i(TAG, "SipService.setAccountDetails() thread running...");
}
@@ -555,13 +549,13 @@
}
@Override
- public Map getAccountTemplate() throws RemoteException {
+ public Map<String, String> getAccountTemplate(final String accountType) throws RemoteException {
class AccountTemplate extends SipRunnableWithReturn {
@Override
- protected StringMap doRun() throws SameThreadException {
+ protected Map<String, String> doRun() throws SameThreadException {
Log.i(TAG, "SipService.getAccountTemplate() thread running...");
- return Ringservice.sflph_config_get_account_template();
+ return Ringservice.getAccountTemplate(accountType).toNative();
}
}
@@ -570,9 +564,7 @@
while (!runInstance.isDone()) {
}
- StringMap swigmap = (StringMap) runInstance.getVal();
-
- return SwigNativeConverter.convertAccountToNative(swigmap);
+ return (Map<String, String>) runInstance.getVal();
}
@SuppressWarnings("unchecked")
@@ -589,11 +581,11 @@
@Override
protected String doRun() throws SameThreadException {
Log.i(TAG, "SipService.addAccount() thread running...");
- return Ringservice.sflph_config_add_account(map);
+ return Ringservice.addAccount(map);
}
}
- final StringMap swigmap = SwigNativeConverter.convertFromNativeToSwig((HashMap<String, String>) map);
+ final StringMap swigmap = new StringMap(map);
AddAccount runInstance = new AddAccount(swigmap);
getExecutor().execute(runInstance);
@@ -608,7 +600,7 @@
@Override
protected void doRun() throws SameThreadException {
Log.i(TAG, "SipService.setAccountDetails() thread running...");
- Ringservice.sflph_config_remove_account(accountId);
+ Ringservice.removeAccount(accountId);
}
});
}
@@ -623,7 +615,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.transfer() thread running...");
- if (Ringservice.sflph_call_transfer(callID, to)) {
+ if (Ringservice.transfer(callID, to)) {
Bundle bundle = new Bundle();
bundle.putString("CallID", callID);
bundle.putString("State", "HUNGUP");
@@ -643,7 +635,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.attendedTransfer() thread running...");
- if (Ringservice.sflph_call_attended_transfer(transferID, targetID)) {
+ if (Ringservice.attendedTransfer(transferID, targetID)) {
Log.i(TAG, "OK");
} else
Log.i(TAG, "NOT OK");
@@ -662,7 +654,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.createConference() thread running...");
- Ringservice.sflph_call_remove_conference(confID);
+ Ringservice.removeConference(confID);
}
});
@@ -674,7 +666,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.joinParticipant() thread running...");
- Ringservice.sflph_call_join_participant(sel_callID, drag_callID);
+ Ringservice.joinParticipant(sel_callID, drag_callID);
// Generate a CONF_CREATED callback
}
});
@@ -687,7 +679,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.addParticipant() thread running...");
- Ringservice.sflph_call_add_participant(call.getCallId(), confID);
+ Ringservice.addParticipant(call.getCallId(), confID);
mConferences.get(confID).getParticipants().add(call);
}
});
@@ -700,7 +692,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.addMainParticipant() thread running...");
- Ringservice.sflph_call_add_main_participant(confID);
+ Ringservice.addMainParticipant(confID);
}
});
@@ -724,7 +716,7 @@
Log.i(TAG, "Call found and put in current_calls");
}
}
- Ringservice.sflph_call_detach_participant(callID);
+ Ringservice.detachParticipant(callID);
}
});
@@ -736,7 +728,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.joinConference() thread running...");
- Ringservice.sflph_call_join_conference(sel_confID, drag_confID);
+ Ringservice.joinConference(sel_confID, drag_confID);
}
});
@@ -749,7 +741,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.joinConference() thread running...");
- Ringservice.sflph_call_hang_up_conference(confID);
+ Ringservice.hangUpConference(confID);
}
});
@@ -761,7 +753,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.holdConference() thread running...");
- Ringservice.sflph_call_hold_conference(confID);
+ Ringservice.holdConference(confID);
}
});
@@ -773,7 +765,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.unholdConference() thread running...");
- Ringservice.sflph_call_unhold_conference(confID);
+ Ringservice.unholdConference(confID);
}
});
@@ -786,7 +778,7 @@
@Override
protected Boolean doRun() throws SameThreadException {
Log.i(TAG, "SipService.isRecording() thread running...");
- return Ringservice.sflph_call_is_conference_participant(callID);
+ return Ringservice.isConferenceParticipant(callID);
}
}
@@ -830,7 +822,7 @@
@Override
protected StringVect doRun() throws SameThreadException {
Log.i(TAG, "SipService.getParticipantList() thread running...");
- return Ringservice.sflph_call_get_participant_list(confID);
+ return Ringservice.getParticipantList(confID);
}
}
;
@@ -859,9 +851,9 @@
public String getConferenceDetails(final String callID) throws RemoteException {
class ConfDetails extends SipRunnableWithReturn {
@Override
- protected StringMap doRun() throws SameThreadException {
+ protected String doRun() throws SameThreadException {
Log.i(TAG, "SipService.getConferenceDetails() thread running...");
- return Ringservice.sflph_call_get_conference_details(callID);
+ return Ringservice.getConferenceDetails(callID).get("CONF_STATE");
}
}
ConfDetails runInstance = new ConfDetails();
@@ -869,9 +861,7 @@
while (!runInstance.isDone()) {
// Log.w(TAG, "Waiting for getConferenceList");
}
- StringMap swigvect = (StringMap) runInstance.getVal();
-
- return swigvect.get("CONF_STATE");
+ return (String) runInstance.getVal();
}
@Override
@@ -881,7 +871,7 @@
@Override
protected String doRun() throws SameThreadException {
Log.i(TAG, "SipService.getRecordPath() thread running...");
- return Ringservice.sflph_config_get_record_path();
+ return Ringservice.getRecordPath();
}
}
@@ -902,7 +892,7 @@
@Override
protected Boolean doRun() throws SameThreadException {
Log.i(TAG, "SipService.toggleRecordingCall() thread running...");
- boolean result = Ringservice.sflph_call_toggle_recording(id);
+ boolean result = Ringservice.toggleRecording(id);
if (getConferences().containsKey(id)) {
getConferences().get(id).setRecording(result);
@@ -931,7 +921,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.setRecordingCall() thread running...");
- Ringservice.sflph_call_play_recorded_file(filepath);
+ Ringservice.startRecordedFilePlayback(filepath);
}
});
return false;
@@ -943,7 +933,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.stopRecordedFilePlayback() thread running...");
- Ringservice.sflph_call_stop_recorded_file(filepath);
+ Ringservice.stopRecordedFilePlayback(filepath);
}
});
}
@@ -954,7 +944,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.setRecordPath() " + path + " thread running...");
- Ringservice.sflph_config_set_record_path(path);
+ Ringservice.setRecordPath(path);
}
});
}
@@ -965,7 +955,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.sendTextMessage() thread running...");
- Ringservice.sflph_call_send_text_message(callID, message.comment);
+ Ringservice.sendTextMessage(callID, message.comment);
if (getConferences().get(callID) != null)
getConferences().get(callID).addSipMessage(message);
}
@@ -982,13 +972,13 @@
Log.i(TAG, "SipService.getAudioCodecList() thread running...");
ArrayList<Codec> results = new ArrayList<Codec>();
- IntVect active_payloads = Ringservice.sflph_config_get_active_audio_codec_list(accountID);
+ UintVect active_payloads = Ringservice.getActiveCodecList(accountID);
for (int i = 0; i < active_payloads.size(); ++i) {
-
- results.add(new Codec(active_payloads.get(i), Ringservice.sflph_config_get_audio_codec_details(active_payloads.get(i)), true));
+ Log.i(TAG, "SipService.getCodecDetails(" + accountID +", "+ active_payloads.get(i) +")");
+ results.add(new Codec(active_payloads.get(i), Ringservice.getCodecDetails(accountID, active_payloads.get(i)), true));
}
- IntVect payloads = Ringservice.sflph_config_get_audio_codec_list();
+ UintVect payloads = Ringservice.getCodecList();
for (int i = 0; i < payloads.size(); ++i) {
boolean isActive = false;
@@ -999,8 +989,13 @@
}
if (isActive)
continue;
- else
- results.add(new Codec(payloads.get(i), Ringservice.sflph_config_get_audio_codec_details(payloads.get(i)), false));
+ else {
+ StringMap details = Ringservice.getCodecDetails(accountID, payloads.get(i));
+ if (details.size() > 1)
+ results.add(new Codec(payloads.get(i), Ringservice.getCodecDetails(accountID, payloads.get(i)), false));
+ else
+ Log.i(TAG, "Error loading codec " + i);
+ }
}
@@ -1015,6 +1010,7 @@
return (ArrayList<Codec>) runInstance.getVal();
}
+ /*
@Override
public Map getRingtoneList() throws RemoteException {
class RingtoneList extends SipRunnableWithReturn {
@@ -1022,7 +1018,7 @@
@Override
protected StringMap doRun() throws SameThreadException {
Log.i(TAG, "SipService.getRingtoneList() thread running...");
- return Ringservice.sflph_config_get_ringtone_list();
+ return Ringservice.getR();
}
}
@@ -1039,6 +1035,7 @@
return null;
}
+
@Override
public boolean checkForPrivateKey(final String pemPath) throws RemoteException {
class hasPrivateKey extends SipRunnableWithReturn {
@@ -1095,6 +1092,83 @@
return (Boolean) runInstance.getVal();
}
+*/
+
+ @Override
+ public Map<String, String> validateCertificate(final String accountID, final String certificatePath, final String privateKeyPath) throws RemoteException {
+ class isValid extends SipRunnableWithReturn {
+
+ @Override
+ protected Map<String, String> doRun() throws SameThreadException {
+ Log.i(TAG, "SipService.isCaptureMuted() thread running...");
+ return Ringservice.validateCertificate(accountID, certificatePath, privateKeyPath).toNative();
+ }
+ }
+
+ isValid runInstance = new isValid();
+ getExecutor().execute(runInstance);
+ while (!runInstance.isDone()) {
+ }
+
+ return (Map<String, String>) runInstance.getVal();
+ }
+
+ @Override
+ public Map<String, String> validateCertificateRaw(final String accountID, final byte[] certificateRaw) throws RemoteException {
+ class isValid extends SipRunnableWithReturn {
+
+ @Override
+ protected Map<String, String> doRun() throws SameThreadException {
+ Log.i(TAG, "SipService.isCaptureMuted() thread running...");
+ return Ringservice.validateCertificateRaw(accountID, SwigNativeConverter.convertFromNativeToSwig(certificateRaw)).toNative();
+ }
+ }
+
+ isValid runInstance = new isValid();
+ getExecutor().execute(runInstance);
+ while (!runInstance.isDone()) {
+ }
+
+ return (Map<String, String>) runInstance.getVal();
+ }
+
+ @Override
+ public Map<String, String> getCertificateDetails(final String certificatePath) throws RemoteException {
+ class isValid extends SipRunnableWithReturn {
+
+ @Override
+ protected Map<String, String> doRun() throws SameThreadException {
+ Log.i(TAG, "SipService.isCaptureMuted() thread running...");
+ return Ringservice.getCertificateDetails(certificatePath).toNative();
+ }
+ }
+
+ isValid runInstance = new isValid();
+ getExecutor().execute(runInstance);
+ while (!runInstance.isDone()) {
+ }
+
+ return (Map<String, String>) runInstance.getVal();
+ }
+
+ @Override
+ public Map<String, String> getCertificateDetailsRaw(final byte[] certificateRaw) throws RemoteException {
+ class isValid extends SipRunnableWithReturn {
+
+ @Override
+ protected Map<String, String> doRun() throws SameThreadException {
+ Log.i(TAG, "SipService.isCaptureMuted() thread running...");
+ return Ringservice.getCertificateDetailsRaw(SwigNativeConverter.convertFromNativeToSwig(certificateRaw)).toNative();
+ }
+ }
+
+ isValid runInstance = new isValid();
+ getExecutor().execute(runInstance);
+ while (!runInstance.isDone()) {
+ }
+
+ return (Map<String, String>) runInstance.getVal();
+ }
@Override
public void setActiveCodecList(final List codecs, final String accountID) throws RemoteException {
@@ -1102,11 +1176,11 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.setActiveAudioCodecList() thread running...");
- StringVect list = new StringVect();
+ UintVect list = new UintVect();
for (Object codec : codecs) {
- list.add((String) codec);
+ list.add((Integer) codec);
}
- Ringservice.sflph_config_set_active_audio_codec_list(list, accountID);
+ Ringservice.setActiveCodecList(accountID, list);
}
});
}
@@ -1133,7 +1207,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.playDtmf() thread running...");
- Ringservice.sflph_call_play_dtmf(key);
+ Ringservice.playDTMF(key);
}
});
}
@@ -1154,7 +1228,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.setMuted() thread running...");
- Ringservice.sflph_config_mute_capture(mute);
+ Ringservice.muteCapture(mute);
}
});
}
@@ -1166,7 +1240,7 @@
@Override
protected Boolean doRun() throws SameThreadException {
Log.i(TAG, "SipService.isCaptureMuted() thread running...");
- return Ringservice.sflph_config_is_capture_muted();
+ return Ringservice.isCaptureMuted();
}
}
@@ -1186,7 +1260,7 @@
Log.i(TAG, "SipService.confirmSAS() thread running...");
SecureSipCall call = (SecureSipCall) getCallById(callID);
call.setSASConfirmed(true);
- Ringservice.sflph_call_set_sas_verified(callID);
+ Ringservice.setSASVerified(callID);
}
});
}
@@ -1199,7 +1273,7 @@
@Override
protected List doRun() throws SameThreadException {
Log.i(TAG, "SipService.getCredentials() thread running...");
- StringVect map = Ringservice.sflph_config_get_supported_tls_method();
+ StringVect map = Ringservice.getSupportedTlsMethod();
return SwigNativeConverter.convertSwigToNative(map);
}
}
@@ -1218,8 +1292,7 @@
@Override
protected List doRun() throws SameThreadException {
Log.i(TAG, "SipService.getCredentials() thread running...");
- VectMap map = Ringservice.sflph_config_get_credentials(accountID);
- return SwigNativeConverter.convertCredentialsToNative(map);
+ return Ringservice.getCredentials(accountID).toNative();
}
}
@@ -1237,7 +1310,7 @@
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.setCredentials() thread running...");
ArrayList<HashMap<String, String>> list = (ArrayList<HashMap<String, String>>) creds;
- Ringservice.sflph_config_set_credentials(accountID, SwigNativeConverter.convertFromNativeToSwig(creds));
+ Ringservice.setCredentials(accountID, SwigNativeConverter.convertFromNativeToSwig(creds));
}
});
}
@@ -1248,7 +1321,7 @@
@Override
protected void doRun() throws SameThreadException, RemoteException {
Log.i(TAG, "SipService.registerAllAccounts() thread running...");
- Ringservice.sflph_config_register_all_accounts();
+ Ringservice.registerAllAccounts();
}
});
}
diff --git a/ring-android/src/cx/ring/utils/SwigNativeConverter.java b/ring-android/src/cx/ring/utils/SwigNativeConverter.java
index 748391b..3793644 100644
--- a/ring-android/src/cx/ring/utils/SwigNativeConverter.java
+++ b/ring-android/src/cx/ring/utils/SwigNativeConverter.java
@@ -34,12 +34,14 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import cx.ring.model.account.AccountDetailAdvanced;
import cx.ring.model.account.AccountDetailBasic;
import cx.ring.model.account.AccountDetailSrtp;
import cx.ring.model.account.AccountDetailTls;
+import cx.ring.service.Blob;
import cx.ring.service.ServiceConstants;
import cx.ring.service.StringMap;
import cx.ring.service.StringVect;
@@ -47,38 +49,24 @@
public class SwigNativeConverter {
- /**
- * Native to Swig
- */
-
- public static StringMap convertFromNativeToSwig(HashMap<String, String> nativemap) {
- StringMap swigmap = new StringMap();
-
- Set<String> keys = nativemap.keySet();
- for (String key : keys) {
- if (nativemap.get(key) == null) {
- swigmap.set(key, "");
- } else {
- swigmap.set(key, nativemap.get(key));
- }
- }
- return swigmap;
- }
-
public static VectMap convertFromNativeToSwig(List creds) {
ArrayList<HashMap<String, String>> todecode = (ArrayList<HashMap<String, String>>) creds;
VectMap toReturn = new VectMap();
for (HashMap<String, String> aTodecode : todecode) {
- StringMap entry = new StringMap();
- entry.set(AccountDetailBasic.CONFIG_ACCOUNT_PASSWORD, aTodecode.get(AccountDetailBasic.CONFIG_ACCOUNT_PASSWORD));
- entry.set(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME, aTodecode.get(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME));
- entry.set(AccountDetailBasic.CONFIG_ACCOUNT_REALM, aTodecode.get(AccountDetailBasic.CONFIG_ACCOUNT_REALM));
- toReturn.add(entry);
+ toReturn.add(new StringMap(aTodecode));
}
return toReturn;
}
+ public static Blob convertFromNativeToSwig(byte[] data) {
+ Blob toReturn = new Blob();
+ toReturn.reserve(data.length);
+ for (int i=0; i<data.length; i++)
+ toReturn.add(data[i]);
+ return toReturn;
+ }
+
private static String tryToGet(StringMap smap, String key) {
if (smap.has_key(key)) {
return smap.get(key);
@@ -87,102 +75,6 @@
}
}
- public static HashMap<String, String> convertAccountToNative(StringMap swigmap) {
- HashMap<String, String> nativemap = new HashMap<String, String>();
-
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS));
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME));
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME));
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_PASSWORD, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_PASSWORD));
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_TYPE, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_TYPE));
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_ENABLE, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_ENABLE));
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_USERAGENT, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_USERAGENT));
- nativemap.put(AccountDetailAdvanced.CONFIG_ACCOUNT_MAILBOX, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_MAILBOX));
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_AUTOANSWER, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_AUTOANSWER));
-
- if (swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_TYPE).equals("SIP"))
- {
-
- nativemap.put(AccountDetailBasic.CONFIG_ACCOUNT_ROUTESET, swigmap.get(AccountDetailBasic.CONFIG_ACCOUNT_ROUTESET));
- nativemap
- .put(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_EXPIRE, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_EXPIRE));
- nativemap.put(AccountDetailAdvanced.CONFIG_LOCAL_INTERFACE, swigmap.get(AccountDetailAdvanced.CONFIG_LOCAL_INTERFACE));
- nativemap.put(AccountDetailAdvanced.CONFIG_STUN_SERVER, swigmap.get(AccountDetailAdvanced.CONFIG_STUN_SERVER));
- nativemap
- .put(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATUS, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATUS));
- nativemap.put(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE,
- swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE));
- nativemap.put(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC,
- swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC));
- nativemap.put(AccountDetailAdvanced.CONFIG_ACCOUNT_DTMF_TYPE, swigmap.get(AccountDetailAdvanced.CONFIG_ACCOUNT_DTMF_TYPE));
- nativemap.put(AccountDetailAdvanced.CONFIG_KEEP_ALIVE_ENABLED, swigmap.get(AccountDetailAdvanced.CONFIG_KEEP_ALIVE_ENABLED));
- nativemap.put(AccountDetailAdvanced.CONFIG_LOCAL_PORT, swigmap.get(AccountDetailAdvanced.CONFIG_LOCAL_PORT));
- nativemap.put(AccountDetailAdvanced.CONFIG_PUBLISHED_ADDRESS, swigmap.get(AccountDetailAdvanced.CONFIG_PUBLISHED_ADDRESS));
- nativemap.put(AccountDetailAdvanced.CONFIG_PUBLISHED_PORT, swigmap.get(AccountDetailAdvanced.CONFIG_PUBLISHED_PORT));
- nativemap.put(AccountDetailAdvanced.CONFIG_PUBLISHED_SAMEAS_LOCAL, swigmap.get(AccountDetailAdvanced.CONFIG_PUBLISHED_SAMEAS_LOCAL));
- nativemap.put(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED, swigmap.get(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED));
- nativemap.put(AccountDetailAdvanced.CONFIG_RINGTONE_PATH, swigmap.get(AccountDetailAdvanced.CONFIG_RINGTONE_PATH));
- nativemap.put(AccountDetailAdvanced.CONFIG_STUN_ENABLE, swigmap.get(AccountDetailAdvanced.CONFIG_STUN_ENABLE));
- nativemap.put(AccountDetailAdvanced.CONFIG_AUDIO_PORT_MAX, swigmap.get(AccountDetailAdvanced.CONFIG_AUDIO_PORT_MAX));
- nativemap.put(AccountDetailAdvanced.CONFIG_AUDIO_PORT_MIN, swigmap.get(AccountDetailAdvanced.CONFIG_AUDIO_PORT_MIN));
-
- nativemap.put(AccountDetailSrtp.CONFIG_SRTP_KEY_EXCHANGE, swigmap.get(AccountDetailSrtp.CONFIG_SRTP_KEY_EXCHANGE));
- nativemap.put(AccountDetailSrtp.CONFIG_SRTP_RTP_FALLBACK, swigmap.get(AccountDetailSrtp.CONFIG_SRTP_RTP_FALLBACK));
- nativemap.put(AccountDetailSrtp.CONFIG_ZRTP_DISPLAY_SAS, swigmap.get(AccountDetailSrtp.CONFIG_ZRTP_DISPLAY_SAS));
- nativemap.put(AccountDetailSrtp.CONFIG_ZRTP_DISPLAY_SAS_ONCE, swigmap.get(AccountDetailSrtp.CONFIG_ZRTP_DISPLAY_SAS_ONCE));
- nativemap.put(AccountDetailSrtp.CONFIG_ZRTP_HELLO_HASH, swigmap.get(AccountDetailSrtp.CONFIG_ZRTP_HELLO_HASH));
- nativemap.put(AccountDetailSrtp.CONFIG_ZRTP_NOT_SUPP_WARNING, swigmap.get(AccountDetailSrtp.CONFIG_ZRTP_NOT_SUPP_WARNING));
- nativemap.put(AccountDetailSrtp.CONFIG_SRTP_ENABLE, swigmap.get(AccountDetailSrtp.CONFIG_SRTP_ENABLE));
-
- nativemap.put(AccountDetailTls.CONFIG_TLS_CIPHERS, swigmap.get(AccountDetailTls.CONFIG_TLS_CIPHERS));
- nativemap.put(AccountDetailTls.CONFIG_TLS_LISTENER_PORT, swigmap.get(AccountDetailTls.CONFIG_TLS_LISTENER_PORT));
- nativemap.put(AccountDetailTls.CONFIG_TLS_METHOD, swigmap.get(AccountDetailTls.CONFIG_TLS_METHOD));
- nativemap.put(AccountDetailTls.CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC, swigmap.get(AccountDetailTls.CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC));
- nativemap.put(AccountDetailTls.CONFIG_TLS_PASSWORD, swigmap.get(AccountDetailTls.CONFIG_TLS_PASSWORD));
- nativemap.put(AccountDetailTls.CONFIG_TLS_PRIVATE_KEY_FILE, swigmap.get(AccountDetailTls.CONFIG_TLS_PRIVATE_KEY_FILE));
- nativemap.put(AccountDetailTls.CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE, swigmap.get(AccountDetailTls.CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE));
- nativemap.put(AccountDetailTls.CONFIG_TLS_SERVER_NAME, swigmap.get(AccountDetailTls.CONFIG_TLS_SERVER_NAME));
- nativemap.put(AccountDetailTls.CONFIG_TLS_VERIFY_CLIENT, swigmap.get(AccountDetailTls.CONFIG_TLS_VERIFY_CLIENT));
- nativemap.put(AccountDetailTls.CONFIG_TLS_VERIFY_SERVER, swigmap.get(AccountDetailTls.CONFIG_TLS_VERIFY_SERVER));
- nativemap.put(AccountDetailTls.CONFIG_TLS_CERTIFICATE_FILE, swigmap.get(AccountDetailTls.CONFIG_TLS_CERTIFICATE_FILE));
- nativemap.put(AccountDetailTls.CONFIG_TLS_CA_LIST_FILE, swigmap.get(AccountDetailTls.CONFIG_TLS_CA_LIST_FILE));
- nativemap.put(AccountDetailTls.CONFIG_TLS_ENABLE, swigmap.get(AccountDetailTls.CONFIG_TLS_ENABLE));
- }
-
- return nativemap;
- }
-
- public static HashMap<String, String> convertCallDetailsToNative(StringMap swigmap) {
-
- HashMap<String, String> entry = new HashMap<String, String>();
-
- entry.put(ServiceConstants.call.CALL_TYPE, tryToGet(swigmap, ServiceConstants.call.CALL_TYPE));
- entry.put(ServiceConstants.call.PEER_NUMBER, tryToGet(swigmap, ServiceConstants.call.PEER_NUMBER));
- entry.put(ServiceConstants.call.DISPLAY_NAME, tryToGet(swigmap, ServiceConstants.call.DISPLAY_NAME));
- entry.put(ServiceConstants.call.CALL_STATE, tryToGet(swigmap, ServiceConstants.call.CALL_STATE));
- entry.put(ServiceConstants.call.CONF_ID, tryToGet(swigmap, ServiceConstants.call.CONF_ID));
- entry.put(ServiceConstants.call.TIMESTAMP_START, tryToGet(swigmap, ServiceConstants.call.TIMESTAMP_START));
- entry.put(ServiceConstants.call.ACCOUNTID, tryToGet(swigmap, ServiceConstants.call.ACCOUNTID));
-
- return entry;
- }
-
- public static ArrayList<HashMap<String, String>> convertCredentialsToNative(VectMap map) {
-
- ArrayList<HashMap<String, String>> toReturn = new ArrayList<HashMap<String, String>>();
-
- for (int i = 0; i < map.size(); ++i) {
- StringMap entry;
- HashMap<String, String> nativeEntry = new HashMap<String, String>();
- entry = map.get(i);
- nativeEntry.put(AccountDetailBasic.CONFIG_ACCOUNT_PASSWORD, entry.get(AccountDetailBasic.CONFIG_ACCOUNT_PASSWORD));
- nativeEntry.put(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME, entry.get(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME));
- nativeEntry.put(AccountDetailBasic.CONFIG_ACCOUNT_REALM, entry.get(AccountDetailBasic.CONFIG_ACCOUNT_REALM));
- toReturn.add(nativeEntry);
- }
- return toReturn;
- }
-
public static ArrayList<String> convertSwigToNative(StringVect vector) {
ArrayList<String> toReturn = new ArrayList<String>();
for (int i = 0; i < vector.size(); ++i) {