[Frage] Asterisk 1.6 als reine SIP-Voicemail confen

simonszu

Neuer User
Mitglied seit
12 Mrz 2007
Beiträge
73
Punkte für Reaktionen
0
Punkte
6
Hi

Weil meine Fritzbox da nur Fehler macht, habe ich vor, eine Asterisk-Installation so zu confen, dass sie sich per SIP auf die FB verbindet, und bei eingehenden Anrufen quasi Voicemail spielt.

Ich hab mir das so vorgestellt, dass sich der Asterisk bei der FB verbindet, und bei ihr sich als SIP-Client verbindet. Die FB leitet alle Anrufe sowohl an meine Telefone als auch an den Asterisk weiter. Im Asterisk richte ich ein imaginäres SIP-Phone ein, was 20 Sekunden klingeln soll, und dann auf die Voicemail umschaltet. Damit möchte ich erreichen, dass meine echten Telefone 20 Sekunden lang klingeln, und dann der Asterisk mit der Voicemail rangeht.

Ich bin noch ein relativer Neuling, was Asterisk angeht, daher habe ich noch einige Probleme. Ich zeig euch am besten erstmal meine Config-Dateien.

Zuerst die sip.conf:
[general]
port = 5060
bindaddr = 0.0.0.0
context = default

register => 621:[email protected]

[2000]
context=default
type=friend
secret=secret
host=dynamic

Die Registrierung des Asterisk an der FB klappte laut dem Webfrontend der FB. Ich habe der FB nun befohlen, alle Anrufe auch an das neu eingerichtete SIP-Phone zu leiten.

Nun habe ich die extensions.conf angepasst, um das Verhalten des Telefons 2000 zu steuern.

[default]
exten => 2000,1,Dial(SIP/2000,2)
exten => 2000,2,VoiceMail(2000,u)

Ich lasse es momentan zu Debugzwecken nur 2 Sekunden lang am virtuellen Telefon klingeln.

Meine voicemail.conf sieht noch so aus:
[general]
format = wav

[default]
2000 => 2342,Simon Szustkowski,[email protected]

Mein Problem sieht nun folgendermaßen aus: Wenn ich von außen anrufe, stellt die Fritzbox den Anruf zwar auch auf den Asterisk durch, aber das Asterisk-CLI meldet mir bei einem Verbose-Level von 5 folgende Meldung:

NOTICE[10285]: chan_sip.c:20152 handle_request_invite: Call from '' to extension 's' rejected because extension not found in context 'default'.

Das ist alles. Der Asterisk handlet den Anruf nicht mehr weiter, und die Voicemail tut natürlich auch nichts mehr.

Ich hoffe, ihr könnt mir helfen, vielleicht ist ja nur mein Ansatz falsch, und man kann das alles viel einfacher lösen, oder ich habe einen Denkfehler in den Configs, oder der Asterisk ist maulig, weil sich das Telefon mit der Nummer 2000 nie bei ihm registriert hat. Aber gerade dann sollte er doch froh sein, dass ich ihm die VoiceMail beigebracht habe.

Nunja, bevor ich mir hier jetzt weiter den Kopf evtl auch unnötig zerbreche, frage ich euch lieber. :)
 
Call from '' to extension 's' rejected because extension not found in context 'default'.

... bedeutet ausgesprochen, im verwendeten Context "default" wird die angesprungene Extension "s" nicht gefunden. Stimmt, denn Du hast keine exten=>s im default.

Zwei Lösungen: entweder beim register /2000 anhängen, oder s-extension verwenden.

Wärmstens zu empfehlen: www.das-asterisk-buch.de

Und schau mal hier rein, das könnte Dir vielleicht auch behilflich sein.
 
Okay, ich krieg jetzt folgende Meldungen und dass der Asterisk per default drangeht, guck ich dann heute Abend mal.

