Журнал лабораторных работ

Содержание

Журнал

Четверг (11/27/14)

/dev/pts/5
14:24:31
#_ +1
+1
прошло 16 минут
14:40:49
#_ last
Очередь звонков                                    1:OK 2:-- 3:-- 4:OK 5:OK 6:-- 7:OK 8:OK
14:40:56
#_ +2
+2
14:42:41
#_ last
Очередь звонков                                    1:OK 2:OK 3:-- 4:OK 5:OK 6:-- 7:OK 8:OK
14:44:48
#lspci | grep Digium

прошло 16 минут
15:01:25
#all lspci | grep Digium

15:01:32
#all lspci | grep -i network
6: 00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 05)
8: 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
15:07:56
#all lspci | less
15:08:19
#_ +6
+6
15:08:42
#_ +3
+3
15:08:43
#_ last
Очередь звонков                                    1:OK 2:OK 3:OK 4:OK 5:OK 6:OK 7:OK 8:OK
15:09:27
#_ ГИсходящие звонки на Asterisk

15:09:44
#_ Исходящие звонки нс Asterisk

15:10:06
#grep menu /etc/asterisk/extensions.conf
[submenu]
exten => 0,1,Goto(menu,1,start)
[menu]
exten => 5,1,Goto(submenu,1,1)
exten => 8405,1,Goto(menu,s,1)
15:11:04
#ssh m1
l3-agent is already running: pid=3671; pidfile=/root/.lilalo/l3-agent.pid
15:11:07
#cat > /tmp/call.call
Context: internal
Channel: SIP/1101
Extension: 8405
15:11:36
#chown asterisk:asterisk /tmp/call.call

15:11:44
#cp -p /tmp/call.call /var/spool/asterisk/outgoing/

15:12:03
## сейчас должен был зазвонить 1101

15:12:21
## и если поднять трубку там должно быть меню

15:12:31
#exi
bash: exi: command not found
15:13:50
#exit
exit
Connection to m1 closed.
15:13:59
#ssh m2
Linux debian2 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u1 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Nov 27 12:51:43 2014 from 192.168.12.254
l3-agent is already running: pid=3355; pidfile=/root/.lilalo/l3-agent.pid
15:15:46
## сейчас будем обзванивать всех

15:15:57
#vim /usr/local/bin/call-all
15:18:09
#bash /usr/local/bin/call-all
minsk/11
minsk/13
minsk/21
minsk/22
minsk/23
minsk/31
minsk/32
15:19:00
## сейчас правильно

15:19:05
## сейчас bash /usr/local/bin/call-all
kiev/1101
kiev/1102
kiev/1301
kiev/1302
kiev/2101
kiev/2102
kiev/2201
kiev/2202
kiev/2301
kiev/2302
kiev/3101
kiev/3102
kiev/3201
kiev/3202
15:19:38
#vim /usr/local/bin/call-all
15:23:04
#chmod +x /usr/local/bin/call-all

15:23:18
#/usr/local/bin/call-all
mv: target `/tmp/2899330244.call' is not a directory
mv: target `/tmp/248217076.call' is not a directory
mv: target `/tmp/1185719758.call' is not a directory
mv: target `/tmp/146429212.call' is not a directory
mv: target `/tmp/307509346.call' is not a directory
mv: target `/tmp/363930286.call' is not a directory
mv: target `/tmp/772030129.call' is not a directory
mv: target `/tmp/1470917812.call' is not a directory
mv: target `/tmp/3149629100.call' is not a directory
mv: target `/tmp/245401870.call' is not a directory
mv: target `/tmp/1896028682.call' is not a directory
mv: target `/tmp/111879619.call' is not a directory
mv: target `/tmp/276223591.call' is not a directory
mv: target `/tmp/556114108.call' is not a directory
mv: target `/tmp/408513020.call' is not a directory
mv: target `/tmp/1642327278.call' is not a directory
15:26:55
#~
exit
Connection to m2 closed.
15:27:03
#scp m2:/usr/local/bin/call-all /tmp/
call-all                                                                       100% 1027     1.0KB/s   00:00
15:27:16
#cpall /tmp/call-all /usr/local/bin/
call-all                                                                       100% 1027     1.0KB/s   00:00
call-all                                                                       100% 1027     1.0KB/s   00:00
call-all                                                                       100% 1027     1.0KB/s   00:00
call-all                                                                       100% 1027     1.0KB/s   00:00
call-all                                                                       100% 1027     1.0KB/s   00:00
call-all                                                                       100% 1027     1.0KB/s   00:00
call-all                                                                       100% 1027     1.0KB/s   00:00
call-all                                                                       100% 1027     1.0KB/s   00:00
15:27:32
#_ +8
+8
15:27:35
#_ +6
+6
15:36:09
#_ +7
+7
15:37:24
#_ +5
+5
15:41:36
#_ Использоватние GSM-шлюза

