Как объединить вызов программным способом, когда выполняется другой вызов (конференц-вызов)
Мое требование таково: Скажите, что я вызываю номер в это время, и я хочу позвонить другому номеру Programetically. До сих пор я сделал это: я могу позвонить на конкретный номер, пока уже идет какой-то звонок. Например, предположим, что я звоню на номер 123 и после 1мин. С Alarm Manger
У меня есть событие триггера для вызова другого номера 456, и это делается!
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:456"));
startActivity(intent);
Я использую такое намерение позвонить, и теперь я могу видеть экран на своем телефоне, который просит объединить звонок
![enter image description here]()
На этом изображении вы можете увидеть кнопку "Слияние вызовов". Теперь, когда пользователь нажмет на "Объединить", он объединит все 3 вызова, мой запрос - это я хочу сделать это программно не с пользовательским интерфейсом.
Ответы
Ответ 1
Ваш вопрос казался интересным, поэтому я начал копаться в Android Source. Вот что я нашел:
Активность на картинке, которую вы опубликовали, называется InCallUI
Когда вы начнете оглядываться, вы найдете InCallPresenter, который по строке 463 имеет:
final boolean canMerge = activeCall.can(Capabilities.MERGE_CALLS);
а затем в точке 472:
CallCommandClient.getInstance().merge();
когда вы проверяете этот метод merge() в CallCommandClient, вы найдете его ICallCommandService интерфейс, который, я думаю, является тем, что вы ищете:)
Инициализация этого CallCommandClient находится в CallHandlerService вокруг строки 193.
Надеюсь, это поможет и удачи.
PS. Перечисленные API-интерфейсы - это, в основном, встроенные элементы Android. Возможно, вам придется использовать отражение, чтобы позвонить ему, или это может быть невозможно вообще - оно может быть недоступным для вашего приложения, потому что оно не помечено как системное приложение.
Ответ 2
Android API не поддерживает функцию слияния вызовов, вы можете увидеть эту тему для этого.
https://groups.google.com/forum/?fromgroups#!searchin/android-developers/conference $20call/android-developers/6OXDEe0tCks/8cuKdW1J9b8J
но то, что вы можете сделать, это открыть экран телефонных звонков с помощью helpl, чтобы пользователь мог добавить другой вызов или слить вызов.
Ответ 3
Вы не можете управлять конференцией с помощью смартфона. Вам нужна промежуточная услуга, которая может сделать это за вас. Вы можете запрограммировать диспетчер конференций, используя CCXML.
Voxeo имеет хорошо размещенную платформу для реализации CCXML, и вы можете посмотреть их документацию о том, как настроить конференц-связь. В "Обучение CCXML 1.0\Multi-Party Conferencing в CCXML 1.0" есть примеры.
Вы можете разрабатывать и тестировать бесплатно на Voxeo, и они только начнут заряжать вас, если вы поместите его в производство. Другим вариантом является Twillio.
Вот ссылка на как вы программируете конференцию на своей платформе.
Проверьте ссылки, в которых вы получите полезную информацию. # любезность-SO
Ответ 4
Afaik. В SDK нет API, которые программно выполняют слияние вызовов.
Вам необходимо работать с RIL (Radio Interface Layer)
для конференц-связи, для использования в андроидах для звонков по телефону.
Уровень интерфейса Android Radio (RIL) обеспечивает уровень абстракции между услугами телефонии Android (android.telephony) и радиооборудованием. RIL является радиоагностическим и включает в себя поддержку радиостанций на базе глобальной системы мобильной связи (GSM).
Смотрите здесь: http://www.kandroid.org/online-pdk/guide/telephony.html
Обновление
Как код модема разговаривает с кодом Android
http://fabiensanglard.net/cellphoneModem/index2.php
http://www.e-consystems.com/blog/android/?p=498
Итак, вам нужно написать команды модема AT в сокете, затем rild
вызвать обратный вызов в библиотеку поставщика, затем библиотека поставщика, в свою очередь, делегирует радиопрограмму.
Ответ 5
Нет апи для получения конференц-вызова в android, вы можете играть с корневой системой и выполнять свою работу.
официально андроид не предоставляет api для конференц-вызова. Вы можете изучить больше для игры с правами доступа здесь
http://www.kandroid.org/online-pdk/guide/telephony.html