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

Содержание

Журнал

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

/dev/pts/6
13:28:46
#vim /etc/asterisk/extensions.conf
13:30:31
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3989.32027.3257	2014-11-27 14:30:32.667260101 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:31:17.439261045 +0200
@@ -22,7 +22,7 @@
 
 exten => 3,n,GotoIf($["${DB(order/${ORDER})}" = ""]?unknown_order)
 exten => 3,n,Playback(/var/tmp/asterisk/record${DB(order/${ORDER})})
-exten => 3,n,Hangup                                                            |
+exten => 3,n,Hangup
 exten => 3,n(unknown_order),Playback(/var/tmp/asterisk/record10)
 
  
13:31:17
#vim /etc/asterisk/extensions.conf
13:33:38
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3989.23112.21422	2014-11-27 14:33:39.579264032 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:33:59.559264452 +0200
@@ -23,7 +23,7 @@
 exten => 3,n,GotoIf($["${DB(order/${ORDER})}" = ""]?unknown_order)
 exten => 3,n,Playback(/var/tmp/asterisk/record${DB(order/${ORDER})})
 exten => 3,n,Hangup
-exten => 3,n(unknown_order),Playback(/var/tmp/asterisk/record10)
+exten => 3,n(unknown_order),Playback(/var/tmp/asterisk/record08)
 
  
 exten => 4,1,Queue(queue1)
13:34:44
#ls /var/tmp/asterisk/
                  asterisk -rvvv
Asterisk 1.8.13.1~dfsg1-3+deb7u3, Copyright (C) 1999 - 2012 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
  == Parsing '/etc/asterisk/asterisk.conf':   == Found
  == Parsing '/etc/asterisk/extconfig.conf':   == Found
...
    -- Executing [3@menu:4] SayDigits("SIP/1201-00000019", "5") in new stack
    -- <SIP/1201-00000019> Playing 'digits/5.gsm' (language 'ru')
    -- Executing [3@menu:5] GotoIf("SIP/1201-00000019", "0?unknown_order") in new stack
    -- Executing [3@menu:6] Playback("SIP/1201-00000019", "/var/tmp/asterisk/record9") in new stack
    -- <SIP/1201-00000019> Playing '/var/tmp/asterisk/record9.gsm' (language 'ru')
    -- Executing [3@menu:7] Hangup("SIP/1201-00000019", "") in new stack
  == Spawn extension (menu, 3, 7) exited non-zero on 'SIP/1201-00000019'
debian2*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
13:35:48
#ls /var/tmp/asterisk/
exten => s,n,WaitExten(1)
exten => s,n,Background(/var/tmp/asterisk/record02)
exten => s,n,WaitExten(3)
exten => s,n,Background(/var/tmp/asterisk/record03)
exten => s,n,WaitExten(3)
exten => s,n,Background(/var/tmp/asterisk/record04)
exten => s,n,Hangup
exten => 1,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/belki.txt)
exten => 2,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/burunduki.txt)
exten => 3,1,Playback(/var/tmp/asterisk/record05)
...
[menu]
exten => 0,1,Goto(s,start)
exten => i,1,Playback(/var/tmp/asterisk/record06)
exten => i,n,WaitExten(2)
exten => i,n,Goto(s,start)
[internal]
include=>parkedcalls
exten => _81XX,1,Record(/var/tmp/asterisk/record${EXTEN:2}:gsm)
"/etc/asterisk/extensions.conf" 102L, 2644C written
exten => _82XX,1,Playback(/var/tmp/asterisk/record${EXTEN:2})
13:42:02
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3989.28030.6447	2014-11-27 14:42:05.859274678 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:43:40.795276675 +0200
@@ -5,7 +5,7 @@
 exten => s,n,Background(/var/tmp/asterisk/record01)
 exten => s,n,WaitExten(1)
 exten => s,n,Background(/var/tmp/asterisk/record02)
-exten => s,n,WaitExten(3)
+exten => s,n,WaitExten(1)
 exten => s,n,Background(/var/tmp/asterisk/record03)
 exten => s,n,WaitExten(3)
 exten => s,n,Background(/var/tmp/asterisk/record04)
13:47:46
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3989.28336.5106	2014-11-27 14:47:59.275282109 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:48:56.351283309 +0200
@@ -25,7 +25,7 @@
 exten => 3,n,Hangup
 exten => 3,n(unknown_order),Playback(/var/tmp/asterisk/record08)
 
- 
+exten => 4,1,Answer 
 exten => 4,1,Queue(queue1)
  
 exten => 0,1,Goto(s,start)
13:48:56
#vim /etc/asterisk/extensions.conf
13:50:13
#{EXTEN:2})

13:50:38
#~

13:50:39
#мvi /etc/asterisk/queues.conf
;
; A strategy may be specified.  Valid strategies include:
;
; ringall - ring all available channels until one answers (default)
; leastrecent - ring interface which was least recently hung up by this queue
; fewestcalls - ring the one with fewest completed calls from this queue
; random - ring random interface
; rrmemory - round robin with memory, remember where we left off last ring pass
; rrordered - same as rrmemory, except the queue member order from config file
;             is preserved
...
; use agent groups.
;
;member => Agent/@1             ; Any agent in group 1
;member => Agent/:1,1           ; Any agent in group 1, wait for first
                                ; available, but consider with penalty
[queue1]g                                                     537,0-1       Bot
[queue1]
member => SIP/1201
-- INSERT --recording                                         540,1         Bot
"/etc/asterisk/queues.conf" 540L, 23872C written
13:58:11
#vi /etc/asterisk/agente.conf
14:01:14
#~

14:04:31
#~

