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

Содержание

Журнал

Среда (11/26/14)

/dev/pts/4
15:57:47
#cat /tmp/someone-called-8300

15:57:53
#ls -ls /tmp/someone-called-8300
0 -rw-rw---- 1 asterisk asterisk 0 Nov 26 16:57 /tmp/someone-called-8300
16:00:42
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3812.12304.13513	2014-11-26 17:00:44.956555560 +0200
+++ /etc/asterisk/extensions.conf	2014-11-26 17:00:59.404555376 +0200
@@ -11,7 +11,7 @@
 
 exten => 8001,1,VoiceMailMain()
 
-exten => _83XX,1,VoiceMailMain(32${EXTEN:2}@default)
+;exten => _83XX,1,VoiceMailMain(32${EXTEN:2}@default)
 
 
 ; предположим здесь будет голосове меню
@@ -19,9 +19,9 @@
 exten => 8002,n,...
 exten => 8002,n,Set(CHANNEL(language)=ru)
 
-exten => 8500,1,System(touch /tmp/someone-called-8300)
-exten => 8501,1,System(echo ${CALLERID(num)} > /tmp/someone-called-8301)
-exten => 8502,1,System(sudo /etc/init.d/sendmail restart)
+exten => 8300,1,System(touch /tmp/someone-called-8300)
+exten => 8301,1,System(echo ${CALLERID(num)} > /tmp/someone-called-8301)
+exten => 8302,1,System(sudo /etc/init.d/sendmail restart)
 
 ; 8010 => комната 100
 ; 8015 => комната 115
16:01:15
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3812.7751.29351	2014-11-26 17:01:16.796555158 +0200
+++ /etc/asterisk/extensions.conf	2014-11-26 17:01:37.148554901 +0200
@@ -11,7 +11,7 @@
 
 exten => 8001,1,VoiceMailMain()
 
-;exten => _83XX,1,VoiceMailMain(32${EXTEN:2}@default)
+exten => _83XX,1,VoiceMailMain(32${EXTEN:2}@default)
 
 
 ; предположим здесь будет голосове меню
16:03:37
#ls -ls
total 8
4 -rw-r--r-- 1 root root 811 Nov 26 12:03 \
4 -rw-r--r-- 1 root root   6 Nov 26 17:03 ert
16:03:40
#cat ert
dfsdf
16:03:44
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3812.1754.5910	2014-11-26 17:03:51.308553208 +0200
+++ /etc/asterisk/extensions.conf	2014-11-26 17:04:22.536552814 +0200
@@ -20,7 +20,7 @@
 exten => 8002,n,Set(CHANNEL(language)=ru)
 
 exten => 8300,1,System(touch /tmp/someone-called-8300)
-exten => 8301,1,System(echo ${CALLERID(num)} > /tmp/someone-called-8301)
+exten => 8301,1,System(sh -c "echo ${CALLERID(num)} > /tmp/someone-called-8301")
 exten => 8302,1,System(sudo /etc/init.d/sendmail restart)
 
 ; 8010 => комната 100
16:04:39
#ls -ls /tmp/someone-called-830
someone-called-8300  someone-called-8301
16:04:39
#ls -ls /tmp/someone-called-830
someone-called-8300  someone-called-8301
16:04:39
#ls -ls /tmp/someone-called-830
someone-called-8300  someone-called-8301
16:04:39
#ls -ls /tmp/someone-called-8301
4 -rw-rw---- 1 asterisk asterisk 5 Nov 26 17:04 /tmp/someone-called-8301
16:04:54
#vi /etc/sudoers
--- /tmp/l3-saved-3812.26382.28307	2014-11-26 17:09:53.128548640 +0200
+++ /etc/sudoers	2014-11-26 17:10:07.944548453 +0200
@@ -22,6 +22,8 @@
 # Allow members of group sudo to execute any command
 %sudo	ALL=(ALL:ALL) ALL
 
+asterisk ALL=(ALL) NOPASSWD: /etc/init.d/sendmail
+
 # See sudoers(5) for more information on "#include" directives:
 
 #includedir /etc/sudoers.d

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

