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

Содержание

Журнал

Четверг (03/31/16)

/dev/pts/8
14:04:54
#vim /etc/asterisk/agents.conf
--- /tmp/l3-saved-6090.25595.11136	2016-03-31 15:04:58.424192542 +0300
+++ /etc/asterisk/agents.conf	2016-03-31 15:06:50.032192052 +0300
@@ -40,7 +40,7 @@
 ; configure which DTMF key will end a call. The default is
 ; '*'.
 ;
-;endcall=yes
+;endcall=no
 ;enddtmf=*
 ;
 ; Define wrapuptime.  This is the minimum amount of time when
14:06:50
#vim /etc/asterisk/queues.conf
прошло 40 минут
/dev/pts/8
14:46:57
#vim /tmp/call.call
--- /dev/null	2016-03-31 09:58:48.096381183 +0300
+++ /tmp/call.call	2016-03-31 15:47:54.740181243 +0300
@@ -0,0 +1,3 @@
+Channel:SIP/1301
+Extension:4211
+Context:
14:47:54
#less /etc/asterisk/extensions.conf
14:48:16
#cat /tmp/call.call
Channel:SIP/1301
Extension:4211
Context:local
14:48:17
#chown asterisk:asterisk /tmp/call.call

14:48:29
#cp -p /var/spool/asterisk/outgoing/
cp: missing destination file operand after ‘/var/spool/asterisk/outgoing/’
Try 'cp --help' for more information.
14:54:22
#bash mass-call.sh

14:54:34
#vim mass-call.sh
--- /tmp/l3-saved-6371.14173.30573	2016-03-31 15:55:00.940179373 +0300
+++ mass-call.sh	2016-03-31 15:55:20.664179287 +0300
@@ -1,4 +1,5 @@
-for i in 130{1,2} warsaw/220{1,2} warsaw/1{1,2}0{1,2} kiev/2{3,4}0{1,2} vitebsk/140{1,2}
+#for i in 130{1,2} warsaw/220{1,2} warsaw/1{1,2}0{1,2} kiev/2{3,4}0{1,2} vitebsk/140{1,2}
+for i in kiev/240{1,2}
 do
 
 FILE=/tmp/${RANDOM}.call
14:55:20
#bash mass-call.sh

14:55:21
#ls -l /var/spool/asterisk/outgoing/
total 0
/dev/pts/8
14:57:36
#cat mass-call.sh
#for i in 130{1,2} warsaw/220{1,2} warsaw/1{1,2}0{1,2} kiev/2{3,4}0{1,2} vitebsk/140{1,2}
for i in kiev/240{1,2}
do
FILE=/tmp/${RANDOM}.call
cat <<EOF > $FILE
Channel:SIP/$i
Extension:4211
Context:local
EOF
chown asterisk:asterisk $FILE
mv $FILE /var/spool/asterisk/outgoing/
done
14:58:05
#cp /usr/local/bin/
cp: missing destination file operand after ‘/usr/local/bin/’
Try 'cp --help' for more information.
14:58:34
#cp mass-call.sh/usr/local/bin/
cp: missing destination file operand after ‘mass-call.sh/usr/local/bin/’
Try 'cp --help' for more information.
14:58:38
#cp mass-call.sh /usr/local/bin/

прошло 34 минуты
/dev/pts/8
15:33:16
#ls
mass-call.sh
/dev/pts/8
15:35:00
#less /etc/asterisk/extensions.conf
15:35:32
#ls
mass-call.sh
15:35:33
#vim mass-call.sh
--- /tmp/l3-saved-7167.23610.8024	2016-03-31 16:35:37.276168688 +0300
+++ mass-call.sh	2016-03-31 16:35:54.432168613 +0300
@@ -1,12 +1,12 @@
-#for i in 130{1,2} warsaw/220{1,2} warsaw/1{1,2}0{1,2} kiev/2{3,4}0{1,2} vitebsk/140{1,2}
-for i in kiev/240{1,2}
+for i in 130{1,2} warsaw/220{1,2} warsaw/1{1,2}0{1,2} kiev/2{3,4}0{1,2} vitebsk/140{1,2}
+#for i in kiev/240{1,2}
 do
 
 FILE=/tmp/${RANDOM}.call
 
 cat <<EOF > $FILE
 Channel:SIP/$i
