[Problem] CDR-Eintrag früher als von Asterisk geplant erzeugen

genbian

Neuer User
Mitglied seit
31 Mai 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
Asterisk 1.4.21, CDR speichert in mySQL Datenbank.
Asterisk steht hinter einer herkömmlichen ISDN-TK-Anlage, übersetzt quasi nur von eingehenden ISDN-anrufen auf SIP und spielt Anrufbeantworter.
Im CDR landen scheinbar nur Einträge, wenn Asterisk auch irgendeine Art Verbindung aufgebaut hat, dies scheint wohl der gewünschte Standard zu sein.
Bisher habe ich für eingehende Anrufe raus, es wird ins CDR geloggt wenn entweder:
  • wenigstens ein SIP-Telefon-klingelt
  • Der Anrufbeantworter ran geht
Da jedoch an der ISDN-TK noch normale Telefone klingeln, wenn ein Amtsruf eingeht, warte ich, falls mal kein SIP-Klient eingeloggt ist, 40 Sekunden bevor ich den Anruf an die Mailbox weiterleite.
Legt innerhalb dieser 40 Sekunden der Anrufende auf, so landet kein Logeintrag im CDR. Das ist schlecht. Denn so sehe ich den verpassten Anruf nämlich nicht. Was aber schön wäre.
Wie erzeuge ich den Eintrag im CDR sobald Asterisk den einkommenden Anruf sieht?

extension.conf:
Code:
[isdn-in] ;selbstgebaut
exten => s,1,ChanIsAvail(SIP/sipuserno1)
exten => s,2,GotoIf($["${CUT(AVAILCHAN||1)}" = "SIP/sipuserno1"]?303:301) ;falls SIP/sipuserno1 erreichbar wird direkt durchgeklingelt, ansonsten muss 40 s gewartet werden damit die Telefonanlage noch ein wenig klingeln kann.

exten => s,301,Ringing()
exten => s,302,Wait(40) ;40 s warten weil ja sipuserno1 nicht da/eingeloggt ist, aber noch alte analoge Telefone über die vorgeschaltete Anlage das Gespräch annehmen können.
exten => s,303,Macro(stdexten,56,SIP/sipuserno1) ;alles klar, lass Klingeln

[macro-stdexten]
exten => s,1,Dial(${ARG2},55,t)
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Voicemail(${ARG1},u)
exten => s-NOANSWER,2,Hangup
exten => s-BUSY,1,Voicemail(${ARG1},b)
exten => s-BUSY,2,Hangup
exten => _s-.,1,Goto(s-NOANSWER,1)
Sofern er bei Priorität 303 ankommt habe ich einen Eintrag im CDR. Ich hätte ihn aber gerne schon bei Priorität 1 (oder 2....)

Schöne Grüße
Genbian
 
Hast du in der cdr.conf unter [general] ein unanswered = yes drinstehen? Ob es auch für ankommende Gespräche funktioniert, kann ich allerdings nicht sicher sagen.

Beste Grüße!
Ingmar
 
Mir war die Existenz von cdr.conf bis eben nicht bewusst.

Aber der Text der dort zu deiner Variablen drinsteht lässt mich nur wenig hoffen:
Code:
; Define whether or not to log unanswered calls. Setting this to "yes" will
; report every attempt to ring a phone in dialing attempts, when it was not
; answered. For example, if you try to dial 3 extensions, and this option is "yes",
; you will get 3 CDR's, one for each phone that was rung. Default is "no". Some
; find this information horribly useless. Others find it very valuable. Note, in "yes"
; mode, you will see one CDR, with one of the call targets on one side, and the originating
; channel on the other, and then one CDR for each channel attempted. This may seem
; redundant, but cannot be helped.
;unanswered = no
Denn ich lasse es ja gar nicht klingeln, sondern setze ein "wait".
Ich setz es trotzdem mal auf yes.
Mal schauen was passiert.

genbian
 

Statistik des Forums

Themen
246,300
Beiträge
2,249,714
Mitglieder
373,904
Neuestes Mitglied
Elemir
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.