14:04:32
#vi /etc/asterisk/agents.conf
--- /tmp/l3-saved-3989.30589.25079	2014-11-27 15:04:48.739303335 +0200
+++ /etc/asterisk/agents.conf	2014-11-27 15:06:17.443305199 +0200
@@ -103,3 +103,5 @@
 ;
 ;agent => 1001,4321,Mark Spencer
 ;agent => 1002,4321,Will Meadows
+
+agent => 007,1234,Bond
14:10:54
#/parkcall
exten => s,n,Hangup
exten => 1,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/belki.txt)
exten => 2,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/burunduki.txt)
exten => 3,1,Playback(/var/tmp/asterisk/record05)
exten => 3,n,Read(ORDER)
exten => 3,n,Playback(/var/tmp/asterisk/record07)
exten => 3,n,SayDigits(${ORDER})
exten => 3,n,GotoIf($["${DB(order/${ORDER})}" = ""]?unknown_order)
exten => 3,n,Playback(/var/tmp/asterisk/record${DB(order/${ORDER})})
exten => 3,n,Hangup
...
exten => _83XX,1,VoiceMailMain(12${EXTEN:2}@default)
exten => _801X,1,MeetMe(10${EXTEN:3})
exten => 8300,1,System(touch /tmp/someone-called-8300)
exten => 8301,1,System(sh -c "echo ${CALLERID(num)} > /tmp/someone-called-8301")
exten => 8302,1,System(sudo /etc/init.d/sendmail restart)
exten => 8403,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/belki.txt)
exten => 8404,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/burunduki.txt)
exten => 8405,1,Goto(menu,s,1)
exten => 8407,1,AgentLogin(007)
"/etc/asterisk/extensions.conf" 102L, 2694C written
14:15:20
#asterisk restart
Privilege escalation protection disabled!
See https://wiki.asterisk.org/wiki/x/1gKfAQ for more details.
Asterisk already running on /var/run/asterisk/asterisk.ctl.  Use 'asterisk -r' to connect.
14:19:05
#asterisk -r
Asterisk 1.8.13.1~dfsg1-3+deb7u3, Copyright (C) 1999 - 2012 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.8.13.1~dfsg1-3+deb7u3 currently running on debian2 (pid = 2691)
Verbosity is at least 4
debian2*CLI>
debian2*CLI>
debian2*CLI>
Disconnected from Asterisk server
14:19:56
#/etc/init.d/asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
прошла 41 минута
15:01:35
#дыÐlspci | grep Digium

15:03:02
#all lspci | grep Digium
bash: all: command not found
15:03:39
#ls /var/tmp/asterisk/

15:03:39
#asterisk -rx 'database get order 6'
                  asterisk -rx 'database get order 6'
RANDOM%2+9]" ; done
15:03:39
#vim /etc/asterisk/extensions.conf
15:03:39
#asterisk -rvvv
                  cat > /tmp/call.call
Context: internal
Channel: SIP/1101
Extension: 8405
^C
15:13:11
#chown asterisk:asterisk /tmp/call.call

15:13:22
#cp -p /tmp/call.call /var/spool/asterisk/outgoing/

/dev/pts/9
15:15:46
## сейчас будем обзванивать всех

15:15:57
#vim /usr/local/bin/call-all
--- /dev/null	2014-11-27 12:49:21.542549379 +0200
+++ /usr/local/bin/call-all	2014-11-27 16:18:09.591395871 +0200
@@ -0,0 +1,18 @@
+
+# наша задача перебрать разные каналы
+#и отправить на каждый из них звонок
+
+# сейчас покажу что обозначает констуркция с фигурными скобками
+for CHANNEL in minsk/{1{1,3},2{1,2,3},3{1,2}}
+do
+echo $CHANNEL
+done
+
+exit 0
+
+cat <<EOF
+Context: internal
+Extension: 8405
+Channel: SIP/${CHANNEL}
+EOF
+
15:18:09
#bash /usr/local/bin/call-all
minsk/11
minsk/13
minsk/21
minsk/22
minsk/23
minsk/31
minsk/32
/dev/pts/6
15:18:45
#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
/dev/pts/9
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
--- /tmp/l3-saved-6606.467.31414	2014-11-27 16:19:40.151397775 +0200
+++ /usr/local/bin/call-all	2014-11-27 16:23:04.119402064 +0200
@@ -3,16 +3,32 @@
 #и отправить на каждый из них звонок
 
 # сейчас покажу что обозначает констуркция с фигурными скобками
-for CHANNEL in kiev/{1{1,3},2{1,2,3},3{1,2}}0{1,2}
+for CHANNEL in 1201 1202 kiev/{1{1,3},2{1,2,3},3{1,2}}0{1,2}
 do
-echo $CHANNEL
-done
 
-exit 0
+# каналы перебираются правильно
+# теперь генерируем звонок
+
+# имя файла звонка не должно повторяться
+# иначе мы перезапишем сами себя
+# поэтому делаем случайное имя
+# ${RANDOM} это случайное число в диапазоне от 0 до 65567 (2^16-1)
 
-cat <<EOF
+FILE=/tmp/${RANDOM}${RANDOM}.call
+
+# <<EOF означает что копировать всё до EOF в поток вывода
+cat <<EOF > $FILE
 Context: internal
 Extension: 8405
 Channel: SIP/${CHANNEL}
 EOF
 
+chown asterisk:asterisk $FILE
+mv $FILE /var/spool/asterisk/outgoing/chown asterisk:asterisk $FILE
+
+
+done
+
+exit 0
+
+
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
прошло 18 минут
/dev/pts/10
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: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

/dev/pts/3
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: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