-Extension:4211
+Extension:1399
 Context:local
 EOF
 
15:35:54
#ls -l /usr/local/bin/mass-call.sh
-rw-r--r-- 1 root staff 285 Mar 31 16:34 /usr/local/bin/mass-call.sh
15:37:47
#vim /etc/sudoers
--- /tmp/l3-saved-7167.25065.13526	2016-03-31 16:37:51.676168099 +0300
+++ /etc/sudoers	2016-03-31 16:38:04.076168044 +0300
@@ -26,5 +26,5 @@
 
 #includedir /etc/sudoers.d
 user ALL=(ALL:ALL) ALL
-asterisk ALL=(ALL) NOPASSWD:/usr/bin/touch, /usr/bin/eject
+asterisk ALL=(ALL) NOPASSWD:/usr/bin/touch, /usr/bin/eject, 
  
15:38:04
#vim /etc/sudoers
--- /tmp/l3-saved-7167.21515.18162	2016-03-31 16:38:09.856168019 +0300
+++ /etc/sudoers	2016-03-31 16:38:27.728167941 +0300
@@ -26,5 +26,5 @@
 
 #includedir /etc/sudoers.d
 user ALL=(ALL:ALL) ALL
-asterisk ALL=(ALL) NOPASSWD:/usr/bin/touch, /usr/bin/eject, 
+asterisk ALL=(ALL) NOPASSWD:/usr/bin/touch, /usr/bin/eject, /usr/local/bin/mass-call.sh
  
15:38:27
#vim /usr/local/bin/mass-call.sh
--- /tmp/l3-saved-7167.16425.20521	2016-03-31 16:38:38.304167894 +0300
+++ /usr/local/bin/mass-call.sh	2016-03-31 16:41:52.888167041 +0300
@@ -1,5 +1,16 @@
-for i in 130{1,2} warsaw/220{1,2} warsaw/1{1,2}0{1,2} kiev/2{3,4}0{1,2} vitebsk/140{1,2}
-#for i in kiev/240{1,2}
+#!/bin/sh
+
+grp1="1301 1302 warsaw/2201 warsaw/2202 warsaw/1101 warsaw/1102 warsaw/1201 warsaw/1202 kiev/2301 kiev/2302 kiev/2401 kiev/2402 vitebsk/1401 vitebsk/1402"
+grp2="1301 1302"
+grp3="1301"
+
+case "$1" in
+  1) grp="$grp1" ;;
+  2) grp="$grp2" ;;
+  *) grp="$grp3" ;;
+esac
+
+for i in $grp
 do
 
 FILE=/tmp/${RANDOM}.call
15:41:52
#grep mass-call.sh /etc/sudoers
asterisk ALL=(ALL) NOPASSWD:/usr/bin/touch, /usr/bin/eject, /usr/local/bin/mass-call.sh
15:41:59
#/usr/local/bin/mass-call.sh 2
bash: /usr/local/bin/mass-call.sh: Permission denied
15:44:48
#vim /etc/asterisk/extensions.conf
15:45:16
#asterisk -rvvvv
Asterisk 11.13.1~dfsg-2+b1, Copyright (C) 1999 - 2013 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 11.13.1~dfsg-2+b1 currently running on asterisk3 (pid = 748)
asterisk3*CLI> dialplan reload
Dialplan reloaded.
...
    -- Executing [s@menu:7] WaitExten("SIP/warsaw-000000b6", "2") in new stack
    -- Executing [s@menu:7] WaitExten("SIP/warsaw-000000b7", "2") in new stack
    -- Executing [s@menu:7] WaitExten("SIP/kiev-000000bb", "2") in new stack
    -- Executing [s@menu:7] WaitExten("SIP/kiev-000000ba", "2") in new stack
    -- Timeout on SIP/warsaw-000000b2, continuing...
    -- Executing [s@menu:8] BackGround("SIP/warsaw-000000b2", "/var/tmp/asterisk/message09") in new stack
    -- <SIP/warsaw-000000b2> Playing '/var/tmp/asterisk/message09.gsm' (language 'en')
