[Problem] Freetz mit Asterisk: timerfd möglich?

nellieNashorn

Neuer User
Mitglied seit
23 Jun 2018
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich habe eine Fritz!Box 7390 mit einem aktuellen Freetz-Trunk (von gestern). Über make menuconfig kann ich ja u. a. Asterisk hinzufügen. Dieses Asterisk wird offenbar nur mit dem pthread-Timer gebaut, obwohl das Linux der AVM-Firmware (Linux Kernel 2.6.28.10) auch schon timerfd unterstützen soll. Wie kann ich den Buildprozess meines Freetz-Images so beeinflussen, dass timerfd zusätzlich oder auch gleich alternativ zum pthread-basierten Timer in Asterisk kompiliert bzw. als Resourcen-Modul bereitgestellt wird?

Hintergrund meiner Frage ist, dass Spachaufzeichnungen mit der voicemail-App ausgesprochen lückenhaft sind, d. h. die Sprachaufzeichnungen sind erstens sehr viel kürzer als die ursprünglichen -nachrichten, und zweitens sind sie offenbar mittendrin gekürzt, denn sie hören sich zwar ungefähr wie die entsprechende Stimme an, sind aber vollkommen unverständlich. Das Problem konnte ich zumindest soweit isolieren, dass schon das aufgenommene WAV-File zuwenig Informationen enthält, es passiert also schon bei der Aufzeichnung, nicht erst bei der Wiedergabe. Ausserdem spielt es keine Rolle, ob ich nur in einem Format (eben WAV) oder parallel auch noch in anderen Formaten (z. B. gsm) aufzeichnen lasse. Parameter in voicemail.conf betreffend Mindestlänge, Pausenlänge und Stilleerkennung haben keinen Einfluss auf das beobachtete Verhalten.

Irgendwo habe ich gelesen (Googlen nach asterisk voicemail choppy bzw. garbled), dass die Timing-Quelle auf die Aufzeichnung einen Einfluss habe, jedenfalls in reinen SIP-Systemen wie meinem.

Hülfe z. B. der Wechsel von voicemail zu minivm?

Freilich hat die Fritz!Box durchaus auch ein Resourcen-Problem, denn die Wiedergabe der diversen Pforzheimer Sprachprompts funktioniert zwar einzeln gut, allerdings benötigt Asterisk eine gefühlte Ewigkeit, verschiedene "Schnipsel" aneinanderzufügen, z. B. im Falle von sayUnixTime.

Ich wäre froh um Anregungen.

Gute Nacht
Nellie Nashorn
 
Ändere mal in dieser Zeile no auf yes und berichte uns, ob es funktioniert und was bewirkt (von mir ungetestet, weder compile- noch run-time).
 
Hallo er13,

vielen Dank für die prompte Antwort!

Deinen Vorschlag habe ich sogleich ausprobiert. Leider finde ich kein timerfd.o-File (wohl aber ein res_timing_pthread.o-File). Daher denke ich, dass die von mir wie vorgeschlagen modifizierte Einstellung im Makefile an anderer Stelle wieder übersteuert wird.

Beste Grüsse
Nellie Nashorn
 
Habe in r14743 was eingebaut, teste mal und berichte, ob es Dein Problem behebt.

Vergiss nicht vor dem Bauen im menuconfig unter "Asterisk modules/Resource Modules/res_timing_timerfd: Timerfd Timing Interface" auszuwählen. Der Eintrag wird erst nach dem Update auf r14743 sichtbar.
 
