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