Sind diese Meldungen denn korrekt?
[Feb 23 07:52:08] NOTICE[10285]: chan_sip.c:20152 handle_request_invite: Call from '' to extension 's' rejected because extension not found in context 'default'.
== Using SIP RTP CoS mark 5
-- Executing [2000@default:1] Dial("SIP/fritz.fonwlan.box-00000000", "SIP/2000,2") in new stack
== Using SIP RTP CoS mark 5
[Feb 23 07:52:08] WARNING[11395]: app_dial.c:1747 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [2000@default:2] VoiceMail("SIP/fritz.fonwlan.box-00000000", "2000,u") in new stack
-- <SIP/fritz.fonwlan.box-00000000> Playing 'vm-theperson.gsm' (language 'en')
-- <SIP/fritz.fonwlan.box-00000000> Playing 'digits/2.gsm' (language 'en')
-- <SIP/fritz.fonwlan.box-00000000> Playing 'digits/0.gsm' (language 'en')
-- <SIP/fritz.fonwlan.box-00000000> Playing 'digits/0.gsm' (language 'en')
-- <SIP/fritz.fonwlan.box-00000000> Playing 'digits/0.gsm' (language 'en')
-- <SIP/fritz.fonwlan.box-00000000> Playing 'vm-isunavail.gsm' (language 'en')
-- <SIP/fritz.fonwlan.box-00000000> Playing 'vm-intro.gsm' (language 'en')
-- <SIP/fritz.fonwlan.box-00000000> Playing 'beep.gsm' (language 'en')
-- Recording the message
-- x=0, open writing: /var/spool/asterisk/voicemail/default/2000/tmp/pZTa5O format: wav, 0x1067e0e0
-- User hung up

Ich mein, ja, klar, der meldet jetzt, wie die Voicemail den Anruf annimmt, aber da gibts ja immer noch einen Fehler, dass eine Extension nicht gefunden wurde.
 
Zuletzt bearbeitet:
So korrekt, wie es in dem Fall sein kann. Durch die nicht existente SIP/2000 wird das nie was Vernünftiges, deshalb der zweite Link in meinem vorherigen Post.
 
Okay, das werd ich heute Abend dann mal implementieren. Und mich dann mal mit dem Finetuning der Voicemail beschäftigen.

Nunja, nur mal so rein prophylaktisch: Ich habe an der FB noch ein analoges Telefon angeschlossen. Kann ich die Route irgendwie so hinbiegen, dass ich von dem Telefon in die FB, von da in den Asterisk, von da wieder in die FB, wahlweise über SIP oder POTS komme? So ein Asterisk scheint ja schon felxibler als die FB zu sein, und als ein Kumpel mir mal erzählte, dass er den Einslive-Webradiostream als Musik on Hold hatte, erwachte mein Basteltrieb :D
 
Grundsätzlich klappt das, dazu muss die FritzBox zusätzlich als SIP Client am Asterisk angemeldet sein. Wenn Du Dich mal ausreichend im Asterisk-Buch umgesehen hast, wirst Du das problemlos lösen können. Es sei angemerkt, dass es je nach verwendeter FritzBox mit den DSPs eng werden kann.
 
Hm...so, ich dachte, ich hätte die Regelmäßigkeit, mit der Asterisk die extensions und Kontexte definiert, verstanden. Bis jetzt.

Ich dachte mir, dass ein Zugriff per Telefon auf die Voicemail ja ansich auch nichts schlechtes ist, vor allem, um den Begrüßungstext aufzunehmen.
Ich habe also einen neuen SIP-Client erstellt,

[2999]
context=default
type=friend
secret=c8d6d34qcxy
host=dynamic

...und diesen SIP-Client, da er ja im gleichen Kontext ist, auf die VoicemailMain geroutet:

exten => 2999,1,VoiceMailMain(2000,s)

In der Fritzbox habe ich noch angegeben, dass alle Gespräche mit der Rufnummer 2999 über den neu hinzugefügten SIP-Anbieter "Asterisk" geroutet werden sollen.

Die auftretenden Symptome sind allerdings, dass beim Wählen von 2999 wieder sämtliche Telefone klingeln, und nach n Sekunden die Voicemail rangeht. Dies passiert nicht bei Nummern, die im Wählplan der Fritzbox nicht existieren.
Ich habe die 2999-Nummer mal testweise direkt auf die Voicemail routen lassen, ebenfalls ohne Auswirkungen.

Ich weiß jetzt weder weiter, noch was ich falsch gemacht habe.
 
Zuletzt bearbeitet:
Zeig mal bitte Deine komplette extensions.conf, und einen CLI Auszug mit verbose >= 3 während eines Anrufs auf die 2999.

Und verwende für Codes bitte kein Quote sondern Code-Tags. Entweder über Erweitert und dann den #-Button oder [noparse]
Code:
...
[/noparse].
 
Okay, sorry für die falsche Verwendung.
Code:
[default]
; Debugbefehle
exten => 1001,1,Answer()
exten => 1001,2,Playback(hello-world)
exten => 1001,3,Hangup()

exten => 2000,1,Dial(SIP/2000&Local/dummy@intern,2)
exten => 2000,2,VoiceMail(2000,u)

exten => 2999,1,VoiceMailMain(2000,s)


[intern]
exten=>dummy,1,Ringing
exten=>dummy,n,Wait(120)