/dev/pts/2
08:45:02
#screen
/dev/pts/1
08:45:02
#screen
/dev/pts/4
08:45:05
#apt-cache search festival
brltty-flite - Access software for a blind person - Flite speech driver
eflite - Festival-Lite based emacspeak speech server
festival - General multi-lingual speech synthesis system
festival-dev - Development kit for the Festival speech synthesis system
festival-czech - Czech support for Festival speech synthesis system
festival-doc - Documentation for Festival
festival-freebsoft-utils - Festival extensions and utilities
festival-hi - festival text to speech synthesizer for Hindi language
festvox-hi-nsk - Hindi male speaker for festival
festlex-ifd - Italian support for Festival
...
libgnome-speech7 - GNOME text-to-speech library
libperlspeak-perl - Perl Module for text to speech with festival, espeak, cepstral
pidgin-festival - pidgin plugin to hear incoming messages using voice synthesis
screader - Screen reader using software or hardware speech synthesizer
speech-dispatcher-festival - Festival support for Speech Dispatcher
speechd-up - Interface between Speech Dispatcher and SpeakUp
stardict-plugin-festival - International dictionary - Festival TTS plugin
plasma-widget-translatoid - translation widget for KDE Plasma
writetype - application designed to help students write more easily
yasr - General-purpose console screen reader
08:45:07
#apt-get install festival festvox-ru
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  alsa-base alsa-utils esound-common festlex-cmu festlex-poslex festvox-kallpc16k
  libaudiofile1 libesd0 libestools2.1
Suggested packages:
  alsa-oss oss-compat pidgin-festival festival-freebsoft-utils pulseaudio-esound-compat
The following NEW packages will be installed:
  alsa-base alsa-utils esound-common festival festlex-cmu festlex-poslex festvox-kallpc16k
...
Setting up esound-common (0.2.41-10) ...
Setting up libesd0:amd64 (0.2.41-10+b1) ...
Setting up libestools2.1:amd64 (1:2.1~release-5) ...
Setting up alsa-utils (1.0.25-4) ...
Setting up festival (1:2.1~release-5.1) ...
Processing triggers for sgml-base ...
Setting up festvox-ru (0.5-5) ...
Setting up festlex-cmu (1.4.0-6) ...
Setting up festlex-poslex (1.4.0-5) ...
Setting up festvox-kallpc16k (1.4.0-5) ...
08:48:31
#vi text.ru
--- /dev/null	2014-11-27 09:27:30.757697914 +0200
+++ text.ru	2014-11-27 09:49:35.954390902 +0200
@@ -0,0 +1,3 @@
+BGP ( протокол граничного шлюза) — основной протокол динамической маршрутизации в Интернете.
+
+Протокол BGP предназначен для обмена информацией о достижимости подсетей между автономными системами (АС), то есть группами маршрутизаторов под единым техническим управлением, использующими протокол внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляет исходя из правил, принятых в сети.
08:49:36
#vi text.en
--- /dev/null	2014-11-27 09:27:30.757697914 +0200
+++ text.en	2014-11-27 09:50:02.514390072 +0200
@@ -0,0 +1,3 @@
+Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routing and reachability information between autonomous systems (AS) on the Internet.[1] The protocol is often classified as a path vector protocol, but is sometimes also classed as a distance-vector routing protocol. The Border Gateway Protocol makes routing decisions based on paths, network policies or rule-sets configured by a network administrator, and is involved in making core routing decisions.
+
+BGP may be used for routing within an AS. In this application it is referred to as Interior Border Gateway Protocol, Internal BGP or iBGP. In contrast, the Internet application of the protocol may be referred to as Exterior Border Gateway Protocol, External BGP or EBGP.
08:50:02
#vi text.ru
--- /tmp/l3-saved-3787.6271.26539	2014-11-27 09:50:05.174389987 +0200
+++ text.ru	2014-11-27 09:50:44.770388749 +0200
@@ -1,3 +1,3 @@
-BGP ( протокол граничного шлюза) — основной протокол динамической маршрутизации в Интернете.
+Биджипи ( протокол граничного шлюза) — основной протокол динамической маршрутизации в Интернете.
 
-Протокол BGP предназначен для обмена информацией о достижимости подсетей между автономными системами (АС), то есть группами маршрутизаторов под единым техническим управлением, использующими протокол внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляет исходя из правил, принятых в сети.
+Протокол Биджипи предназначен для обмена информацией о достижимости подсетей между автономными системами (АС), то есть группами маршрутизаторов под единым техническим управлением, использующими протокол внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляет исходя из правил, принятых в сети.
08:50:44
#vi text.en
--- /tmp/l3-saved-3787.7603.23488	2014-11-27 09:51:11.814387903 +0200
+++ text.en	2014-11-27 09:51:18.642387684 +0200
@@ -1,3 +1 @@
 Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routing and reachability information between autonomous systems (AS) on the Internet.[1] The protocol is often classified as a path vector protocol, but is sometimes also classed as a distance-vector routing protocol. The Border Gateway Protocol makes routing decisions based on paths, network policies or rule-sets configured by a network administrator, and is involved in making core routing decisions.