asterisk3*CLI> quit
Asterisk cleanly ending (0).
Executing last minute cleanups
15:45:59
#vim /etc/asterisk/extensions.conf
15:46:04
#exten => s,n,Hangup
                                           grp3="1301"
  chown asterisk:asterisk $FILE            case "$1" in
  FILE=/tmp/${RANDOM}.call                   1) grp="$grp1" ;;
                                             2) grp="$grp2" ;;
                                             *) grp="$grp3" ;;
                                           esac
  cat <<EOF > $FILE
  --------------------------------------   for i in $grp
  doannel:SIP/$i                           do
  FILE=/tmp/${RANDOM}.call                 FILE=/tmp/${RANDOM}.call
  cat <<EOF > $FILE                        cat <<EOF > $FILE
  Channel:SIP/$i                           Channel:SIP/$i
  EOF                                    + +--  8 lines: Extension:1399---------
+ ~                                        ~
  ~                                        ~
  ~                                        ~
  ~                                        ~
                      9,1            Bot  in/mass-call.sh [+]  0,1           Bot
"/usr/local/bin/mass-call.sh" 27L, 461C written
15:46:33
#rm mass-call.sh

15:50:13
#vimdiff mass-call.sh /usr/local/bin/mass-call.sh
  --------------------------------------|
"/usr/local/bin/mass-call.sh" 27L, 461C
  --------------------------------------|
  --------------------------------------|
  --------------------------------------|
  --------------------------------------|
  --------------------------------------|
  --------------------------------------|
  --------------------------------------|
  --------------------------------------|
  --------------------------------------|
                                        |
15:50:22
#1" in
      1302 warsaw/2201 warsaw/2202 warsaw/1101 warsaw/1102 warsaw/1201 warsaw/122
02 kiev/2301 kiev/2302 kiev/2401 kiev/2402 vitebsk/1401 vitebsk/1402"
      1302 vitebsk/1401 vitebsk/1402"
for i in 2grpin/mass-call.sh" 27L, 461C
do
FILE=/tmp/${RANDOM}.call
cat <<EOF > $FILE
Channel:SIP/$i
Extension:1399
Context:local
"/usr/local/bin/mass-call.sh" 27L, 477C written
15:50:47
#cat /usr/local/bin/mass-call.sh
#!/bin/sh
grp1="1302 warsaw/2201 warsaw/2202 warsaw/1101 warsaw/1102 warsaw/1201 warsaw/1202 kiev/2301 kiev/2302 kiev/2401 kiev/2402 vitebsk/1401 vitebsk/1402"
grp2="1302 vitebsk/1401 vitebsk/1402"
grp3="1302"
case "$1" in
  1) grp="$grp1" ;;
  2) grp="$grp2" ;;
  *) grp="$grp3" ;;
esac
for i in $grp
do
FILE=/tmp/${RANDOM}.call
cat <<EOF > $FILE
Channel:SIP/$i
Extension:1399
Context:local
EOF
chown asterisk:asterisk $FILE
mv $FILE /var/spool/asterisk/outgoing/
done

Пятница (04/01/16)

/dev/pts/8
09:33:26
#cd /usr/src

09:35:09
#lsusb
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 003 Device 003: ID 046d:c05b Logitech, Inc. M-U0004 810-001317 [B110 Optical USB Mouse]
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
09:35:11
#apt-get instal git-core
E: Invalid operation instal
09:35:38
#apt-get install git-core
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  git git-man liberror-perl rsync
Suggested packages:
  git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk
  gitweb git-arch git-cvs git-mediawiki git-svn
The following NEW packages will be installed:
  git git-core git-man liberror-perl rsync
...
Preparing to unpack .../rsync_3.1.1-3_amd64.deb ...
Unpacking rsync (3.1.1-3) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u3) ...
Setting up liberror-perl (0.17-1.1) ...
Setting up git-man (1:2.1.4-2.1+deb8u2) ...
Setting up git (1:2.1.4-2.1+deb8u2) ...
Setting up git-core (1:2.1.4-2.1+deb8u2) ...
Setting up rsync (3.1.1-3) ...
Processing triggers for systemd (215-17+deb8u3) ...
09:36:09
#ls

