[Gelöst] Problem bei eingehenden Gesprächen von extern

MaverrickTM

Mitglied
Mitglied seit
2 Sep 2012
Beiträge
587
Punkte für Reaktionen
1
Punkte
16
Mahlzeit zusammen,

derzeit bin ich dabei mir den Asterisk anzuschauen und spiele damit herum, in der Hoffnung das ein wenig Know-How hängen bleibt. Dabei bin ich auf ein Problem gestossen, wo ich nicht wirklich weiter komme. Ich hoffe das mir jemand den entscheidenen Tipp geben kann.

Das Problem:
Wenn ich einen Anruf tätige (intern -> intern & intern -> extern) so funktioniert alles so wie es sein soll.
Werde ich jedoch angerufen (extern -> intern), so erhalte ich auf der interne Seite nur ein Echo von mir selbst. Zusätzlich höre ich den externen Partner, er mich jedoch nicht.

Ich hatte auch schon die beiden Snom Telefone (360 & 370 - jeweils v7.3.30) in Verdachte und habe den Asterisk selbst annehmen lassen. Er spielte eine Wartemelodie. Auch hier habe ich das Problem, dass der externe Anrufer keinen Ton erhält.

Aufbau:
Code:
Asterisk-VM   <--->   WAN (dynamische IP)  <---> 1und1

danach

Asterisk-VM   <--->  Fritzbox 7390  <--->  WAN (dynamische IP)  <---> 1und1     (Aktuelle Konfig)

Erst hatte ich den Asterisk direkt mit 1und1 kommunizieren lassen. Ich dachte das es ein Problem der Fritzbox sei. Hatte arge Probleme den Asterisk zum laufen zu bekommen, da die Fritzbox den Port 5060 selbst verwendet und somit kein Port-Forwarding möglich war. Daher habe ich die 1und1 Nummern wieder in die Fritzbox eingetragen und lasse den Asterisk nun nur noch mit der Fritzbox kommunizieren. Ich habe hier aber genau das gleiche Problem. Es muss demnach an der Asterisk-Konfiguration liegen. Ich finde diesen Fehler leider nur nicht.

sip.conf
Code:
[general]
        bindaddr=0.0.0.0
        port=5060
        localnet=10.0.0.0/255.255.255.0
        externip=<öffentliche IP>            <--------- Wieso ist hier eigentlich kein FQDN möglich? (e.g. DynDNS)
        context=home
;       useragent=asterisk

        disallow=all
        allow=alaw
        allow=ulaw
        allow=gsm
;       allow=ilbc
;       allow=h261


;       register => 4930<Nr.1>:<geheim>@sip.1und1.de/4930<Nr.1>
;       register => 4930<Nr.2>:<geheim>@sip.1und1.de/4930<Nr.2>
;       register => 4930<Nr.3>:<geheim>@sip.1und1.de/4930<Nr.3>

        register => 620:<geheim>@10.0.0.254/620      ; Fritzbox

[200]                                                ; Snom 360
        type=friend
        secret=<geheim>
        host=dynamic
        qualify=yes

[201]                                                ; Snom 370
        type=friend
        secret=<geheim>
        host=dynamic
        qualify=yes


;[4930<Nr.2>] ; SIP-1&1
;       type=friend
;       context=1und1
;       defaultuser=4930<Nr.2>
;       fromuser=4930<Nr.2>
;       secret=<geheim>
;       host=sip.1und1.de
;       fromdomain=sip.1und1.de
;       qualify=yes
;       insecure=port,invite
;       nat=yes

[620]                                               ; Fritzbox
        type=peer
        context=1und1
        defaultuser=620
        fromuser=620
        secret=<geheim>
        host=10.0.0.254
        qualify=yes
        insecure=port,invite


extension.conf
Code:
[default]

        include => home


[home]

        exten => 0,1,VoiceMailMain(${CALLERID(num)},s)                                  ; Anrufbeantworter - Anruf Nr. 0


        exten => 1,1,Answer()
        exten => 1,n,Wait(2)
        exten => 1,n,Playback(hello-world)
        exten => 1,n,Wait(2)
        exten => 1,n,Hangup()

        exten => 2,1,Answer()
        exten => 2,n,Wait(2)
        exten => 2,n,Playback(demo-echotest) ; Let them know what
        exten => 2,n,Echo()                  ; Do the echo test
        exten => 2,n,Playback(demo-echodone) ; Let them know it
        exten => 2,n,Hangup()

        exten => 3,1,Answer()
        exten => 3,n,Wait(1)
        exten => 3,n,MusicOnHold()
        exten => 3,n,Hangup

        exten => 200,1,Dial(SIP/200,20)
        exten => 200,n,VoiceMail(200,u)                                                 ; Umleitung zum AB

        exten => 201,1,Dial(SIP/201,20)
        exten => 201,n,VoiceMail(201,u)                                                 ; Umleitung zum AB


;       exten => _0[1-9].,1,Dial(SIP/${EXTEN}@4930<Nr.2>)                             ; Rauswahl über 1und1-4930<Nr.2>
        exten => _X.,1,Dial(SIP/${EXTEN}@620)                                           ; Rauswahl über 1und1-4930<Nr.2>
        exten => _X.,n,Hangup

        exten => _**X.,1,Dial(SIP/${EXTEN}@620)                                         ; Rauswahl über 1und1-4930<Nr.2>
        exten => _**X.,n,Hangup



[1und1]
;       exten => 4930<Nr.2>,1,Dial(SIP/200,20)
;       exten => 4930<Nr.2>,n,VoiceMail(200,u)

        exten => 620,1,Dial(SIP/200,20)
        exten => 620,n,VoiceMail(200,u)