-
-BGP may be used for routing within an AS. In this application it is referred to as Interior Border Gateway Protocol, Internal BGP or iBGP. In contrast, the Internet application of the protocol may be referred to as Exterior Border Gateway Protocol, External BGP or EBGP.
08:51:18
#cat /var/tmp/tex | text2wave > /tmp/hello-en.wav^C

08:51:49
#ls
\  ert  text.en  text.ru
08:51:54
#mv text.en /var/tmp/text-en.txt

08:52:19
#mv text.ru /var/tmp/text-ru.txt

08:52:45
#play /tmp/text-en.wav
play WARN alsa: can't encode 0-bit Unknown or not applicable
/tmp/text-en.wav:
 File Size: 1.13M     Bit Rate: 256k
  Encoding: Signed PCM
  Channels: 1 @ 16-bit
Samplerate: 16000Hz
Replaygain: off
  Duration: 00:00:35.25
In:100%  00:00:35.25 [00:00:00.00] Out:564k  [      |      ]        Clip:0
Done.
08:53:33
#play /tmp/text-en.wav
play WARN alsa: can't encode 0-bit Unknown or not applicable
/tmp/text-en.wav:
 File Size: 1.13M     Bit Rate: 256k
  Encoding: Signed PCM
  Channels: 1 @ 16-bit
Samplerate: 16000Hz
Replaygain: off
  Duration: 00:00:35.25
In:100%  00:00:35.25 [00:00:00.00] Out:564k  [      |      ]        Clip:0
Done.
08:57:49
#play /tmp/text-en.wav
Протокол Биджипи предназначен для обмена информацией о достижимости подсетей между автономными с
истÐи, то есть груп¿Ð°Ð¼Ð¸ маршрутизаторов под единым техническим управлением, использующими про ‰Ð¸Ð¼
токол внутридоменÐой маршрутизации для определения маршрутов внутри себя и протокол междоменÐой
маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация вк
лючает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршруто
в осуществляет исходя из пÑ
~
~
~
~
...
~
~
~
~
~
~
~
~
~
"/var/tmp/text-ru.txt" 3L, 1114C written
08:58:26
#vi /var/tmp/text-ru.txt
08:58:26
#play /tmp/text-en.wav
                                 ru.wav
play WARN alsa: can't encode 0-bit Unknown or not applicable
/tmp/text-ru.wav:
 File Size: 1.49M     Bit Rate: 256k
  Encoding: Signed PCM
  Channels: 1 @ 16-bit
Samplerate: 16000Hz
Replaygain: off
  Duration: 00:00:46.54
In:100%  00:00:46.54 [00:00:00.00] Out:745k  [      |      ] Hd:3.8 Clip:0
Done.
08:59:22
#play /tmp/text-ru.wav
play WARN alsa: can't encode 0-bit Unknown or not applicable
/tmp/text-ru.wav:
 File Size: 1.49M     Bit Rate: 256k
  Encoding: Signed PCM
  Channels: 1 @ 16-bit
Samplerate: 16000Hz
Replaygain: off
  Duration: 00:00:46.54
In:100%  00:00:46.54 [00:00:00.00] Out:745k  [      |      ] Hd:3.8 Clip:0
Done.
09:02:55
#play /tmp/burunduki.wav
play WARN alsa: can't encode 0-bit Unknown or not applicable
/tmp/burunduki.wav:
 File Size: 10.8M     Bit Rate: 256k
  Encoding: Signed PCM
  Channels: 1 @ 16-bit
Samplerate: 16000Hz
Replaygain: off
  Duration: 00:05:36.46
In:4.41% 00:00:14.85 [00:05:21.62] Out:238k  [ -====|====- ] Hd:3.6 Clip:0
Aborted.
09:03:30
#apt-get install libasterisk-agi-perl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  libasterisk-agi-perl
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 42.2 kB of archives.
After this operation, 160 kB of additional disk space will be used.
Get:1 http://192.168.12.254/debian/ wheezy/main libasterisk-agi-perl all 1.01-2 [42.2 kB]
Fetched 42.2 kB in 0s (1,496 kB/s)
Selecting previously unselected package libasterisk-agi-perl.
(Reading database ... 144313 files and directories currently installed.)
Unpacking libasterisk-agi-perl (from .../libasterisk-agi-perl_1.01-2_all.deb) ...
Processing triggers for man-db ...
Setting up libasterisk-agi-perl (1.01-2) ...
09:08:27
#mkdir /var/lib/asterisk/sounds/tts