Tausend Dank! Nun kann ich tatsächlich Asterisk mit timerfd bauen, und es läuft auch auf der Fritz!Box 7390. Mittels des Asterisk CLI-Kommandos "timing test" habe ich mich davon überzeugen können, dass Asterisk tatsächlich timerfd verwendet, und ich bekomme auch eine erheblich höhere Auflösung zurück (mag sein, dass ich das Ergebnis nicht vollständig durchschaue, aber vorher mit dem pthread-Timer war bei etwas über "timing test 100" Schluss, nun kann ich z. B. auch "timing test 10000" ohne Fehlermeldung ausführen).
Nun funktioniert auch die Aufzeichnung von Sprachnachrichten gut, und SayUnixTime tut auch ohne nennenswerte Pausen zwischen den einzelnen Ziffern für Datum und Uhrzeit.
Ich hatte nicht von Voicemail auf MiniVM umgestellt, weil ich vermute, dass beide letzten Endes dieselbe Funktion aufrufen, um den Channel zu persistieren und daher mein ursprüngliches Problem auch bei MiniVM aufgetreten wäre.
Stattdessen habe ich nun den Freetz-Asterisk-Build so konfiguriert, dass nicht nur timerfd (FREETZ_PACKAGE_ASTERISK_RES_TIMING_TIMERFD) statt pthread-Timer (FREETZ_PACKAGE_ASTERISK_RES_TIMING_PTHREAD) benutzt wird, sondern auch auf einige Module insbesondere im Bereich Call Detail Records, Channel Event Logging, Bridging und Channel-Treiber.
Konkret habe ich nun auf die Erstellung der Funktionalität für
Code:
FREETZ_PACKAGE_ASTERISK_WITH_BACKTRACE
FREETZ_PACKAGE_ASTERISK_APP_CDR
FREETZ_PACKAGE_ASTERISK_APP_CELGENUSEREVENT
FREETZ_PACKAGE_ASTERISK_APP_CHANSPY
FREETZ_PACKAGE_ASTERISK_APP_DISA
FREETZ_PACKAGE_ASTERISK_APP_DUMPCHAN
FREETZ_PACKAGE_ASTERISK_APP_FESTIVAL
FREETZ_PACKAGE_ASTERISK_APP_FORKCDR
FREETZ_PACKAGE_ASTERISK_APP_GETCPEID
FREETZ_PACKAGE_ASTERISK_APP_ICES, FREETZ_PACKAGE_ASTERISK_APP_MP3
FREETZ_PACKAGE_ASTERISK_APP_NBSCAT
FREETZ_PACKAGE_ASTERISK_APP_QUEUE
FREETZ_PACKAGE_ASTERISK_APP_READEXTEN
FREETZ_PACKAGE_ASTERISK_APP_SOFTHANGUP FREETZ_PACKAGE_ASTERISK_APP_SPEECH_UTILS
FREETZ_PACKAGE_ASTERISK_BRIDGE_SOFTMIX
FREETZ_PACKAGE_ASTERISK_CDR_CSV
FREETZ_PACKAGE_ASTERISK_CDR_CUSTOM
FREETZ_PACKAGE_ASTERISK_CDR_MANAGER
FREETZ_PACKAGE_ASTERISK_CDR_SQLITE3_CUSTOM
FREETZ_PACKAGE_ASTERISK_CDR_SYSLOG
FREETZ_PACKAGE_ASTERISK_CEL_CUSTOM
FREETZ_PACKAGE_ASTERISK_CEL_MANAGER
FREETZ_PACKAGE_ASTERISK_CEL_SQLITE3_CUSTOM
FREETZ_PACKAGE_ASTERISK_CHAN_MGCP
FREETZ_PACKAGE_ASTERISK_CHAN_MOTIF
FREETZ_PACKAGE_ASTERISK_CHAN_PHONE
FREETZ_PACKAGE_ASTERISK_CHAN_SKINNY
FREETZ_PACKAGE_ASTERISK_CHAN_UNISTIM
FREETZ_PACKAGE_ASTERISK_FORMAT_JPEG
FREETZ_PACKAGE_ASTERISK_FORMAT_VOX
FREETZ_PACKAGE_ASTERISK_FUNC_CDR
FREETZ_PACKAGE_ASTERISK_FUNC_PITCHSHIFT
verzichtet, hatte diese Funktionalitäten allerdings auch vorher schon nicht bewusst genutzt. Insofern muss ich offen lassen, ob die Verwendung des effizienteren Timers nun mein Problem gelöst hat oder die Verschlankung von Asterisk.
Nochmals vielen Dank für die Schnelle Anpassung des Trunks!

//edit by stoney: [CODE] TAG [/CODE] gesetzt - den Schlangentext bitte selbst etwas unterteilen. Danke
 
Zuletzt bearbeitet von einem Moderator:

Statistik des Forums

Themen
246,146
Beiträge
2,246,880
Mitglieder
373,655
Neuestes Mitglied
ralf-ddd
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.