Kennt Asterisk bei mir kein s im Dialplan? (gelöst)

Energiequant

Neuer User
Mitglied seit
25 Mrz 2005
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Hab mir für heute vorgenommen mal probeweise Asterisk aufzusetzen und muss sagen, das gestaltet sich schwieriger als ich dachte. Nachdem ich erstmal 1 1/2h gebraucht habe, um die Anbindung an SIPGate hinzukriegen und weitere 2h für einen Benutzer der mit X-Lite funktioniert, sitze ich jetzt vor dem Dialplan und komme nicht weiter.

Wenn ich das richtig verstehe, sollte s für alle gewählten Nummern gelten. Wenn ich jetzt also über die sip.conf einen context voip-in festgelegt habe, landen die Verbindungen hier:

Code:
[voip-in]
;exten => s,1,Dial(SIP/meinbenutzer,10,t)
exten => s,1,Answer
exten => s,2,MP3Player(/pfad/zu/einer.mp3)

Egal ob ich die auskommentierte oder die beiden Regeln darunter verwende, es tut sich nichts - der Anruf geht zwar ein, mein Rechner nimmt aber nicht ab und lässt die Voicemail von SIPGate für sich arbeiten. Das Kuriose: Wenn ich meine SIPGate-ID anstelle des s einsetze, funktionieren Anrufe von meinem Handy. Das noch Kuriosere: Ruft ein Kumpel über Freenet iPhone an, geht mein Rechner wieder nicht bis zum Timeout ran.

Wenn ich meinen internen Benutzer an einen anderen context hänge und dort rumexperimentiere, funktioniert es ebenfalls nur, wenn ich eine Nummer in Ziffern angebe - versuche ich irgendwelche Pattern zu benutzen, kriege ich lediglich Fehlermeldungen im Client (404).

Was um alles in der Welt geht da vor sich? Laut dem was ich bisher gelesen habe (etliche Beispielkonfigurationen, Wiki auf voip-info.org, einen c't- und einen IX-Artikel) sollte das wohl eigentlich so gehen.

Ich habe Asterisk in der Version 1.0.7 über Gentoo's Portage-System installiert.
 
Die s-Extension wird normalerweise für analog-Leitungen bei fehlendem CLIP angesprochen oder in macros als Platzhalter (laut voip-info.org).
 
Heißt das, für reine SIP-Verbindungen funktioniert das nicht? Was nehme ich stattdessen? Wie gesagt: Pattern der Form _X. funktionieren ebenfalls nicht, obwohl sie es, wenn ich es richtig verstanden habe, sollten.

Hat jemand eine Beispielkonfiguration?

Die aus der Hilfe von SIPGate schlägt folgendes für ausgehende Gespräche vor:

Code:
[sipout] 
exten => _X.,1,SetCallerId,SIPID 
exten => _X.,2,Dial(SIP/${EXTEN}@sipgate-out,30,trg) 
exten => _X.,3,Hangup

Das funktioniert auch. Aber bei eingehenden Anrufen kann ich mit _X. wie gesagt wieder nix anfangen.
 
Welchen context= hast du in der sip.conf unter [general] und für [sipgate] eingetragen - vielleicht wird dieser garnicht angesprochen!
 
Für general context=voip-in.

Für meinen internen Benutzer context=internal (meine eigene Testkonfiguration) oder context=sipout (der Vorschlag von SIPGate, funktioniert).

Die andere SIPGate-Verbindung für den Ausgang (zumindest glaube ich daß diese nichts anderes macht) hat keinen context. Sie ist nach dem Vorschlag von SIPGate konfiguriert:

Code:
[sipgate-out] 
type=friend 
insecure=very ; otherwise I get authentication errors 
nat=yes 
username=SIPID 
fromuser=SIPID 
fromdomain=sipgate.de 
secret=SIPPW 
host=sipgate.de 
qualify=yes

Ich habe lediglich noch ein deny=0.0.0.0/0 eingefügt, da ich die Befürchtung hatte, daß mich das sonst zu einem offenstehenden Gateway machen könnte.
 
Trage bei [sipgate-out] den context=sipout ein (qualify sollte auf 'no' sitzen).

Kontrolliere den Verlauf über die Konsole mit 'asterisk -dddvvvr'.
 
Die den Anruf betreffenden Zeilen sind:

Code:
    -- Executing SetCallerID("SIP/MEINEID-7666", "MEINEID") in new stack
    -- Executing Dial("SIP/MEINEID-7666", "SIP/MEINEID@sipgate-out|30|trg") in new stack
    -- Called MEINEID@sipgate-out

Wobei ich nicht weiß wohin er jetzt versucht hat mich zu vermitteln; ich glaube er hat versucht mich über VoIP an sich selbst zu leiten? ;) Jedenfalls gab es am Handy ein Freizeichen, Kosten sind angeblich keine entstanden (ich dachte eigentlich immer, daß bei einer Weitervermittlung für Anrufer und Telefonzentrale Kosten entstünden).