09:18:00
#cat /usr/local/bin/asterisk-festival.pl
#!/usr/bin/perl
use Asterisk::AGI;
use File::Basename;
use Digest::MD5 qw(md5_hex);
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
my $f = $ARGV[0];
my $text = "@ARGV";
if (open(F, "$f")) {
  local $/;
...
unless (-f $wavefile) {
 open(fileOUT, ">$sounddir"."/say-text-$hash.txt");
 print fileOUT "$text";
 close(fileOUT);
 my $execf="text2wave -eval '(voice_msu_ru_nsh_clunits)' $sounddir/say-text-$hash.txt -F 8000 -o $wavefile";
 system($execf);
 unlink($sounddir."/say-text-$hash.txt");
}
$wavefile =~ s/.wav$//;
$AGI->exec('Playback', $wavefile);
09:20:10
#/usr/local/bin/asterisk-festival.pl Добрый вечер
EXEC Playback "/var/lib/asterisk/sounds/tts/tts-e018c01dc67ef7dcd591446405358f64"
^C
09:21:34
#vi
09:22:08
#[ ]
asterisk/      belki.txt      burunduki.txt  text-en.txt    text-ru.txt
09:22:08
#ls -ls /var/tmp/
total 28
4 drwxr-xr-x 2 asterisk asterisk 4096 Nov 25 12:07 asterisk
8 -rw-r--r-- 1 root     root     7077 Nov 27 10:00 belki.txt
8 -rw-r--r-- 1 root     root     8155 Nov 27 10:00 burunduki.txt
4 -rw-r--r-- 1 root     root      500 Nov 27 09:51 text-en.txt
4 -rw-r--r-- 1 root     root     1114 Nov 27 09:58 text-ru.txt
09:22:15
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.24137.11797	2014-11-27 10:22:17.062329502 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 10:24:44.402324889 +0200
@@ -30,6 +30,11 @@
 
 include => parkedcalls
 
+
+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)
+
+
 [local]
 
 exten => _3291,1,NoOp(Conferences for external users)
09:24:44
#play /tmp/burunduki.wav

09:24:44
#play /tmp/text-ru.wav

09:24:44
#vi /var/tmp/text-ru.txt
09:24:44
#play /tmp/text-en.wav
                  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
...
    -- merging incls/swits/igpats from old(ael-dundi-e164-canonical) to new(ael-dundi-e164-canonical) context, registrar = pbx_config
    -- Time to scan old dialplan and merge leftovers back into the new: 0.000881 sec
    -- Time to restore hints and swap in new dialplan: 0.000003 sec
    -- Time to delete the old dialplan: 0.000048 sec
    -- Total time merge_contexts_delete: 0.000932 sec
  == Using SIP RTP CoS mark 5
[Nov 27 10:25:37] NOTICE[2567]: chan_sip.c:22753 handle_request_invite: Call from '3201' (192.168.80.100:5060) to extension '8402' rejected because extension not found in context 'gr1'.
debian8*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
09:27:59
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.28669.30979	2014-11-27 10:28:01.222318724 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 10:29:13.266316471 +0200
@@ -11,7 +11,7 @@
 
 exten => 8001,1,VoiceMailMain()
 
-exten => _83XX,1,VoiceMailMain(32${EXTEN:2}@default)
+exten => _8309,1,VoiceMailMain(32${EXTEN:2}@default)
 
 
 ; предположим здесь будет голосове меню
@@ -31,8 +31,8 @@
 include => parkedcalls
 
 
-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 => 8303,1,AGI(/usr/local/bin/asterisk-festival.pl /var/tmp/belki.txt)
+exten => 8304,1,AGI(/usr/local/bin/asterisk-festival.pl /var/tmp/burunduki.txt)
 
 
 [local]
@@ -67,8 +67,6 @@
 include => national
 include => international
 
-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)
 
 
 [gr2]
