- Modificato
Ciao a tutti,
non uso minimamente il telefono di casa, infatti sono da 6 mesi totalmente senza e non mi manca, ma siccome mi annoiavo ho pensato di installare un asterisk sul mio openwrt per cercare di capire se e come tirare su anche il voip di iliad al posto della IB. Non ho neanche idea di cosa eventualmente potrei farci (una segreteria telefonica?), ma tutto mi aspettavo fuorchè bloccarmi all'autenticazione.
Ho preso i dati VoIP dalla IB (tirata fuori dalla naftalina solo per questo!), ovvero
SIP id <numero>
dominio voip.iliad.it
proxy proxy-voip-2.iliad.it
user <numero>
pw <password>
codec G.729a, G.711 A-Law (PCMA 8000)
Su openwrt, son partito dal minimo, installando asterisk e asterisk-pjsip
Ho poi creato la configurazione pjsip partendo da un po' di esempi presi qui e là su internet..
[global]
user_agent=PBX
endpoint_identifier_order=ip,username
[acl]
type = acl
; deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1
permit = 192.168.0.0/24
; Basic IPv6 UDP transport
;
[transport-udp-ipv6]
type=transport
protocol=udp
bind=[::]:5060
[peer-<numero>]
type = endpoint
aors = peer-<numero>
outbound_proxy = sip:proxy-voip-2.iliad.it
disallow = all
allow = alaw
allow = ulaw
allow = gsm
context = context-incoming-<numero>
outbound_auth = peer-<numero>_auth
direct_media = no
from_user = <numero>
from_domain = voip.iliad.it
[peer-<numero>]
type = aor
contact = sip:voip.iliad.it
outbound_proxy = sip:proxy-voip-2.iliad.it
qualify_frequency = 0
[peer-<numero>_auth]
type = auth
auth_type = userpass
username = <numero>
password = <password>
realm = voip.iliad.it
[peer-<numero>_reg]
type = registration
endpoint = peer-<numero>
transport = transport-udp-ipv6
outbound_auth = peer-<numero>_auth
server_uri = sip:voip.iliad.it
client_uri = sip:<numero>@voip.iliad.it
outbound_proxy = sip:proxy-voip-2.iliad.it
contact_user = <numero>
expiration = 3600
line = yes
forbidden_retry_interval = 1
fatal_retry_interval = 1
[peer-<numero>_id]
type = identify
endpoint = peer-<numero>
match = proxy-voip-2.iliad.it
srv_lookups = yes
Risultato? non si registra e non capisco l'origine del problema
[Nov 10 11:54:49] WARNING[15331]: res_pjsip_outbound_registration.c:1391 handle_registration_response: '404' fatal response received from 'sip:voip.iliad.it' on registration attempt to 'sip:<numero>@voip.iliad.it', retrying in '1' seconds
<--- Transmitting SIP request (642 bytes) to UDP:[<ipv6>]:5060 --->
REGISTER sip:proxy-voip-2.iliad.it SIP/2.0
Via: SIP/2.0/UDP [<ipv6>]:5060;rport;branch=z9hG4bKPjb1d43669-8cbf-4298-a947-7328b07f1cfc
From: <sip:<numero>@voip.iliad.it>;tag=8f673339-2e58-4652-a3c7-85e124be929a
To: <sip:<numero>@voip.iliad.it>
Call-ID: 869cecb8-29ea-4c00-808e-8cd51479ff83
CSeq: 47000 REGISTER
Contact: <sip:<numero>@[<ipv6>]:5060;line=mafjyuq>
Expires: 3600
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, INFO, MESSAGE, REFER
Route: <sip:voip.iliad.it>
Max-Forwards: 70
User-Agent: PBX
Content-Length: 0
<--- Received SIP response (389 bytes) from UDP:[<ipv6>]:5060 --->
SIP/2.0 100 Trying
Call-ID: 869cecb8-29ea-4c00-808e-8cd51479ff83
CSeq: 47000 REGISTER
From: <sip:<numero>@voip.iliad.it>;tag=8f673339-2e58-4652-a3c7-85e124be929a
To: <sip:<numero>@voip.iliad.it>
Via: SIP/2.0/UDP [<ipv6>]:5060;received=<ipv6>;rport=5060;branch=z9hG4bKPjb1d43669-8cbf-4298-a947-7328b07f1cfc
Content-Length: 0
<--- Received SIP response (463 bytes) from UDP:[<ipv6>]:5060 --->
SIP/2.0 404 Domain not bound
Call-ID: 869cecb8-29ea-4c00-808e-8cd51479ff83
CSeq: 47000 REGISTER
From: <sip:<numero>@voip.iliad.it>;tag=8f673339-2e58-4652-a3c7-85e124be929a
To: <sip:<numero>@voip.iliad.it>;tag=00-08044-02fae98c-058241f27
Via: SIP/2.0/UDP [<ipv6>]:5060;received=<ipv6>;rport=5060;branch=z9hG4bKPjb1d43669-8cbf-4298-a947-7328b07f1cfc
Server: Cirpack/v4.88 (gw_sip)
Content-Length: 0
idee? qualcuno ha una configurazione funzionante? (e magari mi spiega anche cosa ci potrei fare
Edit:
Ok, più semplice del previsto, lascio qualche info se qualcuno vuole giocare.
Intanto, pacchetti openwrt utilizzati sono un paio in più
asterisk
asterisk-pjsip
asterisk-res-rtp-asterisk
asterisk-app-verbose
Config (dentro c'è anche un client voip sennò non potevo provare nulla ho usato un microsip solo per leggerezza)
Note:
- il doppio trasporto (uno ipv4 e uno ipv4) serve perchè la mia rete interna è tutta ipv4 quindi non riuscivo a collegarmi col microsip
- qualify_frequency sull'endpoint iliad blocca le chiamate in uscita se non si mette a 0
[udp_transport_ipv6]
type = transport
protocol = udp
bind = [::]
[udp_transport_ipv4]
type = transport
protocol = udp
bind = 192.168.1.1
[microsip]
type = endpoint
context = internal
disallow = all
allow = alaw
aors = microsip
auth = microsip_auth
[microsip]
type = aor
max_contacts = 1
qualify_frequency = 25
[microsip_auth]
type = auth
auth_type = userpass
username = microsip
password = 12345678
[iliad]
type = endpoint
aors = iliad
outbound_proxy = sip:proxy-voip-2.iliad.it\;lr
disallow = all
allow = alaw
context = external
outbound_auth = iliad_auth
direct_media = no
[iliad]
type = aor
contact = sip:voip.iliad.it
outbound_proxy = sip:proxy-voip-2.iliad.it\;lr
qualify_frequency = 0
[iliad_auth]
type = auth
auth_type = userpass
username = <numero di telefono>
password = <password>
realm = voip.iliad.it
[iliad_reg]
type = registration
endpoint = iliad
transport = udp_transport_ipv6
outbound_auth = iliad_auth
server_uri = sip:voip.iliad.it
client_uri = sip:<numero di telefono>@voip.iliad.it
outbound_proxy = sip:proxy-voip-2.iliad.it\;lr
contact_user = <numero di telefono>
expiration = 86400
line = yes
[iliad_id]
type = identify
endpoint = iliad
match = proxy-voip-2.iliad.it
srv_lookups = yes
E ovviamente le extensions
[external]
exten => <numero di telefono>,1,Goto(internal,001,1)
[internal]
exten => 001,1,Verbose(2, Chiamata in entrata da "${CALLERID(num)}")
same => n,Dial(PJSIP/microsip)
same => n,Hangup()
exten => _X.,1,Set(SAFE_EXTEN=${FILTER(0-9,${EXTEN})})
same => n,Set(ORIGINAL_EXTEN=${EXTEN})
same => n,GotoIf($["${EXTEN}" != "${SAFE_EXTEN}"]?error,1)
same => n,Verbose(2, Chiamata in uscita verso "${SAFE_EXTEN}")
same => n,Dial(PJSIP/${SAFE_EXTEN}@iliad)
same => n,Hangup()
exten => _+39X.,1,Set(SAFE_EXTEN=+39${FILTER(0-9,${EXTEN:3})})
same => n,Set(ORIGINAL_EXTEN=${EXTEN})
same => n,GotoIf($["${EXTEN}" != "${SAFE_EXTEN}"]?error,1)
same => n,Verbose(2, Chiamata in uscita verso "${SAFE_EXTEN}")
same => n,Dial(PJSIP/${SAFE_EXTEN}@iliad)
same => n,Hangup()
exten => error,1,Verbose(2, Chiamata in uscita rifiutata, numero "${ORIGINAL_EXTEN}" non valido)
same => n,Hangup()
incredibilmente funzionano sia chiamate in uscita che in ingresso (almeno, squilla, tra me e me non mi sono messo a parlare ) l'unica cosa che mi sembra strana è che le chiamate in uscita (mi sono chiamato sul cell) se il destinatario "mette giù" non viene chiusa la chiamata. ci guarderò..
e ora che me ne faccio?