.titleBar { margin-bottom: 5px!important; }

Auflegen funktioniert nicht

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von helste, 8 Okt. 2008.

  1. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ich habe ein Problem beim beenden von Anrufen.
    Und zwar wird die Leitung nicht geschlossen, wenn man auflegt. Egal ob nun beim Softphone oder beim physischen Telefon (Grandstream GXP2000).
    Das passiert aber nur auf Geräten, die über VPN am Asterisk Server hängen.

    Meine Konfiguration sieht in etwas so aus:
    LAN: 192.168.11.x
    Asterisk Server ist in diesem IP Bereich.

    Ein entferntes LAN ist per VPN angebunden. Die IP Adressen dort sind im Bereich 192.168.0.x

    Geräte oder Softphones, die im 192.168.11.x IP Kreis liegen, funktionieren problemlos.
    Geräte oder Softphones, die im 192.168.0.x IP Kreis liegen, funktionieren nicht korrekt. Wenn man von so einem Gerät z.B. die Zeitansage anruft und dann auflegt, bleibt die Leitung offen.

    Woran könnte das liegen?

    Die Leitung wird erst geschlossen, wenn die Gegenstelle auflegt (im Falle der Zeitansage passiert das praktisch nie).

    Grüße
    Helmut
     
  2. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Habe jetzt mal bei einem Client, der sich von außen anmeldet von VPN auf public IP umgestellt.
    Gleiches Verhalten.
    Das Telefon meldet sich an, kann auch Anrufe tätigen, aber ein Auflegen wird offenbar nicht registriert.
    Die Leitung bleibt am Asterisk Server offen.
    Weiters gibt es bei diesen Clients auch das Problem, dass die Verbindung zur Gegenstelle nach ca. 20 Sekunden von selbst unterbrochen wird.

    Das mag jetzt vielleicht merkwürdig klingen, ist aber so.
    Die Verbindung wird nach einiger Zeit (ca. 20 Sekunden) selbstständig unterbrochen. Versucht man aber die Verbindung selbst zu unterbrechen (Auflegen), dann bleibt die Verbindung ebenso ca. 20 Sekunden offen, ehe sie automatisch unterbrochen wird.

    Das passiert jedoch nicht, wenn ich mich von meinem LAN aus über die public IP am Asterisk anmelde.
    Da wäre aber denkbar, dass meine Firewall dafür sorgt, dass diese Verbindung nur intern abgehandelt wird, also nicht über das Internet läuft. Das würde erklären, dass es sich da gleich verhält wie bei der Anmeldung über die lokale IP Adresse.

    Hat vielleicht irgendwer eine Idee, was die Ursache für das Problem sein könnte?

    Grüße
    Helmut
     
  3. himpierre

    himpierre Mitglied

    Registriert seit:
    18 Apr. 2007
    Beiträge:
    316
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das Grandstream hat auch ne IP-Adresse aus dem Netz? Debug LogFiles zeigen.
     
  4. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es gibt je ein Grandstream in beiden Netzen und die haben jeweils IP Adressen der jeweiligen Netze.
    Ich denke aber nicht, dass es etwas damit zu tun hat.
    Ich habe nun weitere Tests gemacht.

    Zum einen habe ich jetzt mal auf einem Rechner in meinem Netz das Softphone auf die public IP des Asterisk Serves eingestellt. Das funktioniert auch wunderbar, solange ich mich dabei über meine ADSL Leitung ins Netz hänge. Das ist die selbe Leitung, über die der Asterisk Server online ist. Beide hängen da an einer Fortigate 50 und ich kann mir vorstellen, dass die Fortigate in dem Fall den Zugriff auf die externe IP des Servers gleich behandelt wie den Zugriff über die lokale IP. Deshalb dürfte das auch gehen.

    Um das auszuschließen habe ich mich dann auf mit meinem Notebook über eine UMTS Verbindung eingewählt und das Softphone auf die public IP des Asterisk eingestellt. Das funktioniert auch und ich kann auch eine Verbindung aufbauen, aber es scheint so, als hätte ich da keine Kontrolle über die Verbindung. Ich kann sie nicht beenden, jedoch wird sie automatisch nach knapp 20 Sekunden beendet.

    Logfiles bin ich gerade am erstellen. Möchte alle verschiedenen Fälle durchprobieren und dann die Logs vergleichen.

    Grüße
    Helmut
     
  5. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich habe jetzt den Teil des Logfiles, der sich unterscheidet.

    Hier das AUsschnitt aus dem Logfile wenn die verbindung über die interne Leitung aufgebaut wird:
    Code:
    [Oct  9 16:35:27] WARNING[20737] rtp.c: Unable to set TOS to 184
    [Oct  9 16:35:27] VERBOSE[20737] logger.c:     -- Called 10
    [Oct  9 16:35:27] VERBOSE[20737] logger.c:     -- SIP/10-0823a3c8 is ringing
    [Oct  9 16:35:29] VERBOSE[20737] logger.c:     -- SIP/10-0823a3c8 answered SIP/25-082315e8
    [Oct  9 16:35:57] VERBOSE[20737] logger.c:   == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/25-082315e8' in macro 'dial'
    [Oct  9 16:35:57] VERBOSE[20737] logger.c:   == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/25-082315e8' in macro 'exten-vm'
    [Oct  9 16:35:57] VERBOSE[20737] logger.c:   == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/25-082315e8'
    [Oct  9 16:35:57] VERBOSE[20737] logger.c:     -- Executing [h@macro-dial:1] Macro("SIP/25-082315e8", "hangupcall") in new stack
    [Oct  9 16:35:57] VERBOSE[20737] logger.c:     -- Executing [s@macro-hangupcall:1] ResetCDR("SIP/25-082315e8", "w") in new stack
    [Oct  9 16:35:57] DEBUG[20737] app_macro.c: Executed application: ResetCDR
    
    und hier der selbe Ausschnitt wenn über eine externe Verbindung angewählt wird:
    Code:
    [Oct  9 16:23:51] WARNING[20601] rtp.c: Unable to set TOS to 184
    [Oct  9 16:23:51] VERBOSE[20601] logger.c:     -- Called 10
    [Oct  9 16:23:51] VERBOSE[20601] logger.c:     -- SIP/10-081e9e50 is ringing
    [Oct  9 16:23:52] VERBOSE[20601] logger.c:     -- SIP/10-081e9e50 answered SIP/25-082379e0
    [Oct  9 16:24:12] WARNING[20124] chan_sip.c: Maximum retries exceeded on transmission ZjQ3NzFlNzI3YjdhY2M1ZTQ0ODBmYjcyMWI4NTY2ZWM. for seqno 2 (Critical Response)
    [Oct  9 16:24:12] WARNING[20124] chan_sip.c: Hanging up call ZjQ3NzFlNzI3YjdhY2M1ZTQ0ODBmYjcyMWI4NTY2ZWM. - no reply to our critical packet.
    [Oct  9 16:24:12] VERBOSE[20601] logger.c:   == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/25-082379e0' in macro 'dial'
    [Oct  9 16:24:12] VERBOSE[20601] logger.c:   == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/25-082379e0' in macro 'exten-vm'
    [Oct  9 16:24:12] VERBOSE[20601] logger.c:   == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/25-082379e0'
    [Oct  9 16:24:12] VERBOSE[20601] logger.c:     -- Executing [h@macro-dial:1] Macro("SIP/25-082379e0", "hangupcall") in new stack
    [Oct  9 16:24:12] VERBOSE[20601] logger.c:     -- Executing [s@macro-hangupcall:1] ResetCDR("SIP/25-082379e0", "w") in new stack
    [Oct  9 16:24:12] DEBUG[20601] app_macro.c: Executed application: ResetCDR
    
    Kann man daraus etwas ableiten?
     
  6. himpierre

    himpierre Mitglied

    Registriert seit:
    18 Apr. 2007
    Beiträge:
    316
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das geht mir zu sehr durcheinander. Funktioniert es denn wenn Asterisk die IP-Adresse 192.168.11.10 und das Grandstream 192.168.11.11 hat? Keep it simple. Dann kannst Du Dich vortasten.
     
  7. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja, das funktioniert.

    Ich habe jetzt Folgende Konfiguration:

    LAN mit IP Kreis 192.168.11.0

    Asterisk hat: 192.168.11.74
    1. Telefon hat: 192.168.11.222
    2. Telefon hat: 192.168.11.71
    Alles funktioniert gut, egal ob ich nun die interne IP des asterisk einstelle oder die public IP.

    Wenn ich aber von außerhalb meines LANs zugreifen will (über die Public IP oder per VPN über de 192.168.11.74), dann funktioniert es nicht korrekt.
    Ich kann zwar anwählen, aber es wird nach 20 Sekunden automatisch aufgelegt. Lege ich vorher manuell auf, dann hat das keine Auswirkung und es wird nach 20 Sekunden die Leitung geschlossen.
     
  8. himpierre

    himpierre Mitglied

    Registriert seit:
    18 Apr. 2007
    Beiträge:
    316
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Na dann hast Du doch was womit Du arbeiten kannst. Stehen die Telefone, für den Fall das Du Dich von "aussen" verbindest auf "nat = yes"? Was ist das für ein Gateway? Macht das vielleicht irgendwelche Schweinereien?
     
  9. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja, alle Telefone haben NAT = Yes eingetragen.

    Mein Gateway ist eine Fortigate 50
     
  10. himpierre

    himpierre Mitglied

    Registriert seit:
    18 Apr. 2007
    Beiträge:
    316
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hm. So ganz kapiere ich Deine Netzwerkkonfiguration nicht. Wo stehen denn die Telefone wenn sie über dieses Fortigate Dingens angelatscht kommen? Kannst Du mal sowas wie einen Netzwerkplan posten?
     
  11. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich versuche mal alles genau zu beschreiben:

    Ich habe ein LAN welches einen IP Kreis von 192.168.11.x hat. Dieses LAN liegt hinter einer Fortigate 50. Diese verbindet sich über einen Bintec230 per ADSL mit dem Internet.
    Der Asterisk Server befindet sich im selben LAN. Er5 hat die IP Adresse 192.168.11.74

    Dann gibt es Telefone (Grandstream und X-Lite Softphone), welche als IP Adresse ebenfalls eine Nummer aus dem Kreis 192.168.11.x haben.

    Diese Telefone funktionieren einwandfrei.

    Ich habe nun aber die Notwendigkeit, dass man sich auch von außerhalb meines LANs anmelden muss können. Es gibt also Telefone, die nicht im lokalen Netzwerk hängen.
    Diese melden sich über die Public IP des Asterisk Servers an, welche auf der Fortigate durch eine Virtuelle IP freigeschalten ist. Die notwendigen Ports sind ebenfalls geöffnet.

    Ich kann nun sowohl bei den im LAN befindlichen Telefeonen als auch bei den externen Telefonen als Server IP die Public IP meines Asterisk servers eingeben. Bei beiden funktioniert die Anmeldung und auch die Anwahl und Verbindungsaufnahme. Jedoch scheint es bei den externen Telefonen ein Problem zu geben. Sie können nicht auflegen, bzw. wird automatisch nach 20 Minuten die Verbindung unterbrochen.

    Ich hoffe das war halbwegs verständlich.
    Notfalls muss ich einen Plan zeichnen und den hier reinstellen.
     
  12. thisismyname

    thisismyname Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    78
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Jo, ich denk ein Plan waehr nicht schlecht und wuerde helfen.

    Was du noch probieren koenntest waehre an der Firewall die sip-messages mitzutracen, bzw auf der externen Seite die ueber das VPN zugreifen. Vielleicht einfach einen Rechner mit 2 Netzwerkkarten dazwischen stecken und dann weiterrouter... gleichzeitig tcpdump in ne file schreiben lassen udn heir posten.

    greetz
     
  13. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    So, habe mal versucht so ein Diagramm zu zeichnen. Bitte um Nachsicht. Ich mache sowas nicht jeden Tag, um es mal vorsichtig auszudrücken.

    [​IMG]

    Telefon A und Telefon B funktionieren wunderbar. Egal ob ich nun als IP Adresse des Asterisk 192.168.11.74 oder die Public IP A.A.A.A eintrage.

    Telefon C lässt sich zwar anmelden (über Asterisk IP 192.168.11.74 oder auch A.A.A.A) und es wird auch ein Anruf getätigt, aber dann kommt es zu den beschriebenen Problemen.
    Bei Telefon D kann ich natürlich nur die Public IP (A.A.A.A) zum Anmelden an den Asterisk verwenden. Es verhält sich damit aber genauso wie Telefon C.

    Auf der Fortigate 192.168.11.1 sind sämtliche notwendigen Ports freigeschalten (UDP 5060 und UDP 10000 - 20000).
     
  14. wpfundstein

    wpfundstein Mitglied

    Registriert seit:
    24 Nov. 2005
    Beiträge:
    267
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hallo,

    zeig doch mal deine sip.conf.

    Grüße, Werner
     
  15. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hier der Inhalt der sip_general_custom.conf:

    Code:
    language=de
    
    nat=yes
    externip=meine public IP
    localnet=192.168.11.0/255.255.255.0
    qualify=yes
    
    Und hier die sip_additional.conf:
    Code:
    
    ;--------------------------------------------------------------------------------;
    ; Do NOT edit this file as it is auto-generated by FreePBX. All modifications to ;
    ; this file must be done via the web gui. There are alternative files to make    ;
    ; custom modifications, details at: http://freepbx.org/configuration_files       ;
    ;--------------------------------------------------------------------------------;
    ;
    
    [10]
    type=friend
    secret=10
    qualify=yes
    port=5060
    pickupgroup=
    nat=yes
    mailbox=10@device
    host=dynamic
    dtmfmode=rfc2833
    dial=SIP/10
    context=from-internal
    canreinvite=no
    callgroup=
    callerid=device <10>
    accountcode=
    call-limit=50
    
    [11]
    type=friend
    secret=10
    qualify=yes
    port=5060
    pickupgroup=
    nat=yes
    mailbox=11@device
    host=dynamic
    dtmfmode=rfc2833
    dial=SIP/11
    context=from-internal
    canreinvite=no
    callgroup=
    callerid=device <11>
    accountcode=
    call-limit=50
    
    [12]
    type=friend
    secret=10
    qualify=yes
    port=5060
    pickupgroup=
    nat=yes
    mailbox=12@device
    host=dynamic
    dtmfmode=rfc2833
    dial=SIP/12
    context=from-internal
    canreinvite=no
    callgroup=
    callerid=device <12>
    accountcode=
    call-limit=50
    
    
    Es sind noch ein paar mehr Extensions, aber die sind eh alle gleich. Dann noch der Trunk zum VOIP Provider, aber der ist eh aus dem Spiel, wenn ich nur von Nebenstelle zu Nebenstelle wähle.


    Dann habe ich noch die sip_general_additional.conf anzubieten:

    Code:
    vmexten=*97
    disallow=all
    allow=ulaw
    allow=alaw
    context=from-sip-external
    callerid=Unknown
    notifyringing=yes
    notifyhold=yes
    limitonpeers=yes
    tos_sip=cs3
    tos_audio=ef
    tos_video=af41
    

    Fehlt noch etwas was notwendig ist um etwas zu erkennen?
     
  16. wpfundstein

    wpfundstein Mitglied

    Registriert seit:
    24 Nov. 2005
    Beiträge:
    267
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hi,

    dann ergänze mal deine sip.conf um folgenden Eintrag:

    oder (müsste auch gehen):

    Grüße
     
  17. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das habe ich jetzt eingetragen.

    Für den ersten Moment schaut das sogar gut aus. Habe jetzt mal mit der Einwahl über mein UMTS Handy auf dem Notebook mit X-Lite probiert und die Verbindung wird jetzt nicht mehr unterbrochen, und das Auflegen funktioniert auch.

    Die Verbindungsqualität ist aber sehr miserabel. Es kommt zu einer mehrsekündigen Verzögerung und die Sprache ist ziemlich unverständlich. Ich vermute aber mal, dass das möglicherweise daran liegt, dass ich gerade heftigen Traffic auf meiner Internetverbindung habe, weil ein Download läuft.

    Muss wohl auch noch die QOS Einstellungen überprüfen.

    Jedenfalls vielen Dank für die Mühe und Geduld.
     
  18. wpfundstein

    wpfundstein Mitglied

    Registriert seit:
    24 Nov. 2005
    Beiträge:
    267
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Eins noch zum Abschluss:

    Alle Telefone im Netz 192.168.11.0 und 192.168.0.0 sind auf nat=no zu setzen. Die Telefone die über das Internet (Public IP) angeschlossen sind benötigen nat=yes

    Grüße
     
  19. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    O.K., ich stelle das noch um. Vielen, vielen Dank für die Hilfe.
     
  20. helste

    helste Neuer User

    Registriert seit:
    24 Sep. 2008
    Beiträge:
    58
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nachdem ich dachte, es funktioniert jetzt, habe ich aber folgendes Problem.

    Wähle ich von einem Gerät im LAN ein Gerät im VPN an, dann funktioniert alles wunderbar.
    Wählt man aber von einem Gerät aus dem VPN eine Nebenstalle im LAN an, dann wird nach genau 20 Sekunden die Leitung unterbrochen.

    Das passiert nicht, wenn ich bei dem Gerät im VPN nicht die interne IP Adresse des Servers (192.168.11.74) eingebe, sondern die öffentliche IP Adresse des Servers.
    Merkwürdig ist für mich auch, dass das überhaupt geht, da ich die Anweisung externip=..... im sip_general_custom.conf ausremarked habe.

    Hat jemand vielleicht eine Idee?

    Ich kann jetzt natürlich mal die Telefone im entfernten Netz aufr die Publich IP einstellen, aber es müsste doch auch über die interne IP gehen, oder?