/dev/pts/6
09:28:05
#screen -x
/dev/pts/4
09:29:38
#ls -ls /var/tmp/
total 28
4 drwxr-xr-x 2 asterisk asterisk 4096 Nov 25 12:07 asterisk
8 -rw-r--r-- 1 root     root     7077 Nov 27 10:00 belki.txt
8 -rw-r--r-- 1 root     root     8155 Nov 27 10:00 burunduki.txt
4 -rw-r--r-- 1 root     root      500 Nov 27 09:51 text-en.txt
4 -rw-r--r-- 1 root     root     1114 Nov 27 09:58 text-ru.txt
09:29:48
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.24451.14994	2014-11-27 10:29:59.330315026 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 10:30:24.482314239 +0200
@@ -31,8 +31,8 @@
 include => parkedcalls
 
 
-exten => 8303,1,AGI(/usr/local/bin/asterisk-festival.pl /var/tmp/belki.txt)
-exten => 8304,1,AGI(/usr/local/bin/asterisk-festival.pl /var/tmp/burunduki.txt)
+exten => 8303,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/belki.txt)
+exten => 8304,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/burunduki.txt)
 
 
 [local]
09:31:29
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.28248.2323	2014-11-27 10:31:30.118312184 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 10:31:37.506311955 +0200
@@ -31,8 +31,8 @@
 include => parkedcalls
 
 
-exten => 8303,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/belki.txt)
-exten => 8304,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/burunduki.txt)
+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)
 
 
 [local]
09:31:52
#chown asterisk:asterisk /var/lib/asterisk/sounds/tts/

прошло 49 минут
/dev/pts/8
10:21:09
#alsamixer
┌────────────────────────────────────────── AlsaMixer v1.0.25 ──────────────────────────────────────────┐
│ Card: PulseAudio                                                              F1:  Help               │
│ Chip: PulseAudio                                                              F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All                                      F6:  Select sound card  │
│ Item: Master                                                                  Esc: Exit               │
│                                                                                                       │
│                                                                                                       │
│                                                 ┌──┐                                                  │
│                                                 │▒▒│                                                  │
│                                                 │▒▒│                                                  │
...
│                                                 │▒▒│                                                  │
│                                                 │▒▒│                                                  │
│                                                 ├──┤                                                  │
│                                                 │OO│                                                  │
│                                                 └──┘                                                  │
│                                               144<>144                                                │
│                                              < Master >                                               │
│                                                                                                       │
│                                                                                                      ┠‚”‚
└──────────────────────────────────────────────────────────────────────────────────────────────────────â”â”─
прошло 10 минут
/dev/pts/4
10:31:21
#xrandr
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192
VGA1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
   1680x1050      60.0*+
   1280x1024      75.0     60.0
   1440x900       75.0     59.9
   1280x960       60.0
   1280x800       59.8
   1152x864       75.0
   1152x720       60.0
   1024x768       75.1     60.0
   832x624        74.6
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
10:40:56
#ls -ls /var/tmp/asterisk/
total 0
10:41:07
#ls -ls /var/tmp/asterisk/
total 0
10:41:17
#ls -ls /var/tmp/asterisk/
total 88
 8 -rw-rw---- 1 asterisk asterisk  6996 Nov 27 11:43 record01.gsm
28 -rw-rw---- 1 asterisk asterisk 25542 Nov 27 11:45 record02.gsm
 4 -rw-rw---- 1 asterisk asterisk  3564 Nov 27 11:46 record03.gsm
 8 -rw-rw---- 1 asterisk asterisk  5115 Nov 27 11:47 record04.gsm
 8 -rw-rw---- 1 asterisk asterisk  6237 Nov 27 11:47 record05.gsm
 4 -rw-rw---- 1 asterisk asterisk  3201 Nov 27 11:47 record06.gsm
 4 -rw-rw---- 1 asterisk asterisk  2772 Nov 27 11:48 record07.gsm
 4 -rw-rw---- 1 asterisk asterisk  1848 Nov 27 11:48 record08.gsm
 4 -rw-rw---- 1 asterisk asterisk  2640 Nov 27 11:48 record09.gsm
 4 -rw-rw---- 1 asterisk asterisk  2079 Nov 27 11:48 record10.gsm
12 -rw-rw---- 1 asterisk asterisk 11220 Nov 27 11:50 record11.gsm
прошло 27 минут
11:09:10
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.29927.31493	2014-11-27 12:09:15.530128542 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 12:21:32.802105459 +0200
@@ -2,6 +2,15 @@
 
 ;default context
 
+[submenu]
+
+exten => s,1,Background(/var/tmp/asterisk/record11)
+
+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 => 0,1,Goto(menu,1,start)
+
 [menu]
 
 