09:36:10
#ifconfig lo
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1206 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1206 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:668426 (652.7 KiB)  TX bytes:668426 (652.7 KiB)
09:37:51
#ifconfig eth0
eth0      Link encap:Ethernet  HWaddr f4:6d:04:66:98:59
          inet addr:192.168.30.2  Bcast:192.168.30.255  Mask:255.255.255.0
          inet6 addr: fe80::f66d:4ff:fe66:9859/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9138 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8451 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7152388 (6.8 MiB)  TX bytes:2117561 (2.0 MiB)
09:38:23
#lsusb
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 003 Device 003: ID 046d:c05b Logitech, Inc. M-U0004 810-001317 [B110 Optical USB Mouse]
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
09:39:50
#lsusb | grep Hua
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
09:40:01
#tail /var/log/messages
Apr  1 10:28:54 asterisk3 dhcpd: DHCPREQUEST for 192.168.30.102 from 0c:38:3e:07:a4:ac via eth0
Apr  1 10:28:54 asterisk3 dhcpd: DHCPACK on 192.168.30.102 to 0c:38:3e:07:a4:ac via eth0
Apr  1 10:32:28 asterisk3 dhcpd: DHCPREQUEST for 192.168.30.100 from 50:46:5d:30:1c:da (ASUS) via eth0
Apr  1 10:32:28 asterisk3 dhcpd: DHCPACK on 192.168.30.100 to 50:46:5d:30:1c:da (ASUS) via eth0
Apr  1 10:33:55 asterisk3 dhcpd: DHCPREQUEST for 192.168.30.102 from 0c:38:3e:07:a4:ac via eth0
Apr  1 10:33:55 asterisk3 dhcpd: DHCPACK on 192.168.30.102 to 0c:38:3e:07:a4:ac via eth0
Apr  1 10:37:28 asterisk3 dhcpd: DHCPREQUEST for 192.168.30.100 from 50:46:5d:30:1c:da (ASUS) via eth0
Apr  1 10:37:28 asterisk3 dhcpd: DHCPACK on 192.168.30.100 to 50:46:5d:30:1c:da (ASUS) via eth0
Apr  1 10:38:55 asterisk3 dhcpd: DHCPREQUEST for 192.168.30.102 from 0c:38:3e:07:a4:ac via eth0
Apr  1 10:38:55 asterisk3 dhcpd: DHCPACK on 192.168.30.102 to 0c:38:3e:07:a4:ac via eth0
09:40:26
#tail /var/log/daemon.log
Apr  1 10:33:45 asterisk3 systemd[907]: Stopping Paths.
Apr  1 10:33:45 asterisk3 systemd[907]: Stopped target Paths.
Apr  1 10:33:45 asterisk3 systemd[907]: Stopping Timers.
Apr  1 10:33:45 asterisk3 systemd[907]: Stopped target Timers.
Apr  1 10:33:45 asterisk3 systemd[907]: Stopping Sockets.
Apr  1 10:33:45 asterisk3 systemd[907]: Stopped target Sockets.
Apr  1 10:33:45 asterisk3 systemd[907]: Starting Shutdown.
Apr  1 10:33:45 asterisk3 systemd[907]: Reached target Shutdown.
Apr  1 10:33:45 asterisk3 systemd[907]: Starting Exit the Session...
Apr  1 10:33:45 asterisk3 systemd[907]: Received SIGRTMIN+24 from PID 2074 (kill).
09:40:29
#less /var/log/messages
09:40:57
#less /var/log/messages
09:41:40
#ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Apr  1 10:26 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Apr  1 10:26 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Apr  1 10:41 /dev/ttyUSB2
09:41:44
#lsusb | grep usbser

09:42:30
#lsusb | grep usb

09:42:32
#lsmod | grep usb
usb_wwan               17091  1 option
usbserial              36293  6 option,usb_wwan
usb_storage            56215  0
usbhid                 44460  0
hid                   102264  2 hid_generic,usbhid
scsi_mod              191405  5 sg,usb_storage,libata,sd_mod,sr_mod
usbcore               195468  8 uhci_hcd,usb_storage,usbserial,ehci_hcd,ehci_pci,option,usbhid,usb_wwan
usb_common             12440  1 usbcore
09:42:36
#modinfo usb_wwan
filename:       /lib/modules/3.16.0-4-amd64/kernel/drivers/usb/serial/usb_wwan.ko
license:        GPL
description:    USB Driver for GSM modems
author:         Matthias Urlichs <smurf@smurf.noris.de>
depends:        usbcore,usbserial
intree:         Y
vermagic:       3.16.0-4-amd64 SMP mod_unload modversions
09:42:49
## datacard