15:41:41
#lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 03f0:0024 Hewlett-Packard KU-0316 Keyboard
Bus 007 Device 003: ID 09da:000a A4 Tech Co., Ltd Optical Mouse Opto 510D
Bus 005 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
15:41:43
#lsusb | grep Hua
Bus 005 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
15:41:44
#ssh m2
Linux debian2 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u1 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Nov 27 16:15:46 2014 from 192.168.12.254
l3-agent is already running: pid=3355; pidfile=/root/.lilalo/l3-agent.pid
15:41:50
#tail /var/log/messages
Nov 27 16:40:09 debian2 kernel: [13853.623898] option 5-2:1.0: GSM modem (1-port) converter detected
Nov 27 16:40:09 debian2 kernel: [13853.624267] usb 5-2: GSM modem (1-port) converter now attached to ttyUSB0
Nov 27 16:40:09 debian2 kernel: [13853.624296] option 5-2:1.1: GSM modem (1-port) converter detected
Nov 27 16:40:09 debian2 kernel: [13853.624511] usb 5-2: GSM modem (1-port) converter now attached to ttyUSB1
Nov 27 16:40:09 debian2 kernel: [13853.624536] option 5-2:1.2: GSM modem (1-port) converter detected
Nov 27 16:40:09 debian2 kernel: [13853.624665] usb 5-2: GSM modem (1-port) converter now attached to ttyUSB2
Nov 27 16:40:09 debian2 kernel: [13853.624694] usbcore: registered new interface driver option
Nov 27 16:40:09 debian2 kernel: [13853.624699] option: v0.7.2:USB Driver for GSM modems
Nov 27 16:40:38 debian2 dhcpd: DHCPINFORM from 192.168.20.102 via eth0: not authoritative for subnet 192.168.20.0
Nov 27 16:40:41 debian2 dhcpd: DHCPINFORM from 192.168.20.102 via eth0: not authoritative for subnet 192.168.20.0
15:42:11
## девайс увиделся на ttyUSB0, ttyUSB1, ttyUSB2

15:42:28
#lsmod | head -2
Module                  Size  Used by
option                 37168  0
15:42:35
#lsmod | head -5
Module                  Size  Used by
option                 37168  0
usb_wwan               17320  1 option
usbserial              32061  2 usb_wwan,option
usb_storage            43870  0
15:42:37
## usb_wwan это Ñего драйвер

15:42:48
#modinfo usb_wwan
filename:       /lib/modules/3.2.0-4-amd64/kernel/drivers/usb/serial/usb_wwan.ko
license:        GPL
version:        v0.7.2
description:    USB Driver for GSM modems
author:         Matthias Urlichs <smurf@smurf.noris.de>
srcversion:     EF601762583FF1C87ACB46D
depends:        usbcore,usbserial
intree:         Y
vermagic:       3.2.0-4-amd64 SMP mod_unload modversions
parm:           debug:Debug messages (bool)
15:42:53
## USB Driver for GSM modems

15:43:00
#ls -l /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Nov 27 16:40 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Nov 27 16:40 /dev/ttyUSB1
crw-rw---T 1 root dialout 188, 2 Nov 27 16:40 /dev/ttyUSB2
15:43:24
## сейчас 16 40

15:43:48
## теперь нужно сделать чтобы астериск тоже его поддерживал

15:44:20
## испоьльзуем канал datacard

15:44:44
#exit
exit
Connection to m2 closed.
15:45:54
#cat /tmp/datacard-url
http://chan-datacard.googlecode.com/svn/trunk/
15:45:54
## url на котором Ñлежит исходный код datacard