Setze ich context auf voip-in, passiert nichts - ich höre nur Stille am Handy, Asterisk zeigt nichts an und Kosten entstehen ebenfalls keine.

Ob ich qualify an oder aus habe, spielt übrigens (scheinbar) keine Rolle, die Ausgaben sind dieselben.

Ich hab jetzt erstmal Asterisk auf 1.0.8 geupdated, mal sehen ob das was bringt.

Edit: Nein, es bringt nichts.
 
- Executing Dial("SIP/MEINEID-7666", "SIP/MEINEID@sipgate-out|30|trg") in new stack

Du solltest nicht versuchen dich selbst anzurufen!

ändere die Zeile auf: exten => _X.,2,Dial(SIP/${EXTEN}@sipgate-out,,)
 
Hm, ich weiß nicht so ganz was das jetzt gemacht hat (meiner Meinung nach ruft er mich immer noch selbst an aber ohne Timeout), jedenfalls hab ich jetzt wieder Stille und folgende Ausgabe:

Code:
    -- Executing SetCallerID("SIP/MEINEID-e5ed", "MEINEID") in new stack
    -- Executing Dial("SIP/MEINEID-e5ed", "SIP/MEINEID@sipgate-out||") in new stack
    -- Called MEINEID@sipgate-out

Edit: Ah, okay, Timeout weg, kein künstlicher Ringtone, der Anrufer kann das Gespräch nicht transferieren (?) und die Bearbeitung bricht nach dem Auflegen ab.
 
Also wir benötigen mal die sip.conf und extensions.conf vollständig und nicht in Auszügen - da können durchaus Fehler an unterschiedlichen Stellen zusammenspielen.

Ausserdem - Änderungen an der Config müssen unter asterisk erst geladen werden mit 'sip reload' bzw 'extensions reload' oder 'reload' für Alles - sonst kannst du editieren was du willst und es hat erst nach einem asterisk-Restart Auswirkungen!
 
Gut, hier kommen sie (mit "geschwärzten" Stellen):

internes:
MEINBENUTZER, MEINHASH, MEINLOKALESPWD, MEINNAME, MEINEDYNDNS

externes (SIPGate):
MEINEID, MEINPWD

sip.conf:

Code:
[general]
port = 5060
bindaddr = 0.0.0.0
context=voip-in
qualify=no
disable=all
allow=alaw
allow=alaw
allow=ulaw
allow=g729
allow=gsm
allow=slinear
srvlookup=yes
canreinvite=yes
language=de
register => MEINEID:[email protected]/MEINEID
externhost=MEINEDYNDNS

[sipgate-out]
type=friend
insecure=very ; otherwise I get authentication errors
nat=yes
username=MEINEID
fromuser=MEINEID
fromdomain=sipgate.de
secret=MEINPWD
host=sipgate.de
qualify=no
deny=0.0.0.0/0
;context=voip-in
context=sipout

;[MEINBENUTZER]
;username=MEINBENUTZER
;language=de
;type=friend
;host=dynamic
;mailbox=MEINBENUTZER@default
;md5secret=MEINHASH
;callerid=MEINNAME
;deny=0.0.0.0/0
;permit=192.168.0.0/24
;context=internal
;disallow=all
;allow=ulaw
;allow=alaw
;allow=all

[MEINBENUTZER]
;Turn off silence suppression in X-Lite ("Transmit Silence"=YES)!
;Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed
type=friend
;regexten=1234                 ; When they register, create extension 1234
username=MEINBENUTZER
secret=MEINLOKALESPWD
callerid=MEINBENUTZER
host=dynamic
;nat=yes                       ; X-Lite is behind a NAT router
;canreinvite=no                ; Typically set to NO if behind NAT
;disallow=all
;allow=gsm                     ; GSM consumes far less bandwidth than ulaw
;allow=ulaw
;allow=alaw
allow=all
;deny=0.0.0.0/0
permit=0.0.0.0/0
context=sipout
;context=internal

