Как сделать систему входящих звонков на Android с Jitsi?

Я хотел бы знать, как лучше всего реализовать систему вызовов (с экраном входящих звонков) на телефоне Android.

В настоящее время я работаю с Jitsi (открытым потоковым репозиторием) и у меня есть система аутентификации с Firebase, но я не знаю, как создавать звонки между зарегистрированными пользователями с одного мобильного телефона на другой мобильный.

Это код для запуска видеозвонка в "комнате", но в настоящее время пользователи входят только в общую комнату без экрана для входящих вызовов (с возможностью либо принять запрос, либо отклонить вызов):

public class MainActivity extends JitsiMeetActivity
{
    private JitsiMeetView view;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.startCall();
    }

    public String generateJWS(String name, String email)
    {
        //MAP FOR TAG: "CONTEXT"
        Map<String, Map<String,String>> context = new HashMap<String,Map<String,String>>();
        //MAP FOR TAG: "USER"
        Map<String,String> user = new HashMap<String, String>();
        //ADD USER INFORMATION TO MAP (USER SETTINGS FOR A NEW CALL)
        user.put("avatar", new String("https://vignette.wikia.nocookie.net/dragonball/images/3/35/Esfera_del_dragon_4_estrellas.png/revision/latest?cb=20140105064853&path-prefix=es"));
        user.put("name", new String(name));
        user.put("email", new String(email));
        //INSERT "USER" TAG INSIDE OF "CONTEXT" TAG
        context.put("user",user);
        //SECRET KEY (HS256) FOR SIGN THE TOKEN.
        Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
        //CONSTRUCTION OF JWS
        String jws = Jwts.builder()
                .claim("context",context)
                .setSubject("meet.jit.si")
                .claim("room","*")
                .signWith(key)
                .compact();
        return jws;
    }

    public void startCall()
    {
        setWelcomePageEnabled(true);
        //NEW INSTANCE OF JITSI MEET VIEW
        view = new JitsiMeetView(this);
        //CALL SETTINGS BUNDLE
        Bundle config = new Bundle();
        config.putBoolean("startWithAudioMuted", true);
        config.putBoolean("startWithVideoMuted", false);
        //WEB TOKEN WITH USER PARAMETERS 
        //THIS DATA WILL BE GET FROM FIREBASE (I GET ID, NAME, AND EMAIL FROM THE OFICIAL PROJECT), CURRENTLY THIS IS ONLY A TEST
        String token = this.generateJWS("Felipe Morales","fmorales@gn.cl");
        //CALL URL BUNDLE (ROOM+SETTINGS+JWT)
        Bundle urlObject = new Bundle();
        urlObject.putBundle("config", config);
        urlObject.putString("url", "https://meet.jit.si/1234f?jwt="+token);
        //LOAD URLOBJECT IN THE CURRENT VIEW 
        view.loadURLObject(urlObject);
        //START STREAMING VIEW
        setContentView(view);
    }
}

В официальном проекте у меня есть ListView зарегистрированных пользователей (из этого списка я получаю идентификатор этого пользователя в базе данных), и идея такова: когда текущий зарегистрированный пользователь нажимает на элемент списка, он / она может либо текстовые сообщения или позвонить выбранному пользователю.

Я искал решение и знал о "Firebase Cloud Messaging". Я думаю, что это лучшее решение (потому что я работаю с базой данных Firebase) для создания системы чата, но я не знаю, смогу ли я использовать тот же API для отправки запроса между пользователями, чтобы начать вызов.

Jitsi включает в свой репозиторий вид входящего звонка, в общем, мой вопрос, как я могу создать систему между зарегистрированными пользователями для отправки / получения запроса на Android? Могу ли я использовать "Firebase Cloud Messaging" для этого? Какое лучшее решение?

0 ответов

Другие вопросы по тегам