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

mit asterisk ip direkt anrufen

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von britzelfix, 21 Okt. 2004.

  1. britzelfix

    britzelfix Gesperrt

    Registriert seit:
    28 Mai 2004
    Beiträge:
    1,099
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Braunschweig
    Hi,

    mich interessiert wie ich mit asterisk eine
    IP direkt anrufen kann. Das Protokoll ist dabei
    unwichtig.

    In der extensions.conf könnte stehen:

    exten => _111,1,SetCallerId,$("britzelfix")
    exten => _111,2,Dial(Proto/user:pass@direkt-ip.dyndns.org,60,tr)
    exten => _111,3,Hangup

    Hat das schon jemand versucht?
    Mit welchen Protokollen klappt es?

    Gruß
    britzelfix
     
  2. voipalex

    voipalex Mitglied

    Registriert seit:
    18 Okt. 2004
    Beiträge:
    319
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    würde mich auch interessieren. besonders SIP Direct IP Call
     
  3. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,282
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    Wie willst Du dabei die Adresse übergeben? Oder ist das als Kurzwahl gedacht?

    exten => _111,2,Dial(Proto/user@host:port,60,tr)

    sollte reichen, es sein denn der Server braucht eine Authentifizierung, was aber wenig Sinn macht, wenn Du jemanden direkt anrufen willst

    Bei ENUM Wahl passiert auch nichts anderes:

    ...
    exten => _+.,5,Dial(${ENUM},30,tr); + ist hier Prefix für ENUM Wahl in der Variablen ENUM steht z.B. sip:XXXXX@sipgate.de
    ...

    jo
     
  4. britzelfix

    britzelfix Gesperrt

    Registriert seit:
    28 Mai 2004
    Beiträge:
    1,099
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Braunschweig
    warum macht eine Authentifizierung keinen sinn?

    Das ist wohl ein Unterschied, da sip:XXXXX@sipgate.de
    die Adresse des Gateway's ist.

    Gruß
    britzelfix
     
  5. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,282
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    sipgate war auch nur ein Beispiel, es geht auch mit user@dyndnshost:port
    oder user@IP:port

    Für die Wahl spielt es keine Rolle, ob es ein SER, Asterisk, X-Lite oder sontiger ist, der angesprochen werden soll.

    jo
     
  6. Fux

    Fux Mitglied

    Registriert seit:
    3 Juni 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Nö, Sipgate-Nummer@sipgate.de ist die Adresse des Users.
    Genauso kann man einen beliebigen anderen User auch anrufen.

    Eine Authentifizierung macht deshalb keinen Sinn, weil dann jeder, der dich anrufen möchte vorher eine Benutzerkennung und ein Paßwort wissen müßte.
    Das schränkt den Kreis der möglichen Anrufer natürlich erheblich ein.
     
  7. britzelfix

    britzelfix Gesperrt

    Registriert seit:
    28 Mai 2004
    Beiträge:
    1,099
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Braunschweig
    Stimmt, und die besteht aus namen@gateway und nicht name@dest-host..
    Ich sehe wir entfernen uns ziemlich von der eigentlicher Frage
    ob direct-ip-call möglich ist, oder nicht. Und ein direct-call sollte nicht
    über ein Gateway gehen, so wie es bei SIP und anderen Protos. üblich ist.

    Du meinst wenn man die Adresse folgender weise austauscht:
    sip:888888@sipgate.de
    in
    sip:888888@dest-host

    Hast Du das schon mal probiert?
    Und funktioniert es denn auch?


    Also hier kann ich nicht folgen. Du meinst Busfahren macht keinen
    Sinn, weil man vorher ein Fahrschein kaufen muß?!?!

    Eine Authentifizierung kann sehr von Vorteil sein, auch wenn Sie etwas
    umständlich ist. Man weiß dann, wer am anderen Ende ist.
    Ich denke es sollte kein Problem sein es mit oder ohne Authentifizierung
    einzurichten.

    IAX2 benutz übrigens auch eine Public-Key Authentifizierung, diese
    ist etwas leichter zu handhaben.


    Gruß
    britzelfix
     
  8. Fux

    Fux Mitglied

    Registriert seit:
    3 Juni 2004
    Beiträge:
    420
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ja und ja.
    Es funzen übrigens auch:
    Code:
    Dial(SIP/meineSIPGateNr@meinATA.dyndns.org) und
    Dial(SIP/meinATA.dyndns.org)
    
    Zur Authentifizierung: Wenn du nur für bestimmte Benutzer erreichbar sein willst - OK.
    Normal verstehe ich aber unter Telefonieren, daß mich jeder anrufen kann - ohne vorher einen Busfahrschein kaufen zu müssen ;-).
     
  9. britzelfix

    britzelfix Gesperrt

    Registriert seit:
    28 Mai 2004
    Beiträge:
    1,099
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Braunschweig
    Gut, dann fahre ich kein Bus mehr. :D

    Danke für alle Antworten.

    Gruß
    britzelfix
     
  10. wrrdlbrrmpft

    wrrdlbrrmpft Mitglied

    Registriert seit:
    17 Juli 2004
    Beiträge:
    263
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Zur Ergänzung: für IAX2 Protokoll könnte das so aussehen:
    Code:
    exten => _111,2,Dial(IAX2/user@host/extension@context,60,tr)
    
    oder
    Code:
    exten => _111,2,Dial(IAX2/user@host/extension,60,tr)
    
    Im zweiten Fall wird der default context aus iax.conf genommen.
     
  11. voipalex

    voipalex Mitglied

    Registriert seit:
    18 Okt. 2004
    Beiträge:
    319
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ich habe noch Probleme mit dem Direct IP Call und asterisk: Wenn ich die IP des Gesprächspartners angebe, dann klappt alles wunderbar, aber mit dem Dyndns-Namen gibt es Probleme.

    Das klappt:

    Code:
    exten => 4,1,SetCIDName(voipalex)
    exten => 4,2,Dial(SIP/193.99.144.71,60,tr)
    exten => 4,3,Hangup
    
    Das klappt leider nicht:

    Code:
    exten => 3,1,SetCIDName(voipalex)
    exten => 3,2,Dial(SIP/beispiel.dyndns.org,60,tr)
    exten => 3,3,Hangup
    


    Hier die Ausgabe der asterisk-Konsole:
    Code:
    *CLI>   == Primary D-Channel on span 1 up for TEI 64
        -- Executing SetCIDName("Zap/2-1", "voipalex") in new stack
        -- Executing Dial("Zap/2-1", "SIP/beispiel.dyndns.org|60|tr") in new stack
        -- Accepting call from '51' to '3' on channel 0/2, span 1
    Oct 24 21:15:28 WARNING[278545]: chan_sip.c:1348 create_addr: No such host: beispiel.dyndns.org
    Oct 24 21:15:28 NOTICE[278545]: app_dial.c:727 dial_exec: Unable to create channel of type 'SIP'
      == Everyone is busy/congested at this time
        -- Executing Hangup("Zap/2-1", "") in new stack
      == Spawn extension (default, 3, 4) exited non-zero on 'Zap/2-1'
        -- Hungup 'Zap/2-1'
    
    Er scheint den Hostnamen nicht auflösen zu können obwohl ich auf dem Asterisk-Rechner den dyndns-Namen anpingen kann (und dazu muss er ja ein DNS Lookup durchführen).

    In der sip.conf habe ich "srvlookup=yes" stehen. Das müßte doch stimmen, oder?
     
  12. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,282
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    SRV lookup hat mit deinem Problem nichts zu tun. Das braucht man nur, wenn innerhalb einer Domain der SIP Proxy gesucht werden soll.

    Du könntes mal versuchen, ein @ vor den hostnamen zu schreiben. Normalerweise erwarte er ja user@host. Bei einigen Clients ist der auch erforderlich.

    jo
     
  13. voipalex

    voipalex Mitglied

    Registriert seit:
    18 Okt. 2004
    Beiträge:
    319
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    bin mir ziemlich sicher, dass es was damit zu tun hat und werde demnächst Ergebnisse präsentieren. Das @ hat nichts gebracht..
     
  14. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,282
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    Bin mal gespannt, wie Du SRVs neu definieren willst ;)

    Also,

    Code:
    exten => _*,1,SetCallerID,jo
    exten => _*,2,SetCIDName,"jo "
    exten => _*,3,Dial(SIP/613@fwd.pulver.com,60,r)
    exten => _*,4,Congestion
    
    funktioniert, wenn ich einen * wähle passiert folgendes:

    Code:
        -- Executing SetCallerID("SIP/2003-cc4a", "jo") in new stack
        -- Executing SetCIDName("SIP/2003-cc4a", "jo ") in new stack
        -- Executing Dial("SIP/2003-cc4a", "SIP/613@fwd.pulver.com|60|r") in new stack
        -- Called [email]613@fwd.pulver.com[/email]
        -- SIP/fwd.pulver.com-99a8 is ringing
        -- SIP/fwd.pulver.com-99a8 answered SIP/2003-cc4a
        -- Attempting native bridge of SIP/2003-cc4a and SIP/fwd.pulver.com-99a8
        -- Attempting native bridge of SIP/2003-cc4a and SIP/fwd.pulver.com-99a8
    d.h. user@host funktioniert.

    Was ich nicht hinbekomme, ist die Übergabe einer SIP URI von einem Client an Asterisk. Habe auch in der Doku nichts erhellendes dazu gefunden. Bei Asterisk kommt nur der userpart an, alles nach und inclusive des @ wird ignoriert.

    Vielleicht weiss jemand, wie der Dialplan dazu aussehen muss, damit der gesamte String gewählt wird.

    jo
     
  15. voipalex

    voipalex Mitglied

    Registriert seit:
    18 Okt. 2004
    Beiträge:
    319
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hast leider recht gehabt: Mit dem srvlookup hatte das nichts zu tun. edit: hat es doch! mit srvlookup=no klappt es

    Hast du schon mal probiert, eine dyndns Adresse anzuwählen (also keine SIP Adresse, die irgendwo registriert ist wie FWD)? Ich bekomme das einfach nicht hin.
    Leute anzurufen, die irgendwo registriert sind klappt einwandfrei: Ich kann erfolgreich einen Freund anrufen, der bei 1und1 ist.
     
  16. wrrdlbrrmpft

    wrrdlbrrmpft Mitglied

    Registriert seit:
    17 Juli 2004
    Beiträge:
    263
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Also bei mir funktioniert das einwandfrei. Ich versteh das auch nicht. Es sollte eigentlich völlig egal sein, ob man die IP Nummer oder die dyndns domain anwählt. Also, wenn das eine geht, sollte das andere auch gehen.
    Deshalb kommt nach meiner Logik nur ein Tippfehler oder eine falsche Domain in Frage. Bist du dir absolut sicher, dass die dyndns domain richtig geschrieben ist und auf die richtige IP Nummer verweist?
     
  17. voipalex

    voipalex Mitglied

    Registriert seit:
    18 Okt. 2004
    Beiträge:
    319
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Bin mir völlig sicher, dass es nicht an einem Tippfehler der dyndns-Adresse liegt. Die dyndns-Adresse zeigt auch auf die richtige IP.
    Woran könnte es noch liegen? An meiner sip.conf?
    Code:
    [general]
    tos=0x18
    dtmfmode=info
    canreinvite=no
    insecure=very
    context=default
    port=5062
    bindaddr=0.0.0.0
    srvlookup=yes
    disallow=all
    allow=gsm
    allow=ilbc
    allow=speex
    allow=ulaw
    allow=alaw
    nat=no
    register => 1234567:passwort@sipgate.de/1234567
    externip = meindnsname.dyndns.org
    localnet=192.168.0.0/255.255.0.0
    [sipgate]
    type=friend
    username=1234567
    secret=passwort
    host=sipgate.de
    fromuser=1234567
    fromdomain=sipgate.de
    context=default
    canreinvite=no
    qualify=yes
    disallow=all
    allow=gsm
    insecure=very
    nat=no
    dtmfmode=info
    tos=0x18
    
    Kurze Anmerkung dazu:
    - sipgate Accountdaten und der dyndns-Name wurden sicherheitshalber abgeändert
    - Asterisk befindet sich hinter einem Router, der unter meindnsname.dyndns.org zu finden ist

    Könntest du mal bitte deine sip.conf posten (Passwörter und ähnliches bitte streichen)?

    Edit 15:39 Uhr:

    JUHU! Fehler und Workaround gefunden!

    Da ich folgende Einstellung benutze:
    externip = meindnsname.dyndns.org
    kann ich mit meiner aktuellen Konfiguration niemand per Direkt IP anrufen wenn dessen SIP-Adresse ebenfalls ein dyndns.org hostname ist.

    Wie ich darauf komme:
    Ich habe demjenigen, den ich anrufen wollte noch zusätzlich einen dyndns-Hostname verpaßt allerdings aus dem Bereich homedns.org

    Wähle ich den homedns.org hostname, dann klappt es. Wähle ich allerdings den dyndns.org hostname, dann klappt es nicht.

    Wsa muss ich an Asterisk ändern, damit das auch mit Gesprächspartnern aus der gleichen Domain (dyndns.org) klappt?

    Nachtrag:
    Es hat doch nichts damit zu tun. Siehe http://www.ip-phone-forum.de/forum/viewtopic.php?p=45807#45807

    Anmerkung von Christoph: Antworten auf eigene Beiträge innerhalb von 24 Stunden ist Spamming. Bitte "Edit"-Funktion beachten.
     
  18. wrrdlbrrmpft

    wrrdlbrrmpft Mitglied

    Registriert seit:
    17 Juli 2004
    Beiträge:
    263
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Brauchst du externip überhaupt in der sip.conf? Dein Asterisk hängt doch nicht hinter einem Router, oder etwa doch?
    Aber trotzdem verstehe ich das nicht. Bei mir funktioniert es auch, wenn ich meine dyndns domain in externip eintrage und einen anderen Rechner mit der gleichen toplevel domain anrufe.

    Meine (Test-)Umgebung sieht folgendermaßen aus:
    1. Asterisk läuft auf dem Router (lokal: 192.168.99.1, internet: meinrechner.dyndns.org).

    2. 192.168.99.0 bezeichnet mein lokales Netzwerk.

    3. Auf meinem Desktop PC (192.168.99.2) hab ich kphone.

    4. Der domain zumtesten.dyndns.org hab ich die Nummer 192.168.99.2 zugewiesen.

    sip.conf:
    Code:
    [general]
    language=de
    context=default                 ; Default context for incoming calls
    port=5060                       ; UDP Port to bind to (SIP standard port is 5060)
    bindaddr=0.0.0.0                ; IP address to bind to (0.0.0.0 binds to all)
    srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
    externip=meinrechner.dyndns.org
    disallow=all                    ; First disallow all codecs
    allow=ilbc
    allow=g726
    allow=ulaw                      ; Allow codecs in order of preference
    allow=alaw                      ; Note: codec order is respected only in [general]
    allow=gsm
    localnet=192.168.99.0/255.255.255.0; All RFC 1918 addresses are local networks
    tos=lowdelay
    
    In extensions.conf steht:
    Code:
    exten => 85,1,Dial(SIP/zumtesten.dyndns.org)
    
    Über die 85 kann ich nun das kphone anrufen. Es spielt keine Rolle, ob ich in der sip.conf externip drin habe oder nicht.

    Hilft dir das weiter?
     
  19. voipalex

    voipalex Mitglied

    Registriert seit:
    18 Okt. 2004
    Beiträge:
    319
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Wie bereits erwähnt läuft Asterisk hinter einem Router und deshalb ist der externip Eintrag notwendig.
     
  20. wrrdlbrrmpft

    wrrdlbrrmpft Mitglied

    Registriert seit:
    17 Juli 2004
    Beiträge:
    263
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja, richtig! Was mich verwirrt hat ist, dass du nat=no gesetzt hast. Ich wüsste jetzt aber nicht, was das mit diesem Problem zu tun haben könnte, wahrscheinlich gar nichts.

    Die Fehlermeldung war "no such host", richtig?

    Kannst du die dyndns domain, die jetzt nicht funktioniert, anrufen, wenn du deine toplevel domain änderst? Ich würde gerne mal ausschließen, dass die domain generell Probleme bereitet (warum auch immer).

    Vielleicht liefert ein sip debug hilfreiche Informationen.