Asterisk Pi und das warten auf den Useragent

Babola

Neuer User
Mitglied seit
17 Feb 2019
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich verbringe momentan meine freie Zeit um ein kleines Asterisk Projekt starten.

Da die Fritzbox leider keine Internen Anrufe in der Anruferliste anzeigt möchte, suche ich nach einer Lösung und bin dabei auf Asterisk gestosen.

Hintergrund ist der, Ich möchte die Haustürklingel gerne als verpassten Anruf sehen .

Jedoch habe ich das Problem das es immer ewig dauert und auch nicht immer kommt... bis der Server die Verbindungen aufgebaut hat.
wenn ich das ganze über die Console verfolge funktionieren Anrufe erst wenn eine Meldung vom Useragent kommt..

Saved useragent "AVM FRITZ!Box 7490 (UI) 113.07.01 (Aug 29 2018)" for peer 3000

Nach dieser Meldung funktioniert alles. Ich kann von dem Mobilteil dem die 3000 Rufnummer zugeordet ist Telefonieren, Angerufen werden und wenn die 620 Klingelt hab ich sie bei nichtanahme in der Telefonliste als unbeantworteten Anruf.

Aber warum dauert es immer ewig und funktioniert auch nur sporadisch? Hab schon sämtliche Einstellungen ausprobiert aber komme echt nicht mehr weiter.. Vielleicht hatte hier ja schon jemand das gleiche Problem.




Davor kommt die Fehlermeldung check_auth: username mismatch, have <3000>, digest has <Asterisk>
Erst passt der username offensichtlich nicht und wenn man warten dann doch ? Ich verstehe das nicht..


Hier mal meine Einstellungen

An der Siedele hängt ein Klingelpaul der mir das Signal in die Fritzbox bringt.


Das Klingelsignal klingelt die 620 an . Die 620 ist für Asterisk als Ip Telefon in der FB eingerichtet.

Eine Internetrufnummer 3000 ist auch eingerichtet.
Asterisk läuft auf einem Raspberry -- Raspbian


sip.conf

Code:
[general]
port=5060
bindaddr=0.0.0.0
localnet=10.10.10.0/255.255.255.0

register=Asterisk:[email protected]/620




[3000]
type=friend
context=meine-telefone
secret=1234
host=dynamic
authuser=3000   
username=3000
fromuser=3000
fromdomain=10.10.10.1
qualify=yes
qualifyfreq=600




[ext-sip-account]

type=friend
context=von-voip-provider
authuser=Asterisk   
username=Asterisk
fromuser=Asterisk
fromdomain=10.10.10.1
secret=Ab123456789bA
host=10.10.10.1
qualify=yes
insecure=port,invite
nat=no
canreinvite=no
dtmfmode=rfc2833
allow=!all,g729,g722,alaw,ulaw
transport=udp
qualifyfreq=600

extensions.conf
Code:
[meine-telefone]

exten => _0[1-9].,1,Dial(SIP/${EXTEN}@ext-sip-account)


[von-voip-provider]

exten => 620,1,Dial(SIP/3000)
 
Moin


authuser=Asterisk
...brauchste nicht.


Anrufe in der Anrufliste
Am Einfachsten machste "interne" Anrufe "extern"...

Eine Möglichkeit dahin ist das Registrieren einer Internetrufnummer in der FRITZ!Box an einen Asterisk User/Peer.
...so wie du es mit der [3000] und einem anderen SIP-Klienten schon eingerichtet hast.

Die zweite Möglichkeit wäre ein SIP URI Call seitens Asterisk an die der "**620" zugewiesenen Internetrufnummer.
( Egal ob im LAN/FRITZ!Box oder über WAN/Public-IP/ITSP )


PS: Für autorisierte Klienten und den Peer zur FRITZ!Box nutz ich: type=peer
Ein-, und ausgehende Verbindungen als auch sich am Asterisk registrierende SIP-Klienten funktionieren ohne "User" und steigern das Gefühl der Sicherheit ;)
...probiers mal aus.


PPS: Am Anfang und Zweifel immer erst die kompatibelsten Codecs einstellen und erst später die "Guten" an den Anfang setzen
Code:
allow=!all,alaw,ulaw
( Auch als PCMA, PCMU und G.711 bekannt )
 
Zuletzt bearbeitet:
Hi koyaanisqatsi

Vielen Dank für deine Antwort.

habe die sip.conf mal ein wenig angepasst und verschiedene Versuche gefahren.

Nachdem ich Asterisk neugestartet habe dauert es zwar immer noch so lang bis die Meldung mit dem Useragent kommt, allerdings habe ich herausgefunden, dass wenn ich die Internetrufnummer in der FB kurz deaktiviere und wieder aktiviere sofort kommt. Wahrscheinlich so eine Art Spam Schutz von der FB ?

