mit asterisk ip direkt anrufen

britzelfix

Gesperrt
Mitglied seit
28 Mai 2004
Beiträge
1,099
Punkte für Reaktionen
0
Punkte
0
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:p[email protected],60,tr)
exten => _111,3,Hangup

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

Gruß
britzelfix
 

voipalex

Mitglied
Mitglied seit
18 Okt 2004
Beiträge
319
Punkte für Reaktionen
0
Punkte
16
würde mich auch interessieren. besonders SIP Direct IP Call
 

rollo

IPPF-Promi
Mitglied seit
5 Jul 2004
Beiträge
8,289
Punkte für Reaktionen
1
Punkte
38
britzelfix schrieb:
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:p[email protected],60,tr)
exten => _111,3,Hangup

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

Gruß
britzelfix
Wie willst Du dabei die Adresse übergeben? Oder ist das als Kurzwahl gedacht?

exten => _111,2,Dial(Proto/[email protected]: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:[email protected]
...

jo
 

britzelfix

Gesperrt
Mitglied seit
28 Mai 2004
Beiträge
1,099
Punkte für Reaktionen
0
Punkte
0
Wie willst Du dabei die Adresse übergeben? Oder ist das als Kurzwahl gedacht?

exten => _111,2,Dial(Proto/[email protected]:port,60,tr)

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

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:[email protected]
...

jo
Das ist wohl ein Unterschied, da sip:[email protected]
die Adresse des Gateway's ist.

Gruß
britzelfix
 

rollo

IPPF-Promi
Mitglied seit
5 Jul 2004
Beiträge
8,289
Punkte für Reaktionen
1
Punkte
38
sipgate war auch nur ein Beispiel, es geht auch mit [email protected]:port
oder [email protected]:port

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

jo
 

Fux

Mitglied
Mitglied seit
3 Jun 2004
Beiträge
420
Punkte für Reaktionen
0
Punkte
16
Nö, [email protected] 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.
 

britzelfix

Gesperrt
Mitglied seit
28 Mai 2004
Beiträge
1,099
Punkte für Reaktionen
0
Punkte
0
Fux schrieb:
Nö, [email protected] ist die Adresse des Users.
Stimmt, und die besteht aus [email protected] und nicht [email protected]
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.

Fux schrieb:
Genauso kann man einen beliebigen anderen User auch anrufen.
Du meinst wenn man die Adresse folgender weise austauscht:
sip:[email protected]
in
sip:[email protected]

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


Fux schrieb:
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.
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
 

Fux

Mitglied
Mitglied seit
3 Jun 2004
Beiträge
420
Punkte für Reaktionen
0
Punkte
16
sip:[email protected]

Hast Du das schon mal probiert?
Und funktioniert es denn auch?
Ja und ja.
Es funzen übrigens auch:
Code:
Dial(SIP/[email protected]) 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 ;-).
 

britzelfix

Gesperrt
Mitglied seit
28 Mai 2004
Beiträge
1,099
Punkte für Reaktionen
0
Punkte
0
Fux schrieb:
he ich aber unter Telefonieren, daß mich jeder anrufen kann - ohne vorher einen Busfahrschein kaufen zu müssen ;-).
Gut, dann fahre ich kein Bus mehr. :D

Danke für alle Antworten.

Gruß
britzelfix
 

voipalex

Mitglied
Mitglied seit
18 Okt 2004
Beiträge
319
Punkte für Reaktionen
0
Punkte
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?
 

rollo

IPPF-Promi
Mitglied seit
5 Jul 2004
Beiträge
8,289
Punkte für Reaktionen
1
Punkte
38
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 [email protected] Bei einigen Clients ist der auch erforderlich.

jo
 

voipalex

Mitglied
Mitglied seit
18 Okt 2004
Beiträge
319
Punkte für Reaktionen
0
Punkte
16
rollo schrieb:
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 [email protected] Bei einigen Clients ist der auch erforderlich.

jo
bin mir ziemlich sicher, dass es was damit zu tun hat und werde demnächst Ergebnisse präsentieren. Das @ hat nichts gebracht..
 

rollo

IPPF-Promi
Mitglied seit
5 Jul 2004
Beiträge
8,289
Punkte für Reaktionen
1
Punkte
38
voipalex schrieb:
rollo schrieb:
SRV lookup hat mit deinem Problem nichts zu tun. Das braucht man nur, wenn innerhalb einer Domain der SIP Proxy gesucht werden soll.
bin mir ziemlich sicher, dass es was damit zu tun hat und werde demnächst Ergebnisse präsentieren. Das @ hat nichts gebracht..
Bin mal gespannt, wie Du SRVs neu definieren willst ;)

Also,

Code:
exten => _*,1,SetCallerID,jo
exten => _*,2,SetCIDName,"jo "
exten => _*,3,Dial(SIP/[email protected],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/[email protected]|60|r") in new stack
    -- Called [email][email protected][/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. [email protected] 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
 

voipalex

Mitglied
Mitglied seit
18 Okt 2004
Beiträge
319
Punkte für Reaktionen
0
Punkte
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.
 

wrrdlbrrmpft

Mitglied
Mitglied seit
17 Jul 2004
Beiträge
263
Punkte für Reaktionen
0
Punkte
0
voipalex schrieb:
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.
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?
 

voipalex

Mitglied
Mitglied seit
18 Okt 2004
Beiträge
319
Punkte für Reaktionen
0
Punkte
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:[email protected]/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.
 

wrrdlbrrmpft

Mitglied
Mitglied seit
17 Jul 2004
Beiträge
263
Punkte für Reaktionen
0
Punkte
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?
 

voipalex

Mitglied
Mitglied seit
18 Okt 2004
Beiträge
319
Punkte für Reaktionen
0
Punkte
16
wrrdlbrrmpft schrieb:
Brauchst du externip überhaupt in der sip.conf? Dein Asterisk hängt doch nicht hinter einem Router, oder etwa doch?
Wie bereits erwähnt läuft Asterisk hinter einem Router und deshalb ist der externip Eintrag notwendig.
 

wrrdlbrrmpft

Mitglied
Mitglied seit
17 Jul 2004
Beiträge
263
Punkte für Reaktionen
0
Punkte
0
voipalex schrieb:
Wie bereits erwähnt läuft Asterisk hinter einem Router und deshalb ist der externip Eintrag notwendig.
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.
 

3CX PBX - GRATIS
Linux / Win / Cloud

Neueste Beiträge

Statistik des Forums

Themen
233,100
Beiträge
2,030,145
Mitglieder
351,429
Neuestes Mitglied
Enzephalon