mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-16 05:53:00 +02:00
Add new lcr & mISDN initskript
add forgotten lfs & rootfiles Change lcr setting folder to /var/ipfire/lcr
This commit is contained in:
18
config/rootfiles/common/mISDNuser
Normal file
18
config/rootfiles/common/mISDNuser
Normal file
@@ -0,0 +1,18 @@
|
||||
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
|
||||
1
config/rootfiles/core/28/filelists/mISDNuser
Symbolic link
1
config/rootfiles/core/28/filelists/mISDNuser
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/mISDNuser
|
||||
388
config/rootfiles/packages/lcr
Normal file
388
config/rootfiles/packages/lcr
Normal file
@@ -0,0 +1,388 @@
|
||||
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
|
||||
86
lfs/lcr
Normal file
86
lfs/lcr
Normal file
@@ -0,0 +1,86 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# 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)
|
||||
75
lfs/mISDNuser
Normal file
75
lfs/mISDNuser
Normal file
@@ -0,0 +1,75 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# 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)
|
||||
45
src/initscripts/init.d/lcr
Normal file
45
src/initscripts/init.d/lcr
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/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
|
||||
@@ -1,780 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
################################################################################
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/mISDN
|
||||
#
|
||||
# misdn-init init script
|
||||
# Description : Start mISDN v2
|
||||
#
|
||||
# Copyright (C) 2005, Nadi Sarrar
|
||||
# Authors : Arne Fitzenreiter - arne_f@ipfire.org
|
||||
#
|
||||
# Nadi Sarrar <nadi@beronet.com>
|
||||
# Version : 00.00
|
||||
#
|
||||
# This program is free software, distributed under the terms of
|
||||
# the GNU General Public License
|
||||
# Notes :
|
||||
#
|
||||
########################################################################
|
||||
|
||||
#
|
||||
# USAGE:
|
||||
#
|
||||
# /usr/sbin/misdn-init start|stop|restart|config|scan|help
|
||||
#
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
|
||||
# chkconfig: 2345 35 60
|
||||
# description: mISDN Kernel Modules
|
||||
case "${1}" in
|
||||
start)
|
||||
|
||||
#
|
||||
# CONFIGURATION:
|
||||
#
|
||||
# Path to your misdn-init.conf:
|
||||
#
|
||||
misdn_init_conf="/etc/misdn-init.conf"
|
||||
#
|
||||
################################################################################
|
||||
boot_mesg "Starting mISDNv2 ... "
|
||||
|
||||
#
|
||||
# change this to modify the user/group settings of /dev/mISDN
|
||||
#
|
||||
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}"
|
||||
}
|
||||
|
||||
for line in $(${LSPCI} -n -d 0xd161:b410); do
|
||||
addcard "4,0x4"
|
||||
done
|
||||
|
||||
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 {
|
||||
|
||||
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"
|
||||
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
|
||||
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}
|
||||
fi
|
||||
let "prev = ${index}"
|
||||
let "index = ${index} + 1"
|
||||
done
|
||||
}
|
||||
|
||||
function create_misdn_init_conf {
|
||||
cardline=""
|
||||
cardcount=1
|
||||
portcount=0
|
||||
cardconf=""
|
||||
IFS=$'\n'
|
||||
NL="
|
||||
"
|
||||
carddb=$(create_card_db)
|
||||
|
||||
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
|
||||
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
# load mISDN modules
|
||||
for module in mISDN_core hfcpci hfcsusb hfcmulti xhfc; do
|
||||
modprobe $module > /dev/null 2>&1;
|
||||
done
|
||||
|
||||
unload_card_modules
|
||||
|
||||
${RMMOD} mISDN_core
|
||||
|
||||
modprobe mISDN_dsp
|
||||
if [ ${?} = 0 ]; then
|
||||
echo_ok;
|
||||
else
|
||||
echo_failure;
|
||||
fi
|
||||
exit 0;
|
||||
;;
|
||||
|
||||
restart|--restart)
|
||||
|
||||
check_cfg_file
|
||||
stop)
|
||||
|
||||
sh $0 stop
|
||||
sleep 2 # some phones will release tei when layer 1 is down
|
||||
sh $0 start
|
||||
;;
|
||||
boot_mesg "Stopping mISDNv2 ... "
|
||||
|
||||
config|--config)
|
||||
# unload mISDN hardware modules
|
||||
for module in mISDN_dsp hfcpci hfcsusb hfcmulti xhfc; do
|
||||
rmmod $module > /dev/null 2>&1;
|
||||
done
|
||||
|
||||
create_misdn_init_conf
|
||||
|
||||
;;
|
||||
|
||||
scan|--scan)
|
||||
|
||||
create_misdn_init_conf scan
|
||||
|
||||
;;
|
||||
|
||||
help|--help)
|
||||
echo "Usage: $0 {start|stop|restart|config|scan|help}"
|
||||
exit 0
|
||||
rmmod mISDN_core
|
||||
if [ ${?} = 0 ]; then
|
||||
echo_ok;
|
||||
else
|
||||
echo_failure;
|
||||
fi
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user