Исходящий вызов SipDemo

Я полностью вовлечен в приложение SipDemo. Я делаю Sip-звонок, и все готово. Я слышу голос, но другой человек не слышит мой голос.

Это мой регистрационный код: -

 public void initializeLocalProfile() {
    if (manager == null) {
        return;
    }
    if (me != null) {
        closeLocalProfile();
    }

    //sipcallid
   // username and password should be same
 //   sipAddress = "[email protected]";
    String domain =  sipAddress.substring(sipAddress.indexOf('@')+1);
    String username = sipAddress.substring(0,sipAddress.indexOf('@'));
    Toast.makeText(outcall.this, "domain = "+domain+" username "+username, Toast.LENGTH_LONG).show();

    try {
        SipProfile.Builder builder = new SipProfile.Builder(username, domain);
        builder.setPassword("123456");
        builder.setOutboundProxy(domain);
        builder.setDisplayName(username);
        builder.setAuthUserName(username);
        //builder.setDisplayName(username);
       // builder.setAutoRegistration(true);
       // builder.setSendKeepAlive(true);

        me = builder.build();

        manager.setRegistrationListener(me.getUriString(), new SipRegistrationListener() {
                public void onRegistering(String localProfileUri) {
                   updateStatus("Registering with SIP Server...");
                }

                public void onRegistrationDone(String localProfileUri, long expiryTime) {
                    updateStatus("Ready");
                }

                public void onRegistrationFailed(String localProfileUri, int errorCode,
                        String errorMessage) {
                    updateStatus("Registration failed.  Please check settings.");
                }
            });
    } catch (SipException se) {
        updateStatus("Connection error.");
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Это мой призыв к посвящению:

    // sipcallid = "[email protected]";
    updateStatus(sipcallid);

    try {
          SipAudioCall.Listener listener = new SipAudioCall.Listener() {

            @Override
            public void onCallEstablished(SipAudioCall call) {
                call.startAudio();
                //call.setSpeakerMode(true);
                call.toggleMute();
                updateStatus1("on call established");

            }
            @Override
            public void onCallEnded(SipAudioCall call) {
                updateStatus1("on call end");
                 finish();
            }



        };

        call = manager.makeAudioCall(me.getUriString(), sipcallid, listener, 30);

        updateStatus1(""+call.getState());
    }
    catch (Exception e) {
        Toast.makeText(outcall.this, "Error when trying to close manager"+ e.getMessage(), Toast.LENGTH_LONG).show();

        if (me != null) {
            try {
                manager.close(me.getUriString());
            } catch (Exception ee) {
                Toast.makeText(outcall.this, "ee"+ e.getMessage(), Toast.LENGTH_LONG).show();
                ee.printStackTrace();
            }
        }
        if (call != null) {
            call.close();
        }
    }
}

Пожалуйста, кроме. Я слышу голос другого человека, но другой человек не слышит мой голос.

пожалуйста, помогите мне!. Спасибо за ваше время.


person user2160008    schedule 16.04.2013    source источник
comment
Эй, я работаю над тем же кодом, и я не подключался к своему sip-серверу. Вы нашли какое-нибудь решение? Пожалуйста, свяжитесь со мной.   -  person mehmetakifalp    schedule 20.11.2014


Ответы (2)


Я вижу, что вы вызываете call.toggleMute()

Может быть, вы отключили микрофон? В приложении SipDemo есть кнопка, которая включает микрофон.

public boolean onTouch(View v, MotionEvent event) {
    if (call == null) {
        return false;
    } else if (event.getAction() == MotionEvent.ACTION_DOWN && call != null && call.isMuted()) {
        call.toggleMute();
    } else if (event.getAction() == MotionEvent.ACTION_UP && !call.isMuted()) {
        call.toggleMute();
    }
    return false;
}

Может быть, вы просто отключаете микрофон, когда инициируете вызов, но никогда не включаете его?

person PeterH    schedule 23.05.2013

Обычно он возникает, когда ваш IP-адрес является адресом NAT. Android не поддерживает NAT по умолчанию. Для поддержки NAT вы будете использовать другие внешние библиотеки, такие как CSipSimple.

person beka    schedule 18.03.2014