15:46:10
## находитсчя через google Ðза одно нажате

15:46:29
## тип репозитория subversion

15:46:36
#apt-get install subversion
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libsvn1
Suggested packages:
  subversion-tools
The following NEW packages will be installed:
  libsvn1 subversion
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
...
Get:2 http://192.168.12.254/debian/ wheezy/main subversion amd64 1.6.17dfsg-4+deb7u6 [1,320 kB]
Fetched 2,253 kB in 1s (2,198 kB/s)
Selecting previously unselected package libsvn1:amd64.
(Reading database ... 144694 files and directories currently installed.)
Unpacking libsvn1:amd64 (from .../libsvn1_1.6.17dfsg-4+deb7u6_amd64.deb) ...
Selecting previously unselected package subversion.
Unpacking subversion (from .../subversion_1.6.17dfsg-4+deb7u6_amd64.deb) ...
Processing triggers for man-db ...
Setting up libsvn1:amd64 (1.6.17dfsg-4+deb7u6) ...
Setting up subversion (1.6.17dfsg-4+deb7u6) ...
15:46:57
#svn co http://chan-datacard.googlecode.com/svn/trunk/ chan-datacard
A    chan-datacard/__helpers.c
A    chan-datacard/__char_conv.c
A    chan-datacard/configure
A    chan-datacard/chan_datacard.h
A    chan-datacard/Makefile.in
A    chan-datacard/__cli.c
A    chan-datacard/COPYRIGHT.txt
A    chan-datacard/__channel.c
A    chan-datacard/__manager.c
A    chan-datacard/__at_fifo_queue.c
...
A    chan-datacard/__at_response.c
A    chan-datacard/__ringbuffer.c
A    chan-datacard/README.txt
A    chan-datacard/etc
A    chan-datacard/etc/datacard.conf
A    chan-datacard/__ringbuffer.h
A    chan-datacard/chan_datacard.c
A    chan-datacard/__at_parse.c
A    chan-datacard/__at_read.c
Checked out revision 192.
15:48:19
## скачали

15:48:23
#cd chan-datacard

15:48:28
## теперь собираем

15:48:40
#apt-get install asterisk-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  asterisk-dev
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 959 kB of archives.
After this operation, 2,131 kB of additional disk space will be used.
Get:1 http://192.168.12.254/debian/ wheezy/main asterisk-dev all 1:1.8.13.1~dfsg1-3+deb7u3 [959 kB]
Fetched 959 kB in 0s (1,874 kB/s)
Selecting previously unselected package asterisk-dev.
(Reading database ... 144782 files and directories currently installed.)
Unpacking asterisk-dev (from .../asterisk-dev_1%3a1.8.13.1~dfsg1-3+deb7u3_all.deb) ...
Setting up asterisk-dev (1:1.8.13.1~dfsg1-3+deb7u3) ...
15:48:50
## для сбокрки Ðиз исходников всегда нужны заголовочные файлы

15:49:03
## asterisk-dev

15:49:05
#./configure
configure complete, now type 'make'
15:49:10
#make
gcc -Wall -Wextra -fPIC -DAST_MODULE=\"chan_datacard\" -D_THREAD_SAFE -I. -I/usr/include -O2 -DICONV_CONST="" -D__DEBUG__ -D__APP__ -c chan_datacard.c
In file included from chan_datacard.c:69:0:
chan_datacard.h:257:2: warning: initialization from incompatible pointer type [enabled by default]
chan_datacard.h:257:2: warning: (near initialization for ‘channel_tech.requester’) [enabled by default]
In file included from chan_datacard.c:85:0:
__channel.c: In function ‘channel_new’:
__channel.c:18:2: warning: implicit declaration of function ‘ast_channel_linkedid’ [-Wimplicit-function-declaration]
__channel.c:18:9: warning: pointer/integer type mismatch in conditional expression [enabled by default]
__channel.c:22:3: warning: implicit declaration of function ‘ast_channel_tech_pvt_set’ [-Wimplicit-function-declaration]
__channel.c:23:3: warning: implicit declaration of function ‘ast_channel_tech_set’ [-Wimplicit-function-declaration]
...
__channel.c: In function ‘channel_indicate’:
__channel.c:792:15: warning: initialization makes pointer from integer without a cast [enabled by default]
__channel.c: In function ‘channel_queue_hangup’:
__channel.c:879:6: warning: implicit declaration of function ‘ast_channel_hangupcause_set’ [-Wimplicit-function-declaration]
chan_datacard.c: In function ‘unload_module’:
chan_datacard.c:621:2: warning: implicit declaration of function ‘ast_format_cap_destroy’ [-Wimplicit-function-declaration]
chan_datacard.c: In function ‘load_module’:
chan_datacard.c:685:9: warning: implicit declaration of function ‘ast_format_cap_alloc’ [-Wimplicit-function-declaration]
chan_datacard.c:690:27: warning: assignment makes pointer from integer without a cast [enabled by default]
make: *** [chan_datacard.o] Error 1
15:49:13
## наверное это слишком новый астериск для этого кода