@@ -15,16 +24,14 @@
 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)
-exten => 3,n,Read(ORDER)
-exten => 3,1,Playback(/var/tmp/asterisk/record07)
-exten => 3,n,SayDigits(${ORDER})
-exten => 3,1,Playback(/var/tmp/asterisk/record10)
+exten => 1,1,Goto(submenu,1,1)
+exten => 2,1,Playback(/var/tmp/asterisk/record05)
+exten => 2,n,Read(ORDER)
+exten => 2,1,Playback(/var/tmp/asterisk/record07)
+exten => 2,n,SayDigits(${ORDER})
+exten => 2,1,Playback(/var/tmp/asterisk/record10)
 
-exten => 4,1,Queue(queue1)
+exten => 3,1,Queue(queue1)
 
 exten => 0,1,Goto(s,start)
 
прошло 16 минут
11:25:15
#vi /etc/asterisk/extensions.conf
11:25:58
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.20277.10224	2014-11-27 12:25:59.414097109 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 12:26:25.762096287 +0200
@@ -26,7 +26,7 @@
 exten => s,n,Background(/var/tmp/asterisk/record04)
 exten => s,n,Hangup
 
-exten => 1,1,Goto(submenu,1,1)
+exten => 1,1,Goto(submenu,s,1)
 exten => 2,1,Playback(/var/tmp/asterisk/record05)
 exten => 2,n,Read(ORDER)
 exten => 2,1,Playback(/var/tmp/asterisk/record07)
11:28:28
#vi /etc/asterisk/extensions.conf
прошло 77 минут
12:45:33
#ls /var/run/asterisk/a
alt.asterisk.canary.tweet.tweet.tweet  asterisk.pid
asterisk.ctl
12:45:33
#ls /var/run/asterisk/a
alt.asterisk.canary.tweet.tweet.tweet  asterisk.pid
asterisk.ctl
12:45:33
#ls /var/spool/asterisk/
dictate/   meetme/    monitor/   outgoing/  system/    tmp/       voicemail/
12:45:33
#ls /var/lib/asterisk/
astdb      moh/       sounds/    sqlite.db
12:45:33
#ls /var/lib/asterisk/astdb
/var/lib/asterisk/astdb
12:46:13
#file /var/lib/asterisk/astdb
/var/lib/asterisk/astdb: Berkeley DB 1.85/1.86 (Btree, version 3, native byte-order)
12:46:21
#cat /var/lib/asterisk/astdb

12:46:29
#,

12:48:30
#asterisk -rx "database order 1 9Ð"
No such command 'database order 1 9' (type 'core show help database order 1' for other possible commands)
12:48:34
#asterisk -rx "database put order 1 9"
Updated database successfully
12:48:48
#asterisk -rx "database put order 2 10"
Updated database successfully
12:50:34
#asterisk -rx "database get order 9"
Value: 10
12:50:37
#asterisk -rx "database get order 12"
Value: 10
12:50:39
#asterisk -rx "database get order 11"
Value: 9
/dev/pts/10
12:56:58
#screen -x
/dev/pts/4
12:58:15
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.20351.23495	2014-11-27 13:58:16.257923754 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 13:58:44.733922864 +0200
@@ -27,7 +27,7 @@
 exten => s,n,Hangup
 
 exten => 1,1,Goto(submenu,s,1)
-exten => 2,n,Playback(/var/tmp/asterisk/record05)
+exten => 2,1,Playback(/var/tmp/asterisk/record05)
 exten => 2,n,Read(ORDER)
 exten => 2,n,Playback(/var/tmp/asterisk/record07)
 exten => 2,n,SayDigits(${ORDER})
/dev/pts/10
12:58:37
#screen -x
/dev/pts/4
13:05:25
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.22598.6420	2014-11-27 14:05:27.069910264 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:12:18.005897400 +0200
@@ -31,9 +31,11 @@
 exten => 2,n,Read(ORDER)
 exten => 2,n,Playback(/var/tmp/asterisk/record07)
 exten => 2,n,SayDigits(${ORDER})
-;exten => 2,n,Playback(/var/tmp/asterisk/record10)
-exten => 2,n,Playback(/var/tmp/asterisk/record${DB(order/${ORDER})})
 
+exten => 2,n,GotoIf($[${DB(order/${ORDER})} = ""]?unknown_order)
+exten => 2,n,Playback(/var/tmp/asterisk/record${DB(order/${ORDER})})
+exten => 2,n,Hangup
+exten => 2,n(unknown_order),Playback(/var/tmp/asterisk/record08)
 
 
 
