Differences between revisions 2 and 3
Revision 2 as of 2006-07-21 10:10:39
Size: 5226
Editor: Kurgan
Comment:
Revision 3 as of 2006-07-21 18:28:12
Size: 6082
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 25: Line 25:

Il Qualify e` un esperimento per capire se posso risolvere il problema delle connessioni rifiutate e tenere attivi i NAT sui router esterni alla mia rete.
Line 84: Line 82:

Ho fatto prove con "qualify=yes" in asterisk, e ho visto che il telefono, seppure risponda al ping, in determinate condizioni ignora qualsiasi pacchetto SIP. A naso, mi viene da dire che il client SIP si addormenta in qualche modo. Sul display del telefono risulto ancora registrato, ma di fatto non sono raggiungibile... e quando chiamo, il telefono si impalla e non accetta piu` comandi escluso il tasto "vivavoce" che funziona ancora. Devo spegnerlo per farlo riprendere.

 * Quando sono dietro ad un NAT, ed imposto in asterisk "nat=yes", il SIP funziona correttamente in quanto l'asterisk ingora l' ip privato che il telefono infila nelle richieste SIP e risponde all'ip pubblico del telefono, pero` l' RTP che esce dall' asterisk verso il telefono viene indirizzato verso l' IP privato, col risultato che non si sente nulla! Questo non capisco se sia un problema di come Asterisk gestisce il NAT (solo per sip e non per rtp?) o di cosa altro. Chiaramente e` un enorme limite che deve essere superato.

Configurazione del Nokia E60

Il Nokia E60 ha un client voip SIP a bordo. A parte che la configurazione sembra oscenamente complessa, e che ovviamente qualche bug del software aiuta a rendere le cose piu` interessanti, piu` o meno in prima battuta devo dire che funziona.

Configurazione di Asterisk

La configurazione di Asterisk che sto usando ora e`:

; Nokia E60 Kurgan
[13]
type=friend
context=interni
username=13
secret=password
host=dynamic
callerid= "Kurgan Cell VOIP" <13>
canreinvite=no
pickupgroup=1
callgroup=1
qualify=yes

