Anrufbeantworter am S0

laotse

Neuer User
Mitglied seit
14 Apr 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Eigentlich dachte ich, es sei ganz einfach, aber ...

Mein Asterisk lauscht per AVM B1, chan_capi auf dem S0. Ich möchte nun unter einer Nummer einen klassischen Anrufbeantworter einrichten, d.h. nimmt auf dem S0 keiner ab, geht Asterisk nach einer Weile ran.

Folgendes geht:
exten => $$$$$$$,1,VoiceMail(100|u)

oder auch:
exten => $$$$$$$,1,Dial(SIP/invalid,30,tTr)
exten => $$$$$$$,2,VoiceMail(100|u)

oder auch:
exten => $$$$$$$,1,Answer(1000)
exten => $$$$$$$,2,VoiceMail(100|u)

aber alles geht halt sofort an die Leitung. Sobald ich mit einem Wait beginne klappt es nicht mehr. Ich habe u.a. Folgendes mit und ohne Answer probiert. VoiceMail wird angeblich ausgeführt, aber im Telefon höre ich nach wie vor ein Klingelzeichen.

exten => $$$$$$$,1,Wait(10)
exten => $$$$$$$,2,Answer(500)
exten => $$$$$$$,3,VoiceMail(100|u)

Log vom Versuch ohne Answer; der zentrale Fehler "CAPI INFO 0x34d1: Invalid call reference value" bleibt derselbe.

Code:
   -- Executing [$$$$$$$@default:1] Dial("SIP/180-01f92600", "CAPI/g1/$$$$$$§:$$$$$$$|30|r") in new stack
    -- Called g1/$$$$$$§:$$$$$$$
    -- CAPI/ISDN1#02/$$$$$$$-0 is proceeding passing it to SIP/180-01f92600
  == ISDN1#01: Incoming call '$$$$$$§' -> '$$$$$$$'
    -- Executing [$$$$$$$@isdn-in:1] Wait("CAPI/ISDN1#01/$$$$$$$-1", "10") in new stack
[Apr 28 22:14:39] NOTICE[10097]: chan_capi_supplementary.c:143 new_ccbsnr_id: No peerlink found to set CCBS/CCNR linkage ID.
    -- CAPI/ISDN1#02/$$$$$$$-0 is making progress passing it to SIP/180-01f92600
    -- CAPI/ISDN1#02/$$$$$$$-0 is ringing
    -- Executing [$$$$$$$@isdn-in:2] VoiceMail("CAPI/ISDN1#01/$$$$$$$-1", "100|u") in new stack
  == ISDN1#01: Answering for $$$$$$$
    -- <CAPI/ISDN1#01/$$$$$$$-1> Playing 'vm-theperson' (language 'de')
       > ISDN1#01: CAPI INFO 0x34d1: Invalid call reference value
  == Spawn extension (isdn-in, $$$$$$$, 2) exited non-zero on 'CAPI/ISDN1#01/$$$$$$$-1'
  == ISDN1#01: CAPI Hangingup for PLCI=0xdead0000 in state 4

Hat jemand gute Ideen?
 
Mach mal etwas mehr Licht! :)
exten => $$$$$$,1,NoOp(); nur als Platzhalter
exten => $$$$$$,2,Ringing(), wir signalisieren Klingeln der TelCo
exten => $$$$$$,3,Wait(10), wir warten
exten => $$$$$$,4,VoiceMail(100|u); ab ins Koerbchen
exten => $$$$$$,5,HangUp(); auflegen
 
Funktioniert

Cool, das funktioniert! Sogar wenn man es in ein Macro verfrachtet.

Danke - aber kann mir jemand erklären warum ein NOP und ein Ringing den Unterschied machen?

Grüße
 
Der NoOp() bringt nix, tut nix, ändert nix.
Ich baue die aber immer ein um bei einer fehlerhaften Reihenfolge
schnell mal was ändern zu können, bzw. Befehle einfügen kann ohne
die Nummerierung komplett ändern zu müssen.
Mittlerweile nummerieren sich die Dinge ja automatisch.
Ausserdem kann man in die Klammer vom NoOp lustige Dinge schreiben
was das debugging vereinfacht.

So, das mit dem ringing sollte eigentlich nicht nötig sein.
Es gab da mal ein Problem unter Debian mit fertigen Paketen vs. selbstgebauten.
Seit der Zeit benutze ich zum NoOp noch das Ringing an passender Stelle.
Egal ob es noch gebraucht wird oder der Channeltreiber selber die Signalisierung
an die TelCo sendet.
 
Debian Ringing

Tja, so wie es aussieht, braucht man das Ringing immernoch bei Debian. Denn ohne Ringing ging es ja nicht. Das Ringing war Rettung in letzter Sekunde, und so konnte ich gestern Nacht den letzten Server des alten Turms abschalten.

Ich hab da noch zwei kleine Holperer in meiner Lösung. An dem Anschluss hängt halt ein besonderer AB, also nicht einfach Anschluss 123 Herr X. Entsprechend soll ein zentral gemanagter Ansagetext abgespielt werden.

Das klappt auch so wie hier dargestellt:

Code:
[my-box]
exten => s,1,NoOp()
exten => s,2,Ringing()
exten => s,3,Wait(30)
exten => s,4,Answer(700)
exten => s,5,Playback(ansage)
exten => s,6,Wait(1)
exten => s,7,Playback(gong)
exten => s,8,VoiceMail(300|s)
exten => s,9,Hangup
[isdn-in]
exten => $$$$$$,1,Goto(my-box,s,1)

Allerdings ist s,6,Wait(1) zu lang. Hier wäre ca. 1/2 Sekunden das passende Timing. Das könnte man zur Not natürlich in die Sounds direkt einbauen. Aber wenn Answer ms beherrscht, vielleicht hat Asterisk ja auch einen Micro-Wait.

Etwas nerviger ist, dass VoiceMail zwar keine eigene Ansage bringt, aber trotzdem noch einen Beep. Diese Funktion sollte eigentlich der Gong haben. Kann man für eine bestimmte Mailbox einen eigenen Beep einstellen?

Grüße
 
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.