Autore Topic: Android.Net.Sip: come si ricevono le chiamate?  (Letto 298 volte)

Offline dxmann

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 10
Android.Net.Sip: come si ricevono le chiamate?
« il: 11 Aprile 2017, 09:34:34 CEST »
0
Ciao a tutti! sono nuovo nel forum.
Sto facendo un'applicazione che mi deve gestire una sessione SIP. Per Farlo ho scelto Android.Net.Sip.
Riesco a fare la registrazione dell'utente e ad iniziare delle sessioni con SipSession, ma non capisco come fare a ricevere le chiamate.
Ho seguito l'applicazione d'esempio che fornisce google in uno dei suoi tutorial, ma nulla di fatto.
Allego parte del codice incriminato:
NOTA: sto programmando in C#/xamarin, quindi potrei avere qualche difficoltà in più. Traslitterare il codice non dovrebbe essere comunque un problema.
Se mi dite che posso caricare anche codice C# la prossima volta lo carico
Grazie a tutti in anticipo! :)
Codice: [Seleziona]
public class IncomingCallReceiver extends BroadcastReceiver {
    /**
     * Processes the incoming call, answers it, and hands it over to the
     * WalkieTalkieActivity.
     * @param context The context under which the receiver is running.
     * @param intent The intent being received.
     */
    @Override
    public void onReceive(Context context, Intent intent) {
        SipSession incomingCall = null;
        try {

            SipSession.Listener listener = new SipSession.Listener() {
                @Override
                public void onRinging(SipAudioCall call, SipProfile caller) {
                   //...
                }
            };
        } catch (Exception e) {
            if (incomingCall != null) {
                incomingCall.close();
            }
        }
    }
}
nell main activity
Codice: [Seleziona]
IntentFilter filter = new IntentFilter();
        filter.addAction("android.SipDemo.INCOMING_CALL");
        callReceiver = new IncomingCallReceiver();
        this.registerReceiver(callReceiver, filter);
//....
public void initializeLocalProfile() {
try {
            SipProfile.Builder builder = new SipProfile.Builder(username, domain);
            builder.setPassword(password);
            me = builder.build();

            Intent i = new Intent();
            i.setAction("android.SipDemo.INCOMING_CALL");
            PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, Intent.FILL_IN_DATA);
            manager.open(me, pi, null);
            //...
        } catch (ParseException pe) {
            updateStatus("Connection Error.");
        } catch (SipException se) {
            updateStatus("Connection error.");
        }
}