[Gelöst] SIP incoming bekomme immer besetzt.

gunnicom

Neuer User
Mitglied seit
8 Jun 2016
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Nachdem ich den register string hinbekommen habe ( http://www.ip-phone-forum.de/showthread.php?t=286183 ) hänge ich nun am nächsten Problem.
Wenn ich die Telefonnummer anrufe (Also öffentliche Nummer ) bekomme ich immer besetzt.

Die Entscheidenden Einträge in der sip.conf sollten folgende sein:
Code:
[global]
register => BENUTZERNAME:PASSWORT:[email protected]@a1_net_inbound
...
[a1_net_inbound]
type=friend
[email protected]
secret=PASSWORT
dtmfmode=rfc2833
host=a1.net
context=a1_net_incoming
outboundproxy=centrex.a1.net
fromuser=BENUTZERNAME
fromdomain=a1.net
canreinvite=no
insecure=invite
nat=force_rport,comedia

Und in der extensions.conf:
Code:
[a1_net_incoming]
exten => s,1,Noop("Incoming")
same => n,Dial(SIP/4801)

Die Asterisk steht hinter einer Firewall mit nat, aber alle Ports geforwardet.


Im Asterisk kann ich folgendes Debug Log sehen:

Code:
<--- SIP read from UDP:193.81.6.69:5060 --->
INVITE sip:a1_net_incoming@ASTERISK_IP_ADDRESS:5060 SIP/2.0
Via: SIP/2.0/UDP 193.81.6.69:5060;branch=z9hG4bK-*8*155d26bcaea0699392cctaN0
To: <sip:[email protected]>
From: <sip:[email protected];user=phone>;tag=1408379115484522
Call-ID: nAuB4pYfLQ
CSeq: 1 INVITE
Max-Forwards: 65
Contact: <sip:193.81.6.69:5060;transport=UDP>
Record-Route: <sip:[email protected]:5060;lr>
P-Called-Party-ID: <sip:[email protected];user=phone>
Supported: 100rel,timer
P-Early-Media: supported
Session-Expires: 3600
Min-SE: 90
Privacy: none
Allow: INVITE,PRACK,ACK,UPDATE,CANCEL,BYE,OPTIONS,INFO,SUBSCRIBE,REFER,NOTIFY
Accept: application/sdp,        application/isup,       multipart/mixed,        application/dtmf,       application/dtmf-relay
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 665

v=0
o=- 518803697 518803697 IN IP4 193.81.6.5
s=-
c=IN IP4 193.81.6.5
t=0 0
m=audio 51800 RTP/AVP 99 18 8 97 98 100 96
c=IN IP4 193.81.6.5
a=rtpmap:97 AMR-WB/16000/1
a=fmtp:97 mode-set=0,1,2;mode-change-period=2;mode-change-neighbor=1
a=rtpmap:98 AMR/8000/1
a=fmtp:98 mode-set=0,2,4,7;mode-change-period=2;mode-change-neighbor=1
a=rtpmap:99 G726-32/8000/1
a=rtpmap:18 G729/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:100 telephone-event/8000/1
a=fmtp:100 0-15
a=rtpmap:96 telephone-event/16000/1
a=fmtp:96 0-15
a=sendrecv
a=3gOoBTC
a=curr:qos local none
a=curr:qos remote none
a=des:qos optional local sendrecv
a=des:qos optional remote sendrecv
<------------->
--- (20 headers 24 lines) ---
Sending to 193.81.6.69:5060 (no NAT)
Sending to 193.81.6.69:5060 (no NAT)
Using INVITE request as basis request - nAuB4pYfLQ
No matching peer for '+INCOMING_CALLER_ID' from '193.81.6.69:5060'

<--- Reliably Transmitting (no NAT) to 193.81.6.69:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 193.81.6.69:5060;branch=z9hG4bK-*8*155d26bcaea0699392cctaN0;received=193.81.6.69
From: <sip:[email protected];user=phone>;tag=1408379115484522
To: <sip:[email protected]>;tag=as4f341d9f
Call-ID: nAuB4pYfLQ
CSeq: 1 INVITE
Server: Asterisk PBX 13.1.0~dfsg-1.1ubuntu4
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6e618140"
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog 'nAuB4pYfLQ' in 32000 ms (Method: INVITE)

<--- SIP read from UDP:193.81.6.69:5060 --->
ACK sip:a1_net_incoming@ASTERISK_IP_ADDRESS:5060 SIP/2.0
Via: SIP/2.0/UDP 193.81.6.69:5060;branch=z9hG4bK-*8*155d26bcaea0699392cctaN0
To: <sip:[email protected]>;tag=as4f341d9f
From: <sip:[email protected];user=phone>;tag=1408379115484522
Call-ID: nAuB4pYfLQ
CSeq: 1 ACK
Max-Forwards: 70
User-Agent: ZTE-B200
Content-Length: 0

<------------->
--- (9 headers 0 lines) ---

Weiss einer was? Ich bin noch ein ziemlicher Neuling, und versuch mich da reinzufuchsen. Danke.
 
Zuletzt bearbeitet:
Ich finde leider keine Spezifikation für Telekom Austria-VoIP, wahrscheinlich Routerzwang oder so.
Du musst alle IP-Adressen von den VoIP-Servern zulassen in deinem Asterisk, sonst hält er den Anruf böse und lehnt ab.
 
Du musst alle IP-Adressen von den VoIP-Servern zulassen in deinem Asterisk, sonst hält er den Anruf böse und lehnt ab.
Ok. Klingt nach nem Plan. Wo muss ich die zulassen?
Und ja, gäbe es von denen Spezifikationen und würden die Links zu Dokumenten nicht ins leere laufen, bräuchte ich vermutlich keine Forenhilfe ;)
 
