Moved conference factory URI from core to proxy config + check if exists before using group chat features
This commit is contained in:
parent
a9e6c85493
commit
9dabd0e86b
7 changed files with 50 additions and 13 deletions
|
@ -13,6 +13,7 @@
|
||||||
<entry name="reg_sendregister" overwrite="true">1</entry>
|
<entry name="reg_sendregister" overwrite="true">1</entry>
|
||||||
<entry name="nat_policy_ref" overwrite="true">nat_policy_default_values</entry>
|
<entry name="nat_policy_ref" overwrite="true">nat_policy_default_values</entry>
|
||||||
<entry name="realm" overwrite="true">sip.linphone.org</entry>
|
<entry name="realm" overwrite="true">sip.linphone.org</entry>
|
||||||
|
<entry name="conference_factory_uri" overwrite="true">sip:conference-factory@sip.linphone.org</entry>
|
||||||
</section>
|
</section>
|
||||||
<section name="nat_policy_default_values">
|
<section name="nat_policy_default_values">
|
||||||
<entry name="stun_server" overwrite="true">stun.linphone.org</entry>
|
<entry name="stun_server" overwrite="true">stun.linphone.org</entry>
|
||||||
|
|
|
@ -37,7 +37,6 @@ dtmf_player_amp=0.1
|
||||||
ec_calibrator_cool_tones=1
|
ec_calibrator_cool_tones=1
|
||||||
|
|
||||||
[misc]
|
[misc]
|
||||||
conference_factory_uri=sip:conference-factory@sip.linphone.org
|
|
||||||
max_calls=10
|
max_calls=10
|
||||||
history_max_size=100
|
history_max_size=100
|
||||||
enable_basic_to_client_group_chat_room_migration=0
|
enable_basic_to_client_group_chat_room_migration=0
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
<!-- Global -->
|
<!-- Global -->
|
||||||
<string name="default_domain">sip.linphone.org</string><!-- Set the default domain used for account creation/addresses -->
|
<string name="default_domain">sip.linphone.org</string><!-- Set the default domain used for account creation/addresses -->
|
||||||
|
<string name="default_conference_factory_uri">sip:conference-factory@sip.linphone.org</string>
|
||||||
<string name="sync_account_type">org.linphone</string> <!-- Change package ! -->
|
<string name="sync_account_type">org.linphone</string> <!-- Change package ! -->
|
||||||
<string name="sync_mimetype">vnd.android.cursor.item/org.linphone.profile</string> <!-- Change package, leave .profile at the end. Also change res/xml/contacts.xml ! -->
|
<string name="sync_mimetype">vnd.android.cursor.item/org.linphone.profile</string> <!-- Change package, leave .profile at the end. Also change res/xml/contacts.xml ! -->
|
||||||
<string name="rls_uri">sip:rls@sip.linphone.org</string>
|
<string name="rls_uri">sip:rls@sip.linphone.org</string>
|
||||||
|
|
|
@ -723,6 +723,15 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
|
||||||
|
|
||||||
mLc.migrateLogsFromRcToDb();
|
mLc.migrateLogsFromRcToDb();
|
||||||
|
|
||||||
|
// Migrate existing linphone accounts to have conference factory uri set
|
||||||
|
for (ProxyConfig lpc : mLc.getProxyConfigList()) {
|
||||||
|
if (lpc.getConferenceFactoryUri() == null && lpc.getIdentityAddress().getDomain().equals(getString(R.string.default_domain))) {
|
||||||
|
lpc.edit();
|
||||||
|
lpc.setConferenceFactoryUri(getString(R.string.default_conference_factory_uri));
|
||||||
|
lpc.done();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mServiceContext.getResources().getBoolean(R.bool.enable_push_id)) {
|
if (mServiceContext.getResources().getBoolean(R.bool.enable_push_id)) {
|
||||||
initPushNotificationsService();
|
initPushNotificationsService();
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ import org.linphone.core.Address;
|
||||||
import org.linphone.core.ChatRoom;
|
import org.linphone.core.ChatRoom;
|
||||||
import org.linphone.core.ChatRoomListenerStub;
|
import org.linphone.core.ChatRoomListenerStub;
|
||||||
import org.linphone.core.Core;
|
import org.linphone.core.Core;
|
||||||
|
import org.linphone.core.ProxyConfig;
|
||||||
import org.linphone.mediastream.Log;
|
import org.linphone.mediastream.Log;
|
||||||
import org.linphone.ui.ContactSelectView;
|
import org.linphone.ui.ContactSelectView;
|
||||||
import org.linphone.contacts.ContactsUpdatedListener;
|
import org.linphone.contacts.ContactsUpdatedListener;
|
||||||
|
@ -336,9 +337,15 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
Address participant = mContactsSelected.get(0).getAddress();
|
Address participant = mContactsSelected.get(0).getAddress();
|
||||||
ChatRoom chatRoom = lc.findOneToOneChatRoom(lc.getDefaultProxyConfig().getContact(), participant);
|
ChatRoom chatRoom = lc.findOneToOneChatRoom(lc.getDefaultProxyConfig().getContact(), participant);
|
||||||
if (chatRoom == null) {
|
if (chatRoom == null) {
|
||||||
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
mChatRoom.addListener(mChatRoomCreationListener);
|
if (lpc != null && lpc.getConferenceFactoryUri() != null) {
|
||||||
mChatRoom.addParticipant(participant);
|
chatRoom = lc.getChatRoom(participant);
|
||||||
|
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
||||||
|
} else {
|
||||||
|
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||||
|
mChatRoom.addListener(mChatRoomCreationListener);
|
||||||
|
mChatRoom.addParticipant(participant);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
||||||
}
|
}
|
||||||
|
@ -361,7 +368,14 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
|
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
|
||||||
ContactAddress ca = mSearchAdapter.getContacts().get(i);
|
ContactAddress ca = mSearchAdapter.getContacts().get(i);
|
||||||
removeContactFromSelection(ca);
|
Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
||||||
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
|
if (lpc == null || lpc.getConferenceFactoryUri() == null) {
|
||||||
|
ChatRoom chatRoom = lc.getChatRoom(ca.getAddress());
|
||||||
|
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
||||||
|
} else {
|
||||||
|
removeContactFromSelection(ca);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -78,10 +78,16 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
||||||
} else {
|
} else {
|
||||||
mWaitLayout.setVisibility(View.VISIBLE);
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
if (lpc != null && lpc.getConferenceFactoryUri() != null) {
|
||||||
mChatRoom.addListener(mChatRoomCreationListener);
|
room = lc.getChatRoom(participant);
|
||||||
mChatRoom.addParticipant(participant);
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
||||||
|
} else {
|
||||||
|
mWaitLayout.setVisibility(View.VISIBLE);
|
||||||
|
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||||
|
mChatRoom.addListener(mChatRoomCreationListener);
|
||||||
|
mChatRoom.addParticipant(participant);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ import org.linphone.core.ChatRoom;
|
||||||
import org.linphone.core.ChatRoomListenerStub;
|
import org.linphone.core.ChatRoomListenerStub;
|
||||||
import org.linphone.core.Core;
|
import org.linphone.core.Core;
|
||||||
import org.linphone.core.Factory;
|
import org.linphone.core.Factory;
|
||||||
|
import org.linphone.core.ProxyConfig;
|
||||||
import org.linphone.mediastream.Log;
|
import org.linphone.mediastream.Log;
|
||||||
|
|
||||||
public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
|
@ -199,10 +200,16 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
||||||
} else {
|
} else {
|
||||||
mWaitLayout.setVisibility(View.VISIBLE);
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
if (lpc != null && lpc.getConferenceFactoryUri() != null) {
|
||||||
mChatRoom.addListener(mChatRoomCreationListener);
|
room = lc.getChatRoom(participant);
|
||||||
mChatRoom.addParticipant(participant);
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
||||||
|
} else {
|
||||||
|
mWaitLayout.setVisibility(View.VISIBLE);
|
||||||
|
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||||
|
mChatRoom.addListener(mChatRoomCreationListener);
|
||||||
|
mChatRoom.addParticipant(participant);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (id == R.id.add_contact) {
|
} else if (id == R.id.add_contact) {
|
||||||
Address addr = Factory.instance().createAddress(sipUri);
|
Address addr = Factory.instance().createAddress(sipUri);
|
||||||
|
|
Loading…
Reference in a new issue