[Problem] Asterisk SIP-Anschluss

  • Like
Reaktionen: g1proo2
Cool danke, sowas habe ich gesucht :)

Ich werde es mir auf jeden Fall die Tage mal anschauen & ausprobieren.
 
Und immer schön den Dialplan testen, auch mit Fantasienummern, in der Asteriskkonsole mit: dialplan show [extension]@[kontext]

Tipp: Wie auch von localphone.com empfohlen, Kontexte mit entsprechenden Namen und Extensions können ganz einfach in den Kontext inkludiert werden wo sie benötigt werden.

Beides siehst du hier beschrieben: http://das-asterisk-buch.de/1.6/includes-im-dialplan.html
 
Durch das Asterisk Buch & den Konfigurationskurs bin ich leider nicht viel schlauer geworden..
Sobald ich da anfange rumzuschrauben geht auch noch die Verbindung verloren zwischen Asterisk & FritzBox :3

Wenn ich das Softphone direkt mit der FritzBox verbinde, ist InBound & OutBound-telefonie möglich. Das einzige Problem ist in dem Fall sip.conf & extensions.conf..

Code:
[general]
context=default
bindport=5060
bindaddr= 0.0.0.0
srvlookup=yes

; --------------------------------------------------------------------
;
register => aster625:[email protected]/fbgw0

[fbgw0]
host=192.168.178.1
username=aster625
secret=FRITZBOXPW
type=peer
qualifyfreq=600
context=localphone-out
directmedia=yes
port=5060
qualify=yes
dtmfmode=rfc2833
fromdomain=192.168.178.1
insecure=port,invite
srvlookup=no
remotesecret=FRITZBOXPW
defaultuser=aster625
callbackextension=800




[fritzbox_in]
type=peer
fromdomain=fritz.box
host=192.168.178.1
disallow=all
allow=ulaw
context=ankommend

; --------------------------------------------------------------------
;
; hier kommen die Anmeldekontexte für die SIP Endgeraete 30- 31
;

[30]
callerid=Phone 1 <30>
host=dynamic
domain=192.168.178.1
user=30
secret=TELEFONPW
type=friend
mailbox=30
nat=force_rport,comedia
canreinvite=no

[31]
callerid=Phone 2 <31>
host=dynamic
domain=192.168.178.1
user=31
secret=TELEFONPW
type=friend
mailbox=31
nat=force_rport,comedia
canreinvite=no

Code:
[globals]

[general]
static=yes
writeprotect=no

; --------------------------------------------------------------------
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;

[lokal]
exten => _3X,1,NoCDR()
exten => _3X,n,Dial,SIP/${EXTEN}|55|Ttr

[fritzbox_out]
exten => _0.,1,Dial,SIP/${EXTEN}@fbgw0|45|r

[ankommend]
exten => fbgw0,1,Dial,SIP/30|30|r


[default]
include => lokal
include => fritzbox_out
[spoiler][code]
 
Die alte Schreibweise mit | ist nicht mehr gültig.
exten => _3X,n,Dial,SIP/${EXTEN}|55|Ttr
Es muss jetzt mit Klammern und Komma ungefähr so aussehen:
exten => _3X,n,Dial(SIP/${EXTEN},55,Ttr)
 
Danke für die Schnelle Antwort & den Hinweis aber
allein daran hat es nicht gelegen -.-

Code:
[Sep  3 12:44:58] NOTICE[1388][C-00000016]: chan_sip.c:26273 handle_request_invite: Call from '30' (192.168.178.20:52534)                                                                           to extension '+4944491751' rejected because extension not found in context 'public'.

Code:
[general]
context=default
bindport=5060
bindaddr= 0.0.0.0
srvlookup=yes

; --------------------------------------------------------------------
;
register => aster625:[email protected]/fbgw0

[fbgw0]
host=192.168.178.1
username=aster625
secret=FRITZBOXPW
type=peer
qualifyfreq=600
context=fritzbox_out
directmedia=yes
port=5060
qualify=yes
dtmfmode=rfc2833
fromdomain=192.168.178.1
insecure=port,invite
srvlookup=no
remotesecret=FRITZBOXPW
defaultuser=aster625
callbackextension=800




[fritzbox_in]
type=peer
fromdomain=fritz.box
host=192.168.178.1
disallow=all
allow=ulaw
context=ankommend

; --------------------------------------------------------------------
;
; hier kommen die Anmeldekontexte für die SIP Endgeraete 30- 31
;