09:44:22
## dongle

09:44:25
#ls

09:44:44
#apt-get install git-core
Reading package lists... Done
Building dependency tree
Reading state information... Done
git-core is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
09:45:32
#cd /usr/src

09:45:34
#pwd
/usr/src
09:45:44
#cd asterisk-chan-dongle/

09:46:19
## cvs

09:47:13
## subversion (svn)

09:47:26
## bazaar

09:47:42
## mercurial (hg)

09:47:48
## git

09:47:55
## github.com

09:48:15
#apt-get install bazaar
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package bazaar is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'bazaar' has no installation candidate
09:49:57
#apt-get install bzr
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  javascript-common libjs-jquery python-bzrlib python-configobj python-gpgme
  python-httplib2 python-keyring python-launchpadlib python-lazr.restfulclient
  python-lazr.uri python-oauth python-pkg-resources python-secretstorage
  python-simplejson python-six python-wadllib python-zope.interface
Suggested packages:
  bzr-doc bzrtools python-bzrlib.tests apache2 lighttpd httpd
...
Setting up python-keyring (4.0-1) ...
Setting up python-pkg-resources (5.5.1-1) ...
Setting up python-lazr.uri (1.0.3-2) ...
Setting up python-simplejson (3.6.5-1) ...
Setting up python-wadllib (1.3.2-2) ...
Setting up python-zope.interface (4.1.1-3.1) ...
Setting up python-oauth (1.0.1-4) ...
Setting up python-lazr.restfulclient (0.13.3-1) ...
Setting up python-launchpadlib (1.10.2+ds-2) ...
Setting up python-secretstorage (2.1.1-1) ...
09:50:27
#cd /etc/asterisk/

09:50:44
#bzr init
Created a standalone tree (format: 2a)
09:50:53
#bzr add extensions.conf
adding extensions.conf
09:51:06
#bzr add sip.conf
adding sip.conf
09:51:10
#bzr ci -m 'initial checkout'
Committing to: /etc/asterisk/
added extensions.conf
added sip.conf
Committed revision 1.
09:51:17
#vim extensions.conf
--- /tmp/l3-saved-2031.25927.9463	2016-04-01 10:51:23.452478706 +0300
+++ extensions.conf	2016-04-01 10:51:30.184478676 +0300
@@ -5,8 +5,6 @@
 exten => s,n(start),Background(/var/tmp/asterisk/message11)
 exten => 9,1,Goto(s,start)
 exten => 0,1,Goto(menu,s,start)
-exten => 1,1,AGI(/usr/local/bin/asterisk-festival.pl,/tmp/belki.txt)
-exten => 2,1,AGI(/usr/local/bin/asterisk-festival.pl,/tmp/burunduki.txt)
 
 
 [menu]
09:51:30
#bzr st
modified:
  extensions.conf
unknown:
  acl.conf
  adsi.conf
  agents.conf
  alarmreceiver.conf
  alsa.conf
  amd.conf
  app_mysql.conf
...
  skinny.conf
  sla.conf
  smdi.conf
  telcordia-1.adsi
  udptl.conf
  unistim.conf
  users.conf
  voicemail.conf
  vpb.conf
  xmpp.conf
09:51:36
#bzr st | less
09:51:46
#bzr diff extensions.conf
=== modified file 'extensions.conf'
--- extensions.conf     2016-04-01 07:51:16 +0000
+++ extensions.conf     2016-04-01 07:51:30 +0000
@@ -5,8 +5,6 @@
 exten => s,n(start),Background(/var/tmp/asterisk/message11)
 exten => 9,1,Goto(s,start)
 exten => 0,1,Goto(menu,s,start)
-exten => 1,1,AGI(/usr/local/bin/asterisk-festival.pl,/tmp/belki.txt)
-exten => 2,1,AGI(/usr/local/bin/asterisk-festival.pl,/tmp/burunduki.txt)
 [menu]