Die Extension zur VoicemailMain habe ich so aus dem Asterisk-Buch.

Die CLI sieht so aus (mit Verboselevel 5):

Code:
Verbosity is at least 5
  == Using SIP RTP CoS mark 5
    -- Executing [2000@default:1] Dial("SIP/fritz.fonwlan.box-0000000e", "SIP/2000&Local/dummy@intern,2") in new stack
  == Using SIP RTP CoS mark 5
[Feb 24 13:59:20] WARNING[1265]: app_dial.c:1747 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
    -- Called dummy@intern
    -- Executing [dummy@intern:1] Ringing("Local/dummy@intern-6fe7;2", "") in new stack
    -- Executing [dummy@intern:2] Wait("Local/dummy@intern-6fe7;2", "120") in new stack
    -- Local/dummy@intern-6fe7;1 is ringing
    -- Nobody picked up in 2000 ms
    -- Executing [2000@default:2] VoiceMail("SIP/fritz.fonwlan.box-0000000e", "2000,u") in new stack
  == Spawn extension (intern, dummy, 2) exited non-zero on 'Local/dummy@intern-6fe7;2'
    -- <SIP/fritz.fonwlan.box-0000000e> Playing 'vm-theperson.gsm' (language 'en')
    -- <SIP/fritz.fonwlan.box-0000000e> Playing 'digits/2.gsm' (language 'en')
    -- <SIP/fritz.fonwlan.box-0000000e> Playing 'digits/0.gsm' (language 'en')
    -- <SIP/fritz.fonwlan.box-0000000e> Playing 'digits/0.gsm' (language 'en')
    -- <SIP/fritz.fonwlan.box-0000000e> Playing 'digits/0.gsm' (language 'en')
    -- <SIP/fritz.fonwlan.box-0000000e> Playing 'vm-isunavail.gsm' (language 'en')
    -- <SIP/fritz.fonwlan.box-0000000e> Playing 'vm-intro.gsm' (language 'en')
  == Spawn extension (default, 2000, 2) exited non-zero on 'SIP/fritz.fonwlan.box-0000000e'
 
Du hast also in der Fritzbox einen neuen Internettelefonie-Account angelegt mit Benutzer 2999 und dem Asterisk als Registrar/Proxy, damit sich die Box am Asterisk registriert. Und dann hast Du eine Wahlregel eingerichtet, die besagt, dass alle Nummern mit 2999 über den zuvor angelegten Account gewählt werden soll?

Dann verstehe ich nämlich die Welt auch nicht mehr, denn laut CLI wird ganz eindeutig die 2000 angerufen. Das schaut mehr danach aus, als würde der Anruf per Rufumleitung auf die **621 geschickt.
 
Och, ich könnte mich gerade selbst ohrfeigen.
Ich habe gesehen, dass die Fritzbox offenbar nicht am Asterisk registriert war, und dann gemerkt, dass ich die falsche IP eingetragen habe.
Nun hat sich die FB auch korrekt am Asterisk mit der Nummer 2999 registriert.

Da besteht anscheinend trotzdem irgendwo noch ein Ressourcenkonflikt im Asterisk. Wenn ich mit dem einen Telefon die 2999 anrufe, geht nicht die VoicemailMain ran, sondern das andere an die FB angeschlossene Telefon klingelt.
Der Auszug aus dem CLI sieht so aus:
Code:
  == Using SIP RTP CoS mark 5
[Feb 24 16:15:39] WARNING[10285]: chan_sip.c:12729 check_auth: username mismatch, have <2999>, digest has <621>
[Feb 24 16:15:39] NOTICE[10285]: chan_sip.c:20073 handle_request_invite: Failed to authenticate device <sip:[email protected]>;tag=664A5B73ABC9679A

Was meint der jetzt mit "digest has 621"? Das ist doch lediglich der Username, den der Asterisk an der FB hat, um sich dort als Voicemail zu registrieren. Das hat doch gar nichts mehr mit dem Szenario zu tun hier. Und wieso er dann einen User 620 von der FB reinbekommt, kann ich auch irgendwie nicht klären.
 
Das mit der Authentifizierung könnte ein fehlendes insecure=port,invite in der sip.conf bei [2000] sein, außerdem musst Du dort host=fritz.box bzw. die IP-Adresse der Box eintragen. host=dynamic gehört nur für Peers, die sich am Asterisk registrieren, bei Dir zB. die 2999.

Trotzdem plagt mich die weibliche Intuition, dass da noch irgendwas verdreht ist.
 
