--- /dev/null
+etc/rc.d/init.d/mISDN
+usr/bin/l1oipctrl
+usr/bin/misdn_bridge
+usr/bin/misdn_cleanl2
+usr/bin/misdn_info
+usr/bin/misdn_log
+usr/bin/misdn_rename
+#usr/include/mISDNuser
+#usr/include/mISDNuser/compat_af_isdn.h
+#usr/include/mISDNuser/isdn_net.h
+#usr/include/mISDNuser/l3dss1.h
+#usr/include/mISDNuser/mISDNif.h
+#usr/include/mISDNuser/mbuffer.h
+#usr/include/mISDNuser/mlayer3.h
+#usr/include/mISDNuser/q931.h
+#usr/lib/libmisdn.a
+usr/lib/libmisdn.so
+#usr/lib/libmisdn_pic.a
--- /dev/null
+../../../common/mISDNuser
\ No newline at end of file
--- /dev/null
+etc/init.d/lcr
+usr/bin/gentones
+usr/bin/genwave
+usr/bin/lcradmin
+usr/lib/asterisk/modules/chan_lcr.so
+#var/ipfire/lcr
+var/ipfire/lcr/directory.list
+var/ipfire/lcr/extensions
+var/ipfire/lcr/interface.conf
+var/ipfire/lcr/options.conf
+var/ipfire/lcr/routing.conf
+#var/ipfire/lcr/tones_american
+var/ipfire/lcr/tones_american/activated_loop.isdn
+var/ipfire/lcr/tones_american/busy_loop.isdn
+var/ipfire/lcr/tones_american/cause_01_loop.isdn
+var/ipfire/lcr/tones_american/cause_02_loop.isdn
+var/ipfire/lcr/tones_american/cause_03_loop.isdn
+var/ipfire/lcr/tones_american/cause_05_loop.isdn
+var/ipfire/lcr/tones_american/cause_06_loop.isdn
+var/ipfire/lcr/tones_american/cause_12_loop.isdn
+var/ipfire/lcr/tones_american/cause_13_loop.isdn
+var/ipfire/lcr/tones_american/cause_14_loop.isdn
+var/ipfire/lcr/tones_american/cause_15_loop.isdn
+var/ipfire/lcr/tones_american/cause_16_loop.isdn
+var/ipfire/lcr/tones_american/cause_1b_loop.isdn
+var/ipfire/lcr/tones_american/cause_1c_loop.isdn
+var/ipfire/lcr/tones_american/cause_1d_loop.isdn
+var/ipfire/lcr/tones_american/cause_1f_loop.isdn
+var/ipfire/lcr/tones_american/cause_22_loop.isdn
+var/ipfire/lcr/tones_american/cause_26_loop.isdn
+var/ipfire/lcr/tones_american/cause_29_loop.isdn
+var/ipfire/lcr/tones_american/cause_2a_loop.isdn
+var/ipfire/lcr/tones_american/cause_2f_loop.isdn
+var/ipfire/lcr/tones_american/cause_31_loop.isdn
+var/ipfire/lcr/tones_american/cause_32_loop.isdn
+var/ipfire/lcr/tones_american/cause_39_loop.isdn
+var/ipfire/lcr/tones_american/cause_3a_loop.isdn
+var/ipfire/lcr/tones_american/cause_3f_loop.isdn
+var/ipfire/lcr/tones_american/cause_41_loop.isdn
+var/ipfire/lcr/tones_american/cause_42_loop.isdn
+var/ipfire/lcr/tones_american/cause_45_loop.isdn
+var/ipfire/lcr/tones_american/cause_46_loop.isdn
+var/ipfire/lcr/tones_american/cause_55_loop.isdn
+var/ipfire/lcr/tones_american/cause_80_loop.isdn
+var/ipfire/lcr/tones_american/cause_81_loop.isdn
+var/ipfire/lcr/tones_american/cause_82_loop.isdn
+var/ipfire/lcr/tones_american/cause_83_loop.isdn
+var/ipfire/lcr/tones_american/cause_84_loop.isdn
+var/ipfire/lcr/tones_american/cause_85_loop.isdn
+var/ipfire/lcr/tones_american/cause_86_loop.isdn
+var/ipfire/lcr/tones_american/cause_87_loop.isdn
+var/ipfire/lcr/tones_american/crypt_off.isdn
+var/ipfire/lcr/tones_american/crypt_on.isdn
+var/ipfire/lcr/tones_american/deactivated_loop.isdn
+var/ipfire/lcr/tones_american/dialpbx.isdn
+var/ipfire/lcr/tones_american/dialpbx_loop.isdn
+var/ipfire/lcr/tones_american/dialtone_loop.isdn
+var/ipfire/lcr/tones_american/error_loop.isdn
+var/ipfire/lcr/tones_american/hold_loop.isdn
+var/ipfire/lcr/tones_american/joined.isdn
+var/ipfire/lcr/tones_american/left.isdn
+var/ipfire/lcr/tones_american/password_loop.isdn
+var/ipfire/lcr/tones_american/redial.isdn
+var/ipfire/lcr/tones_american/release_loop.isdn
+var/ipfire/lcr/tones_american/ringing_loop.isdn
+var/ipfire/lcr/tones_american/ringpbx_loop.isdn
+var/ipfire/lcr/tones_american/test_loop.isdn
+#var/ipfire/lcr/tones_efi
+var/ipfire/lcr/tones_efi/benutzerdefinierte.isdn
+var/ipfire/lcr/tones_efi/die.isdn
+var/ipfire/lcr/tones_efi/hello.isdn
+var/ipfire/lcr/tones_efi/ich_wiederhole.isdn
+var/ipfire/lcr/tones_efi/number_00.isdn
+var/ipfire/lcr/tones_efi/number_01.isdn
+var/ipfire/lcr/tones_efi/number_02.isdn
+var/ipfire/lcr/tones_efi/number_03.isdn
+var/ipfire/lcr/tones_efi/number_04.isdn
+var/ipfire/lcr/tones_efi/number_05.isdn
+var/ipfire/lcr/tones_efi/number_06.isdn
+var/ipfire/lcr/tones_efi/number_07.isdn
+var/ipfire/lcr/tones_efi/number_08.isdn
+var/ipfire/lcr/tones_efi/number_09.isdn
+var/ipfire/lcr/tones_efi/rufnummer_lautet.isdn
+var/ipfire/lcr/tones_efi/unterdrueckte.isdn
+#var/ipfire/lcr/tones_german
+var/ipfire/lcr/tones_german/activated_loop.isdn
+var/ipfire/lcr/tones_german/busy_loop.isdn
+var/ipfire/lcr/tones_german/cause_01_loop.isdn
+var/ipfire/lcr/tones_german/cause_02_loop.isdn
+var/ipfire/lcr/tones_german/cause_03_loop.isdn
+var/ipfire/lcr/tones_german/cause_05_loop.isdn
+var/ipfire/lcr/tones_german/cause_06_loop.isdn
+var/ipfire/lcr/tones_german/cause_12_loop.isdn
+var/ipfire/lcr/tones_german/cause_13_loop.isdn
+var/ipfire/lcr/tones_german/cause_14_loop.isdn
+var/ipfire/lcr/tones_german/cause_15_loop.isdn
+var/ipfire/lcr/tones_german/cause_16_loop.isdn
+var/ipfire/lcr/tones_german/cause_1b_loop.isdn
+var/ipfire/lcr/tones_german/cause_1c_loop.isdn
+var/ipfire/lcr/tones_german/cause_1d_loop.isdn
+var/ipfire/lcr/tones_german/cause_1f_loop.isdn
+var/ipfire/lcr/tones_german/cause_22_loop.isdn
+var/ipfire/lcr/tones_german/cause_26_loop.isdn
+var/ipfire/lcr/tones_german/cause_29_loop.isdn
+var/ipfire/lcr/tones_german/cause_2a_loop.isdn
+var/ipfire/lcr/tones_german/cause_2f_loop.isdn
+var/ipfire/lcr/tones_german/cause_31_loop.isdn
+var/ipfire/lcr/tones_german/cause_32_loop.isdn
+var/ipfire/lcr/tones_german/cause_39_loop.isdn
+var/ipfire/lcr/tones_german/cause_3a_loop.isdn
+var/ipfire/lcr/tones_german/cause_3f_loop.isdn
+var/ipfire/lcr/tones_german/cause_41_loop.isdn
+var/ipfire/lcr/tones_german/cause_42_loop.isdn
+var/ipfire/lcr/tones_german/cause_45_loop.isdn
+var/ipfire/lcr/tones_german/cause_46_loop.isdn
+var/ipfire/lcr/tones_german/cause_55_loop.isdn
+var/ipfire/lcr/tones_german/cause_80_loop.isdn
+var/ipfire/lcr/tones_german/cause_81_loop.isdn
+var/ipfire/lcr/tones_german/cause_82_loop.isdn
+var/ipfire/lcr/tones_german/cause_83_loop.isdn
+var/ipfire/lcr/tones_german/cause_84_loop.isdn
+var/ipfire/lcr/tones_german/cause_85_loop.isdn
+var/ipfire/lcr/tones_german/cause_86_loop.isdn
+var/ipfire/lcr/tones_german/cause_87_loop.isdn
+var/ipfire/lcr/tones_german/crypt_off.isdn
+var/ipfire/lcr/tones_german/crypt_on.isdn
+var/ipfire/lcr/tones_german/deactivated_loop.isdn
+var/ipfire/lcr/tones_german/dialpbx_loop.isdn
+var/ipfire/lcr/tones_german/dialtone_loop.isdn
+var/ipfire/lcr/tones_german/error_loop.isdn
+var/ipfire/lcr/tones_german/hold_loop.isdn
+var/ipfire/lcr/tones_german/joined.isdn
+var/ipfire/lcr/tones_german/left.isdn
+var/ipfire/lcr/tones_german/password_loop.isdn
+var/ipfire/lcr/tones_german/redial.isdn
+var/ipfire/lcr/tones_german/release_loop.isdn
+var/ipfire/lcr/tones_german/ringing.isdn
+var/ipfire/lcr/tones_german/ringing_loop.isdn
+var/ipfire/lcr/tones_german/ringpbx_loop.isdn
+var/ipfire/lcr/tones_german/test_loop.isdn
+#var/ipfire/lcr/vbox_english
+var/ipfire/lcr/vbox_english/call_anonymous.isdn
+var/ipfire/lcr/vbox_english/call_from.isdn
+var/ipfire/lcr/vbox_english/day_01.isdn
+var/ipfire/lcr/vbox_english/day_02.isdn
+var/ipfire/lcr/vbox_english/day_03.isdn
+var/ipfire/lcr/vbox_english/day_04.isdn
+var/ipfire/lcr/vbox_english/day_05.isdn
+var/ipfire/lcr/vbox_english/day_06.isdn
+var/ipfire/lcr/vbox_english/day_07.isdn
+var/ipfire/lcr/vbox_english/day_08.isdn
+var/ipfire/lcr/vbox_english/day_09.isdn
+var/ipfire/lcr/vbox_english/day_10.isdn
+var/ipfire/lcr/vbox_english/day_11.isdn
+var/ipfire/lcr/vbox_english/day_12.isdn
+var/ipfire/lcr/vbox_english/day_13.isdn
+var/ipfire/lcr/vbox_english/day_14.isdn
+var/ipfire/lcr/vbox_english/day_15.isdn
+var/ipfire/lcr/vbox_english/day_16.isdn
+var/ipfire/lcr/vbox_english/day_17.isdn
+var/ipfire/lcr/vbox_english/day_18.isdn
+var/ipfire/lcr/vbox_english/day_19.isdn
+var/ipfire/lcr/vbox_english/day_20.isdn
+var/ipfire/lcr/vbox_english/day_21.isdn
+var/ipfire/lcr/vbox_english/day_22.isdn
+var/ipfire/lcr/vbox_english/day_23.isdn
+var/ipfire/lcr/vbox_english/day_24.isdn
+var/ipfire/lcr/vbox_english/day_25.isdn
+var/ipfire/lcr/vbox_english/day_26.isdn
+var/ipfire/lcr/vbox_english/day_27.isdn
+var/ipfire/lcr/vbox_english/day_28.isdn
+var/ipfire/lcr/vbox_english/day_29.isdn
+var/ipfire/lcr/vbox_english/day_30.isdn
+var/ipfire/lcr/vbox_english/day_31.isdn
+var/ipfire/lcr/vbox_english/delete_ask.isdn
+var/ipfire/lcr/vbox_english/delete_done.isdn
+var/ipfire/lcr/vbox_english/intro.isdn
+var/ipfire/lcr/vbox_english/menu.isdn
+var/ipfire/lcr/vbox_english/minute.isdn
+var/ipfire/lcr/vbox_english/minutes.isdn
+var/ipfire/lcr/vbox_english/month_01.isdn
+var/ipfire/lcr/vbox_english/month_02.isdn
+var/ipfire/lcr/vbox_english/month_03.isdn
+var/ipfire/lcr/vbox_english/month_04.isdn
+var/ipfire/lcr/vbox_english/month_05.isdn
+var/ipfire/lcr/vbox_english/month_06.isdn
+var/ipfire/lcr/vbox_english/month_07.isdn
+var/ipfire/lcr/vbox_english/month_08.isdn
+var/ipfire/lcr/vbox_english/month_09.isdn
+var/ipfire/lcr/vbox_english/month_10.isdn
+var/ipfire/lcr/vbox_english/month_11.isdn
+var/ipfire/lcr/vbox_english/month_12.isdn
+var/ipfire/lcr/vbox_english/nothing.isdn
+var/ipfire/lcr/vbox_english/number_00.isdn
+var/ipfire/lcr/vbox_english/number_01.isdn
+var/ipfire/lcr/vbox_english/number_02.isdn
+var/ipfire/lcr/vbox_english/number_03.isdn
+var/ipfire/lcr/vbox_english/number_04.isdn
+var/ipfire/lcr/vbox_english/number_05.isdn
+var/ipfire/lcr/vbox_english/number_06.isdn
+var/ipfire/lcr/vbox_english/number_07.isdn
+var/ipfire/lcr/vbox_english/number_08.isdn
+var/ipfire/lcr/vbox_english/number_09.isdn
+var/ipfire/lcr/vbox_english/number_10.isdn
+var/ipfire/lcr/vbox_english/number_11.isdn
+var/ipfire/lcr/vbox_english/number_12.isdn
+var/ipfire/lcr/vbox_english/number_13.isdn
+var/ipfire/lcr/vbox_english/number_14.isdn
+var/ipfire/lcr/vbox_english/number_15.isdn
+var/ipfire/lcr/vbox_english/number_16.isdn
+var/ipfire/lcr/vbox_english/number_17.isdn
+var/ipfire/lcr/vbox_english/number_18.isdn
+var/ipfire/lcr/vbox_english/number_19.isdn
+var/ipfire/lcr/vbox_english/number_20.isdn
+var/ipfire/lcr/vbox_english/number_21.isdn
+var/ipfire/lcr/vbox_english/number_22.isdn
+var/ipfire/lcr/vbox_english/number_23.isdn
+var/ipfire/lcr/vbox_english/number_24.isdn
+var/ipfire/lcr/vbox_english/number_25.isdn
+var/ipfire/lcr/vbox_english/number_26.isdn
+var/ipfire/lcr/vbox_english/number_27.isdn
+var/ipfire/lcr/vbox_english/number_28.isdn
+var/ipfire/lcr/vbox_english/number_29.isdn
+var/ipfire/lcr/vbox_english/number_30.isdn
+var/ipfire/lcr/vbox_english/number_31.isdn
+var/ipfire/lcr/vbox_english/number_32.isdn
+var/ipfire/lcr/vbox_english/number_33.isdn
+var/ipfire/lcr/vbox_english/number_34.isdn
+var/ipfire/lcr/vbox_english/number_35.isdn
+var/ipfire/lcr/vbox_english/number_36.isdn
+var/ipfire/lcr/vbox_english/number_37.isdn
+var/ipfire/lcr/vbox_english/number_38.isdn
+var/ipfire/lcr/vbox_english/number_39.isdn
+var/ipfire/lcr/vbox_english/number_40.isdn
+var/ipfire/lcr/vbox_english/number_41.isdn
+var/ipfire/lcr/vbox_english/number_42.isdn
+var/ipfire/lcr/vbox_english/number_43.isdn
+var/ipfire/lcr/vbox_english/number_44.isdn
+var/ipfire/lcr/vbox_english/number_45.isdn
+var/ipfire/lcr/vbox_english/number_46.isdn
+var/ipfire/lcr/vbox_english/number_47.isdn
+var/ipfire/lcr/vbox_english/number_48.isdn
+var/ipfire/lcr/vbox_english/number_49.isdn
+var/ipfire/lcr/vbox_english/number_50.isdn
+var/ipfire/lcr/vbox_english/number_51.isdn
+var/ipfire/lcr/vbox_english/number_52.isdn
+var/ipfire/lcr/vbox_english/number_53.isdn
+var/ipfire/lcr/vbox_english/number_54.isdn
+var/ipfire/lcr/vbox_english/number_55.isdn
+var/ipfire/lcr/vbox_english/number_56.isdn
+var/ipfire/lcr/vbox_english/number_57.isdn
+var/ipfire/lcr/vbox_english/number_58.isdn
+var/ipfire/lcr/vbox_english/number_59.isdn
+var/ipfire/lcr/vbox_english/oclock_am.isdn
+var/ipfire/lcr/vbox_english/oclock_pm.isdn
+var/ipfire/lcr/vbox_english/pause.isdn
+var/ipfire/lcr/vbox_english/play.isdn
+var/ipfire/lcr/vbox_english/record_ask.isdn
+var/ipfire/lcr/vbox_english/record_play.isdn
+var/ipfire/lcr/vbox_english/record_record.isdn
+var/ipfire/lcr/vbox_english/store_ask.isdn
+var/ipfire/lcr/vbox_english/store_done.isdn
+#var/ipfire/lcr/vbox_german
+var/ipfire/lcr/vbox_german/call_anonymous.isdn
+var/ipfire/lcr/vbox_german/call_from.isdn
+var/ipfire/lcr/vbox_german/day_01.isdn
+var/ipfire/lcr/vbox_german/day_02.isdn
+var/ipfire/lcr/vbox_german/day_03.isdn
+var/ipfire/lcr/vbox_german/day_04.isdn
+var/ipfire/lcr/vbox_german/day_05.isdn
+var/ipfire/lcr/vbox_german/day_06.isdn
+var/ipfire/lcr/vbox_german/day_07.isdn
+var/ipfire/lcr/vbox_german/day_08.isdn
+var/ipfire/lcr/vbox_german/day_09.isdn
+var/ipfire/lcr/vbox_german/day_10.isdn
+var/ipfire/lcr/vbox_german/day_11.isdn
+var/ipfire/lcr/vbox_german/day_12.isdn
+var/ipfire/lcr/vbox_german/day_13.isdn
+var/ipfire/lcr/vbox_german/day_14.isdn
+var/ipfire/lcr/vbox_german/day_15.isdn
+var/ipfire/lcr/vbox_german/day_16.isdn
+var/ipfire/lcr/vbox_german/day_17.isdn
+var/ipfire/lcr/vbox_german/day_18.isdn
+var/ipfire/lcr/vbox_german/day_19.isdn
+var/ipfire/lcr/vbox_german/day_20.isdn
+var/ipfire/lcr/vbox_german/day_21.isdn
+var/ipfire/lcr/vbox_german/day_22.isdn
+var/ipfire/lcr/vbox_german/day_23.isdn
+var/ipfire/lcr/vbox_german/day_24.isdn
+var/ipfire/lcr/vbox_german/day_25.isdn
+var/ipfire/lcr/vbox_german/day_26.isdn
+var/ipfire/lcr/vbox_german/day_27.isdn
+var/ipfire/lcr/vbox_german/day_28.isdn
+var/ipfire/lcr/vbox_german/day_29.isdn
+var/ipfire/lcr/vbox_german/day_30.isdn
+var/ipfire/lcr/vbox_german/day_31.isdn
+var/ipfire/lcr/vbox_german/delete_ask.isdn
+var/ipfire/lcr/vbox_german/delete_done.isdn
+var/ipfire/lcr/vbox_german/intro.isdn
+var/ipfire/lcr/vbox_german/menu.isdn
+var/ipfire/lcr/vbox_german/minute.isdn
+var/ipfire/lcr/vbox_german/minutes.isdn
+var/ipfire/lcr/vbox_german/month_01.isdn
+var/ipfire/lcr/vbox_german/month_02.isdn
+var/ipfire/lcr/vbox_german/month_03.isdn
+var/ipfire/lcr/vbox_german/month_04.isdn
+var/ipfire/lcr/vbox_german/month_05.isdn
+var/ipfire/lcr/vbox_german/month_06.isdn
+var/ipfire/lcr/vbox_german/month_07.isdn
+var/ipfire/lcr/vbox_german/month_08.isdn
+var/ipfire/lcr/vbox_german/month_09.isdn
+var/ipfire/lcr/vbox_german/month_10.isdn
+var/ipfire/lcr/vbox_german/month_11.isdn
+var/ipfire/lcr/vbox_german/month_12.isdn
+var/ipfire/lcr/vbox_german/nothing.isdn
+var/ipfire/lcr/vbox_german/number_00.isdn
+var/ipfire/lcr/vbox_german/number_01.isdn
+var/ipfire/lcr/vbox_german/number_02.isdn
+var/ipfire/lcr/vbox_german/number_03.isdn
+var/ipfire/lcr/vbox_german/number_04.isdn
+var/ipfire/lcr/vbox_german/number_05.isdn
+var/ipfire/lcr/vbox_german/number_06.isdn
+var/ipfire/lcr/vbox_german/number_07.isdn
+var/ipfire/lcr/vbox_german/number_08.isdn
+var/ipfire/lcr/vbox_german/number_09.isdn
+var/ipfire/lcr/vbox_german/number_10.isdn
+var/ipfire/lcr/vbox_german/number_11.isdn
+var/ipfire/lcr/vbox_german/number_12.isdn
+var/ipfire/lcr/vbox_german/number_13.isdn
+var/ipfire/lcr/vbox_german/number_14.isdn
+var/ipfire/lcr/vbox_german/number_15.isdn
+var/ipfire/lcr/vbox_german/number_16.isdn
+var/ipfire/lcr/vbox_german/number_17.isdn
+var/ipfire/lcr/vbox_german/number_18.isdn
+var/ipfire/lcr/vbox_german/number_19.isdn
+var/ipfire/lcr/vbox_german/number_20.isdn
+var/ipfire/lcr/vbox_german/number_21.isdn
+var/ipfire/lcr/vbox_german/number_22.isdn
+var/ipfire/lcr/vbox_german/number_23.isdn
+var/ipfire/lcr/vbox_german/number_24.isdn
+var/ipfire/lcr/vbox_german/number_25.isdn
+var/ipfire/lcr/vbox_german/number_26.isdn
+var/ipfire/lcr/vbox_german/number_27.isdn
+var/ipfire/lcr/vbox_german/number_28.isdn
+var/ipfire/lcr/vbox_german/number_29.isdn
+var/ipfire/lcr/vbox_german/number_30.isdn
+var/ipfire/lcr/vbox_german/number_31.isdn
+var/ipfire/lcr/vbox_german/number_32.isdn
+var/ipfire/lcr/vbox_german/number_33.isdn
+var/ipfire/lcr/vbox_german/number_34.isdn
+var/ipfire/lcr/vbox_german/number_35.isdn
+var/ipfire/lcr/vbox_german/number_36.isdn
+var/ipfire/lcr/vbox_german/number_37.isdn
+var/ipfire/lcr/vbox_german/number_38.isdn
+var/ipfire/lcr/vbox_german/number_39.isdn
+var/ipfire/lcr/vbox_german/number_40.isdn
+var/ipfire/lcr/vbox_german/number_41.isdn
+var/ipfire/lcr/vbox_german/number_42.isdn
+var/ipfire/lcr/vbox_german/number_43.isdn
+var/ipfire/lcr/vbox_german/number_44.isdn
+var/ipfire/lcr/vbox_german/number_45.isdn
+var/ipfire/lcr/vbox_german/number_46.isdn
+var/ipfire/lcr/vbox_german/number_47.isdn
+var/ipfire/lcr/vbox_german/number_48.isdn
+var/ipfire/lcr/vbox_german/number_49.isdn
+var/ipfire/lcr/vbox_german/number_50.isdn
+var/ipfire/lcr/vbox_german/number_51.isdn
+var/ipfire/lcr/vbox_german/number_52.isdn
+var/ipfire/lcr/vbox_german/number_53.isdn
+var/ipfire/lcr/vbox_german/number_54.isdn
+var/ipfire/lcr/vbox_german/number_55.isdn
+var/ipfire/lcr/vbox_german/number_56.isdn
+var/ipfire/lcr/vbox_german/number_57.isdn
+var/ipfire/lcr/vbox_german/number_58.isdn
+var/ipfire/lcr/vbox_german/number_59.isdn
+var/ipfire/lcr/vbox_german/number_ein.isdn
+var/ipfire/lcr/vbox_german/number_eine.isdn
+var/ipfire/lcr/vbox_german/oclock.isdn
+var/ipfire/lcr/vbox_german/pause.isdn
+var/ipfire/lcr/vbox_german/play.isdn
+var/ipfire/lcr/vbox_german/record_ask.isdn
+var/ipfire/lcr/vbox_german/record_play.isdn
+var/ipfire/lcr/vbox_german/record_record.isdn
+var/ipfire/lcr/vbox_german/store_ask.isdn
+var/ipfire/lcr/vbox_german/store_done.isdn
+usr/sbin/genextension
+usr/sbin/genrc
+usr/sbin/lcr
--- /dev/null
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 64143650bc9c04fadc99694c499cf34750bc2804
+
+THISAPP = lcr.git-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = lcr
+PAK_VER = 1
+
+DEPS = ""
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 972af4b1f72874700e247db4c12992af
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+ @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_SRC)/lcr.git && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.in
+ cd $(DIR_SRC)/lcr.git && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.am
+ cd $(DIR_SRC)/lcr.git && ./configure --prefix=/usr
+ cd $(DIR_SRC)/lcr.git && make $(MAKETUNING)
+ cd $(DIR_SRC)/lcr.git && make install
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
--- /dev/null
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 54928dec57bc846f2c2186f3640e69a053cd3641
+
+THISAPP = mISDNuser.git-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 04d5252e89fba1e3e58ebb4285222d25
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+ @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_SRC)/mISDNuser.git && make MISDNDIR=/usr/src/linux
+ cd $(DIR_SRC)/mISDNuser.git && make install MISDNDIR=/usr/src/linux
+ @$(POSTBUILD)
--- /dev/null
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/lcr
+#
+# Description : Linux Call Router Script
+#
+# Authors : Arne Fitzenreiter (arne_f@ipfire.org)
+#
+# Version : 01.00
+#
+# Notes :
+#
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+case "${1}" in
+ start)
+ boot_mesg "Starting Linux Call Router..."
+ nice --10 /usr/sbin/lcr fork >> /var/log/lcr 2>&1
+ evaluate_retval
+ ;;
+
+ stop)
+ boot_mesg "Stopping Linux Call Router..."
+ killproc /usr/sbin/lcr
+ ;;
+
+ restart)
+ ${0} stop
+ sleep 1
+ ${0} start
+ ;;
+
+ status)
+ statusproc /usr/sbin/lcr
+ ;;
+ *)
+ echo "Usage: ${0} {start|stop|restart|status}"
+ exit 1
+ ;;
+esac
+
+# End $rc_base/init.d/lcr
-#!/bin/bash
-
-################################################################################
-#
-# misdn-init init script
-#
-# Copyright (C) 2005, Nadi Sarrar
-#
-# Nadi Sarrar <nadi@beronet.com>
-#
-# This program is free software, distributed under the terms of
-# the GNU General Public License
-#
-
-#
-# USAGE:
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/mISDN
#
-# /usr/sbin/misdn-init start|stop|restart|config|scan|help
+# Description : Start mISDN v2
#
-
-# chkconfig: 2345 35 60
-# description: mISDN Kernel Modules
-
-#
-# CONFIGURATION:
-#
-# Path to your misdn-init.conf:
+# Authors : Arne Fitzenreiter - arne_f@ipfire.org
#
-misdn_init_conf="/etc/misdn-init.conf"
+# Version : 00.00
#
-################################################################################
-
-#
-# change this to modify the user/group settings of /dev/mISDN
+# Notes :
#
-USER=asterisk
-GROUP=asterisk
-
-# HFC 8/4 (S0) Options
-master_clock=17
-
-# HFC-E1 Options
-optical=17
-los=19
-ais=20
-slip=21
-nocrc4=24
-
-# Card Settings
-ulaw=9
-dtmf=10
-pcm_slave=12
-ignore_pcm_frameclock=13
-
-rxclock=14
-crystalclock=19
-
-watchdog=20
-
-
-#dsp defaults
-dsp_options=0
-
-poll_option=
-
-dsp_poll_option=
-
-dtmfthreshold_option=
-
-function check_cmd {
- if ! which "${1}" > /dev/null; then
- if [ "$(id -u)" != "0" ]; then
- echo "[!!] FATAL: $1 not in path, please install and/or be root."
- else
- echo "[!!] FATAL: $1 not in path, please install."
- fi
- if [ "${2}" != "notfatal" ] ; then
- exit 1
- fi
- else
- var=$(echo ${1} | tr a-z A-Z)
- eval "$var=`which ${1}`"
- fi
-}
-
-check_cmd modprobe
-check_cmd rmmod
-check_cmd insmod
-check_cmd lspci
-check_cmd lsusb notfatal
-check_cmd mknod
-check_cmd bc
-check_cmd cut
-check_cmd wc
-check_cmd seq
-check_cmd sed
-
-function check_asterisk {
- if ps ax | grep -v grep | grep asterisk > /dev/null ; then asterisk -rx "stop now" ; fi
-}
-
-function create_card_db
-{
- cardline=""
- cardcount=1
- skipnext=0
-
- IFS=$'\n'
- NL="
-"
- function addcard {
- cardline="${cardline}${cardcount},${1}${NL}"
- let "cardcount = ${cardcount} + 1"
- }
+########################################################################
- function addport {
- let "portcount = ${portcount} + ${1}"
- }
+. /etc/sysconfig/rc
+. ${rc_functions}
- for line in $(${LSPCI} -n -d 0xd161:b410); do
- addcard "4,0x4"
- done
+case "${1}" in
+ start)
- for line in $(${LSPCI} -n | ${SED} -n 's/^\(0000:\|\)\([0-9a-f]\{2\}:[0-9a-f]\{2\}.[0-9a-f]\{1\}\)\( Class \| \)[0-9a-f]\{4\}: 1397:\([0-9a-f]\{4\}\).*$/\4 \2/p'); do
- if [ ${skipnext} -eq 1 ]; then
- skipnext=0
- continue
- fi
- case "${line}" in
- 30b1*)
- case "${line:5}" in
- 00*)
- addcard "1,0x1"
- ;;
- *)
- if [ $(${LSPCI} -n -s ${line:5:3} -d 0x1397:30b1 | ${WC} -l) -eq 2 ]; then
- addcard "2,2E1"
- skipnext=1
- else
- addcard "1,0x1"
- fi
- ;;
- esac
- ;;
- 16b8*)
- addcard "8,0x8"
- ;;
- 08b4*)
-
- if ${LSPCI} -n -v -s "${line:5}" | grep "Subsystem" | grep "1397:b567" > /dev/null ; then
- addcard "1,0x4"
- elif ${LSPCI} -n -v -s "${line:5}" | grep "Subsystem" | grep "1397:b566\|1397:b569" > /dev/null ; then
- addcard "2,0x4"
- else
- addcard "4,0x4"
- fi
- ;;
- esac
- done
- for line in $(${LSPCI} -n | grep "1397:\(2bd\(0\|6\|7\|8\|9\|a\|b\|c\)\|b100\)\|1043:0675\|0871:ffa\(1\|2\)\|1051:0100\|15b0:2bd0\|114f:007\(0\|1\|2\|3\)\|13d1:2bd1\|182d:3069"); do
- addcard "1,hfcpci"
- done
- for line in $(${LSPCI} -n | grep "1244:\(0a00\|0e00\)"); do
- addcard "1,avmfritz"
- done
- for line in $(${LSPCI} -n -d 1050:6692); do
- addcard "1,w6692pci"
- done
-
- if [ -e ${LSUSB} ]; then
- for line in $(${LSUSB} | grep "0959:2bd0\|0675:1688\|07b0:000\(6\|7\)\|0742:200\(7\|8\|9\|A\)\|08e3:0301\|07fa:084\(7\|8\)\|07ba:0006"); do
- addcard "1,hfcsusb"
- done
- fi
-
- echo "${cardline}"
-}
-
-function expand
-{
- local IFS=$','
- for tok in $1; do
- if [ "$(echo $tok | ${SED} -ne 's/\([0-9]*\)-\([0-9]*\)/\1 \2/p')" != "" ]; then
- ${SEQ} $(echo $tok | ${SED} -ne 's/\([0-9]*\)-[0-9]*/\1/p') $(echo $tok | ${SED} -ne 's/[0-9]*-\([0-9]*\)/\1/p')
- else
- echo $tok
- fi
- done
-}
-
-function load_card_modules {
+ boot_mesg "Starting mISDNv2 ... "
- carddb=$(create_card_db)
-
- function find_carddb_line {
- i=1
- for l in ${carddb} ; do
- if [ $i -eq $1 ] ; then
- echo $l
- return
- fi
- let "i=$i+1"
+ # load mISDN modules
+ for module in mISDN_core hfcpci hfcsusb hfcmulti xhfc; do
+ modprobe $module > /dev/null 2>&1;
done
- }
-
- if [ ! -z "$1" ] ; then
- echo "Loading only $1"
- fi
-
- IFS=$'\n'
- skipnr=0
-
- for line in $(${SED} -n -e '/^[^#]/p' ${misdn_init_conf});
- do
- var=$(echo "${line}" | ${CUT} -d "=" -f1)
- val=$(echo "${line}" | ${CUT} -d "=" -f2)
-
- case "${var}" in
- card)
- #echo "processing line: $val"
- nr=$(echo "${val}" | ${CUT} -d "," -f1)
- mod=$(echo "${val}" | ${CUT} -d "," -f2)
- opns=$(echo "${val}" | ${CUT} -d "," -f3-)
-
- #getting portcount from carddb
- ports=$(find_carddb_line $nr | ${CUT} -d "," -f2)
- let "nr = ${nr} + ${skipnr}"
- #echo "nr $nr ports $ports mod $mod opns: $opns"
-
- case "${mod}" in
- 2E1)
- hfcmulti[${nr}]=1
- hfcmulti[$((${nr} + 1))]=1
- let "hfcports = ${hfcports} + ${ports}"
- IFS=$','
- for li in ${opns}; do
- hfcmulti[${nr}]=$(echo "obase=10;2^(${!li}-1)+${hfcmulti[${nr}]}" | ${BC})
- if [ "${li}" != "pcm_slave" ]; then
- hfcmulti[$((${nr} + 1))]=$(echo "obase=10;2^(${!li}-1)+${hfcmulti[$((${nr}+1))]}" | ${BC})
- fi
- done
- IFS=$'\n'
- hfcmulti[$((${nr} + 1))]=$(echo "obase=10;2^(${pcm_slave}-1)+${hfcmulti[$((${nr}+1))]}" | ${BC})
- let "skipnr = ${skipnr} + 1"
- ;;
- 0x*)
- hfcmulti[${nr}]=$(echo ${mod} | ${SED} -e "s/^0x\([0-9]*\)/\1/")
- let "hfcports = ${hfcports} + ${ports}"
- IFS=$','
- for li in ${opns}; do
- hfcmulti[${nr}]=$(echo "obase=10;2^(${!li}-1)+${hfcmulti[${nr}]}" | ${BC})
- done
- IFS=$'\n'
- ;;
- *)
- other_card[${nr}]=${mod}
- ;;
- esac
- ;;
- te_ptp)
- for li in $(expand "${val}"); do
- layermask[${li}]="0xf"
- protocol[${li}]=34 # 0x22 == 34
- done
- ;;
- te_ptmp)
- for li in $(expand "${val}"); do
- layermask[${li}]="0xf"
- protocol[${li}]=2 # 0x2 == 2
- done
- ;;
- nt_*)
- for li in $(expand "${val}"); do
- layermask[${li}]="0x3"
- protocol[${li}]=18 # 0x12 == 18
- done
- ;;
- te_capi_ptp)
- for li in $(expand "${val}"); do
- layermask[${li}]="0x0"
- protocol[${li}]=34 # 0x22 == 34
- done
-
- export addcapi=1
- ;;
- te_capi_ptmp)
- for li in $(expand "${val}"); do
- layermask[${li}]="0x0"
- protocol[${li}]=2 # 0x2 == 2
- done
-
- export addcapi=1
- ;;
- option)
- port=`echo "${val}" | ${SED} -e "s/^\([0-9]*\),.*/\1/"`
- opt=`echo "${val}" | ${SED} -e "s/^[0-9]*,\(.*\)/\1/"`
-
- if [ -z ${protocol[${port}]} ]; then
- protocol[${port}]="0"
- fi
-
- IFS=$','
- for li in ${opt}; do
- protocol[${port}]=$(echo "obase=10;2^(${!li}-1)+${protocol[${port}]}" | ${BC})
- done
- IFS=$'\n'
- ;;
- poll)
- poll=${val}
- poll_option=poll=${val}
- ;;
- dsp_poll)
- dsp_poll_option=poll=${val}
- ;;
- pcm)
- pcm=${val}
- ;;
- dsp_options)
- export dsp_options=${val}
- ;;
- dtmfthreshold)
- export dtmfthreshold_option="dtmfthreshold=${val}"
- ;;
- debug)
- debug=${val}
- ;;
- timer)
- timer=${val}
- ;;
- *)
- echo "unknown variable: ${var}"
- ;;
- esac
-
- done
-
- echo "-----------------------------------------"
- echo " Loading module(s) for your misdn-cards:"
- echo "-----------------------------------------"
-
- card_index=1
- port_index=1
- while [ ! -z ${hfcmulti[${card_index}]} ] || [ ! -z ${other_card[${card_index}]} ];
- do
- if [ ! -z ${hfcmulti[${card_index}]} ]; then
- # MODPROBE COMMAND FOR hfcmulti CARD
- hfcmulti_type="type="
- hfcmulti_prot="protocol="
- hfcmulti_layer="layermask="
- while [ ! -z ${hfcmulti[${card_index}]} ];
- do
- hfcmulti_type="${hfcmulti_type}$(echo "obase=16;\"0x\";${hfcmulti[${card_index}]}" | ${BC} ),"
- let "card_index = ${card_index} + 1"
- done
- while [ ${hfcports} -gt 0 ];
- do
- if [ ! -z ${protocol[${port_index}]} ]; then
- hfcmulti_prot="${hfcmulti_prot}$(echo "obase=16;\"0x\";${protocol[${port_index}]}" | ${BC}),"
- else
- hfcmulti_prot="${hfcmulti_prot}0x2,"
- fi
- if [ ! -z ${layermask[${port_index}]} ]; then
- hfcmulti_layer="${hfcmulti_layer}${layermask[${port_index}]},"
- else
- hfcmulti_layer="${hfcmulti_layer}0xf,"
- fi
- let "port_index = ${port_index} + 1"
- let "hfcports = ${hfcports} - 1"
- done
- hfcmulti_type="$(echo ${hfcmulti_type} | ${SED} -e 's/^\(.*\),$/\1/')"
- hfcmulti_prot="$(echo ${hfcmulti_prot} | ${SED} -e 's/^\(.*\),$/\1/')"
- hfcmulti_layer="$(echo ${hfcmulti_layer} | ${SED} -e 's/^\(.*\),$/\1/')"
- hfcmulti_cmd="${MODPROBE} --ignore-install hfcmulti ${hfcmulti_type} ${hfcmulti_prot} ${hfcmulti_layer}"
- if [ ! -z ${poll} ]; then
- hfcmulti_cmd="${hfcmulti_cmd} poll=${poll}"
- fi
- if [ ! -z ${pcm} ]; then
- hfcmulti_cmd="${hfcmulti_cmd} pcm=${pcm}"
- fi
- if [ ! -z ${debug} ]; then
- hfcmulti_cmd="${hfcmulti_cmd} debug=${debug}"
- fi
-
- if [ ! -z ${timer} ]; then
- hfcmulti_cmd="${hfcmulti_cmd} timer=${timer}"
- fi
-
- if [ -z "$1" ] ; then
- echo ${hfcmulti_cmd}
- eval ${hfcmulti_cmd}
- else
- if [ "$1" = "hfcmulti" ] ; then
- echo ${hfcmulti_cmd}
- eval ${hfcmulti_cmd}
- fi
- fi
+ modprobe mISDN_dsp
+ if [ ${?} = 0 ]; then
+ echo_ok;
else
- # MODPROBE COMMAND FOR _NON_ hfcmulti CARD
- other_mod="${other_card[${card_index}]}"
- other_cmd="${MODPROBE} --ignore-install ${other_mod}"
- if [ ! -z ${protocol[${port_index}]} ]; then
- other_prot="protocol=$(echo "obase=16;\"0x\";${protocol[${port_index}]}" | ${BC}),"
- else
- other_prot="protocol=0x2,"
- fi
- if [ ! -z ${layermask[${port_index}]} ]; then
- other_layer="layermask=${layermask[${port_index}]},"
- else
- other_layer="layermask=0xf,"
- fi
- other_extra=""
- modinfo $other_mod | egrep -q 'parm: *poll' && other_extra="$other_extra ${poll_option}"
-
- let "prev = ${card_index}"
- let "card_index = ${card_index} + 1"
- let "port_index = ${port_index} + 1"
- while [ "${other_card[${card_index}]}" == "${other_card[${prev}]}" ];
- do
- if [ ! -z ${protocol[${port_index}]} ]; then
- other_prot="${other_prot}$(echo "obase=16;\"0x\";${protocol[${port_index}]}" | ${BC}),"
- else
- other_prot="${other_prot}0x2,"
- fi
- if [ ! -z ${layermask[${port_index}]} ]; then
- other_layer="${other_layer}${layermask[${port_index}]},"
- else
- other_layer="${other_layer}0xf,"
- fi
- let "prev = ${card_index}"
- let "card_index = ${card_index} + 1"
- let "port_index = ${port_index} + 1"
- done
-
- other_prot="$(echo ${other_prot} | ${SED} -e 's/^\(.*\),$/\1/')"
- other_layer="$(echo ${other_layer} | ${SED} -e 's/^\(.*\),$/\1/')"
- other_cmd="${other_cmd} ${other_prot} ${other_layer} ${other_extra}"
-
- if [ -z "$1" ] ; then
- echo "${other_cmd}"
- eval ${other_cmd}
- else
- if [ "$1" = "${other_card[${prev}]}" ] ; then
- echo ${other_cmd}
- eval ${other_cmd}
- fi
- fi
-
-
- fi
- done
-}
-
-function unload_card_modules {
-
- IFS=$'\n'
-
- for line in $(${SED} -ne '/^[^#]/p' ${misdn_init_conf});
- do
- var=$(echo "${line}" | ${CUT} -d "=" -f 1)
- val=$(echo "${line}" | ${CUT} -d "=" -f 2)
-
- case "${var}" in
- card)
- nr=$(echo "${val}" | ${CUT} -d "," -f 1)
- mod=$(echo "${val}" | ${CUT} -d "," -f 2)
- case "${mod}" in
- 2E1)
- modulelist[${nr}]=hfcmulti
- ;;
- 0x*)
- modulelist[${nr}]=hfcmulti
- ;;
- *)
- modulelist[${nr}]=${mod}
- ;;
- esac
- ;;
- esac
-
- done
-
- echo "-------------------------------------------"
- echo " Unloading module(s) for your misdn-cards:"
- echo "-------------------------------------------"
-
- rmmod_cmd="${RMMOD} ${modulelist[1]}"
- echo "${rmmod_cmd}"
- eval ${rmmod_cmd}
-
- index=2
- prev=1
- while [ ! -z ${modulelist[${index}]} ];
- do
- if [ ${modulelist[${index}]} != ${modulelist[${prev}]} ]; then
- rmmod_cmd="${RMMOD} ${modulelist[${index}]}"
- echo "${rmmod_cmd}"
- eval ${rmmod_cmd}
+ echo_failure;
fi
- let "prev = ${index}"
- let "index = ${index} + 1"
- done
-}
+ exit 0;
+ ;;
-function create_misdn_init_conf {
- cardline=""
- cardcount=1
- portcount=0
- cardconf=""
- IFS=$'\n'
- NL="
-"
- carddb=$(create_card_db)
+ stop)
- for line in $carddb ; do
- tmp="card=$(echo $line | ${CUT} -d, -f1,3)"
- let "portcount = ${portcount} + $(echo $line | ${CUT} -d, -f2)"
- cardline="${cardline}${tmp}${NL}"
- done
+ boot_mesg "Stopping mISDNv2 ... "
- function die {
- echo "[!!] ${1}"
- exit 1
- }
-
- if [ "${1}" == "scan" ]; then
- echo "[OK] found the following devices:"
- echo "${cardline}[ii] run \"/usr/sbin/misdn-init config\" to store this information to ${misdn_init_conf}"
- else
-
- index=1
- portline="te_ptmp="
- while [ ${index} -le ${portcount} ]; do
- portline="${portline}${index},"
- let "index = ${index} + 1"
+ # unload mISDN hardware modules
+ for module in mISDN_dsp hfcpci hfcsusb hfcmulti xhfc; do
+ rmmod $module > /dev/null 2>&1;
done
- portline="$(echo ${portline} | ${SED} -e 's/^\(.*\),$/\1/')"
-
- misdn_cfg_pt1="#
-# Configuration file for your misdn hardware
-#
-# Usage: /usr/sbin/misdn-init start|stop|restart|config|scan|help
-#
-
-#
-# Card Settings
-#
-# Syntax: card=<number>,<type>[,<option>...]
-#
-# <number> count your cards beginning with 1
-# <type> either 0x1,0x4 or 0x8 for your hfcmulti hardware,
-# or the name of your card driver module.
-# <option> ulaw - uLaw (instead of aLaw)
-# dtmf - enable DTMF detection on all B-channels
-#
-# pcm_slave - set PCM bus into slave mode
-# If you have a set of cards, all wired via PCM. Set
-# all cards into pcm_slave mode and leave one out.
-# The left card will automatically be Master.
-#
-# ignore_pcm_frameclock - this can be set in conjunction with
-# pcm_slave. If this card has a
-# PCI Bus Position before the Position
-# of the Master, then this port cannot
-# yet receive a frameclock, so it must
-# ignore the pcm frameclock.
-#
-# rxclock - use clocking for pcm from ST Port
-# crystalclock - use clocking for pcm from PLL (genrated on board)
-# watchdog - This dual E1 Board has a Watchdog for
-# transparent mode
-#
-#"
- misdn_cfg_pt2="#
-# Port settings
-#
-# Syntax: <port_type>=<port_number>[,<port_number>...]
-#
-# <port_type> te_ptp - TE-Mode, PTP
-# te_ptmp - TE-Mode, PTMP
-# te_capi_ptp - TE-Mode (capi), PTP
-# te_capi_ptmp - TE-Mode (capi), PTMP
-# nt_ptp - NT-Mode, PTP
-# nt_ptmp - NT-Mode, PTMP
-# <port_number> port that should be considered
-#"
- misdn_cfg_pt3="#
-# Port Options
-#
-# Syntax: option=<port_number>,<option>[,<option>...]
-#
-# <option> master_clock - use master clock for this S/T interface
-# (only once per chip, only for HFC 8/4)
-# optical - optical (only HFC-E1)
-# los - report LOS (only HFC-E1)
-# ais - report AIS (only HFC-E1)
-# slip - report SLIP (only HFC-E1)
-# nocrc4 - turn off crc4 mode use double frame instead
-# (only HFC-E1)
-#
-# The master_clock option is essential for retrieving and transmitting
-# faxes to avoid failures during transmission. It tells the driver to
-# synchronize the Card with the given Port which should be a TE Port and
-# connected to the PSTN in general.
-#
-#option=1,master_clock
-#option=2,ais,nocrc4
-#option=3,optical,los,ais,slip
-
-
-#
-# General Options for your hfcmulti hardware
-#
-# poll=<number>
-#
-# Only one poll value must be given for all cards.
-# Give the number of samples for each fifo process.
-# By default 128 is used. Decrease to reduce delay, increase to
-# reduce cpu load. If unsure, don't mess with it!!!
-# Valid is 32, 64, 128, 256.
-#
-# dsp_poll=<number>
-# This is the poll option which is used by mISDN_dsp, this might
-# differ from the one given by poll= for the hfc based cards, since
-# they can only use multiples of 32, the dsp_poll is dependant on
-# the kernel timer setting which can be found in the CPU section
-# in the kernel config. Defaults are there either 100Hz, 250Hz
-# or 1000Hz. If your setting is either 1000 or 250 it is compatible
-# with the poll option for the hfc chips, if you have 100 it is
-# different and you need here a multiple of 80.
-# The default is to have no dsp_poll option, then the dsp itself
-# finds out which option is the best to use by itself
-#
-# pcm=<number>
-#
-# Give the id of the PCM bus. All PCM busses with the same ID
-# are expected to be connected and have equal slots.
-# Only one chip of the PCM bus must be master, the others slave.
-#
-# debug=<number>
-#
-# Enable debugging (see hfc_multi.h for debug options).
-#
-# dsp_options=<number>
-#
-# set this to 2 and you'll have software bridging instead of
-# hardware bridging.
-#
-#
-# dtmfthreshold=<milliseconds>
-#
-# Here you can tune the sensitivity of the dtmf tone recognizer.
-#
-# timer=<1|0>
-#
-# set this to 1 if you want hfcmulti to register at ztdummy (zaptel)
-# and provide a 1khz timing source for it. This makes it possible
-# to have an accurate timing source for asterisk through zaptel from
-# hfcmulti to make applications like Meetme and faxing between wctdm
-# and hfcmulti work properly.
-#
-poll=128
-dsp_poll=80
-dsp_options=0
-dtmfthreshold=100
-debug=0"
-
- if [ -f ${misdn_init_conf} ]; then
- cp "${misdn_init_conf}" "${misdn_init_conf}.save" || die "could not backup your existing ${misdn_init_conf}!"
- echo "[OK] ${misdn_init_conf} already present. backing it up to ${misdn_init_conf}.save"
- fi
- echo "${misdn_cfg_pt1}${NL}${cardline}${NL}${misdn_cfg_pt2}${NL}${portline}${NL}${NL}${misdn_cfg_pt3}" > ${misdn_init_conf} || die "could not write to /etc/misdn-init.conf!"
-#echo "${misdn_cfg_pt1}${NL}${cardline}${NL}${misdn_cfg_pt2}${NL}${portline}${NL}${NL}${misdn_cfg_pt3}" > testconf || die "could not write to /etc/misdn-init.conf!"
-
- echo "[OK] ${misdn_init_conf} created. It's now safe to run \"/usr/sbin/misdn-init start\""
- if [ ${portcount} -gt 1 ]; then
- echo "[ii] make your ports (1-${portcount}) available in asterisk by editing \"/etc/asterisk/misdn.conf\""
- elif [ ${portcount} -eq 1 ]; then
- echo "[ii] make your port (1) available in asterisk by editing \"/etc/asterisk/misdn.conf\""
- fi
- fi
-}
-
-function check_cfg_file {
- if [ ! -f ${misdn_init_conf} ]; then
- if [ ! -z "$1" ] ; then
- /usr/sbin/misdn-init config
+ rmmod mISDN_core
+ if [ ${?} = 0 ]; then
+ echo_ok;
else
- echo "[!!] failed to load: ${misdn_init_conf}"
- echo "run \"/usr/sbin/misdn-init config\" to scan your devices and generate a basic config file."
- exit 1
- fi
- fi
-}
-
-# MAIN #############
-
-case "$1" in
- start|--start)
- check_cfg_file $2
-
- ${MODPROBE} capi
- ${MODPROBE} mISDN_core debug=0
- ${MODPROBE} mISDN_l1 debug=0
- ${MODPROBE} mISDN_l2 debug=0
- ${MODPROBE} l3udss1 debug=0
- ${MODPROBE} mISDN_capi
-
- load_card_modules $2
-
- echo "${MODPROBE} mISDN_dsp debug=0x0 options=$dsp_options $dsp_poll_option $dtmfthreshold_option"
- ${MODPROBE} mISDN_dsp debug=0x0 options=$dsp_options $dsp_poll_option $dtmfthreshold_option
- sleep 1
-
- if [ ! -e /dev/mISDN ]; then
- $MKNOD /dev/mISDN c 46 0
- if grep asterisk /etc/passwd > /dev/null; then
- chown $USER:$GROUP /dev/mISDN
- fi
- echo "[i] creating device node: /dev/mISDN"
+ echo_failure;
fi
- ;;
-
- stop|--stop)
-
- check_cfg_file
-
- check_asterisk
-
-
- for mod in $(lsmod | ${SED} -ne '/Module/!{s/\([^ ]*\).*/\1/;p}');
- do
- case "${mod}" in
- mISDN_capi | mISDN_dsp | l3udss1 | mISDN_l2 | mISDN_l1 | mISDN_isac )
- eval "${RMMOD} ${mod}"
- ;;
- esac
- done
-
- unload_card_modules
-
- ${RMMOD} mISDN_core
-
- ;;
-
- restart|--restart)
-
- check_cfg_file
-
- sh $0 stop
- sleep 2 # some phones will release tei when layer 1 is down
- sh $0 start
- ;;
-
- config|--config)
-
- create_misdn_init_conf
-
- ;;
-
- scan|--scan)
-
- create_misdn_init_conf scan
-
- ;;
-
- help|--help)
- echo "Usage: $0 {start|stop|restart|config|scan|help}"
- exit 0
+ exit 0;
;;
*)
- echo "Usage: $0 {start|stop|restart|config|scan|help}"
- exit 2
+ echo "Usage: ${0} {start}{stop}"
+ exit 1
;;
-
esac
-
+# End $rc_base/init.d/mISDN