13:12:57
#mv /var/tmp/asterisk/record09.gsm /var/tmp/asterisk/record9.gsm

13:14:39
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.5358.16301	2014-11-27 14:14:40.969892924 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:16:11.589890084 +0200
@@ -32,7 +32,7 @@
 exten => 2,n,Playback(/var/tmp/asterisk/record07)
 exten => 2,n,SayDigits(${ORDER})
 
-exten => 2,n,GotoIf($[${DB(order/${ORDER})} = ""]?unknown_order)
+exten => 2,n,GotoIf($["${DB(order/${ORDER})}" = ""]?unknown_order)
 exten => 2,n,Playback(/var/tmp/asterisk/record${DB(order/${ORDER})})
 exten => 2,n,Hangup
 exten => 2,n(unknown_order),Playback(/var/tmp/asterisk/record08)
13:20:42
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.13201.14952	2014-11-27 14:21:08.617880787 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:21:56.625879281 +0200
@@ -36,9 +36,10 @@
 exten => 2,n,Playback(/var/tmp/asterisk/record${DB(order/${ORDER})})
 exten => 2,n(unknown_order),Playback(/var/tmp/asterisk/record08)
 exten => 2,n,Background(/var/tmp/asterisk/record12)
+exten => 2,n,WaitExten(3)
 
 
-exten => 3,1,Queue(queue1)
+exte => 3,1,Queue(queue1)
 
 exten => 0,1,Goto(s,start)
 
прошло 27 минут
13:48:29
#vi /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3787.15617.11570	2014-11-27 14:48:40.825829056 +0200
+++ /etc/asterisk/extensions.conf	2014-11-27 14:50:00.373826565 +0200
@@ -15,7 +15,6 @@
 
 [menu]
 
-
 exten => s,1,Answer
 exten => s,n,Background(/var/tmp/asterisk/record01)
 exten => s,n,WaitExten(1)
@@ -38,8 +37,10 @@
 exten => 2,n,Background(/var/tmp/asterisk/record12)
 exten => 2,n,WaitExten(3)
 
+exten => 3,1,Answer
+exten => 3,n,Queue(queue1)
+
 
-exte => 3,1,Queue(queue1)
 
 exten => 0,1,Goto(s,start)
 
13:50:00
#vi /etc/asterisk/queue
13:50:00
#vi /etc/asterisk/queues.conf
--- /tmp/l3-saved-3787.340.28072	2014-11-27 14:50:15.181826100 +0200
+++ /etc/asterisk/queues.conf	2014-11-27 14:55:11.077816837 +0200
@@ -535,3 +535,6 @@
 ;member => Agent/:1,1		; Any agent in group 1, wait for first
                                 ; available, but consider with penalty
 
+[queue1]
+
+member => SIP/3201
13:55:51
#vi /etc/asterisk/queues.conf
--- /tmp/l3-saved-3787.3410.15339	2014-11-27 14:55:52.921815525 +0200
+++ /etc/asterisk/queues.conf	2014-11-27 14:56:01.733815251 +0200
@@ -537,4 +537,4 @@
 
 [queue1]
 
-member => SIP/3201
+member => SIP/3202
14:01:47
#vi /etc/asterisk/a
14:01:47
#vi /etc/asterisk/a
14:01:47
#vi /etc/asterisk/agents.conf
--- /tmp/l3-saved-3787.29328.5745	2014-11-27 15:02:53.029802372 +0200
+++ /etc/asterisk/agents.conf	2014-11-27 15:03:44.097800773 +0200
@@ -103,3 +103,6 @@
 ;
 ;agent => 1001,4321,Mark Spencer
 ;agent => 1002,4321,Will Meadows
+
+
+agent => 007,1234,James Bond
14:09:34
#vi /etc/asterisk/agents.conf
14:10:28
#/etc/init.d/asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
14:10:53
#vi /etc/asterisk/extensions.conf\
14:10:54
#vi /etc/asterisk/extensions.conf
14:12:00
#vi /etc/asterisk/extensions.conf
14:12:10
#[menu]

