[gelöst] Asterisk baut Via: falsch zusammen (aber warum?)

Mrsnaida

Neuer User
Mitglied seit
20 Nov 2008
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich kämpfe mit folgendem Problem:
Asterisk 1.6 hinter FritzBox. SipProvider ist Sipgate.de
Die Asterisk kann sich bei sipgate registrieren, jedoch ist das Telefonieren nicht möglich. Also weder eingehend noch ausgehend.

Wenn ich versuche, einen eingehenden Call zu tätigen, kommt im Wireshark rein gar nichts an und der Anrufer hört eine Ansage, die Telefonnummer wäre nicht erreichbar.
Nun habe ich testweise auf der gleichen Maschine SJphone installiert und mit dem gleichen AccountDaten gegen sipgate registriert. Das Teil funktioniert ausgehend und eingehend.

1.Problem: Eingehende Calls von Extern (z.B. Festnetz)
Im Wireshark log sehe ich im register einen eklatanten Unterschied zum register der Asterisk:

SJphone:
Via: SIP/2.0/UDP 192.168.x.x;rportbranch=irgendwaskryptisches
Asterisk:
Via: SIP/2.0/UDP 93.200.x.x;rportbranch=irgendwaskryptisches

Das SJphone geht also mit der internen IP raus (scheint ja richtig zu sein) und die Asterisk mit der offiziellen IP meiner FritzBox.

Da ich denke, dass das nun ein Konfigurationsproblem ist, poste ich mal meine Konfig.

sip.conf
Code:
[general]
context=general
useragent=Asterisk PBX
bindport=5080
bindaddr=0.0.0.0
language=de
disallow=all
disable=all
allow=alaw
allow=ulaw
allow=g729
allow=gsm
allow=slinear
srvlookup=yes
nat=yes
;externhost=bkasterisk.dyndns.org
externip=93.200.x.x:5080
externrefresh=180
localnet=192.168.178.0/255.255.255.0
;stunaddr=stun.sipgate.net:10000
host=217.10.79.9
register=><user>:<PW>@sipgate.de/<user>
;register=><user>:<PW>@217.10.79.9/<user>
canreinvite=no
dtmfmode=rfc2833
qualify=yes
fromdomain=217.10.79.9

[sipgate]
type=friend
username=<user>
fromuser=<PW>
host=dynamic
disallow=all
allow=alaw
allow=ulaw
allow=gsm
context=meine-telefone
outgoingproxy=sipgate.de
nat=yes

[200]; Hausmeister
type = friend
callerid="Hausmeister Krause"<200>
context = meine-telefone
secret = 1234
host = dynamic

extensions.conf
Code:
[general]
[meine-telefone]
include => sipgate
exten => _9.,1,Dial(SIP/${EXTEN:1}@sipgate.de,30,r)
exten => <user>,1,Ringing
exten => <user>,2,Wait,2
exten => <user>,3 Dial(SIP/200,20,tr)
exten => <user>,4,Hangup

;Hausmeister
exten => 200,1,Dial(SIP/200,5)
exten => 200,2,VoiceMail(200,u)
exten => 200,2,VoiceMail(200,b)
include => voicemailsystem

2.Problem: Ausgehender Call (z.B. ins Festnetz)
im CLI sehe ich die Meldung
called [email protected]
Failed to authenticate on INVITE "USER1" <sip:[email protected]>
Auch hier baut er also falsch zusammen. Der Benutzer 501 ist bei sipgate (von denen ist die IP) natürlich nicht bekannt.

Würde mich über Hilfe sehr freuen!
Vielen Dank und Grüße
 
Zuletzt bearbeitet:
Hier müsste sicher noch ein SIPGate-Erfahrener dazu posten, aber mir fallen auch schon einige Punkte ein:

Code:
externip=93.200.x.x:5080
(in deiner sip.conf) erklärt ja genau, woher der VIA-eintrag kommt. Wenn Du das nicht bewusst gesetzt hast, solltest Du es auskommentieren!

Code:
 fromdomain=217.10.79.9
(wieder in Deiner sip.conf) Das widerspricht sich alles noch ein wenig...



Hast Du den Port 5080 eingehend durch Deine Fritzbox bis zum Asterisk-Server durchgetunnelt? (Portfreigabe!) Das gleiche ist noch für die verwendeten RTP-Ports fällig.

Ankommende Gespräche von SipGate werden bei Dir in den Kontext "meine-telefone" gelenkt. Das ist technisch möglich, sollte aber aus Sicherheitsgründen in einen eigenen Kontext führen. Dort kannst Du dann auch mal die "s"-Extension einführen, vlt. hilft das ja weiter.

Das mit der "501" musst Du noch an Logeinträgen belegen. Sonst können wir ja nicht ansatzweise ahnen, woher das kommt. :)
 
Hallo,

vielen Dank für deine Antwort !
Mittlerweile habe ich durch lesen / herumprobieren die Problematik mit eingehenden Calls gelöst (zumindest die angegebene extension 200 klingelt (wie kann ich als Anrufender denn die extension frei wählen ?))

Was bleibt ist noch das Problem mit dem Raustelefonieren. Da steht dann im CLI
callled 910005@sipgate
SIP/sipgate-082360f0 is circuit-busy
...handle_request_invite: Call from '501' to extension '1005' rejected because extension not found

Ich poste mal die veränderte / besser funktionierende Konfiguration:
sip.conf
Code:
[general]
useragent=Asterisk PBX
bindport=5080
bindaddr=0.0.0.0
language=de
disallow=all
disable=all
allow=alaw
allow=ulaw
allow=g729
allow=gsm
allow=slinear
srvlookup=yes
nat=yes
externhost=asterisk.dyndns.org
externrefresh=180
localnet=192.168.178.0/255.255.255.0
;stunaddr=stun.sipgate.net:10000
host=217.10.79.9
register=><user>:<PW>@sipgate.de/<user>
canreinvite=no
dtmfmode=rfc2833
qualify=yes
fromdomain=217.10.79.9

[sipgate]
type=friend
insecure=port,invite
nat=yes
username=<user>
fromuser=>user>
fromdomain=sipgate.de
secret=<PW>
host=sipgate.de
qualify=yes
canreinvite=no
dtmfmode=rfc2833
context=sipgate-in

extensions.conf
Code:
[sipgate-in]
exten => <user>,1,Dial(SIP/200,20)
exten => _X.,2,Hangup()

[general]

[meine-telefone]
;exten => _9.,1,Set(CALLERID(num)=<user>)
exten => _9.,1,Dial(SIP/${EXTEN}@sipgate,30,trg)
exten => _9.,n,Hangup
 
Hi,

sipgate arbeitet mit Sicherheit nicht mit dem Port 5080, sondern 5060.

Grüße
Timm
 
Das ist nur lokal, weil die Asterisk NAT machen muss. Raus geht es schon mit 5060
 
Problem gelöst:
Code:
[meine-telefone]
exten => _X.,1,Dial(SIP/${EXTEN}@sipgate,30,trg)

in der extensions.conf brachte die Lösung.

Wenn ich nun noch herausfinde, wie man es anstellt, dass bei einem Anruf nicht nur die 200 angeklingelt wird, sondern dass man (wie bei anderen PBX auch) die Durchwahl von außen mit wählen kann, bin ich megaglücklich.

Grüße
 
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.