Wenn der Anbieter Load Balancer verwendet ist es am einfachsten, allowguest=yes zu lassen und im default Context exten's für die eigenen Rufnummern zu definieren. Wenn dort sonst nichts anderes steht, ist das kein Sicherheitsrisiko, sondern genau das Verhalten wie es alle handelsüblichen DSL Router auch machen.

Damit das funktioniert muss ans register hinten noch ein Contact dran, also am Ende /eigeneTelNr, und das insecure muss weg.

Übrigens ist type=friend nicht notwendig, nimm besser type=peer.
 
Danke mal wieder. Mit allwowguest landet er jetzt zumindest in der Asterisk-Ansage. Das hatte ich jetzt auch schonmal probiert.
Muss dann wohl noch die Nummer anhängen und meine contexte aufräumen, wobei mir das allowquest nicht ganz geheuer ist.
Aber das ist wohl der Weg.
Mal gucken wann ich das Biest gebändigt habe.

- - - Aktualisiert - - -

Damit das funktioniert muss ans register hinten noch ein Contact dran, also am Ende /eigeneTelNr, und das insecure muss weg.
Irgendwie funktioniert das nicht. Wenn ich die eigene Nummer (Du meinst nehme ich an die interne die dann klingeln soll?), dann kommt beim registern

Code:
[2016-06-10 13:36:02] NOTICE[1092]: chan_sip.c:15252 sip_reg_timeout:    -- Registration for 'xxxxxx@a1_net_inbound' timed out, trying again (Attempt #3)
[2016-06-10 13:36:02] NOTICE[1092]: chan_sip.c:15252 sip_reg_timeout:    -- Registration for 'xxxxxx@a1_net_inbound' timed out, trying again (Attempt #2)
    -- Got SIP response 503 "Service Unavailable" back from 193.81.6.69:5060


Und wenn ich die Nummer nicht dran hänge nimmt der scheinbar den public context. Wobei dann der asterisk congrats kommt, obwohl der garnicht mehr im public context drin ist.
So ganz blick ich noch nicht durch.

- - - Aktualisiert - - -

Also ich gehe jetzt den Weg über allowguests. Ich werde dann anfang nächster Woche nochmal schreiben was ich wie wo genau gemacht habe.
Eure Tipps haben mir sehr geholfen, an den richtigen Stellen zu suchen. Danke.
Ich bin nun vorsichtig optimistisch ;)
 
Irgendwie funktioniert das nicht. Wenn ich die eigene Nummer (Du meinst nehme ich an die interne die dann klingeln soll?)

Nein, ich meine Deine öffentliche Telefonnummer, für die Du Dich als Client beim Provider registrieren möchtest.

exten => 0123456,1,Noop(ankommender Anruf)

geht nur mit

register => bla:blub@provider/0123456

Ohne Contact am register musst Du exten => s verwenden (nicht zu empfehlen).

Was ist an allowguest nicht geheuer? Das heißt einfach nur, dass Asterisk auch INVITEs von nicht authentifizierten Stellen akzeptiert, diese landen dann eben im default Context. Wie gesagt, das ist das Standardverhalten aller Fritzboxen und Speedports uvm.
Mit chan_pjsip wird alles besser ;-) Dort kann man mit identify und match auch IP-Bereiche zulassen, nicht nur einzelne Adressen wie in chan_sip host.
 
Danke rentier-s. Jetzt hab ichs glaub ich glaub ich alles raus. Ich werde mal nen Post als Anleitung mit Erklärungen vorbereiten, vielleicht hilft das ja anderen Anfängern die Hürden die ich hatte zu umschiffen.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,121
Beiträge
2,246,508
Mitglieder
373,619
Neuestes Mitglied
Twann
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.