15:49:37
## наверное этот модуль с таким новым атсериском несовместим

15:49:53
## тогда мы можем попробовать dongle

15:50:02
#apt-cache search dongle
libgnuradio-fcd3.5.3.2 - gnuradio FunCube Dongle support
libpam-blue - PAM module for local authenticaction with bluetooth devices
openocd - Open on-chip JTAG debug solution for ARM and MIPS systems
qthid-fcd-controller - Funcube Dongle controller
usb-modeswitch - mode switching tool for controlling "flip flop" USB devices
usb-modeswitch-data - mode switching data for usb-modeswitch
15:50:09
#cd ..

15:52:04
#./configure
bash: ./configure: No such file or directory
15:52:07
#ls
app.c         at_queue.h     chan_dongle.h  config.h.in    dc_config.h  Makefile.in  mutils.h      ringbuffer.h
app.h         at_read.c      channel.c      configure.in   etc          manager.c    pdiscovery.c  single.c
at_command.c  at_read.h      channel.h      contrib        export.h     manager.h    pdiscovery.h  stamp-h.in
at_command.h  at_response.c  char_conv.c    COPYRIGHT.txt  helpers.c    memmem.c     pdu.c         test
at_parse.c    at_response.h  char_conv.h    cpvt.c         helpers.h    memmem.h     pdu.h         TODO.txt
at_parse.h    BUGS           cli.c          cpvt.h         INSTALL      mixbuffer.c  README.txt    tools
at_queue.c    chan_dongle.c  cli.h          dc_config.c    LICENSE.txt  mixbuffer.h  ringbuffer.c
15:52:09
#less INSTALL
15:52:17
#autoconf
bash: autoconf: command not found
15:52:21
#apt-get install autoconf
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  automake autotools-dev
Suggested packages:
  autoconf2.13 autoconf-archive gnu-standards autoconf-doc libtool