[30]
callerid=Phone 1 <30>
host=dynamic
domain=192.168.178.1
user=30
secret=TELEFONPW
type=friend
mailbox=30
nat=force_rport,comedia
canreinvite=no

[31]
callerid=Phone 2 <31>
host=dynamic
domain=192.168.178.1
user=31
secret=TELEFONPW
type=friend
mailbox=31
nat=force_rport,comedia
canreinvite=no


Code:
[globals]

[general]
static=yes
writeprotect=no

; --------------------------------------------------------------------
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;

[lokal]
exten => _3X,1,NoCDR()
exten => _3X,n,Dial(SIP/${EXTEN},55,Ttr)

[fritzbox_out]
exten => _+49X.,1,Dial(SIP/${EXTEN}@fbgw0,45,r)

[ankommend]
exten => fbgw0,1,Dial(SIP/30,30,r)


[default]
include => lokal
include => fritzbox_out
 
Das sieht doch schon gar nicht so schlecht aus.
Wer ruft dabei wen an?

Versuch mal bei [ankommend], ob es mit
exten => s,1,Dial(SIP/30,30,r)
 
Nach der Anpassung kam das hier :
Code:
[Sep  3 13:02:57] NOTICE[1388][C-00000017]: chan_sip.c:26273 handle_request_invite: Call from 'aster625' (192.168.178.1:5060) to extension '800' rej                   ected because extension not found in context 'fritzbox_out'.




Nun kommt folgende Meldung, weil Callbackextension bei fbgw0 statt bei 800, auf 30 ist & eine Zeile bei fritzbox_out hinzugefügt :
extensions.conf
Code:
[fritzbox_out]
exten => _+49X.,1,Dial(SIP/${EXTEN}@fbgw0,45,r)
exten => _X.,1,Dial(SIP/${EXTEN}@fbgw0,45,r)


Code:
Connected to Asterisk 13.14.1~dfsg-2+deb9u3 currently running on raspberrypi (pid = 396)
  == Using SIP RTP CoS mark 5
    -- Executing [30@fritzbox_out:1] Dial("SIP/fbgw0-0000000a", "SIP/30@fbgw0,45,r") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/30@fbgw0
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/fbgw0-0000000a' status is 'CHANUNAVAIL'
 
Gibt es die 30 auf der Fritzbox überhaupt?
Ich würde erstmal zwei Softphones (z. B. 31 und 32) am Asterisk anmelden und die beiden untereinander telefonieren lassen und dann weiter probieren.
Wird von der Fritzbox aus die 800 gewählt? Was soll bei 800 klingeln?

### Zusammenführung Doppelpost by stoney, da Beitrag dazwischen gelöscht wurde ###

Und wie ist die Cli-Ausgabe?
 
Zuletzt bearbeitet von einem Moderator:
Was ich vorhin geschrieben aber gelöscht habe, weil noch ein Passwort enthalten war :
Bei der FritzBox(192.168.178.1) gibt es nur das Telefoniegerät
Asterisk mit dem Benutzernamen 'aster625'.

Auf dem RaspberryPi (192.168.178.37) läuft der Asterisk Server.

Dann gibt es noch 2 Telefoniegeräte die mit Asterisk verbunden sind.

Softphone 30 = mein Rechner (192.168.178.20)
Softphone 31 = mein Smartphone (192.168.178.63)


Mit den Konfigurationen kann ich auf jeden Fall intern telefonieren
Code:
[30]
callerid=Phone 1 <30>
host=dynamic
;domain=192.168.178.1
user=30
secret=TELEFONPW
type=friend
mailbox=30
nat=force_rport,comedia
canreinvite=no
context=lokal

[31]
callerid=Phone 2 <31>
host=dynamic
;domain=192.168.178.1
user=31
secret=TELEFONPW
type=friend
mailbox=31
nat=force_rport,comedia
canreinvite=no
context=lokal

Code:
[lokal]
exten => _3X,1,NoCDR()
exten => _3X,n,Dial(SIP/${EXTEN},55,Ttr)


Wenn ich meine Hausnummer wähle, dann wird rausgewählt dh ich höre über meine Kopfhörer einen Ton. Der Anruf kommt aber nicht an dh. das Telefon klingelt nicht..

Code:
[30]
callerid=Phone 1 <30>
host=dynamic
;domain=192.168.178.1
user=30
secret=TELEFONPW
type=friend
mailbox=30
nat=force_rport,comedia
canreinvite=no
context=fritzbox_out

