Eigentlich ist es keine besonders gute Idee einen auf Asterisk basierenden VoIP-Server innerhalb eines VMWare-Gast-Systems zu installieren. Denn zum einen ist man da auf USB-ISDN-Hardware angewiesen (da meines Wissens VMWare Gäste keinen Zugriff auf PCI-Karten eines Hosts haben) für die es unter Linux eher schlechte Unterstützung im Bereich der CAPI oder mISDN-Treiber gibt.
Und wenn man es trotz aller Widrigkeiten geschafft hat Asterisk mittels chan_capi an das ISDN-Netz anzubinden, stellt man verzweifelt fest das die Sprachqualität insbesondere bei FritzCard USB-Adaptern hart am Rande der Verständlichkeit liegt, was auf Probleme mit der CAPI-Schnittstelle hindeutet. Anstatt verständlicher Worte wird nur noch unverständliche abgehackte Wortfetzen übertragen.
Nach einiger Zeit der Recherche habe ich einige Leidensgenossen gefunden die Hinweise auf eine mögliche Lösung aufzeigten. Aber um es gleich vorweg zu nehmen, ob dies eine wirklich gute produktive Lösung ist, ist fraglich, da man sich damit möglichweise andere Probleme einhandelt !
Die Lösung besteht in der Änderung des Parameters b3_block_size in der capi.conf von Asterisk. Default ist hier der Wert 128, den man auf wesentlich höhrer Werte (~ >256) setzen sollte, um die Sprach-Probleme zu beseitigen. Den konkreten Wert sollte man am Besten experientell rausfinden und nach Änderungen an der Conf-Datei immer Asterisk restarten !
Hier als Anhaltspunkt meine capi.conf für den chan_capi Treiber von Asterisk ..
; ; CAPI config ; [general] language=de ;set language for this device (overwrites default language) nationalprefix=0 internationalprefix=00 rxgain=1.0 txgain=1.0 ; b3_block_size=128 ;change value only in case you got a usb adapter and problems ; with speech quality use_smoother=yes max_bchans=2 ulaw=no ;set this, if you live in u-law world instead of a-law ; for europe in most cases = 'no' [ISDN1] ;this example interface gets name 'ISDN1' and may be any ;name not starting with 'g' or 'contr'. ntmode=no ;if isdn card operates in nt mode, set this to yes isdnmode=msn ;'MSN' (point-to-multipoint) or ;'DID' (direct inward dial) ; when using NT-mode, DID should be set in any case ! incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * = any ;defaultcid=123 ;set a default caller id to that interface for dial-out, ;this caller id will be used when dial option 'd' is set. controller=1 ;capi controller number to use ;controller=0 ;ISDN4BSD default ;controller=7 ;ISDN4BSD USB default group=1 ;dialout group prefix=0 ;set a prefix to calling number on incoming calls softdtmf=on ;enable/disable software dtmf detection, recommended for AVM cards relaxdtmf=on ;in addition to softdtmf, you can use relaxed dtmf detection accountcode= ;Asterisk accountcode to use in CDRs faxdetect=both ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or ;outgoing calls. (default='off', possible values: 'incoming','outgoing','both') faxdetecttime=10 ;Only detect faxes during the first 'n' seconds of the call. ;(default '0' meaning for the whole duration of the call) context=from-gg-isdn-bri ;holdtype=hold ;when Asterisk puts the call on hold, ISDN HOLD will be used. If ;set to 'local' (default value), no hold is done and Asterisk may play MOH. ;immediate=yes ;DID: immediate start of pbx with extension 's' if no digits were ; received on incoming call (no destination number yet) ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE. ; info like REDIRECTINGNUMBER may be lost, but this is necessary for ; drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE. ;echosquelch=1 ;_VERY_PRIMITIVE_ echo suppression ;echocancel=yes ;EICON DIVA SERVER (CAPI) echo cancelation ; (possible values: 'no', 'yes', 'force', 'g164', 'g165') echocancelold=no ;use facility selector 6 instead of correct 8 (necessary for older eicon drivers) ;echotail=64 ;echo cancel tail setting ;bridge=yes ;native bridging (CAPI line interconnect) if available ;callgroup=1 ;Asterisk call group devices=2 ;number of concurrent calls on this controller ;(2 makes sense for single BRI, 30 for PRI)
Links
Um Probleme mit USB ISDN Hardware zu umgehen gibt es Remote Capi, z.B. mit einer Fritzbox oder einem Cisco 801
siehe hier