extensions.conf:

Code:
[voip-in]
;exten => MEINEID,1,Dial(SIP/MEINBENUTZER,10,t)
exten => s,1,Answer
exten => s,2,MP3Player(/pfad/zur.mp3)
;exten => s,1,Answer
;exten => s,2,Ringing
;exten => s,3,Wait(5)
;exten => s,4,Hangup

[sipout]
exten => _X.,1,SetCallerId,MEINEID
;exten => _X.,2,Dial(SIP/${EXTEN}@sipgate-out,30,trg)
exten => _X.,2,Dial(SIP/${EXTEN}@sipgate-out,,)
exten => _X.,3,Hangup

[internal]
exten => 10,1,Answer
exten => 10,2,MP3Player(/pfad/zur.mp3)
exten => 10,3,Wait(5)
exten => 10,4,Hangup


Die Änderungen hab ich immer mit einem globalen reload geladen.
 
sip.conf:
Code:
[general]
port = 5060
bindaddr = 0.0.0.0
context=voip-in
qualify=no
disable=all
allow=alaw
allow=ulaw
allow=g726
allow=ilbc
;allow=g729 muss extra lizenziert werden
allow=gsm
srvlookup=yes
canreinvite=no
language=de
register => MEINEID:[email protected]/MEINEID
externip=MEINEDYNDNS ; externhost gibt es nicht in stable/tarball
tos=0x18
insecure=very
nat=yes
dtmfmode=info
maxexpirey=3600		
defaultexpirey=600
[sipgate-out]
type=friend
insecure=very ; otherwise I get authentication errors
nat=no
username=MEINEID
fromuser=MEINEID
fromdomain=sipgate.de
secret=MEINPWD
host=sipgate.de
context=sipout
qualify=no
;deny=0.0.0.0/0  ; macht imho nur bei host=dynamic Sinn

nicht vergessen die ports (alles udp) 5060 und die in der rtp.conf angegebenen ports an asterisk forwarden - Ausnahme: asterisk läuft auf dem Router?!
 
Ist wieder dasselbe Ergebnis. Die Ports sind frei; ich habe Asterisk auf demselben Rechner laufen, der auch das Internet routet. Hatte mich allerdings die erste halbe Stunde meiner Versuche überhaupt eine Anbindung an SIPGate hinzukriegen zunächst ausgesperrt, indem ich die betreffenden Ports nach wie vor auf meinen Desktop-Rechner weiterleiten ließ - das Problem ist jetzt allerdings behoben und ich selbst kam ja auch schon von meinem Handy aus rein (siehe erstes Post), allerdings mit meiner SIPGate-ID anstelle des s.
 
Was sagt der debug-mode 'asterisk -dddvvvr'?
Bitte beim Testen eine externe Nummer z.B. Handy anrufen nicht die eigene Sipgate-Nummer!
 
Was sagt der debug-mode 'asterisk -dddvvvr'?
Bitte beim Testen eine externe Nummer z.B. Handy anrufen nicht die eigene Sipgate-Nummer!

Sorry - ein Fehler von mir - den context=sipout bei xlite angeben unter [sipgate-out] auf Kommentar setzen (damit zieht der default).
 
Netview schrieb:
Bitte beim Testen eine externe Nummer z.B. Handy anrufen nicht die eigene Sipgate-Nummer!

Ich glaube wir reden aneinander vorbei: Raustelefonieren kann ich prima, das funktioniert wunderbar und mit jeder Telefonnummer (Testrufnummer, Voicemail, Handy, iPhone). Das Reintelefonieren macht die Probleme, ich kann von außen nicht angerufen werden. Die (relevanten) Ausgaben von -dddvvvr sind oben gepostet. Mit sip debug konnte ich erkennen, daß zwar der einkommende Anruf signalisiert wird, Asterisk sich aber nicht in jedem Fall dazu veranlasst sieht, irgendetwas zu unternehmen.
 
Energiequant schrieb:
Netview schrieb:
Bitte beim Testen eine externe Nummer z.B. Handy anrufen nicht die eigene Sipgate-Nummer!