[31]
callerid=Phone 2 <31>
host=dynamic
;domain=192.168.178.1
user=31
secret=TELEFONPW
type=friend
mailbox=31
nat=force_rport,comedia
canreinvite=no
context=fritzbox_out
Code:
[fritzbox_out]
exten => _+49X.,1,Dial(SIP/${EXTEN}@fbgw0,15,r)
exten => _X.,1,Dial(SIP/${EXTEN}@fbgw0,15,r)


CLI Ausgabe :
HAUSNUMMER = 044491948 (Ist nur eine Beispielnummer)
Code:
Connected to Asterisk 13.14.1~dfsg-2+deb9u3 currently running on raspberrypi (pid = 396)
  == Using SIP RTP CoS mark 5
    -- Executing [HAUSNUMMER@fritzbox_out:1] Dial("SIP/30-0000002e", "SIP/HAUSNUMMER@fbgw0,15,r") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/HAUSNUMMER@fbgw0
  == Using SIP RTP CoS mark 5
    -- Executing [30@fritzbox_out:1] Dial("SIP/fbgw0-00000030", "SIP/30@fbgw0,15,r") in new stack
    -- SIP/fbgw0-0000002f is ringing
  == Using SIP RTP CoS mark 5
    -- Called SIP/30@fbgw0
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/fbgw0-00000030' status is 'CHANUNAVAIL'
  == Spawn extension (fritzbox_out, HAUSNUMMER, 1) exited non-zero on 'SIP/30-0000002e'
 
Warum inkludierst du [lokal] nicht einfach in [fritzbox_out] ?

Und du öffnest mit [default] und standardmässig aktiven allowguest=yes lokalen Angreifern Tür und Tor für "Auslandsgespräche".
Frei nach dem Motto: "Bevor ich irgendwas illegales mit meinem superteuren Smartfon mache, benutze ich lieber deinen Raspberry dafür"

Schau dir mal die Ausgabe von "sip show settings" an.

PS: "qualify" nutz ich nicht, weil es ständig Probleme machte
 
Zuletzt bearbeitet:
Bei Outgoing würde ich auch noch
exten => _**.,1,Dial(SIP/${EXTEN}@fbgw0,15,r)
mit eintragen, um Fritzboxintern telefonieren zu können, z. B. AB abfragen mit **600.
Dann kann man erstmal eine Ebene weiter probieren, bevor es nach draussen geht.
Dass man einen Ton hört, liegt wohl am r im Dialplan. Der Ton wird dann im Asterisk erzeugt und hat noch nichts mit dem Amt zu tun.
 
Warum inkludierst du [lokal] nicht einfach in [fritzbox_out] ?

Und du öffnest mit [default] und standardmässig aktiven allowguest=yes lokalen Angreifern Tür und Tor für "Auslandsgespräche".
Frei nach dem Motto: "Bevor ich irgendwas illegales mit meinem superteuren Smartfon mache, benutze ich lieber deinen Raspberry dafür"

Schau dir mal die Ausgabe von "sip show settings" an.

PS: "qualify" nutz ich nicht, weil es ständig Probleme machte
allowguest habe ich jetzt auf no gesetzt & default in der extension.conf auskommentiert.

Das wäre natürlich nicht soo cool, wenn jemand von meinem Raspberry Pi aus irgendwelche Premiumnummern, teuere Hotlines (z.B DSF, damals nach 12 :D), usw anruft.
"sip show" müsste eig. unter default die Ausgabe liefern, dass allowguest o.ä auf yes ist.. Ich konnte es mir jetzt nicht genau anschauen, weil ich zu voreilig war..

sip.conf
Code:
[general]
context=default
bindport=5060
bindaddr= 0.0.0.0
srvlookup=yes

; --------------------------------------------------------------------
;
register => aster625:[email protected]/fbgw0

[fbgw0]
host=192.168.178.1
username=aster625
secret=FRITZBOXPW
type=peer
qualifyfreq=600
context=fritzbox_out
directmedia=yes
port=5060
qualify=no
dtmfmode=rfc2833
;fromdomain=192.168.178.1
insecure=port,invite
srvlookup=no
remotesecret=FRITZBOXPW
defaultuser=aster625
callbackextension=30
allowguest=no


[fritzbox_in]
type=peer
fromdomain=fritz.box
host=192.168.178.1
disallow=all
allow=ulaw
context=ankommend

; --------------------------------------------------------------------
;
; hier kommen die Anmeldekontexte für die SIP Endgeraete 30- 31
;