Das versteh ich jetzt nicht. Die 2000 existiert doch gar nicht wirklich, wieso soll ich denn da eintragen, dass sie von der FB reinkommt?
 
Du brauchst auf jeden Fall ein ankommendes Peer zusätzlich zum register. So wie Deine extensions.conf am Anfang aufgebaut war, bin ich davon ausgegangen, dass Du ankommend die 2000 verwenden willst. 621 wäre eigentlich stimmiger gewesen.

Weil ich heute ausnahmsweise gut gelaunt bin, hier ein bisschen Code:

sip.conf
Code:
register=>621:[email protected]/621

[621]
type=peer
defaultuser=621
fromuser=621
secret=DeinIPTelefonKennwort
host=fritz.box
fromdomain=fritz.box
insecure=port,invite
canreinvite=no
dtmfmode=rfc2833
qualify=no
nat=no
context=von-fritzbox

[2999]
defaultuser=2999
type=friend
secret=KennwortFuerInternettelefoniekonto2999
context=sip-clients
nat=no
host=dynamic
qualify=no
canreinvite=no

extensions.conf
Code:
[von-fritzbox]
exten=>621,1,Ringing
exten=>621,n,Wait(20)
exten=>621,n,VoiceMail(2000)
exten=>621,n,HangUp

[sip-clients]
exten=>2999,1,VoiceMailMain(2000,s)
exten=>2999,n,HangUp

Das passende IP-Telefon 621 in der Fritzbox hast Du ja schon.
Dazu brauchst Du noch ein Internettelefoniekonto 2999 mit Asterisk als Registrar/Proxy.

Zu guter Letzt legst Du wie bereits beschrieben eine Wahlregel für 2999 über das Internettelefoniekonto 2999 an.
 
Zuletzt bearbeitet von einem Moderator:
Hey, danke für deine Mühe. :)
Es hat sich aber nichts geändert. :(
Wenn ich von außen anrufe, um die Voicemail zu testen, klingeln alle Telefone, auch länger als die eingestellte Wait-Zeit in der extensions.conf, und die CLI meldet mir:
Code:
[Feb 25 14:06:35] WARNING[10285]: chan_sip.c:12729 check_auth: username mismatch, have <2999>, digest has <621>
[Feb 25 14:06:35] NOTICE[10285]: chan_sip.c:20073 handle_request_invite: Failed to authenticate device <sip:[email protected]>;tag=3B5AB5370ECE8903
[Feb 25 14:06:35] WARNING[10285]: chan_sip.c:12729 check_auth: username mismatch, have <2999>, digest has <621>
[Feb 25 14:06:35] NOTICE[10285]: chan_sip.c:20073 handle_request_invite: Failed to authenticate device <sip:[email protected]>;tag=B0B04A011DC4897B
,

wobei die 0176-Nummer mein Handy ist, mit dem ich von außen anrufe.

Wähle ich intern die 2999, klingeln alle Telefone außer dem, von dem ich anrufe. Die CLI meldet:
Code:
[Feb 25 14:07:56] WARNING[10285]: chan_sip.c:12729 check_auth: username mismatch, have <2999>, digest has <621>
[Feb 25 14:07:56] NOTICE[10285]: chan_sip.c:20073 handle_request_invite: Failed to authenticate device <sip:[email protected]>;tag=3B7A1B2E020637D5
,
wobei 620 das SIP-Phone ist, von dem ich aus die Voicemailmain abzufragen versuche.

Also eigentlich noch alles wie vorher. :(
 
Mach mal bitte Screenshots von den Einstellungen in der Fritzbox. Ich kapier langsam nicht mehr, was da bei Dir abläuft. Bei mir funktioniert das mit genau dieser Config mit einer 7270 und dem darauf installierten Asterisk@FBF.
 
So, hier hab ich mal ein paar Screenshots meiner Fritzbox-Config.
internettelefonie.jpgasterisk-registrar.jpgasterisk-client.jpgtelefoniegeräte.jpgverbindungsinfo.jpgwahlregeln.jpg
 
Sry, ich versteh's einfach nicht. Die CLI Meldungen passen nicht zu der Config. Vielleicht tummelt sich am Wochenende zufällig jemand hier, dem was auffällt.
 
So, ich hab jetzt nochmal drübergeguckt, und gesehen, dass die Voicemail noch für 2000 und nicht für 621 geconft war, kein wunder, dass es da Probleme gab. Habs mal geändert. Sobald ich heute abend wieder zu hause bin, geb ich dir nochmal Rückmeldung, obs jetzt auch für die 2999-Nummer klappt. ;)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.