Ich glaube wir reden aneinander vorbei: Raustelefonieren kann ich prima, das funktioniert wunderbar und mit jeder Telefonnummer (Testrufnummer, Voicemail, Handy, iPhone). Das Reintelefonieren macht die Probleme, ich kann von außen nicht angerufen werden. Die (relevanten) Ausgaben von -dddvvvr sind oben gepostet. Mit sip debug konnte ich erkennen, daß zwar der einkommende Anruf signalisiert wird, Asterisk sich aber nicht in jedem Fall dazu veranlasst sieht, irgendetwas zu unternehmen.

ok - wenn unter [sipgate-out] kein context definiert ist wird der unter [general] benutzt: voip-in - bei eingehenden Anrufen.
Im register steht: register => MEINEID:[email protected]/MEINEID

deshalb muss die extensions.conf wie folgt aussehen:

[voip-in]

exten => MEINEID,1,Dial(SIP/MEINBENUTZER,,t)
exten => MEINEID,2,Congestion
exten => MEINEID,3,Busy
exten => MEINEID,4,Hangup
 
Hm okay. Das sieht dann so ähnlich aus wie am Anfang. Damit bleibt die Frage, wieso das dann problemlos über mein Handy klappt, nicht aber über iPhone (Direktanruf durch Netzzusammenschluss). Machen die irgendwas anders? Müsste ja eigentlich über die selbe ID reinkommen, oder?

Achso, falls es eine Rolle spielt: Die Gegenstelle wählt mich über eine Fritz!Box Fon (aktuellste Firmware) an. Könnte mir höchstens vorstellen, daß dadurch, daß er ohne Umweg übers Festnetz an mich vermittelt wird, evtl. meine IP-Adresse/mein Hostname im Dialplan gefragt ist, aber ein bischn blöd wär das dann, oder? Ich meine ich sollte doch wohl trotzdem mit meiner Rufnummer "angeschrieben" werden?
 
Wir reden wieder aneinander vorbei. :)

Der mit iPhone ist ein Kumpel in einer ganz anderen Stadt, der hockt nicht im selben Netz. Daß ich hier demnächst mehrere Clients im selben Netz hocken habe hat mich sogar dazu gebracht, mich überhaupt mit Asterisk zu beschäftigen. ;)

Das Problem scheint auch eher mal wieder mit Freenet<->SIPGate zu tun zu haben. Ich hab ihn gebeten noch ein paar Mal anzurufen und während ich auch wenn irgendwas schief läuft eine einkommende Nachricht im Debug-Modus sehen sollte wie "From 'SEINETELEFONNUMMER' to 'sip:MEINBENUTZER@INTERNEIP:5060'", kommt absolut gar nichts an. Auf der Anrufliste von SIPGate erscheinen jedoch unbekannte Rufnummern.

Ich sag deshalb jetzt einfach mal, das ursprüngliche Frage hat sich erledigt. Ich werd mal sehen, ob das Problem vielleicht morgen noch besteht und dann nochmal gucken woran es noch liegen kann. Zu dumm, daß ich nicht früher auf die Idee kam, es so zu prüfen, aber ich dachte da stimmt was an meiner Config nicht. :/

Also danke für Deine Zeit und Geduld. Etwas gebracht hat es zumindest: Ich hab jetzt einfach ein Goto(s,1) für meine ID eingefügt und damit geht jetzt alles auch mit s, basta! ;)
 
Energiequant schrieb:
Hm okay. Das sieht dann so ähnlich aus wie am Anfang. Damit bleibt die Frage, wieso das dann problemlos über mein Handy klappt, nicht aber über iPhone (Direktanruf durch Netzzusammenschluss). Machen die irgendwas anders? Müsste ja eigentlich über die selbe ID reinkommen, oder?

Achso, falls es eine Rolle spielt: Die Gegenstelle wählt mich über eine Fritz!Box Fon (aktuellste Firmware) an. Könnte mir höchstens vorstellen, daß dadurch, daß er ohne Umweg übers Festnetz an mich vermittelt wird, evtl. meine IP-Adresse/mein Hostname im Dialplan gefragt ist, aber ein bischn blöd wär das dann, oder? Ich meine ich sollte doch wohl trotzdem mit meiner Rufnummer "angeschrieben" werden?

Am dialplan ändert sich nichts. Es kommt oft vor, dass die Weitergabe zu sipgate nicht funktioniert - besser ist von der fbf aus einen Telefonbucheintrag zu erstellen und diesen anzuwählen: [email protected]
 
Kostenlos!

Statistik des Forums

Themen
248,546
Beiträge
2,293,912
Mitglieder
378,052
Neuestes Mitglied
BigBoi19781