E` importante notare che il telefono non supporta la notifica di messaggi in attesa in segreteria, per cui non posso usare il comando "mailbox=xx". Se ci provo, tendenzialmente il telefono non riceve piu` chiamate, o meglio (fa piu` ridere) inizia a suonare quando l'asterisk e` andato in timeout e rinuncia alla chiamata.

Configurazione del telefono

Nota: in alcuni campi il telefono aggiunge da solo "sip:" in testa ai valori, e` normale.

Menu` Tools, Settings, Connection, SIP settings:

  • Profile name: quello che volete
  • Service profile: IETF
  • Default Access Point: l' access point WLAN che volete usare (si sceglie dalla lista)
  • Public User Name: qui ci va lo username impostato in asterisk in sip.conf, poi "@" e poi l'indirizzo ip dell'asterisk. Apparentemente qualsiasi altra cosa provoca il fallimento della registrazione senza che passi nemmeno un pacchetto fra il telefono e l'asterisk (due ore per scoprirlo!). Quindi, per esempio, nel nostro caso ci va 13@10.1.42.254. La cosa curiosa e` che pare che l'indirizzo IP qui indicato non venga mai usato di fatto nelle connessioni... ah, mistero!

  • Use compression: NO
  • Registration: Always On (se volete ricevere le chiamate) altrimenti "When needed"
  • Use Security: NO (se ci si mette YES la registrazione fallisce, anche se non capisco perche`. Tra parentesi, la sicurezza la usa anche se si mette "no", perche` si autentica sull' Asterisk.)

Poi, nel menu` "Proxy Server":

  • Proxy Server Address: L'indirizzo IP (o hostname) del server Asterisk
  • Realm: Il realm definito in Asterisk. Attenzione, che di default il telefono ti mette la prima lettera della parola maiuscola, il che e` MALE. Quindi, ricordate di premere il tasto "#" per passare in minuscolo.
  • User Name: lo username SIP (nel nostro caso e` "13")
  • Password: La password (nel nostro caso e` "password"
  • Allow Loose Routing: con il default "yes" funziona, pero` devo capire a cosa serve. Immagino che sia una cosa simile al "reinvite", pero` non ne sono sicuro. Nel dubbio, ho negato il reinvite nell' Asterisk, il che dovrebbe rendere "nulla" questa configurazione.
  • Transport Type: UDP
  • Port: 5060

Quindi si risale di un livello e si va nel menu` "Registrar server"

  • Registrar server Address: L'indirizzo IP (o hostname) del server Asterisk
  • Realm: lasciare vuoto (none)
  • Username: lasciare vuoto (none)
  • Password: lasciare vuoto (none). Immagino che questi tre campi prendano il default dal proxy server...
  • Transport Type: UDP
  • Port: 5060

Considerazioni varie da approfondire

  • Il telefono gestisce un solo access point per ogni configurazione SIP, il che significa che se si usano piu` access point (veramente, piu` ESSID) diversi per accedere allo stesso server SIP, occorre configurare un server SIP per ogni access point (per fortuna gli account si possono copiare) modificando solo l'access point di default. Tutti gli account SIP vanno poi inseriti nello stesso gruppo sotto "Settings, Internet Tel Settings".
  • Non ho capito perche`, ma ogni tanto il telefono rifiuta le richieste SIP in ingresso dall' Asterisk.

4578.715141  10.1.42.254 -> 10.1.42.200  SIP/SDP Request: INVITE sip:13@10.1.42.200, with session description
4578.721117  10.1.42.200 -> 10.1.42.254  ICMP Destination unreachable (Port unreachable)
4579.577444  10.1.42.254 -> 10.1.42.200  SIP/SDP Request: INVITE sip:13@10.1.42.200, with session description
4579.740908  10.1.42.200 -> 10.1.42.254  ICMP Destination unreachable (Port unreachable)
4580.578160  10.1.42.254 -> 10.1.42.200  SIP/SDP Request: INVITE sip:13@10.1.42.200, with session description
4580.768819  10.1.42.200 -> 10.1.42.254  ICMP Destination unreachable (Port unreachable)
4581.577890  10.1.42.254 -> 10.1.42.200  SIP/SDP Request: INVITE sip:13@10.1.42.200, with session description
4581.997366  10.1.42.200 -> 10.1.42.254  ICMP Destination unreachable (Port unreachable)
4582.578600  10.1.42.254 -> 10.1.42.200  SIP/SDP Request: INVITE sip:13@10.1.42.200, with session description
4582.910968  10.1.42.200 -> 10.1.42.254  ICMP Destination unreachable (Port unreachable)
4583.578332  10.1.42.254 -> 10.1.42.200  SIP/SDP Request: INVITE sip:13@10.1.42.200, with session description
4583.730873  10.1.42.200 -> 10.1.42.254  ICMP Destination unreachable (Port unreachable)

In questo caso succede una cosa ridicola: dopo che l' asterisk e` andato in timeout, il telefono suona!

Ho fatto prove con "qualify=yes" in asterisk, e ho visto che il telefono, seppure risponda al ping, in determinate condizioni ignora qualsiasi pacchetto SIP. A naso, mi viene da dire che il client SIP si addormenta in qualche modo. Sul display del telefono risulto ancora registrato, ma di fatto non sono raggiungibile... e quando chiamo, il telefono si impalla e non accetta piu` comandi escluso il tasto "vivavoce" che funziona ancora. Devo spegnerlo per farlo riprendere.

  • Quando sono dietro ad un NAT, ed imposto in asterisk "nat=yes", il SIP funziona correttamente in quanto l'asterisk ingora l' ip privato che il telefono infila nelle richieste SIP e risponde all'ip pubblico del telefono, pero` l' RTP che esce dall' asterisk verso il telefono viene indirizzato verso l' IP privato, col risultato che non si sente nulla! Questo non capisco se sia un problema di come Asterisk gestisce il NAT (solo per sip e non per rtp?) o di cosa altro. Chiaramente e` un enorme limite che deve essere superato.

Asterisk/TelefoniNokiaE60 (last edited 2009-04-12 17:33:24 by localhost)