The following NEW packages will be installed:
  autoconf automake autotools-dev
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
...
Selecting previously unselected package autotools-dev.
Unpacking autotools-dev (from .../autotools-dev_20120608.1_all.deb) ...
Selecting previously unselected package automake.
Unpacking automake (from .../automake_1%3a1.11.6-1_all.deb) ...
Processing triggers for man-db ...
Processing triggers for install-info ...
Setting up autoconf (2.69-1) ...
Setting up autotools-dev (20120608.1) ...
Setting up automake (1:1.11.6-1) ...
update-alternatives: using /usr/bin/automake-1.11 to provide /usr/bin/automake (automake) in auto mode
15:52:41
#autoconf
configure.in:7: error: possibly undefined macro: AM_INIT_AUTOMAKE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
15:52:45
#automake
configure.in: no proper invocation of AM_INIT_AUTOMAKE was found.
configure.in: You should verify that configure.in invokes AM_INIT_AUTOMAKE,
configure.in: that aclocal.m4 is present in the top-level directory,
configure.in: and that aclocal.m4 was recently regenerated (using aclocal).
configure.in:6: required file `./config.guess' not found
configure.in:6:   `automake --add-missing' can install `config.guess'
configure.in:6: required file `./config.sub' not found
configure.in:6:   `automake --add-missing' can install `config.sub'
configure.in:52: required file `./install-sh' not found
configure.in:52:   `automake --add-missing' can install `install-sh'
automake: no `Makefile.am' found for any configure output
15:52:55
#ls
app.c         at_read.c       channel.c    configure.in   export.h     memmem.c      pdu.h         tools
app.h         at_read.h       channel.h    contrib        helpers.c    memmem.h      README.txt
at_command.c  at_response.c   char_conv.c  COPYRIGHT.txt  helpers.h    mixbuffer.c   ringbuffer.c
at_command.h  at_response.h   char_conv.h  cpvt.c         INSTALL      mixbuffer.h   ringbuffer.h
at_parse.c    autom4te.cache  cli.c        cpvt.h         LICENSE.txt  mutils.h      single.c
at_parse.h    BUGS            cli.h        dc_config.c    Makefile.in  pdiscovery.c  stamp-h.in
at_queue.c    chan_dongle.c   config.h.in  dc_config.h    manager.c    pdiscovery.h  test
at_queue.h    chan_dongle.h   configure    etc            manager.h    pdu.c         TODO.txt
15:53:00
#./configure
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
15:53:04
#less INSTALL
15:53:21
#aclocal

15:53:24
#autoconf

15:53:26
#automake
configure.in:6: required file `./config.guess' not found
configure.in:6:   `automake --add-missing' can install `config.guess'
configure.in:6: required file `./config.sub' not found
configure.in:6:   `automake --add-missing' can install `config.sub'
configure.in:7: required file `./install-sh' not found
configure.in:7:   `automake --add-missing' can install `install-sh'
configure.in:7: required file `./missing' not found
configure.in:7:   `automake --add-missing' can install `missing'
automake: no `Makefile.am' found for any configure output
15:53:29
#automake -a
configure.in:6: installing `./config.guess'
configure.in:6: installing `./config.sub'
configure.in:7: installing `./install-sh'
configure.in:7: installing `./missing'
automake: no `Makefile.am' found for any configure output
15:53:38
#./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
...
checking for memmem... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strncasecmp... yes
checking for strtol... yes
checking for realpath... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
15:53:48
#make -j
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT app.o -MF .app.o.d -MP  -o app.o -c app.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT at_command.o -MF .at_command.o.d -MP  -o at_command.o -c at_command.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT at_parse.o -MF .at_parse.o.d -MP  -o at_parse.o -c at_parse.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT at_queue.o -MF .at_queue.o.d -MP  -o at_queue.o -c at_queue.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT at_read.o -MF .at_read.o.d -MP  -o at_read.o -c at_read.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT at_response.o -MF .at_response.o.d -MP  -o at_response.o -c at_response.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT chan_dongle.o -MF .chan_dongle.o.d -MP  -o chan_dongle.o -c chan_dongle.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT channel.o -MF .channel.o.d -MP  -o channel.o -c channel.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT char_conv.o -MF .char_conv.o.d -MP  -o char_conv.o -c char_conv.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT cli.o -MF .cli.o.d -MP  -o cli.o -c cli.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT helpers.o -MF .helpers.o.d -MP  -o helpers.o -c helpers.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT manager.o -MF .manager.o.d -MP  -o manager.o -c manager.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT memmem.o -MF .memmem.o.d -MP  -o memmem.o -c memmem.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT ringbuffer.o -MF .ringbuffer.o.d -MP  -o ringbuffer.o -c ringbuffer.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT cpvt.o -MF .cpvt.o.d -MP  -o cpvt.o -c cpvt.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT dc_config.o -MF .dc_config.o.d -MP  -o dc_config.o -c dc_config.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT pdu.o -MF .pdu.o.d -MP  -o pdu.o -c pdu.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT mixbuffer.o -MF .mixbuffer.o.d -MP  -o mixbuffer.o -c mixbuffer.c
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT pdiscovery.o -MF .pdiscovery.o.d -MP  -o pdiscovery.o -c pdiscovery.c
gcc  -shared -Xlinker -x -o chan_dongle.so app.o at_command.o at_parse.o at_queue.o at_read.o at_response.o chan_dongle.o channel.o char_conv.o cli.o helpers.o manager.o memmem.o ringbuffer.o cpvt.o dc_config.o pdu.o mixbuffer.o pdiscovery.o
15:53:52
#make install
./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
strip chan_dongle.so
/usr/bin/install -c -m 755 chan_dongle.so /usr/lib/asterisk/modules
15:53:56
## вс оё отработало