[30]
callerid=Phone 1 <30>
host=dynamic
;domain=192.168.178.1
user=30
secret=TELEFONPW
type=friend
mailbox=30
nat=force_rport,comedia
canreinvite=no
context=fritzbox_out
allowguest=no

[31]
callerid=Phone 2 <31>
host=dynamic
;domain=192.168.178.1
user=31
secret=TELEFONPW
type=friend
mailbox=31
nat=force_rport,comedia
canreinvite=no
context=fritzbox_out
allowguest=no

extension.conf
Code:
[globals]

[general]
static=yes
writeprotect=no

; --------------------------------------------------------------------
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;

[lokal]
exten => _3X,1,NoCDR()
exten => _3X,n,Dial(SIP/${EXTEN},55,Ttr)



[fritzbox_out]
include => lokal
exten => _+49X.,1,Dial(SIP/${EXTEN}@fbgw0,15,r)
exten => _X.,1,Dial(SIP/${EXTEN}@fbgw0,15,r)
exten => _**.,1,Dial(SIP/${EXTEN}@fbgw0,15,r)

[ankommend]
exten => s,1,Dial(SIP/30,30,r)


;[default]
;include => fritzbox_out



Bei Outgoing würde ich auch noch
exten => _**.,1,Dial(SIP/${EXTEN}@fbgw0,15,r)
mit eintragen, um Fritzboxintern telefonieren zu können, z. B. AB abfragen mit **600.
Dann kann man erstmal eine Ebene weiter probieren, bevor es nach draussen geht.
Dass man einen Ton hört, liegt wohl am r im Dialplan. Der Ton wird dann im Asterisk erzeugt und hat noch nichts mit dem Amt zu tun.

Die Softphones untereinander können telefonieren.
Die anderen Telefone, die mit 'FritzBox Fon App' an der FritzBox hängen mit der Durchwahl **621 sind nicht erreichbar.
Genauso wenig wie der Anrufbeantworter.