14:14:12
#vi /etc/asterisk/extensions.conf
14:16:21
#vi /etc/asterisk/queues.conf
прошло 16 минут
14:32:44
#scp /etc/asterisk/extensions
extensions.ael          extensions.conf.bak     extensions_minivm.conf
extensions.conf         extensions.lua
14:32:44
#scp /etc/asterisk/extensions.
extensions.ael       extensions.conf      extensions.conf.bak  extensions.lua
14:32:44
#scp /etc/asterisk/extensions.conf root@192.168.30.1://etc/asterisk/natasha_exten
The authenticity of host '192.168.30.1 (192.168.30.1)' can't be established.
ECDSA key fingerprint is 4b:d3:d6:28:96:88:a7:38:49:b3:5e:1a:9b:82:10:ff.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.30.1' (ECDSA) to the list of known hosts.
root@192.168.30.1's password:
extensions.conf                                                               100% 3386     3.3KB/s   00:00
прошло 22 минуты
14:55:17
#member => Agent/007
[menu]
exten => s,1,Answer
exten => s,n,Background(/var/tmp/asterisk/record01)
exten => s,n,WaitExten(1)
exten => s,n(start),Background(/var/tmp/asterisk/record02)
exten => s,n,WaitExten(3)
exten => s,n,Background(/var/tmp/asterisk/record03)
exten => s,n,WaitExten(3).conf" 142L, 3386C
exten => s,n,Background(/var/tmp/asterisk/record04)
exten => s,n,Hangup
...
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)
[local]
[local]
exten => _3291,1,NoOp(Conferences for external users)
exten => _3291,n,MeetMe(10${EXTEN:3})
exten => 3292,1,Dial(SIP/3201&SIP/3202)
 сначала создаём имя файла:
                                                                                              98,1          54%
15:03:14
#grep menu /etc/asterisk/extensions.conf
[submenu]
exten => 0,1,Goto(menu,1,start)
[menu]
exten => 1,1,Goto(submenu,s,1)
exten => 8405,1,Goto(menu,s,1)
15:11:29
#cat > /tmp/call.call
^C
15:11:43
#cat > /tmp/call.call
^C

Файлы

  • /tmp/someone-called-8300
  • /usr/local/bin/asterisk-festival.pl
  • /var/lib/asterisk/astdb
  • ert
  • /tmp/someone-called-8300
    >
    /usr/local/bin/asterisk-festival.pl
    >
    #!/usr/bin/perl
    use Asterisk::AGI;
    use File::Basename;
    use Digest::MD5 qw(md5_hex);
    $AGI = new Asterisk::AGI;
    my %input = $AGI->ReadParse();
    my $f = $ARGV[0];
    my $text = "@ARGV";
    if (open(F, "$f")) {
      local $/;
      $text = <F>;
    }
    my $hash = md5_hex($text);
    my $sounddir = "/var/lib/asterisk/sounds/tts";
    my $wavefile = "$sounddir/"."tts-$hash.wav";
    unless (-f $wavefile) {
     open(fileOUT, ">$sounddir"."/say-text-$hash.txt");
     print fileOUT "$text";
     close(fileOUT);
     my $execf="text2wave -eval '(voice_msu_ru_nsh_clunits)' $sounddir/say-text-$hash.txt -F 8000 -o $wavefile";
     system($execf);
     unlink($sounddir."/say-text-$hash.txt");
    }
    $wavefile =~ s/.wav$//;
    $AGI->exec('Playback', $wavefile);
    
    /var/lib/asterisk/astdb
    >
    ert
    >
    dfsdf
    

    Статистика

    Время первой команды журнала15:57:47 2014-11-26
    Время последней команды журнала15:11:43 2014-11-27
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, % 1.98
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 4.46
    Количество командных строк в единицу времени, команда/мин 0.38
    Частота использования команд
    vi36|=================================| 33.96%
    ls17|================| 16.04%
    play9|========| 8.49%
    cat7|======| 6.60%
    asterisk6|=====| 5.66%
    screen5|====| 4.72%
    scp3|==| 2.83%
    mv3|==| 2.83%
    call.call2|=| 1.89%
    apt-get2|=| 1.89%
    xrandr1|| 0.94%
    mkdir1|| 0.94%
    hello-en.wav^C1|| 0.94%
    chown1|| 0.94%
    /etc/init.d/asterisk1|| 0.94%
    member1|| 0.94%
    alsamixer1|| 0.94%
    [1|| 0.94%
    grep1|| 0.94%
    0071|| 0.94%
    ,1|| 0.94%
    file1|| 0.94%
    asterisk-festival.pl1|| 0.94%
    text2wave1|| 0.94%
    apt-cache1|| 0.94%
    [menu]1|| 0.94%
    ____
    *) Интервалы неактивности длительностью 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$