15:54:06
#history | tail -20
  509  cd chan-dongle/
  510  ./configure
  511  ls
  512  less INSTALL
  513  autoconf
  514  apt-get install autoconf
  515  autoconf
  516  automake
  517  ls
  518  ./configure
  519  less INSTALL
  520  aclocal
  521  autoconf
  522  automake
  523  automake -a
  524  ./configure
  525  make -j
  526  make install
  527  # всё отработало
  528  history | tail -20
15:54:42
#vim ~/chan-dongle-installation.txt
15:59:39
#exit
exit
Connection to m2 closed.
15:59:52
#scp m2:chan-dongle-installation.txt .
chan-dongle-installation.txt                                                   100%  859     0.8KB/s   00:00
15:59:57
#cd chan-dongle

16:00:00
#ls
aclocal.m4    at_read.c       channel.h      config.sub     helpers.c    memmem.o      ringbuffer.c
app.c         at_read.h       channel.o      configure      helpers.h    missing       ringbuffer.h
app.h         at_read.o       char_conv.c    configure.in   helpers.o    mixbuffer.c   ringbuffer.o
app.o         at_response.c   char_conv.h    contrib        INSTALL      mixbuffer.h   single.c
at_command.c  at_response.h   char_conv.o    COPYRIGHT.txt  install-sh   mixbuffer.o   stamp-h1
at_command.h  at_response.o   cli.c          cpvt.c         LICENSE.txt  mutils.h      stamp-h.in
at_command.o  autom4te.cache  cli.h          cpvt.h         Makefile     pdiscovery.c  test
at_parse.c    BUGS            cli.o          cpvt.o         Makefile.in  pdiscovery.h  TODO.txt
at_parse.h    chan_dongle.c   config.guess   dc_config.c    manager.c    pdiscovery.o  tools
at_parse.o    chan_dongle.h   config.h       dc_config.h    manager.h    pdu.c
at_queue.c    chan_dongle.o   config.h.in    dc_config.o    manager.o    pdu.h
at_queue.h    chan_dongle.so  config.log     etc            memmem.c     pdu.o
at_queue.o    channel.c       config.status  export.h       memmem.h     README.txt
16:00:01
#ls etc
dongle.conf  extensions.conf
16:00:10
#cat etc/dongle.conf
[general]
interval=15                     ; Number of seconds between trying to connect to devices
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
;jbenable = yes                 ; Enables the use of a jitterbuffer on the receiving side of a
                                ; Dongle channel. Defaults to "no". An enabled jitterbuffer will
                                ; be used only if the sending side can create and the receiving
                                ; side can not accept jitter. The Dongle channel can't accept jitter,
                                ; thus an enabled jitterbuffer on the receive Dongle side will always
                                ; be used if the sending side can create jitter.
;jbforce = no                   ; Forces the use of a jitterbuffer on the receive side of a Dongle
...
[dongle0]
audio=/dev/ttyUSB1              ; tty port for audio connection;        no default value
data=/dev/ttyUSB2               ; tty port for AT commands;             no default value
; or you can omit both audio and data together and use imei=123456789012345 and/or imsi=123456789012345
;  imei and imsi must contain exactly 15 digits !
;  imei/imsi discovery is available on Linux only
imei=123456789012345
imsi=123456789012345
; if audio and data set together with imei and/or imsi audio and data has precedence
;   you can use both imei and imsi together in this case exact match by imei and imsi required
16:00:15
## пример конфиг-файла

16:00:22
#cp etc/dongle.conf /etc/asterisk/