;       exten => 620,1,Answer()
;       exten => 620,n,Wait(1)
;       exten => 620,n,MusicOnHold()
;       exten => 620,n,Hangup

Console
Code:
*CLI> core set verbose 5
Verbosity was 0 and is now 5
*CLI>   == Using SIP RTP CoS mark 5
    -- Executing [620@1und1:1] Dial("SIP/620-00000000", "SIP/200,20") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/200
    -- SIP/200-00000001 is ringing
    -- SIP/200-00000001 is ringing
    -- SIP/200-00000001 is ringing
    -- SIP/200-00000001 answered SIP/620-00000000
    -- Remotely bridging SIP/620-00000000 and SIP/200-00000001
  == Spawn extension (1und1, 620, 1) exited non-zero on 'SIP/620-00000000'


Ich hoffe ich habe an alle nützlichen Informationen gedacht. Vorab vielen Dank!


Viele Grüße

Matthias
 
Zuletzt bearbeitet:
Probier mal directmedia=no (bzw. canreinvite=no bis 1.6.1) in der sip.conf.

Wenn Du eine dynDNS Adresse verwenden willst, solltest Du externhost in Verbindung mit externrefresh benutzen. Da Du aber nur netzwerkintern kommunizierst, solltest Du das eigentlich gar nicht brauchen.
Mit port=5060 meinst Du wohl eher bindport.

Mit Deiner Konfiguration solltest Du tunlichst vermeiden, ein Portforwarding auf den Asterisk zu machen. Siehe dazu den Thread zum Thema Hacker und Asterisk.
 
Ich werd den Parameter heute Abend mal probieren.

Danke für einen Tipp wg. der Sicherheit. Den Thread hab ich mir soweit durchgelesen. Reicht es tatsächlich, wenn nur der default Context leer ist? Oder sind noch andere Schritte Sinnvoll? Gibt es eventuell eine Art Howto was Sicherheit angeht?

Das Include ist eigentlich nur dafür da, damit ein "console dial xxx" funktioniert. Andernfalls erhalte ich die Meldung das keine extension zu xxx in Default existiert. Gibt es hier eine Möglichkeit, wie ich der Console beibringe im Context von "home" zu arbeiten/agieren?

[Edit]
Btw. hab völlig vergessen... Ich verwende Asterisk 1.8
[/Edit]


Viele Grüße

Matthias
 
Zuletzt bearbeitet:
In dem Thread wird eigentlich alles soweit beschrieben, ist leider etwas aufgeblasen. Aber allowguest=no, alwaysauthreject=yes und der default Context sind schon mal die ersten wesentlichen Ansatzpunkte. Wenn der Asterisk wie bei Dir hinter der Fritzbox versteckt ist, ist das sowieso nicht so wild, ich wollte es nur erwähnt haben.
 
Nee, war schon richtig so. Danke. Gerade wenn man lernt ist es schon gut wenn man auf grobe Fehler aufmerksam gemacht wird. Spart im endeffekt viel Geld, wie ich gelesen habe...

Ich habe den Parameter directmedia in die sip.conf gesetzt. Einmal ins [general] und dann in das Template für die Contexte der Telefone. Leider habe ich immer noch das selbe Problem mit eingehenden Anrufen von extern. Hast Du eventuell noch eine weitere Idee?

[EDIT]
Ich glaube diese *piep* Fritzbox ist Schuld...

Es gibt bei mir kein 192.168.179.0er Subnetz... Ich hab da mal nach gesucht und das scheint wohl ein bekanntes Problem der Fritzbox zu sein. AVM Schreibt auf ihr der Website das sie wohl dran arbeiten...

tcpdump während des Verbindungsaufbaus
Code:
22:49:43.294633 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.294960 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172
22:49:43.295028 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.295534 IP 192.168.179.1 > 10.0.0.109: ICMP 192.168.179.1 udp port 7078 unreachable, length 208
22:49:43.295545 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172
22:49:43.295633 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.295769 IP 192.168.179.1 > 10.0.0.109: ICMP 192.168.179.1 udp port 7078 unreachable, length 208
22:49:43.296206 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172
22:49:43.296216 IP 192.168.179.1 > 10.0.0.109: ICMP 192.168.179.1 udp port 7078 unreachable, length 208
22:49:43.296293 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.297055 IP 192.168.179.1 > 10.0.0.109: ICMP 192.168.179.1 udp port 7078 unreachable, length 208
22:49:43.340996 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172
22:49:43.341090 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.341410 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172
22:49:43.341472 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.341778 IP 192.168.179.1 > 10.0.0.109: ICMP 192.168.179.1 udp port 7078 unreachable, length 208
22:49:43.342136 IP 192.168.179.1 > 10.0.0.109: ICMP 192.168.179.1 udp port 7078 unreachable, length 208
22:49:43.353684 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172
22:49:43.353763 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.373987 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172
22:49:43.374064 IP 10.0.0.109.10416 > 192.168.179.1.7078: UDP, length 172
22:49:43.393679 IP 10.0.0.200.53626 > 10.0.0.109.10146: UDP, length 172

Ein Workaround, lt. AVM, wäre wohl das Subnetz auf 192.168.179.0 umzustellen... :mad:

[/EDIT]

[EDIT2]

Problem ist gelöst. Die Fritzbox hat einen Bug in der Firmware.

Lösung: http://www.ip-phone-forum.de/showthread.php?t=246380&p=1843614&viewfull=1#post1843614


Danke nochmal für Deine Hilfe :)

[/EDIT2]

Viele Grüße

Matthias
 
Zuletzt bearbeitet von einem Moderator:
Kostenlos!

Statistik des Forums

Themen
248,864
Beiträge
2,303,174
Mitglieder
378,518
Neuestes Mitglied
koenig79