@schlaile
#define MISDN_COMPAT_KMEMCACHE 1
Das wars ! compiliert nun einwandfrei allerdings habe ich auch einen kernel oops beim entladen von misdn.
Code:
Jan 4 08:40:26 gw kernel: mISDN_dsp_element_unregister: oslec unregistered
Jan 4 08:40:26 gw kernel: mISDN_dsp_element_unregister: hwec unregistered
Jan 4 08:40:26 gw kernel: dsp_pipeline_module_exit: dsp pipeline module exited
Jan 4 08:40:26 gw kernel: WARNING: at /usr/src/mISDN/drivers/isdn/hardware/mISDN/stack.c:850 release_stack()
Jan 4 08:40:26 gw kernel: [<f08b4b84>] release_stack+0x61/0x11d [mISDN_core]
Jan 4 08:40:26 gw kernel: [<f08b3483>] mISDN_ctrl+0x33e/0x5e1 [mISDN_core]
Jan 4 08:40:26 gw kernel: [<c0309fe6>] klist_release+0x27/0x30
Jan 4 08:40:26 gw kernel: [<c01e3fd2>] kref_put+0x5f/0x6c
Jan 4 08:40:26 gw kernel: [<c030ab1b>] wait_for_completion+0xf/0x81
Jan 4 08:40:26 gw kernel: [<c017c9b9>] sysfs_hash_and_remove+0x102/0x10f
Jan 4 08:40:26 gw kernel: [<c01f21b4>] pci_device_remove+0x16/0x35
Jan 4 08:40:26 gw kernel: [<c023b443>] __device_release_driver+0x6e/0x8b
Jan 4 08:40:26 gw kernel: [<c023b83e>] driver_detach+0x64/0xa2
Jan 4 08:40:26 gw kernel: [<c023b003>] bus_remove_driver+0x57/0x75
Jan 4 08:40:26 gw kernel: [<c01f2249>] pci_unregister_driver+0xc/0x45
Jan 4 08:40:26 gw kernel: [<c0131416>] sys_delete_module+0x16f/0x195
Jan 4 08:40:26 gw kernel: [<c0140726>] remove_vma+0x36/0x3b
Jan 4 08:40:26 gw kernel: [<c0140f90>] do_munmap+0x193/0x1ac
Jan 4 08:40:26 gw kernel: [<c0103a96>] sysenter_past_esp+0x5f/0x85
Jan 4 08:40:26 gw kernel: =======================
Jan 4 08:40:26 gw kernel: release_l1 id 100
Jan 4 08:40:26 gw kernel: release_l1 id 200
Jan 4 08:40:26 gw kernel: release_l1 id 300
Jan 4 08:40:26 gw kernel: release_l1 id 400
Jan 4 08:40:26 gw kernel: ACPI: PCI interrupt for device 0000:01:08.0 disabled
Jan 4 08:40:26 gw kernel: free_Application: no garbage
Jan 4 08:40:26 gw kernel: mISDNcore mISDN_modulelist not empty
Jan 4 08:40:26 gw kernel: mISDNd: daemon exit now (current:ed5a60d0)
Jan 4 08:40:26 gw kernel: mISDNcore unloaded
Ich habe einfach mal die hfc_pci.c und hfc_pci.h von 1.1.7 rüberkopiert und damit geht laden und entladen. Und scheinbar läuft Asterisk damit auch prima.
Config Dateien wie folgt.
misdn.conf von mISDN
Code:
....
<module poll="128" debug="0" timer="no">hfcmulti</module>
...
<module debug="0" options="0">mISDN_dsp_oslec</module>
....
misdn.conf von Asterisk
Code:
[default]
...
jitterbuffer_upper_threshold=0
jitterbuffer=0
[dialout]
pipeline=oslec
echocancel=256
senddtmf=yes
ports=1,2,3
rxgain=-1
txgain=-1
callgroup=1
pickupgroup=1
context=MSN
msns=*
lsmod
Code:
mISDN_dsp_oslec 7552 0
mISDN_dsp 194912 2 mISDN_dsp_oslec
hfcpci 28100 0
hfcmulti 71276 1
mISDN_capi 92620 1
l3udss1 37508 1
mISDN_l2 35580 1
mISDN_l1 11364 1
mISDN_core 75104 7 mISDN_dsp,hfcpci,hfcmulti,mISDN_capi,l3udss1,mISDN_l2,mISDN_l1
syslog output
Code:
Jan 4 08:58:08 gw kernel: Modular ISDN Stack core version (1_2_0) revision ($Revision: 1.40 $)
Jan 4 08:58:08 gw kernel: mISDNd: kernel daemon started (current:effbb5b0)
Jan 4 08:58:08 gw kernel: mISDNd: test event done
Jan 4 08:58:08 gw kernel: ISDN L1 driver version 1.20
Jan 4 08:58:08 gw kernel: ISDN L2 driver version 1.32
Jan 4 08:58:08 gw kernel: mISDN: DSS1 Rev. 1.47
Jan 4 08:58:08 gw kernel: mISDN Capi 2.0 driver file version 1.21
.....................
Jan 4 08:47:04 gw kernel: mISDN_dsp: Audio DSP Rev. 1.30 (debug=0x0) dtmfthreshold(1000)
Jan 4 08:47:04 gw kernel: mISDN_dsp: DSP clocks every 64 samples. This equals 2 jiffies.
Jan 4 08:47:04 gw kernel: dsp_pipeline_module_init: dsp pipeline module initialized
Jan 4 08:47:04 gw kernel: mISDN_dsp_element_register: hwec registered
Jan 4 08:47:04 gw kernel: mISDN_dsp_element_register: oslec registered
Leider sehe ich immer noch keine Statusmeldungen ala ECHOCAN im syslog.
Das Echo immer noch nich weg (Ich höre mich selbst der Angerufene hat KEINE Probleme).
Alle Telefonate laufen über hfcmulti. Die hfcpci is bei mir nur für interne
Sachen. Da is echo nich so wichtig. (Ich glaube da habe ich auch keins.)
Was mache ich falsch ?
EDIT:
Ich habe einen Fehler gefunden !!!
-DMISDN_1_2 wars. Oder noch besser einfach asterisk komplett neu compilieren !
Also vorher nochmal configure und dann ein make.
Dann scheint er auch mISDN 1.2 zu erkennen. Jetz habe ich auch endlich die Meldung im syslog
gw kernel: new: creating OSLEC with deftaps=128 and training=0
Allerdings is das Echo immer noch nich weg
EDIT:
Fehler gefunden !!!! Jetz gehts auch!!!
Es liegt genau an einer Option im Dialstring.
exten => _ZXX.,n,dial,misdn/g:dialout/${EXTEN}/n||
Nehmt dieses /n raus. Das soll eigentlich die DTMF Erkennung abschalten. Schaltet allerdings auch das echocancel ab
Und noch was es flooded die Asterisk console mit folgenden sich wiederholenden Meldungen !!
P[ 0] Unhandled Message: prim 282 len 64 from addr 52010100, dinfo 500 on this port.
Ich habe auf der misdn-asterisk lists.beronet.com mailingliste gelesen das dort noch jemand dieses Probleme hatte.
Ihm ist nach einiger Zeit sogar der ganze Rechner wegen dieser Meldung abgestürzt.
Also jetz funktioniert es auch bei mir prima. Nochmal vielen Dank fürs mitlesen und die netten Tips und
natürlich für den genialen patch
Gruss,
Jörg