09:51:50
#bzr revert extensions.conf
 M  extensions.conf
09:52:26
#vim extensions.conf
--- /tmp/l3-saved-2031.24848.31904	2016-04-01 10:52:34.816478393 +0300
+++ extensions.conf	2016-04-01 10:52:48.788478331 +0300
@@ -4,7 +4,10 @@
 exten => s,1,Answer
 exten => s,n(start),Background(/var/tmp/asterisk/message11)
 exten => 9,1,Goto(s,start)
-exten => 0,1,Goto(menu,s,start)
+sdfjklsadf lsafd
+sfg
+
+dgsh/ds hg;exten => 0,1,Goto(menu,s,start)
 exten => 1,1,AGI(/usr/local/bin/asterisk-festival.pl,/tmp/belki.txt)
 exten => 2,1,AGI(/usr/local/bin/asterisk-festival.pl,/tmp/burunduki.txt)
 
@@ -15,21 +18,21 @@
 exten => s,n,Background(/var/tmp/asterisk/message06)
 exten => s,n,WaitExten(2)
 exten => s,n(start),Background(/var/tmp/asterisk/message07)
-exten => s,n,WaitExten(2)
-exten => s,n,Background(/var/tmp/asterisk/message08)
-exten => s,n,WaitExten(2)
+dsfgdsfgsdfgexten => s,n,WaitExten(2)
+exten => s,ndfg,Background(/var/tmp/asterisk/message08)
+exten => s,n,WadsfgitExten(2)
 exten => s,n,Background(/var/tmp/asterisk/message09)
-exten => s,n,Hangup
-
-exten => 1,1,Goto(submenu,s,start)
-exten => 9,1,Goto(s,start)
-exten => 0,1,Hangup
-
-exten => i,1,Playback(/var/tmp/asterisk/message10)
-
-;order status
-exten => 2,1,Read(ORDER,/var/tmp/asterisk/message00)
-exten => 2,n,Playback(/var/tmp/asterisk/message01)
+exten => s,n,Hangupdsfg
+dsfg
+extedsn => 1,1,Goto(submenu,s,start)
+exten fg=> 9,1,Goto(s,start)
+exten =>dsfg 0,1,Hangup
+dsfg
+extedn => i,1,Playback(/var/tmp/asterisk/message10)
+fsg
+;ordsfgder status
+exten =dsf> 2,1,Read(ORDER,/var/tmp/asterisk/message00)
+exten => 2gdsf,gdsfgn,Playback(/var/tmp/asterisk/message01)
 exten => 2,n,SayDigits(${ORDER})
 exten => 2,n,Playback(/var/tmp/asterisk/message0${DB(order/${ORDER})})
 
@@ -53,27 +56,27 @@
 
 [local]
 
