/l3/users/2014-11-nt-voip/nt-voip/root :1 :2 :3 :4 :5 :6 :7 :8 :9 :10 :11 :12 :13 :14 :15 :16 |
|
#;comebacktoorigin = yes ; Setting this option configures the behavior of call parking when the
; испорчу файл но он будет выглядеть как будто так и надо ; типичная ошибка ; у вас сейчас здесь одна строка а выглядит как две ; ещё может быть линия из скрина как я нарисовал ; как бороться? ; включаете number в vim: ; :set number ; и всё сразу же видно [default] ; конекст default теперь пуст ... ; exten => 8002,1,Answer ; exten => 8002,n,... ; exten => 8002,n,Set(CHANNEL(language)=ru) ; exten => 8002,n,... ; 8010 => комната 100 ; 8015 => комната 115 ; так 10 разных комнат ; 10 это для примера exten => _801X,1,MeetMe(10${EXTEN:3}) [local] |
#vim /etc/asterisk/features.conf
|
#[ ]
3: nclude => parkedcalls 4: include => parkedcalls 6: include => parkedcalls 7: include => parkedcalls 8: include => parkedcalls 8: include => parkedcalls |
#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 Connected to Asterisk 1.8.13.1~dfsg1-3+deb7u3 currently running on debian0 (pid = 15667) ... Call parking (Parking lot: default) ------------ Parking extension : 700 Parking context : parkedcalls Parked call extensions: 701-720 Parkingtime : 45000 ms MusicOnHold class : default Enabled : Yes debian0*CLI> quit Executing last minute cleanups |
#vim /etc/asterisk/features.conf
--- /tmp/l3-saved-3108.1356.7713 2014-11-26 09:35:40.533928951 -0500 +++ /etc/asterisk/features.conf 2014-11-26 09:38:44.637934515 -0500 @@ -128,7 +128,7 @@ ; это управляемый перевод atxfer => *2 ; Attended transfer -- Make sure to set the T and/or t option in the Dial() or Queue() app call! -;parkcall => #72 ; Park call (one step parking) -- Make sure to set the K and/or k option in the Dial() app call! +parkcall => #700 ; Park call (one step parking) -- Make sure to set the K and/or k option in the Dial() app call! ;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call! [applicationmap] |
#all 'grep kK /etc/asterisk/extensions.conf' | ff
5: ; парковка вызова, в конец после Dial добавить kK 5: exten => _22XX,n,Dial(SIP/${EXTEN},10,tT,kK) 7: exten => _31XX,n,Dial(SIP/${EXTEN},30,tT,kK) 8: exten => _32XX,n,Dial(SIP/${EXTEN},20,tT,kK) |
## не надо запятую межту tT и кK; должно быть tTkK
|
#_ +5
+5 |
#_ +8
+8 |
#_ +4
+4 |
#_ +7
+7 |
#_ +1
+1 |
#_ last
Парковка вызова 1:OK 2:OK 3:-- 4:OK 5:OK 6:-- 7:OK 8:OK |
#_ +6
+6 |
#_ last
Парковка вызова 1:OK 2:OK 3:-- 4:OK 5:OK 6:OK 7:OK 8:OK |
#_ +3
+3 |
#_ last
Парковка вызова 1:OK 2:OK 3:OK 4:OK 5:OK 6:OK 7:OK 8:OK |
#_ done
|
#_ Интеграция Астериск а с операционной системой
|
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3108.23033.7615 2014-11-26 09:54:13.473962582 -0500 +++ /etc/asterisk/extensions.conf 2014-11-26 09:56:54.241967440 -0500 @@ -33,14 +33,17 @@ ; 10 это для примера exten => _801X,1,MeetMe(10${EXTEN:3}) -include => parkedcalls +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) + [local] ; испорчу файл но он будет выглядеть как будто так и надо ; типичная ошибка ; у вас сейчас здесь одна строка а выглядит как две -; ещё может быть линия из скрина как я нарисовал + ещё может быть линия из скрина как я нарисовал ; как бороться? ; включаете number в vim: ; :set number |
#all 'grep System /etc/asterisk/extensions.conf' | ff
|
#_ last
Интеграция Астериска с операционной системой 1:-- 2:-- 3:-- 4:-- 5:-- 6:-- 7:-- 8:-- |
#all 'grep System /etc/asterisk/extensions.conf' | ff
8: exten => 8300,1,System(touch /tmp/someone-called-8300) 8: exten => 8301,1,System(echo $(CALLERID(num)} > /tmp/someone-called-8301) 8: exten => 8302,1,System(sudo /etc/init.d/sendmail restart) |
#all 'ls /tmp/someone*'
1: ls: cannot access /tmp/someone*: No such file or directory 2: ls: cannot access /tmp/someone*: No such file or directory 3: ls: cannot access /tmp/someone*: No such file or directory 4: ls: cannot access /tmp/someone*: No such file or directory 5: /tmp/someone-called-8300 6: ls: cannot access /tmp/someone*: No such file or directory 7: ls: cannot access /tmp/someone*: No such file or directory 8: /tmp/someone-called-8300 |
#all 'ls /tmp/someone*'
1: ls: cannot access /tmp/someone*: No such file or directory 2: ls: cannot access /tmp/someone*: No such file or directory 3: ls: cannot access /tmp/someone*: No such file or directory 4: ls: cannot access /tmp/someone*: No such file or directory 5: /tmp/someone-called-8300 6: ls: cannot access /tmp/someone*: No such file or directory 7: ls: cannot access /tmp/someone*: No such file or directory 8: /tmp/someone-called-8300 |
#all 'ls /tmp/someone*'
1: ls: cannot access /tmp/someone*: No such file or directory 2: ls: cannot access /tmp/someone*: No such file or directory 3: ls: cannot access /tmp/someone*: No such file or directory 4: ls: cannot access /tmp/someone*: No such file or directory 5: /tmp/someone-called-8300 6: ls: cannot access /tmp/someone*: No such file or directory 7: ls: cannot access /tmp/someone*: No such file or directory 8: /tmp/someone-called-8300 |
#all 'ls /tmp/someone*'
1: ls: cannot access /tmp/someone*: No such file or directory 2: ls: cannot access /tmp/someone*: No such file or directory 3: ls: cannot access /tmp/someone*: No such file or directory 4: ls: cannot access /tmp/someone*: No such file or directory 5: /tmp/someone-called-8300 6: ls: cannot access /tmp/someone*: No such file or directory 7: ls: cannot access /tmp/someone*: No such file or directory 8: /tmp/someone-called-8300 |
#all 'ls /tmp/someone*'
1: ls: cannot access /tmp/someone*: No such file or directory 2: ls: cannot access /tmp/someone*: No such file or directory 3: ls: cannot access /tmp/someone*: No such file or directory 4: ls: cannot access /tmp/someone*: No such file or directory 5: /tmp/someone-called-8300 6: /tmp/someone-called-8300 6: /tmp/someone-called-8301 7: ls: cannot access /tmp/someone*: No such file or directory 8: /tmp/someone-called-8300 8: /tmp/someone-called-8301 |
#ps aux | grep asterisk
asterisk 15667 0.2 0.1 784380 31436 ? Ssl 07:26 0:24 /usr/sbin/asterisk -p -U asterisk asterisk 15668 0.0 0.0 13916 772 ? S 07:26 0:00 astcanary /var/run/asterisk/alt.asterisk.canary.tweet.tweet.tweet 15667 root 18280 0.0 0.0 52616 2112 pts/13 S+ 09:59 0:00 sudo vim /etc/asterisk/extensions.conf root 18281 0.0 0.0 31644 2864 pts/13 S+ 09:59 0:00 vim /etc/asterisk/extensions.conf root 18330 0.0 0.0 7840 884 pts/3 S+ 09:59 0:00 grep asterisk im /etc/sudoers |
## asterisk полÑзоваÑÐµÐ»Ñ Ð¿Ð¾Ñд коÑоÑÑм вÑполнÑеÑÑÑ asterisk
|
#vim /etc/sudoers
--- /tmp/l3-saved-3108.14741.13439 2014-11-26 09:59:59.873973050 -0500 +++ /etc/sudoers 2014-11-26 10:00:24.681973800 -0500 @@ -18,6 +18,7 @@ # User privilege specification user ALL=(ALL:ALL) ALL +asterisk ALL=(ALL) NOPASSWD: /etc/init.d/sendmail # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL |
#grep asterisk /etc/sudoers
asterisk ALL=(ALL) NOPASSWD: /etc/init.d/sendmail |
## прописываете asterisk в /etc/sudoers
|
## точтобы он мог выполнять нужную вам команду
|
## обратите внимание на NOPASSWD:
|
#пÑÐgrep asterisk /etc/sudoers'
7: asterisk ALL=(ALL:ALL) ALL |
#all 'ps aux | grep sendmail'
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 1: root 24436 0.0 0.0 10848 1540 ? Ss 17:01 0:00 bash -c ps aux | grep sendmail 1: root 24440 0.0 0.0 7836 888 ? S 17:01 0:00 grep sendmail 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 24708 0.0 0.0 10848 1544 ? Ss 17:01 0:00 bash -c ps aux | grep sendmail 2: root 24712 0.0 0.0 7840 888 ? S 17:01 0:00 grep sendmail 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 3: root 11872 0.0 0.0 10848 1544 ? Ss 17:01 0:00 bash -c ps aux | grep sendmail 3: root 11876 0.0 0.0 7840 892 ? S 17:01 0:00 grep sendmail 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections ... 5: root 25369 0.0 0.0 74620 2968 ? Ss 10:49 0:00 sendmail: MTA: accepting connections 6: root 2657 0.0 0.0 74612 2932 ? Ss 15:07 0:00 sendmail: MTA: accepting connections 6: root 5084 0.0 0.0 10848 1544 ? Ss 17:01 0:00 bash -c ps aux | grep sendmail 6: root 5088 0.0 0.0 7840 892 ? S 17:01 0:00 grep sendmail 7: root 2689 0.0 0.0 74616 2940 ? Ss 09:22 0:00 sendmail: MTA: accepting connections 7: root 19932 0.0 0.0 10848 1544 ? Ss 17:01 0:00 bash -c ps aux | grep sendmail 7: root 19936 0.0 0.0 7840 888 ? S 17:01 0:00 grep sendmail 8: root 2515 0.0 0.0 74616 2940 ? Ss 09:25 0:00 sendmail: MTA: accepting connections 8: root 14335 0.0 0.0 10848 1540 ? Ss 17:01 0:00 bash -c ps aux | grep sendmail 8: root 14339 0.0 0.0 7840 892 ? S 17:01 0:00 grep sendmail |
#date
Wed Nov 26 10:01:44 EST 2014 |
#all 'ps aux | grep [s]endmail'
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections 5: root 25369 0.0 0.0 74620 2968 ? Ss 10:49 0:00 sendmail: MTA: accepting connections 6: root 2657 0.0 0.0 74612 2932 ? Ss 15:07 0:00 sendmail: MTA: accepting connections 7: root 2689 0.0 0.0 74616 2940 ? Ss 09:22 0:00 sendmail: MTA: accepting connections 8: root 2515 0.0 0.0 74616 2940 ? Ss 09:25 0:00 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail'
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections 5: root 25369 0.0 0.0 74620 2968 ? Ss 10:49 0:00 sendmail: MTA: accepting connections 6: root 2657 0.0 0.0 74612 2932 ? Ss 15:07 0:00 sendmail: MTA: accepting connections 7: root 2689 0.0 0.0 74616 2940 ? Ss 09:22 0:00 sendmail: MTA: accepting connections 8: root 2515 0.0 0.0 74616 2940 ? Ss 09:25 0:00 sendmail: MTA: accepting connections |
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3108.7606.16369 2014-11-26 10:03:42.449979776 -0500 +++ /etc/asterisk/extensions.conf 2014-11-26 10:04:22.449980984 -0500 @@ -34,7 +34,7 @@ exten => _801X,1,MeetMe(10${EXTEN:3}) 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) |
#all cat /tmp/someone-called-8302
1: cat: /tmp/someone-called-8302: No such file or directory 2: cat: /tmp/someone-called-8302: No such file or directory 3: cat: /tmp/someone-called-8302: No such file or directory 4: cat: /tmp/someone-called-8302: No such file or directory 5: cat: /tmp/someone-called-8302: No such file or directory 6: cat: /tmp/someone-called-8302: No such file or directory 7: cat: /tmp/someone-called-8302: No such file or directory 8: cat: /tmp/someone-called-8302: No such file or directory |
#grep System /etc/asterisk/extensions.conf
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) |
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-3108.3870.6401 2014-11-26 10:07:30.305986660 -0500 +++ /etc/asterisk/extensions.conf 2014-11-26 10:07:57.345987478 -0500 @@ -33,9 +33,9 @@ ; 10 это для примера 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 => 8400,1,System(touch /tmp/someone-called-8400) +exten => 8401,1,System(sh -c "echo ${CALLERID(num)} > /tmp/someone-called-8401") +exten => 8402,1,System(sudo /etc/init.d/sendmail restart) [local] |
#grep asteriskµ asterisk в /etc/sudoers
asterisk ALL=(ALL) NOPASSWD: /etc/init.d/sendmail |
#all 'grep asterisk /etc/sudoers'
6: asterisk ALL=(ALL) NOPASSWD: /etc/init.d/sendmail 7: asterisk ALL=(ALL:ALL) ALL |
#all 'ps aux | grep [s]endmail'
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections 5: root 25369 0.0 0.0 74620 2968 ? Ss 10:49 0:00 sendmail: MTA: accepting connections 6: root 5918 0.0 0.0 74612 2456 ? Ss 17:13 0:00 sendmail: MTA: accepting connections 7: root 20612 0.0 0.0 74616 2472 ? Ss 17:09 0:00 sendmail: MTA: accepting connections 8: root 14707 0.0 0.0 74620 2464 ? Ss 17:10 0:00 sendmail: MTA: accepting connections |
#_ +6 +7 +8
+6 +7 +8 |
#all 'ps aux | grep [s]endmail'
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections 5: root 25369 0.0 0.0 74620 2968 ? Ss 10:49 0:00 sendmail: MTA: accepting connections 6: root 5918 0.0 0.0 74612 2456 ? Ss 17:13 0:00 sendmail: MTA: accepting connections 7: root 20612 0.0 0.0 74616 2472 ? Ss 17:09 0:00 sendmail: MTA: accepting connections 8: root 14707 0.0 0.0 74620 2464 ? Ss 17:10 0:00 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail' | ff
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections 5: root 25369 0.0 0.0 74620 2968 ? Ss 10:49 0:00 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail'
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections 5: root 5652 0.0 0.0 74620 2544 ? Ss 17:14 0:00 sendmail: MTA: accepting connections 6: root 6031 0.0 0.0 74612 2456 ? Ss 17:14 0:00 sendmail: MTA: accepting connections 7: root 20612 0.0 0.0 74616 2472 ? Ss 17:09 0:00 sendmail: MTA: accepting connections 8: root 14707 0.0 0.0 74620 2464 ? Ss 17:10 0:00 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail' | ff
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 2721 0.0 0.0 74612 2940 ? Ss 13:09 0:00 sendmail: MTA: accepting connections 4: root 18407 0.0 0.0 74624 2972 ? Ss 11:10 0:00 sendmail: MTA: accepting connections 5: root 5652 0.0 0.0 74620 2544 ? Ss 17:14 0:00 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail' | ff
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 3: root 12301 0.0 0.0 74624 2472 ? Ss 17:15 0:00 sendmail: MTA: accepting connections 4: root 28617 0.0 0.0 74620 2544 ? Ss 17:15 0:00 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail' | ff
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail' | ff
1: root 11560 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections 2: root 10572 0.0 0.0 74624 2968 ? Ss Nov25 0:02 sendmail: MTA: accepting connections |
#all 'ps aux | grep [s]endmail' | ff
1: root 24857 0.0 0.0 74616 2540 ? Ss 17:19 0:00 sendmail: MTA: accepting connections 2: root 25146 0.0 0.0 74616 2540 ? Ss 17:19 0:00 sendmail: MTA: accepting connections |
#_ last
Интеграция Астериска с операционной системой 1:OK 2:OK 3:OK 4:OK 5:OK 6:OK 7:OK 8:OK |
#_ Программная генерация голоса
|
#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 |
#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 festvox-ru ... 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) ... |
#vim /var/tmp/hello-ru.txt
--- /dev/null 2014-11-24 01:42:46.270560796 -0500 +++ /var/tmp/hello-ru.txt 2014-11-27 02:50:11.691804587 -0500 @@ -0,0 +1 @@ +Здравствуйте земляне. Я фестиваль и я приветствую вас в нашем учебном центре |
#cat /var/tmp/hello-ru.txt
Здравствуйте земляне. Я фестиваль и я приветствую вас в нашем учебном центре |
#vim /var/tmp/hello-en.txt
--- /dev/null 2014-11-24 01:42:46.270560796 -0500 +++ /var/tmp/hello-en.txt 2014-11-27 02:50:57.151805959 -0500 @@ -0,0 +1 @@ +Hello earthlings. I am festival and I greet you in our educational center |
#cat /var/tmp/hello-en.txt
Hello earthlings. I am festival and I greet you in our educational center |
#cat /var/tmp/hello-ru.txt
Здравствуйте земляне. Я фестиваль и я приветствую вас в нашем учебном центре |
#cat /var/tmp/hello-en.txt | text2wave > /tmp/hello-en.wav
|
## на английÑком ÐгоÑово
|
## прослушать:
|
#all 'ls -l /tmp/*wav'
1: ls: cannot access /tmp/*wav: No such file or directory 2: -rw-r--r-- 1 root root 35297324 Nov 26 13:38 /tmp/music.wav 3: ls: cannot access /tmp/*wav: No such file or directory 4: -rw-r--r-- 1 root root 42677084 Nov 26 13:37 /tmp/nightwish.wav 5: -rw-r--r-- 1 root root 30845996 Nov 26 13:39 /tmp/adele.wav 6: ls: cannot access /tmp/*wav: No such file or directory 7: -rw-r--r-- 1 root root 119094 Nov 27 09:53 /tmp/hello-en.wav 8: -rw-r--r-- 1 root root 1128050 Nov 27 09:52 /tmp/text-en.wav |
#all 'ls -l /tmp/*wav'
1: ls: cannot access /tmp/*wav: No such file or directory 2: -rw-r--r-- 1 root root 35297324 Nov 26 13:38 /tmp/music.wav 3: ls: cannot access /tmp/*wav: No such file or directory 4: -rw-r--r-- 1 root root 42677084 Nov 26 13:37 /tmp/nightwish.wav 5: -rw-r--r-- 1 root root 30845996 Nov 26 13:39 /tmp/adele.wav 5: -rw-r--r-- 1 root root 1211894 Nov 27 09:54 /tmp/hello-en.wav 6: -rw-r--r-- 1 root root 465016 Nov 27 09:54 /tmp/hello-en.wav 6: -rw-r--r-- 1 root root 44 Nov 27 09:54 /tmp/hello-ru.wav 7: -rw-r--r-- 1 root root 119094 Nov 27 09:53 /tmp/hello-en.wav 8: -rw-r--r-- 1 root root 1128050 Nov 27 09:52 /tmp/text-en.wav |
#cat /var/tmp/hello-ru.txt | text2wave -eval '(voice_msu_ru_nsh_clunits)' > /tmp/hello-ru.wav
|
#cpall /var/tmp/burunduki.txt /var/tmp/
ssh: connect to host 192.168.12.1 port 22: No route to host lost connection ssh: connect to host 192.168.12.2 port 22: No route to host lost connection |
#which cpall
/opt/course-scripts/bin//cpall |
#vim `!!`
--- /tmp/l3-saved-3108.16610.31149 2014-11-27 03:00:28.399823219 -0500 +++ /opt/course-scripts/bin//cpall 2014-11-27 03:00:36.671823472 -0500 @@ -1,6 +1,6 @@ for i in `seq 1 8` do -scp "$1" root@192.168.12.$i:"$2" +scp "$1" root@m$i:"$2" done |
#cpall /var/tmp/burunduki.txt /var/tmp/
burunduki.txt 100% 8155 8.0KB/s 00:00 burunduki.txt 100% 8155 8.0KB/s 00:00 burunduki.txt 100% 8155 8.0KB/s 00:00 burunduki.txt 100% 8155 8.0KB/s 00:00 burunduki.txt 100% 8155 8.0KB/s 00:00 burunduki.txt 100% 8155 8.0KB/s 00:00 burunduki.txt 100% 8155 8.0KB/s 00:00 burunduki.txt 100% 8155 8.0KB/s 00:00 |
#cat /var/tmp/hello-ru.txt | text2wave -eval '(voice_msu_ru_nsh_clunits)' > /tmp/hello-ru.wav
belki.txt belki.wav |
## всё, белочка пришла
|
#ls /usr/lib/asterisk/modules/ | grep fest
app_festival.so |
#ls -l /usr/local/bin/asterisk-festival.pl
-rwxr-xr-x 1 root staff 702 Nov 27 03:04 /usr/local/bin/asterisk-festival.pl |
#cpall /usr/local/bin/asterisk-festival.pl /usr/local/bin/
asterisk-festival.pl 100% 702 0.7KB/s 00:00 asterisk-festival.pl 100% 702 0.7KB/s 00:00 asterisk-festival.pl 100% 702 0.7KB/s 00:00 asterisk-festival.pl 100% 702 0.7KB/s 00:00 asterisk-festival.pl 100% 702 0.7KB/s 00:00 asterisk-festival.pl 100% 702 0.7KB/s 00:00 asterisk-festival.pl 100% 702 0.7KB/s 00:00 asterisk-festival.pl 100% 702 0.7KB/s 00:00 |
## устанавливаем поддержку AGI для языка Perl
|
#apt-cache search agi perl
barnowl - A curses-based tty Jabber, IRC, AIM and Zephyr client check-postgres - script for monitoring PostgreSQL databases debaux - Debian Auxiliary Programs debian-policy - Debian Policy Manual and related documents devscripts - scripts to make the life of a Debian Package maintainer easier dh-make-perl - helper for creating Debian packages from perl modules libfile-mmagic-perl - Perl module to guess file type gargoyle-free - graphical player for Interactive Fiction games libgdal-perl - Perl bindings to the Geospatial Data Abstraction Library graphicsmagick-dbg - format-independent image processing - debugging symbols ... php5-imagick - ImageMagick module for php5 pnp4nagios-bin - Nagios addon to create graphs from performance data (binaries) libqpid-perl - enterprise messaging system - Perl bindings sendpage-common - common libraries used to handle alpha-numeric text paging sendxmpp - commandline XMPP (jabber) utility unagi - Modular X compositing manager unagi-dbg - Modular X compositing manager - debugging symbols unagi-dev - Modular X compositing manager - development files w2do - simple text-based todo manager xstow - Extended replacement of GNU Stow |
#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://127.0.0.1/debian/ wheezy/main libasterisk-agi-perl all 1.01-2 [42.2 kB] Fetched 42.2 kB in 0s (390 kB/s) Selecting previously unselected package libasterisk-agi-perl. (Reading database ... 145497 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) ... |
## теперь Perl у нас поддерживает AGI
|
## AGI = Asterisk Gateway Interface
|
## интерфейс для связки Asterisk с другими программам
|
#vim /usr/local/bin/asterisk-festival.pl
--- /tmp/l3-saved-3108.28931.10033 2014-11-27 03:11:08.839842573 -0500 +++ /usr/local/bin/asterisk-festival.pl 2014-11-27 03:17:41.731854444 -0500 @@ -1,33 +1,56 @@ #!/usr/bin/perl -use Asterisk::AGI; +# Подключаем необходимые модули +use Asterisk::AGI; #в частности тот модуль для работы с астериском который только что установили use File::Basename; use Digest::MD5 qw(md5_hex); +# создаем интерфейс для работы с Asterisk'ом $AGI = new Asterisk::AGI; +# считываем что нам сказал Asterisk my %input = $AGI->ReadParse(); +# Аргумент командной строки: +# имя файла, который должен проиграться (если файл есть) +# если файла нет, то должен проиграться сам аргумент my $f = $ARGV[0]; my $text = "@ARGV"; -if (open(F, "$f")) { +if (open(F, "$f")) { # если файл есть, записываем в $text содержимое файла local $/; $text = <F>; } + + +# вычисляем контрольную сумму у этого текста my $hash = md5_hex($text); + +# здесь будут лежать сгенерированные файлы my $sounddir = "/var/lib/asterisk/sounds/tts"; + +# они будут называться просто контрольной суммой my $wavefile = "$sounddir/"."tts-$hash.wav"; +# если файла нет: unless (-f $wavefile) { + + # записываем текст в файл .txt open(fileOUT, ">$sounddir"."/say-text-$hash.txt"); print fileOUT "$text"; close(fileOUT); + # вызываем text2wave для этого файла + # и записываем результат в wav-файл my $execf="text2wave -eval '(voice_msu_ru_nsh_clunits)' $sounddir/say-text-$hash.txt -F 8000 -o $wavefile"; system($execf); + + # после этого стираем txt файл unlink($sounddir."/say-text-$hash.txt"); } $wavefile =~ s/.wav$//; +# теперь дайм команду Asterisk'у что этот файл нужно проиграть +# как видите команда Playback такая же как в диалплане + $AGI->exec('Playback', $wavefile); |
## нужно ещё создать /var/lib/asterisk/sounds/tts
|
## tts = text-to-speech
|
#mkdir /var/lib/asterisk/sounds/tts
|
## это просто случайное имя, ни к чему не обязывает
|
#chown asterisk:asterisk /var/lib/asterisk/sounds/tts
|
## надо проверить скрипт, работает ли он
|
## запускаете скрипт потом нажимаете ctrl-d
|
## осталось прикрутить скрипт к плану набора, dialplan'у
|
#ls -l /var/tmp/b*txt
-rw-r--r-- 1 user user 7077 Nov 27 02:58 /var/tmp/belki.txt -rw-r--r-- 1 user user 8155 Nov 27 02:59 /var/tmp/burunduki.txt |
#ls -1 /var/tmp/b*txt
/var/tmp/belki.txt /var/tmp/burunduki.txt |
#vim
|
#~
; 8015 => комната 115 ; так 10 разных комнат ; 10 это для примера exten => _801X,1,MeetMe(10${EXTEN:3}) exten => 8400,1,System(touch /tmp/someone-called-8400) ; и всё сразу же видно /var/tmp/belki.txt ; тут хорошо видно что это одна строка, хотя мы думали что две exten => _3391,1,NoOp(Conferences for external users) exten => _3391,n,MeetMe(10${EXTEN:3}) exten => _3391,n,Hangup exten => 3392,1,Dial(SIP/3301&SIP/3302) ; звонки на локальные номера exten => _33XX,1,NoOp(Local Phones) ) ; Monitor выполняет запись звонка ; сначала создаём имя файла: ; её нужно вызывать до Dial ; кому звонили, кто звонил и время -- INSERT --XX,n,Dial(SIP/${EXTEN},5,tT) 40,1 37% |
Hello earthlings. I am festival and I greet you in our educational center
Здравствуйте земляне. Я фестиваль и я приветствую вас в нашем учебном центре
Время первой команды журнала | 15:26:14 2014-11-26 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 09:21:51 2014-11-27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 4.00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 0.00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 1.66 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 1.00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.
Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
$ l s-l bash: l: command not found |
Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
$ test 5 -lt 4 |
Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
$ 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 |
Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
# id uid=0(root) gid=0(root) Gruppen=0(root) |
Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
$ vi ~/.bashrc
|
Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
$ patch ~/.bashrc |
Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.
Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.
Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.
Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора
Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.
Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.
Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:
$ whoami
user
$ #^ Интересно, кто я?в журнале это будет выглядеть так:
$ whoami
user
Интересно, кто я? |
Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:
$ whoami
user
$ cat > /dev/null #^ Интересно, кто я?
Программа whoami выводит имя пользователя, под которым мы зарегистрировались в системе. - Она не может ответить на вопрос о нашем назначении в этом мире.В журнале это будет выглядеть так:
$ whoami user
|
Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=
1 2 3 4Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.
LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008