Die Zweite Möglichkeit die du mir vorgeschlagen hast konnte ich nicht Umsetzten fafür fehlt mir noch einiges an Wissen und meine Versuche schlugen fehl.

Meine Aktuelle und laufende Sip.conf sieht nun so aus. Extensions ist unberührt.

Code:
[general]
port=5060
bindaddr=0.0.0.0
localnet=10.10.10.0/255.255.255.0
allow=!all,alaw,ulaw
qualify=yes
qualifyfreq=600
dtmfmode=rfc2833
transport=udp

register=Asterisk:[email protected]/620



[3000]
type=peer
context=meine-telefone
secret=Ab123456789bA
host=dynamic
fromuser=3000
fromdomain=fritz.box





[ext-sip-account]

type=peer
context=von-voip-provider
fromuser=Asterisk
fromdomain=fritz.box
secret=Ab123456789bA
host=10.10.10.1
insecure=port,invite


 
Die qualify= und qualifyfreq= kannste mal rausnehmen/kommentieren, denn die OPTIONS Anfragen könnte die FRITZ!Box als Spam oder DoS Attacke ansehen ;)
Danach in der *-Konsole nur: sip reload

Wenn eine Internetrufnummer in der FRITZ!Box, die Internet bereitstellt, aktiv ist, dann ist die auch als SIP URI aus dem Internet erreichbar.
Wenn also die 3000 in der FRITZ!Box aktiv ist kann sie auch so erreicht werden...
Als Asterisk Extension...
Code:
;LAN SIP URI Call
exten => 999999999,1,dial(sip/[email protected],120)
Und es klingelt auch, wenn du statt fritz.box deine öffentliche IP nimmst.
 
Oha das war mir nicht bewusst dass die 3000 jetzt auch online erreichbar ist...
Muss es denn über die 3000 sein ?

Könnte ich nicht einfach ein Internes Telefon anrufen?


Aber die Anrufe werden jetzt nicht mehr am Telefon in der Liste angezeigt da hier fromuser nicht mehr wirkt.
 
Zuletzt bearbeitet:
Es muss nicht die 3000 sein, aber ich kenne die Benutzernamen deiner eingerichteten Internetrufnummern in der FRITZ!Box nicht.
Deswegen hab ich die 3000 zur Veranschaulichung herangezogen ;) .

fromuser= und fromdomain= brauchste nicht in der 3000
...ist eher für den Peer zum Rausrufen ( der muss sich authentisieren ) gedacht.

Interessanter/sicherheitsrelevanter wären da eher...
contactdeny=[Alles] und contactpermit=[Klient-IP oder Netzwerk]
 
Ah ok ich verstehe.. Ich könnte hier meine bestehenden Nummern heranziehen.
gehen wir von der 98000 aus . Telekom IP Anschluss
aus der Logic heraus würde ich hier einfach die 980000 einsetzten

bei
Code:
exten => 620,1,dial(sip/[email protected],620)

nun sollte doch jetzt auch das Telefon klingeln dem die 98000 zugeordnet ist ,
tut es aber nicht? was fehlt den noch?
 
Gaaanz einfach ;)

Dein Fehler ist, dass du nicht den Benutzernamen benutzt.
Geh mal im AVM FRITZ!Box Webkonfigurationsfrontend nach...
Telefonie > Eigene Rufnummern > Rufnummern
...bearbeitest* die entsprechende Nummer und guck mal was da unter "Benutzername" eingetragen ist.


* Ohne speichern, nur gucken
 
einen Benutzernamen kann ich nicht finden. Steht nur eine Email drin.

mit der hätte ich es schon getestet
 
Dann den "Telefonie-Anbieter" für diese Info auf "anderer Anbieter" stellen.
( Ohne zu speichern )
 
Auweia, da beisst sich wohl das doppelte @ beim dial().

Kenn mich mit den Telekom Registraren nicht aus, hm, da kann ich dir leider nicht weiterhelfen.
Vielleicht hat dafür ein anderer Telekomkunde einen Tipp ?

Oder mit einer zusätzlichen Asterisknummer in der FRITZ!Box arbeiten.
Über die haste wenigstens volle Kontrolle ;)
 
Hi koyaanisqatsi

Ich Danke dir für deine Hilfe.Ich bleibe jetzt mal der der Lösung mit der 3000 Rufnummer die funktioniert bis jetzt ganz gut.
Ich lese mich noch ein wenig in das Thema Sicherheit ein.
Und nächste Woche gehts erst mal für 2 Wochen in den Urlaub. ;)

Bis bald
 
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.