Cli-Ausgabe :
Code:
  == Using SIP RTP CoS mark 5
    -- Executing [**600@fritzbox_out:1] Dial("SIP/30-00000068", "SIP/**600@fbgw0,15,r") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/**600@fbgw0
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/30-00000068' status is 'CHANUNAVAIL'
 
Vielleicht sollte man auch noch
allow=alaw
dazuschreiben.
 
### Vollzitat von darüber entfernt by stoney ###​

allow=alaw ist jetzt drinne, **600 funkt nicht.. Ist für mich um ehrlich zu sein nicht ganz so wichtig, dass man die Geräte intern & den AB erreichen kann.

Raustelefonieren wäre da schon eine sehr große Sache, wenn man es könnte.
 
Zuletzt bearbeitet von einem Moderator:
Bei mir sieht es ungefähr so aus und es funktioniert:
sip.conf schrieb:
[fritz_625]
type=peer
defaultuser=625_XXXX
secret=FRITZBOXPW
fromuser=625
call-limit=15
type=friend
insecure=invite
nat=force_rport,comedia
fromdomain=192.168.178.1
host=192.168.178.1
canreinvite=yes
directmedia = no
allow=!all,alaw,ulaw
Manchmal liegt es nur daran, weil das Paßwort zu einfach ist.
extensions.conf schrieb:
exten => _**6XX,1,Dial(SIP/${EXTEN}@fritz_625,55)
 
Zuletzt bearbeitet:
@g1proo2: allowguest gehört unter [general]

Die internen Nummern sind schon eine Überlegung wert.
Damit gehen schliesslich nicht nur Anrufe an interne Geräte, sondern auch...
Code:
dialplan show **799@osmc
[ Context 'osmc' created by 'pbx_config' ]
  '_**[12367]!' =>  1. Verbose(1,(${EXTEN}@${CONTEXT}) Fritz!Box internal Codes: ${CALLERID(all)}) [pbx_config]
                    2. ExecIf($[${DB_EXISTS(${CONTEXT}/${EXTEN})}]?Dial(${DB_RESULT}):Dial(SIP/${EXTEN}@fbfgw9,45,cC)) [pbx_config]

-= 1 extension (2 priorities) in 1 context. =-
osmc*CLI> dialplan show *1215#**799@osmc
[ Context 'osmc' created by 'pbx_config' ]
  '_*12!' =>        1. Verbose(1,(${EXTEN}@${CONTEXT}) Fritz!Box preselection: ${CALLERID(all)}) [pbx_config]
                    2. ExecIf($[${DB_EXISTS(${CONTEXT}/${EXTEN})}]?Dial(${DB_RESULT}):Dial(SIP/${EXTEN}@fbfgw9,45,cC)) [pbx_config]

-= 1 extension (2 priorities) in 1 context. =-
...Kurzwahlen und die Vorauswahlen.
( Siehe: Telefonie > Eigene Rufnummern > Rufnummern )
 
Zuletzt bearbeitet:
Bei mir steht es nicht unter [lokal], habe lokal aus dem Beitrag entfernt.
 
Zuletzt bearbeitet:
@Tippfehler
Mit diesen Einstellungen funktioniert der Anrufbeantworter sowie die über FritzBoxFon App angeschlossenen Geräte super !
CLI Ausgabe :
**625 ist die Kurzwahl für mein Smartphone
Code:
    -- Executing [**625@fritzbox_out:1] Dial("SIP/30-0000007a", "SIP/**625@fbgw0,55") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/**625@fbgw0
    -- SIP/fbgw0-0000007b is making progress passing it to SIP/30-0000007a
    -- SIP/fbgw0-0000007b answered SIP/30-0000007a
    -- Channel SIP/fbgw0-0000007b joined 'simple_bridge' basic-bridge <d1f0e5e2-97f7-4741-a89f-5ed99cc5f6b8>
    -- Channel SIP/30-0000007a joined 'simple_bridge' basic-bridge <d1f0e5e2-97f7-4741-a89f-5ed99cc5f6b8>
    -- Channel SIP/30-0000007a left 'native_rtp' basic-bridge <d1f0e5e2-97f7-4741-a89f-5ed99cc5f6b8>
    -- Channel SIP/fbgw0-0000007b left 'native_rtp' basic-bridge <d1f0e5e2-97f7-4741-a89f-5ed99cc5f6b8>
  == Spawn extension (fritzbox_out, **625, 1) exited non-zero on 'SIP/30-0000007a'

@koyaanisqatsi
Dann belasse ich es erstmal so mit den Einstellungen, was allowguest betrifft :)


Edit : Outboundtelefonie funktioniert !

sip.conf
Code:
[general]
context=default
bindport=5060
bindaddr= 0.0.0.0
srvlookup=yes

; --------------------------------------------------------------------
;
register => aster625:[email protected]/fbgw0

[fbgw0]
host=192.168.178.1
username=aster625
secret=FRITZBOXPW
type=peer
call-limit=15
qualifyfreq=600
context=fritzbox_out
directmedia=no
port=5060
qualify=yes
dtmfmode=rfc2833
fromdomain=192.168.178.1
insecure=port,invite
srvlookup=no
fromuser=aster625
remotesecret=FRITZBOXPW
defaultuser=aster625
callbackextension=30
allowguest=no
allow=!all,alaw,ulaw
nat=force_rport,comedia
canreinvite=yes





[fritzbox_in]
type=peer
fromdomain=fritz.box
host=192.168.178.1
disallow=all
allow=alaw
context=ankommend

; --------------------------------------------------------------------
;
; hier kommen die Anmeldekontexte für die SIP Endgeraete 30- 31
;

[30]
callerid=Phone 1 <30>
host=dynamic
;domain=192.168.178.1
user=30
secret=TELEFONPW
type=friend
mailbox=30
nat=force_rport,comedia
canreinvite=no
context=fritzbox_out
allowguest=no
allow=alaw

[31]
callerid=Phone 2 <31>
host=dynamic
;domain=192.168.178.1
user=31
secret=TELEFONPW
type=friend
mailbox=31
nat=force_rport,comedia
canreinvite=no
context=fritzbox_out
allowguest=no
allow=alaw

extensions.conf
[globals]

[general]
static=yes
writeprotect=no

; --------------------------------------------------------------------
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;

[lokal]
exten => _3X,1,NoCDR()
exten => _3X,n,Dial(SIP/${EXTEN},55,Ttr)



[fritzbox_out]
include => lokal
exten => _+49X.,1,Dial(SIP/${EXTEN}@fbgw0,55,r)
exten => _X.,1,Dial(SIP/${EXTEN}@fbgw0,55,r)
exten => _**6XX,1,Dial(SIP/${EXTEN}@fbgw0,55)

[ankommend]
exten => s,1,Dial(SIP/30,30,r)

Ein riesen großes Dankeschön an @koyaanisqatsi & @Tippfehler !
 
Zuletzt bearbeitet:
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.