Файлы

  • /tmp/call.call
  • /tmp/datacard-url
  • etc/dongle.conf
  • /tmp/call.call
    >
    Context: internal
    Channel: SIP/1101
    Extension: 8405
    
    /tmp/datacard-url
    >
    http://chan-datacard.googlecode.com/svn/trunk/
    
    etc/dongle.conf
    >
    [general]
    interval=15                     ; Number of seconds between trying to connect to devices
    ;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
    ;jbenable = yes                 ; Enables the use of a jitterbuffer on the receiving side of a
                                    ; Dongle channel. Defaults to "no". An enabled jitterbuffer will
                                    ; be used only if the sending side can create and the receiving
                                    ; side can not accept jitter. The Dongle channel can't accept jitter,
                                    ; thus an enabled jitterbuffer on the receive Dongle side will always
                                    ; be used if the sending side can create jitter.
    ;jbforce = no                   ; Forces the use of a jitterbuffer on the receive side of a Dongle
                                    ; channel. Defaults to "no".
    ;jbmaxsize = 200                ; Max length of the jitterbuffer in milliseconds.
    ;jbresyncthreshold = 1000       ; Jump in the frame timestamps over which the jitterbuffer is
                                    ; resynchronized. Useful to improve the quality of the voice, with
                                    ; big jumps in/broken timestamps, usually sent from exotic devices
                                    ; and programs. Defaults to 1000.
    ;jbimpl = fixed                 ; Jitterbuffer implementation, used on the receiving side of a Dongle
                                    ; channel. Two implementations are currently available - "fixed"
                                    ; (with size always equals to jbmaxsize) and "adaptive" (with
                                    ; variable size, actually the new jb of IAX2). Defaults to fixed.
    ;jbtargetextra = 40             ; This option only affects the jb when 'jbimpl = adaptive' is set.
                                    ; The option represents the number of milliseconds by which the new jitter buffer
                                    ; will pad its size. the default is 40, so without modification, the new
                                    ; jitter buffer will set its size to the jitter value plus 40 milliseconds.
                                    ; increasing this value may help if your network normally has low jitter,
                                    ; but occasionally has spikes.
    ;jblog = no                     ; Enables jitterbuffer frame logging. Defaults to "no".
    ;-----------------------------------------------------------------------------------
    [defaults]
    ; now you can set here any not required device settings as template
    ;   sure you can overwrite in any [device] section this default values
    context=default                 ; context for incoming calls
    group=0                         ; calling group
    rxgain=0                        ; increase the incoming volume; may be negative
    txgain=0                        ; increase the outgoint volume; may be negative
    autodeletesms=yes               ; auto delete incoming sms
    resetdongle=yes                 ; reset dongle during initialization with ATZ command
    u2diag=-1                       ; set ^U2DIAG parameter on device (0 = disable everything except modem function) ; -1 not use ^U2DIAG command
    usecallingpres=yes              ; use the caller ID presentation or not
    callingpres=allowed_passed_screen ; set caller ID presentation          by default use default network settings
    disablesms=no                   ; disable of SMS reading from device when received
                                    ;  chan_dongle has currently a bug with SMS reception. When a SMS gets in during a
                                    ;  call chan_dongle might crash. Enable this option to disable sms reception.
                                    ;  default = no
    language=en                     ; set channel default language
    smsaspdu=yes                    ; if 'yes' send SMS in PDU mode, feature implementation incomplete and we strongly recommend say 'yes'
    mindtmfgap=45                   ; minimal interval from end of previews DTMF from begining of next in ms
    mindtmfduration=80              ; minimal DTMF tone duration in ms
    mindtmfinterval=200             ; minimal interval between ends of DTMF of same digits in ms
    callwaiting=auto                ; if 'yes' allow incoming calls waiting; by default use network settings
                                    ; if 'no' waiting calls just ignored
    disable=no                      ; OBSOLETED by initstate: if 'yes' no load this device and just ignore this section
    initstate=start                 ; specified initial state of device, must be one of 'stop' 'start' 'remote'
                                    ;   'remove' same as 'disable=yes'
    exten=+1234567890               ; exten for start incoming calls, only in case of Subscriber Number not available!, also set to CALLERID(ndid)
    dtmf=relax                      ; control of incoming DTMF detection, possible values:
                                    ;   off    - off DTMF tones detection, voice data passed to asterisk unaltered
                                    ;              use this value for gateways or if not use DTMF for AVR or inside dialplan
                                    ;   inband - do DTMF tones detection
                                    ;   relax  - like inband but with relaxdtmf option
                                    ;  default is 'relax' by compatibility reason
    ; dongle required settings
    [dongle0]
    audio=/dev/ttyUSB1              ; tty port for audio connection;        no default value
    data=/dev/ttyUSB2               ; tty port for AT commands;             no default value
    ; or you can omit both audio and data together and use imei=123456789012345 and/or imsi=123456789012345
    ;  imei and imsi must contain exactly 15 digits !
    ;  imei/imsi discovery is available on Linux only
    imei=123456789012345
    imsi=123456789012345
    ; if audio and data set together with imei and/or imsi audio and data has precedence
    ;   you can use both imei and imsi together in this case exact match by imei and imsi required
    

    Статистика

    Время первой команды журнала14:24:31 2014-11-27
    Время последней команды журнала16:00:22 2014-11-27
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %11.88
    Процент синтаксически неверно набранных команд, % 2.97
    Суммарное время работы с терминалом *, час 1.60
    Количество командных строк в единицу времени, команда/мин 1.05
    Частота использования команд
    #23|====================| 20.91%
    _14|============| 12.73%
    ls5|====| 4.55%
    grep5|====| 4.55%
    configure4|===| 3.64%
    autoconf3|==| 2.73%
    make3|==| 2.73%
    cd3|==| 2.73%
    apt-get3|==| 2.73%
    cat3|==| 2.73%
    all3|==| 2.73%
    automake3|==| 2.73%
    vim3|==| 2.73%
    less3|==| 2.73%
    ssh3|==| 2.73%
    exit3|==| 2.73%
    lsusb2|=| 1.82%
    cp2|=| 1.82%
    lsmod2|=| 1.82%
    head2|=| 1.82%
    scp2|=| 1.82%
    tail2|=| 1.82%
    cpall1|| 0.91%
    chmod1|| 0.91%
    ~1|| 0.91%
    svn1|| 0.91%
    aclocal1|| 0.91%
    call.call1|| 0.91%
    modinfo1|| 0.91%
    chown1|| 0.91%
    call-all1|| 0.91%
    history1|| 0.91%
    lspci1|| 0.91%
    exi1|| 0.91%
    bash1|| 0.91%
    apt-cache1|| 0.91%
    ____
    *) Интервалы неактивности длительностью 30 минут и более не учитываются

    Справка

    Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
    1. В журнал автоматически попадают все команды, данные в любом терминале системы.

    2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

    3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
      $ l s-l
      bash: l: command not found
      

    4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
      $ test 5 -lt 4
      Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

    5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
      $ find / -name abc
      find: /home/devi-orig/.gnome2: Keine Berechtigung
      find: /home/devi-orig/.gnome2_private: Keine Berechtigung
      find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung
      find: /home/devi-orig/.metacity: Keine Berechtigung
      find: /home/devi-orig/.inkscape: Keine Berechtigung
      ^C
      

    6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
      # id
      uid=0(root) gid=0(root) Gruppen=0(root)
      

    7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
      $ vi ~/.bashrc
      2a3,5
      >    if [ -f /usr/local/etc/bash_completion ]; then
      >         . /usr/local/etc/bash_completion
      >        fi
      

    8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
      $ patch ~/.bashrc
      В данном случае изменения применяются к файлу ~/.bashrc

    9. Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.

      Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

    10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

    11. Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора

    12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

    13. Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.

    14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

      $ whoami
      
      user
      
      $ #^ Интересно, кто я?
      
      в журнале это будет выглядеть так:
      $ whoami
      
      user
      
      Интересно, кто я?

    15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

      $ whoami
      
      user
      
      $ cat > /dev/null #^ Интересно, кто я?
      
      Программа whoami выводит имя пользователя, под которым 
      мы зарегистрировались в системе.
      -
      Она не может ответить на вопрос о нашем назначении 
      в этом мире.
      
      В журнале это будет выглядеть так:
      $ whoami
      user
      
      Интересно, кто я?
      Программа whoami выводит имя пользователя, под которым
      мы зарегистрировались в системе.

      Она не может ответить на вопрос о нашем назначении
      в этом мире.
      Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

    16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

    17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
    18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
    19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
      1
          2
      3   
          4
      
      Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

    О программе

    LiLaLo (L3) расшифровывается как Live Lab Log.
    Программа разработана для повышения эффективности обучения Unix/Linux-системам.
    (c) Игорь Чубин, 2004-2008

    $Id$