-exten => 1399,1,Answer
-exten => 1399,n,AGI(/usr/local/bin/asterisk-festival.pl,Внимание сейчас будет говорить босс)
-exten => 1399,n,ConfBridge(1)
-
-exten => 4211,1,Goto(menu,s,1)
-
-exten => _13XX,1,Macro(call)
-;exten => _13XX,1,dial(SIP/${EXTEN})
-;exten => 4000,1,playback(demo-thanks)
-exten => 4000,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4001,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4002,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4003,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4004,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4005,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-
-exten => 4006,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4007,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4008,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4009,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
-exten => 4010,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+sdfgdsexten => 1399,1,Answer
+exten fg=> 1399,n,AGI(/usr/local/bin/asterisk-festival.pl,Внимание сейчас будет говорить босс)
+exten =>dsfg 1399,n,ConfBridge(1)
+dsfg
+extedsfn => 4211,1,Goto(menu,s,1)
+gds
+extfgen => _13XX,1,Macro(call)
+;extedsfgn => _13XX,1,dial(SIP/${EXTEN})
+;exten =>ds 4000,1,playback(demo-thanks)
+exten => 40fg00,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+exten => 4001dsf,gsd1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+exten => 4002,1,recofgrd(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+exten => 4003,1,recorddsfg(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+exten => 4004,1,record(/vadsgr/tmp/asterisk/message${EXTEN:2}:gsm)
+exten => 4005,1,record(/var/tdfmp/asterisk/message${EXTEN:2}:gsm)
+sg
+exsdten => 4006,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+extefgn => 4007,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+exten dsfg=> 4008,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+exten => 4dsg009,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
+exten => 4010dfg,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
 exten => 4011,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
 exten => 4012,1,record(/var/tmp/asterisk/message${EXTEN:2}:gsm)
 
09:52:48
#bzr diff | vim -
09:53:07
#bzr revert -
bzr: ERROR: Path(s) are not versioned: -
09:53:09
#bzr revert extensions.conf
 M  extensions.conf
09:53:12
#vim extensions.conf
--- /tmp/l3-saved-2031.5483.16655	2016-04-01 10:53:14.420478219 +0300
+++ extensions.conf	2016-04-01 10:53:34.848478129 +0300
@@ -21,9 +21,9 @@
 exten => s,n,Background(/var/tmp/asterisk/message09)
 exten => s,n,Hangup
 
-exten => 1,1,Goto(submenu,s,start)
-exten => 9,1,Goto(s,start)
-exten => 0,1,Hangup
+;exten => 1,1,Goto(submenu,s,start)
+;exten => 9,1,Goto(s,start)
+;exten => 0,1,Hangup
 
 exten => i,1,Playback(/var/tmp/asterisk/message10)
 
09:53:34
#bzr ci -m 'disabled submenu'
Committing to: /etc/asterisk/
modified extensions.conf
Committed revision 2.
09:53:43
#bzr log extensions.conf
------------------------------------------------------------
revno: 2
committer: root <root@asterisk3.unix.sl>
branch nick: asterisk
timestamp: Fri 2016-04-01 10:53:42 +0300
message:
  disabled submenu
------------------------------------------------------------
revno: 1
committer: root <root@asterisk3.unix.sl>
branch nick: asterisk
timestamp: Fri 2016-04-01 10:51:16 +0300
message:
  initial checkout
09:53:53
#ls -l .bzr/
total 24
drwxr-xr-x 3 root root 4096 Apr  1 10:53 branch
-rw-r--r-- 1 root root   35 Apr  1 10:50 branch-format
drwxr-xr-x 2 root root 4096 Apr  1 10:50 branch-lock
drwxr-xr-x 4 root root 4096 Apr  1 10:53 checkout
-rw-r--r-- 1 root root  147 Apr  1 10:50 README
drwxr-xr-x 7 root root 4096 Apr  1 10:53 repository
09:54:19
#ls -ld .bzr/
drwxr-xr-x 6 root root 4096 Apr  1 10:50 .bzr/
09:54:22
#bzr push /tmp/etc-asteris-k-backup
Created new branch.
09:54:54
#cd /tmp/etc-asteris-k-backup

09:54:59
#ls -l
total 12
-rw-r--r-- 1 root root 4280 Apr  1 10:54 extensions.conf
-rw-r--r-- 1 root root  685 Apr  1 10:54 sip.conf
09:55:00
#cd -
/etc/asterisk
09:55:26
#bzr annotate extensions.conf | less
09:56:28
# | exten => 2,1,AGI(/usr/local/bin/asterisk-festival.pl,/tmp/burunduk
------------------------------------------------------------
revno: 2
committer: root <root@asterisk3.unix.sl>
branch nick: asterisk
timestamp: Fri 2016-04-01 10:53:42 +0300
message:
  disabled submenu
------------------------------------------------------------
revno: 1
committer: root <root@asterisk3.unix.sl>
branch nick: asterisk
timestamp: Fri 2016-04-01 10:51:16 +0300
message:
  initial checkout
09:56:30
#cd /usr/src/

09:57:15
#ls
asterisk-chan-dongle
09:57:17
#cd asterisk-chan-dongle/ls
bash: cd: asterisk-chan-dongle/ls: No such file or directory
09:57:28
#cd asterisk-chan-dongle/

09:57:31
#ls
app.c          at_response.h  configure.in   INSTALL       pdiscovery.h
app.h          BUGS           contrib        LICENSE.txt   pdu.c
at_command.c   chan_dongle.c  COPYRIGHT.txt  Makefile.in   pdu.h
at_command.h   chan_dongle.h  cpvt.c         manager.c     README.txt
at_parse.c     channel.c      cpvt.h         manager.h     ringbuffer.c
at_parse.h     channel.h      dc_config.c    memmem.c      ringbuffer.h
at_queue.c     char_conv.c    dc_config.h    memmem.h      single.c
at_queue.h     char_conv.h    etc            mixbuffer.c   stamp-h.in
at_read.c      cli.c          export.h       mixbuffer.h   test
at_read.h      cli.h          helpers.c      mutils.h      TODO.txt
at_response.c  config.h.in    helpers.h      pdiscovery.c  tools
09:57:32
#less INSTALL
09:58:04
#aclocal
bash: aclocal: command not found
09:58:05
#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 m4
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc libtool gettext
The following NEW packages will be installed:
  autoconf automake autotools-dev m4
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
...
Unpacking autotools-dev (20140911.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../automake_1%3a1.14.1-4_all.deb ...
Unpacking automake (1:1.14.1-4) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up m4 (1.4.17-4) ...
Setting up autoconf (2.69-8) ...
Setting up autotools-dev (20140911.1) ...
Setting up automake (1:1.14.1-4) ...
update-alternatives: using /usr/bin/automake-1.14 to provide /usr/bin/automake (automake) in auto mode
09:58:27
#less INSTALL
09:58:29
##apt-get install autoconf

Файлы

  • /tmp/call.call
  • /usr/local/bin/mass-call.sh
  • mass-call.sh
  • /tmp/call.call
    >
    Channel:SIP/1301
    Extension:4211
    Context:local
    
    /usr/local/bin/mass-call.sh
    >
    #!/bin/sh
    grp1="1302 warsaw/2201 warsaw/2202 warsaw/1101 warsaw/1102 warsaw/1201 warsaw/1202 kiev/2301 kiev/2302 kiev/2401 kiev/2402 vitebsk/1401 vitebsk/1402"
    grp2="1302 vitebsk/1401 vitebsk/1402"
    grp3="1302"
    case "$1" in
      1) grp="$grp1" ;;
      2) grp="$grp2" ;;
      *) grp="$grp3" ;;
    esac
    for i in $grp
    do
    FILE=/tmp/${RANDOM}.call
    cat <<EOF > $FILE
    Channel:SIP/$i
    Extension:1399
    Context:local
    EOF
    chown asterisk:asterisk $FILE
    mv $FILE /var/spool/asterisk/outgoing/
    done
    
    mass-call.sh
    >
    #for i in 130{1,2} warsaw/220{1,2} warsaw/1{1,2}0{1,2} kiev/2{3,4}0{1,2} vitebsk/140{1,2}
    for i in kiev/240{1,2}
    do
    FILE=/tmp/${RANDOM}.call
    cat <<EOF > $FILE
    Channel:SIP/$i
    Extension:4211
    Context:local
    EOF
    chown asterisk:asterisk $FILE
    mv $FILE /var/spool/asterisk/outgoing/
    done
    

    Статистика

    Время первой команды журнала14:04:54 2016- 3-31
    Время последней команды журнала09:58:29 2016- 4- 1
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %10.89
    Процент синтаксически неверно набранных команд, % 0.99
    Суммарное время работы с терминалом *, час 0.94
    Количество командных строк в единицу времени, команда/мин 1.80
    Частота использования команд
    bzr15|=============| 13.64%
    vim14|============| 12.73%
    ls12|==========| 10.91%
    cd9|========| 8.18%
    #8|=======| 7.27%
    less8|=======| 7.27%
    apt-get6|=====| 5.45%
    lsusb5|====| 4.55%
    grep5|====| 4.55%
    cp4|===| 3.64%
    cat3|==| 2.73%
    ifconfig2|=| 1.82%
    tail2|=| 1.82%
    bash2|=| 1.82%
    exten2|=| 1.82%
    mass-call.sh1|| 0.91%
    asterisk1|| 0.91%
    burunduk1|| 0.91%
    modinfo1|| 0.91%
    pwd1|| 0.91%
    chown1|| 0.91%
    rm1|| 0.91%
    #apt-get1|| 0.91%
    vimdiff1|| 0.91%
    1"1|| 0.91%
    lsmod1|| 0.91%
    s,n,Hangup1|| 0.91%
    aclocal1|| 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$