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

Содержание

Журнал

Четверг (06/23/11)

/dev/tty2
10:02:46
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.5608.20406	2011-06-23 11:24:25.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 11:46:13.000000000 +0300
@@ -75,6 +75,11 @@
 exten => 2,1,AGI(/usr/local/bin/festival-script.pl, /var/tmp/ru-burunduk.txt)
 exten => s,n,Goto(menu,s,start-menu)
 exten => 9,1,Goto(menu,s,start-menu)
+
+[system-menu]
+exten => s,1,Background(/var/tmp/asterisk/pass)
+exten => s,n,WaitExten(5)
+exten => s,n,Goto(system-menu,s,1)
 ;-----------------------------------------------------------------------
 [local]
 ;exten => _8XXX,1,Playback(demo-congrats)
прошло 43 минуты
10:46:13
#cd /var/tmp/asterisk/

10:46:54
#ls
dolgo.gsm  lang.gsm  menu.gsm      ro  uk         zoo.gsm
error.gsm  main.gsm  record01.gsm  ru  vibor.gsm
10:46:55
#mv record01.gsm pass.gsm

10:47:08
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.26795.27986	2011-06-23 11:47:11.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 11:51:04.000000000 +0300
@@ -80,6 +80,10 @@
 exten => s,1,Background(/var/tmp/asterisk/pass)
 exten => s,n,WaitExten(5)
 exten => s,n,Goto(system-menu,s,1)
+
+;extern => 1412,1,Background(/var/tmp/asterisk/yahoo)
+exten => 1412,1,Playback(/var/tmp/asterisk/yahoo)
+exten => i,1,Playback(/var/tmp/asterisk/pass_error)
 ;-----------------------------------------------------------------------
 [local]
 ;exten => _8XXX,1,Playback(demo-congrats)
10:51:44
#ls
dolgo.gsm  lang.gsm  menu.gsm  record01.gsm  ru  vibor.gsm  zoo.gsm
error.gsm  main.gsm  pass.gsm  ro            uk  yahoo.gsm
10:52:08
#mv record01.gsm pass_error.gsm

прошло 16 минут
11:08:58
#лшkill %
[1]+  Завершено      apt-get install ejabberd
11:09:21
#apt-get install ejabberd
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?
11:09:44
#killall apt
apt: процесс не найден
11:10:01
#killall apt
apt: процесс не найден
11:10:02
#killall apt-get
apt-get: процесс не найден
11:10:06
#killall ejabberd

11:10:12
#killall ejabberd
ejabberd: процесс не найден
11:10:13
#dpkg-reconfigure ejabberd
/usr/sbin/dpkg-reconfigure: Пакет ejabberd сломан или установлен не полностью
11:10:23
#apt-get install ejabberd
E: Работа dpkg прервана, вы должны вручную запустить dpkg --configure -a для устранения проблемы.
11:10:38
#killall ejabberd
ejabberd: процесс не найден
11:10:44
#ps aux | grep eja
ejabberd  5396  0.0  0.0  10560   404 ?        S    12:07   0:00 /usr/lib/erlang/erts-5.8/bin/epmd -daemon
ejabberd  5421  0.4  0.5  94604 46928 ?        S    12:07   0:00 /usr/lib/erlang/erts-5.8/bin/beam -K false -P 250000 -- -root /usr/lib/erlang -progname erl -- -home /var/lib/ejabberd -- -sname ejabberd -pa /usr/lib/ejabberd/ebin -s ejabberd -kernel inetrc "/etc/ejabberd/inetrc" -ejabberd config "/etc/ejabberd/ejabberd.cfg" log_path "/var/log/ejabberd/ejabberd.log" erlang_log_path "/var/log/ejabbe
root      6506  0.0  0.0   7568   876 pts/1    S+   12:10   0:00 grep eja
11:10:53
#kill 5421

11:11:13
#kill 5421
bash: kill: (5421) - Нет такого процесса
11:11:13
#apt-get install ejabberd
E: Работа dpkg прервана, вы должны вручную запустить dpkg --configure -a для устранения проблемы.
11:11:18
#ps aux | grep eja
ejabberd  5396  0.0  0.0  10560   404 ?        S    12:07   0:00 /usr/lib/erlang/erts-5.8/bin/epmd -daemon
root      6537  0.0  0.0   7568   872 pts/1    S+   12:11   0:00 grep eja
11:11:21
#kill 5396

11:11:27
#kill 5396
bash: kill: (5396) - Нет такого процесса
11:11:27
#apt-get install ejabberd
E: Работа dpkg прервана, вы должны вручную запустить dpkg --configure -a для устранения проблемы.
11:11:29
#ps aux | grep eja
root      6568  0.0  0.0   7568   872 pts/1    S+   12:11   0:00 grep eja
11:11:32
#killall dpkg
dpkg: процесс не найден
11:11:45
#ps aux | grep dpk
root      6585  0.0  0.0   7568   876 pts/1    S+   12:11   0:00 grep dpk
11:11:50
#apt-get install ejabberd
E: Работа dpkg прервана, вы должны вручную запустить dpkg --configure -a для устранения проблемы.
11:11:53
#dpkg
dpkg                     dpkg-gencontrol          dpkg-scanpackages
dpkg-architecture        dpkg-gensymbols          dpkg-scansources
dpkg-buildflags          dpkg-maintscript-helper  dpkg-shlibdeps
dpkg-buildpackage        dpkg-mergechangelogs     dpkg-source
dpkg-checkbuilddeps      dpkg-name                dpkg-split
dpkg-deb                 dpkg-parsechangelog      dpkg-statoverride
dpkg-distaddfile         dpkg-preconfigure        dpkg-trigger
dpkg-divert              dpkg-query               dpkg-vendor
dpkg-genchanges          dpkg-reconfigure
11:11:53
#dpkg --configure
dpkg: --configure требует указания хотя бы одного имени пакета
Справка по установке и удалению пакетов доступна по команде dpkg --help [*];
Программа «dselect» или «aptitude» предоставляет дружественный интерфейс
управления пакетами;
Чтобы получить список значений флагов отладки dpkg, введите dpkg -Dhelp;
Чтобы получить информацию об игнорировании проблем, введите dpkg --force-help;
Чтобы получить справку по работе с файлами *.deb, введите dpkg-deb --help;
Команды, отмеченные [*], выводят большое количество информации.
Объедините их в конвейер с программами «less» или «more»!
11:12:20
#dpkg --configure ejabberd
Настраивается пакет ejabberd (2.1.5-3+squeeze1) ...
Starting jabber server: ejabberd..........
/dev/tty1
11:12:43
#vim /etc/host
11:12:50
#~
host.conf    hostname     hosts        hosts.allow  hosts.deny
11:12:50
#vim /etc/hosts
--- /tmp/l3-saved-1497.21550.15760	2011-06-23 12:12:52.000000000 +0300
+++ /etc/hosts	2011-06-23 12:13:01.000000000 +0300
@@ -1,5 +1,5 @@
 127.0.0.1	localhost
-192.168.15.1	linux1.linux.nt	linux1
+192.168.101.1	linux1.linux.nt	linux1
 
 # The following lines are desirable for IPv6 capable hosts
 ::1     ip6-localhost ip6-loopback
11:13:01
#asterisk -rvvv
Asterisk 1.6.2.9-2+squeeze2, Copyright (C) 1999 - 2010 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.6.2.9-2+squeeze2 currently running on linux1 (pid = 3746)
...
[Jun 23 16:12:10] NOTICE[3779]: chan_sip.c:21599 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1102
[Jun 23 16:15:11] NOTICE[3779]: chan_sip.c:21599 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1102
[Jun 23 16:18:12] NOTICE[3779]: chan_sip.c:21599 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1102
[Jun 23 16:21:13] NOTICE[3779]: chan_sip.c:21599 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1102
    -- Remote UNIX connection
Executing last minute cleanups
  == Destroying musiconhold processes
linux1*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
/dev/tty2
11:13:02
#dpkg-reconfigure ejabberd
Настройка пакета
            ┌───────────┤ Настраивается пакет ejabberd ├───────────┐
            │ Введите пароль администратора ещё раз для проверки.  │
            │                                                      │
            │ Повторный ввод пароля администратора для проверки:   │
            │                                                      │
            â”********______________________________________________ │
            │                                                      │
            │                        <Ok>                          │
            │                                                      │
            └──────────────────────────────────────────────────────┘
Replacing config file /etc/ejabberd/ejabberd.cfg with new version
Starting jabber server: ejabberd.
Waiting for ejabberd to register admin user.
Admin user "admin@msk.unix.nt" is registered successfully.
11:15:54
#vim /etc/ejabberd/ejabberd.co
прошло 36 минут
11:52:02
#~
%%%   ================
%%%   SERVED HOSTNAMES
%%
%% hosts: Domains served by ejabberd.
%% You can define one or several, for example:
%% {hosts, ["example.net", "example.com", "example.org"]}.
%%
%% (This option is defined by debconf earlier)
%% {hosts, ["localhost"]}.
%%
...
                  {access_persistent, muc},
                  {access_admin, muc_admin},
                  {max_users, 500}
                 ]},
  %%{mod_muc_log,[]},
  {mod_offline,  [{access_max_user_messages, max_user_offline_messages}]},
  {mod_privacy,   {access, local},
"/etc/ejabberd/ejabberd.cfg" 644L, 16991C записано
  {mod_private,  []},
  {mod_proxy65,  [
11:54:03
#vim /etc/bind
11:54:03
#vim /etc/bind/db.
11:54:03
#vim /etc/bind/db.msk.unix.nt
--- /tmp/l3-saved-1612.29958.3054	2011-06-23 12:54:12.000000000 +0300
+++ /etc/bind/db.msk.unix.nt	2011-06-23 12:54:29.000000000 +0300
@@ -3,3 +3,4 @@
 	A 192.168.101.1
 	MX 10 linux1.unix.nt.
 asterisk A 192.168.101.1
+conference A 192.168.101.1
11:54:29
#/etc/init.d/bind9 restart
Stopping domain name service...: bind9 waiting for pid 1279 to die.
Starting domain name service...: bind9.
11:54:37
#/etc/init.d/bind9 ejabberd
Usage: /etc/init.d/bind9 {start|stop|reload|restart|force-reload|status}.
11:54:43
#/etc/init.d/bind9 ejabberd restart
Usage: /etc/init.d/bind9 {start|stop|reload|restart|force-reload|status}.
11:54:46
#/etc/init.d/bind9 ejabberd restart
Usage: /etc/init.d/bind9 {start|stop|reload|restart|force-reload|status}.
11:54:50
#/etc/init.d/ejabberd restart
Restarting jabber server: ejabberd.
11:55:08
#apt-get install sendxmpp
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  libmysqlclient16 mysql-common
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
  libauthen-sasl-perl libdigest-sha1-perl libio-socket-ssl-perl
  libnet-libidn-perl libnet-ssleay-perl libnet-xmpp-perl libxml-stream-perl
Предлагаемые пакеты:
...
Настраивается пакет libsctp1 (1.0.11+dfsg-1) ...
Настраивается пакет lksctp-tools (1.0.11+dfsg-1) ...
Настраивается пакет libauthen-sasl-perl (2.1500-1) ...
Настраивается пакет libdigest-sha1-perl (2.13-1) ...
Настраивается пакет libnet-ssleay-perl (1.36-1) ...
Настраивается пакет libio-socket-ssl-perl (1.33-1+squeeze1) ...
Настраивается пакет libnet-libidn-perl (0.12.ds-1+b1) ...
Настраивается пакет libxml-stream-perl (1.23-1) ...
Настраивается пакет libnet-xmpp-perl (1.02-1) ...
Настраивается пакет sendxmpp (1.20-1) ...
прошло 97 минут
13:32:13
#ejabberdctl register logger msk.unix.nt password
User logger@msk.unix.nt successfully registered
13:32:47
#echo 'logger@odessa.unix.nt password' > ~/.sendxmpprc

13:33:19
#chmod 600 ~/.sendxmpprc

13:33:28
#date sendxmpp user@msk.unix.nt
date: лишний операнд «user@msk.unix.nt»
Попробуйте `date --help' для получения более подробного описания.
13:33:42
#date | sendxmpp user@msk.unix.nt

13:34:56
#PRIVET | sendxmpp user@spb.unix.nt
bash: PRIVET: команда не найдена
13:38:10
#echo 'PRIVET' | sendxmpp user@spb.unix.nt

13:38:24
#vim /usr/local/bin/asterisk-jabber-logger
--- /dev/null	2011-06-23 08:58:54.057702905 +0300
+++ /usr/local/bin/asterisk-jabber-logger	2011-06-23 15:05:38.000000000 +0300
@@ -0,0 +1 @@
+echo "$@" | sendxmpp -u logger -p password -j msk.unix.nt user@msk.unix.nt
прошло 27 минут
14:05:38
#chmod +x /usr/local/bin/asterisk-jabber-logger

14:05:50
#cd /usr/local/bin/

14:06:01
#asterisk
Asterisk already running on /var/run/asterisk/asterisk.ctl.  Use 'asterisk -r' to connect.
14:06:02
#asterisk-jabber-logger

14:06:09
#asterisk-jabber-logger test

14:10:57
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.22267.3974	2011-06-23 15:11:40.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:12:41.000000000 +0300
@@ -95,6 +95,7 @@
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?voicemail)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?voicemail)
 exten => _11XX,n,Hangup()
+exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger PropuLERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
 exten =? _11XX,n,Hangup()
 
14:12:41
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.13718.16280	2011-06-23 15:12:49.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:13:06.000000000 +0300
@@ -90,7 +90,7 @@
 exten => _11XX,1,Answer
 exten => _11XX,n,Set(MON_FILENAME=record-${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M-%S)}-${EXTEN}-${CALLERID(num)})
 exten => _11XX,n,Monitor(wav,${MON_FILENAME},m)
-exten => _11XX,n,System(/usr/local/bin/asterisk-jabber-logger Vam zvonyat s ${CALLERID(num)})
+;exten => _11XX,n,System(/usr/local/bin/asterisk-jabber-logger Vam zvonyat s ${CALLERID(num)})
 exten => _11XX,n,Dial(SIP/${EXTEN},5)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?voicemail)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?voicemail)
14:13:06
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.12472.11270	2011-06-23 15:14:11.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:16:45.000000000 +0300
@@ -94,6 +94,8 @@
 exten => _11XX,n,Dial(SIP/${EXTEN},5)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?voicemail)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?voicemail)
+exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?missed_call)
+exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
 exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger PropuLERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
14:16:45
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.25127.9647	2011-06-23 15:18:11.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:19:19.000000000 +0300
@@ -92,8 +92,8 @@
 exten => _11XX,n,Monitor(wav,${MON_FILENAME},m)
 ;exten => _11XX,n,System(/usr/local/bin/asterisk-jabber-logger Vam zvonyat s ${CALLERID(num)})
 exten => _11XX,n,Dial(SIP/${EXTEN},5)
-exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?voicemail)
-exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?voicemail)
+;exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?voicemail)
+;exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?voicemail)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?missed_call)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
14:19:19
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.16043.24617	2011-06-23 15:20:07.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:21:18.000000000 +0300
@@ -97,7 +97,7 @@
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?missed_call)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
-exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger PropuLERID(num)})
+exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger Propuschennyi vyzov s ${CALERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
 exten =? _11XX,n,Hangup()
 
14:21:18
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.12878.12031	2011-06-23 15:21:34.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:22:02.000000000 +0300
@@ -97,7 +97,7 @@
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?missed_call)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
-exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger Propuschennyi vyzov s ${CALERID(num)})
+exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger Propuschennyi vyzov s ${CALLERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
 exten =? _11XX,n,Hangup()
 
14:22:02
#vim /etc/asterisk/extensions.conf
14:29:36
#[menu]
asterisk-jabber-logger  festival-script.pl      l3-config
check-stream.pl         l3-agent                l3script
14:29:36
#vim /usr/local/bin/asterisk-jabber-logger
--- /tmp/l3-saved-1612.12659.12344	2011-06-23 15:29:49.000000000 +0300
+++ /usr/local/bin/asterisk-jabber-logger	2011-06-23 15:33:27.000000000 +0300
@@ -1 +1,3 @@
+jid="$1"
+shift 
 echo "$@" | sendxmpp -u logger -p password -j msk.unix.nt user@msk.unix.nt
14:35:28
#vim /etc/asterisk/extensions.conf
14:38:59
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.12396.15953	2011-06-23 15:39:19.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:40:37.000000000 +0300
@@ -98,8 +98,7 @@
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
 ;exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger Propuschennyi vyzov s ${CALLERID(num)})
-exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN}))} 
-;Propuschennyi vyzov s ${CALLERID(num)})
+exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN}))} Propuschennyi vyzov s ${CALLERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
 exten =? _11XX,n,Hangup()
 
14:42:31
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.3893.31338	2011-06-23 15:42:53.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:43:33.000000000 +0300
@@ -98,7 +98,7 @@
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
 ;exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger Propuschennyi vyzov s ${CALLERID(num)})
-exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN}))} Missed call from ${CALLERID(num)})
+exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN}))}Missed call from ${CALLERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
 exten =? _11XX,n,Hangup()
 
14:43:33
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.22298.30424	2011-06-23 15:43:50.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:44:43.000000000 +0300
@@ -98,7 +98,7 @@
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
 ;exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger Propuschennyi vyzov s ${CALLERID(num)})
-exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN}))}Missed call from ${CALLERID(num)})
+exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN}))} Missed call from ${CALLERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
 exten =? _11XX,n,Hangup()
 
14:44:43
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.29268.401	2011-06-23 15:44:47.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 15:45:32.000000000 +0300
@@ -98,7 +98,7 @@
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?missed_call)
 exten => _11XX,n,Hangup()
 ;exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger Propuschennyi vyzov s ${CALLERID(num)})
-exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN}))} Missed call from ${CALLERID(num)})
+exten => _11XX,n(missed_call),System(/usr/local/bin/asterisk-jabber-logger ${DB(jid/${EXTEN})} Missed call from ${CALLERID(num)})
 exten => _11XX,n(voicemail),Voicemail(${EXTEN}@default)
 exten =? _11XX,n,Hangup()
 
14:45:32
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.3435.32119	2011-06-23 15:46:00.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 16:20:15.000000000 +0300
@@ -91,7 +91,7 @@
 exten => _11XX,n,Set(MON_FILENAME=record-${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M-%S)}-${EXTEN}-${CALLERID(num)})
 exten => _11XX,n,Monitor(wav,${MON_FILENAME},m)
 ;exten => _11XX,n,System(/usr/local/bin/asterisk-jabber-logger Vam zvonyat s ${CALLERID(num)})
-exten => _11XX,n,Dial(SIP/${EXTEN},5)
+exten => _11XX,n,Dial(SIP/${EXTEN},5,m)
 ;exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?voicemail)
 ;exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?voicemail)
 exten => _11XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?missed_call)
прошло 34 минуты
15:20:15
#cd /var/lib/asterisk/moh/

15:20:26
#ls

15:20:28
#ls /var/tmp/asterisk/
dolgo.gsm  lang.gsm  menu.gsm        pass.gsm  ru  vibor.gsm  zoo.gsm
error.gsm  main.gsm  pass_error.gsm  ro        uk  yahoo.gsm
15:22:19
#ls /var/lib/as
aspell/   asterisk/
15:22:19
#ls /var/lib/asterisk/
astdb      moh/       sounds/    sqlite.db
15:22:19
#ls /var/lib/asterisk/
astdb  moh  sounds  sqlite.db
15:22:34
#ls /var/lib/asterisk/sounds/
custom  tts
15:22:38
#ls

15:22:41
#ls /var/tmp/asterisk/
dolgo.gsm  lang.gsm  menu.gsm        pass.gsm  ru  vibor.gsm  zoo.gsm
error.gsm  main.gsm  pass_error.gsm  ro        uk  yahoo.gsm
15:22:53
#cp /var/tmp/asterisk/menu.gsm /var/lib/asterisk/moh/

15:23:34
#ls
menu.gsm
15:23:36
#/etc/init.d/asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
/dev/tty1
15:23:45
#asterisk -rvvv
Asterisk 1.6.2.9-2+squeeze2, Copyright (C) 1999 - 2010 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.6.2.9-2+squeeze2 currently running on linux1 (pid = 8905)
...
1101/1101                  192.168.101.10   D          5060     Unmonitored
1102/1102                  192.168.101.2    D          40436    Unmonitored
kiev/msk                   192.168.107.1    D          5060     Unmonitored
ny/msk                     192.168.105.1    D          5060     Unmonitored
spb/msk                    192.168.102.1    D          5060     Unmonitored
5 sip peers [Monitored: 0 online, 0 offline Unmonitored: 5 online, 0 offline]
[Jun 23 17:00:22] NOTICE[8945]: chan_sip.c:21599 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1102
linux1*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
прошло 10 минут
/dev/tty2
15:34:19
#{EXTEN},5}
directory=moh
;
;[native-random]
;mode=files
;directory=moh
;digit=# =/var/lib/asterisk/mohn is set for a class, then when callers are
;               ; listening to music on hold, they can press this digit, and
;               ; they will switch to listening to this music class.
;sort=random    ; Sort the files in random order
;[native-alphabetical]
"/etc/asterisk/musiconhold.conf" 84L, 2741C записано
15:35:07
#vim /etc/asterisk/musiconhold.conf
прошло 25 минут
16:00:43
#ping 212.26.146.51
PING 212.26.146.51 (212.26.146.51) 56(84) bytes of data.
64 bytes from 212.26.146.51: icmp_req=1 ttl=55 time=10.5 ms
^C
--- 212.26.146.51 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 10.566/10.566/10.566/0.000 ms
/dev/tty1
16:01:04
#/etc/init.d/asterisk reload
Reloading Asterisk PBX configuration files.
16:02:40
#/etc/init.d/asterisk reload
Reloading Asterisk PBX configuration files.
/dev/tty2
16:03:37
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-1612.17432.12172	2011-06-23 17:04:06.000000000 +0300
+++ /etc/asterisk/extensions.conf	2011-06-23 17:04:30.000000000 +0300
@@ -112,15 +112,6 @@
 exten => _24XX,1,Dial(SIP/kiev/${EXTEN},5)
 exten => _13XX,1,Dial(SIP/ny/${EXTEN},5)
 
-register => nt1:1234@212.26.146.51/world
-
-[world]
-type=friend
-nat=yes
-secret=1234
-username=nt1
-host=dynamic
-
 [services]
 
 [gr1]
16:04:30
#vim /etc/init.d/asterisk restart
16:04:51
### END INIT INFO
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
/dev/tty1
16:04:56
#asterisk -rvvv
Asterisk 1.6.2.9-2+squeeze2, Copyright (C) 1999 - 2010 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.6.2.9-2+squeeze2 currently running on linux1 (pid = 9327)
...
spb/msk                    192.168.102.1    D          5060     Unmonitored
world/nt1                  (Unspecified)    D   N      5060     Unmonitored
6 sip peers [Monitored: 0 online, 0 offline Unmonitored: 4 online, 2 offline]
linux1*CLI> sip reload
 Reloading SIP
[Jun 23 17:38:24] NOTICE[9367]: chan_sip.c:11753 transmit_register: Strange, trying to register msk@192.168.105.1 when registration already pending
linux1*CLI>
[Jun 23 17:38:30] NOTICE[9367]: chan_sip.c:11696 sip_reg_timeout:    -- Registration for 'msk@192.168.105.1' timed out, trying again (Attempt #57)
linux1*CLI> quit
Executing last minute cleanups
прошло 33 минуты
16:38:32
#/etc/init.d/asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
/dev/pts/5
16:39:58
#vim /etc/asterisk/sip.conf
--- /tmp/l3-saved-9531.30956.3449	2011-06-23 17:40:03.000000000 +0300
+++ /etc/asterisk/sip.conf	2011-06-23 17:40:31.000000000 +0300
@@ -12,11 +12,11 @@
 register => nt1:1234@212.26.146.51/world
 
 [world]
-type=friend
+type=user
 nat=yes
 secret=1234
 username=nt1
-host=dynamic
+host=212.26.146.51
 
 [1101]
 type=friend
16:40:31
#asterisk -rvvv
Asterisk 1.6.2.9-2+squeeze2, Copyright (C) 1999 - 2010 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.6.2.9-2+squeeze2 currently running on linux1 (pid = 9430)
...
linux1*CLI> sip show peers
Name/username              Host            Dyn Nat ACL Port     Status
1101/1101                  192.168.101.10   D          5060     Unmonitored
1102                       (Unspecified)    D          5060     Unmonitored
kiev/msk                   192.168.107.1    D          5060     Unmonitored
ny/msk                     (Unspecified)    D          5060     Unmonitored
spb/msk                    192.168.102.1    D          5060     Unmonitored
5 sip peers [Monitored: 0 online, 0 offline Unmonitored: 5 online, 0 offline]
linux1*CLI> quit
Executing last minute cleanups

Статистика

Время первой команды журнала10:02:46 2011- 6-23
Время последней команды журнала16:40:31 2011- 6-23
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %24.75
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 2.55
Количество командных строк в единицу времени, команда/мин 0.66
Частота использования команд
vim27|========================| 24.77%
ls11|==========| 10.09%
killall7|======| 6.42%
apt-get6|=====| 5.50%
asterisk5|====| 4.59%
ps4|===| 3.67%
/etc/init.d/bind94|===| 3.67%
/etc/init.d/asterisk4|===| 3.67%
grep4|===| 3.67%
kill4|===| 3.67%
dpkg3|==| 2.75%
sendxmpp3|==| 2.75%
cd3|==| 2.75%
asterisk-jabber-logger2|=| 1.83%
chmod2|=| 1.83%
dpkg-reconfigure2|=| 1.83%
echo2|=| 1.83%
~2|=| 1.83%
mv2|=| 1.83%
date2|=| 1.83%
ping1|| 0.92%
PRIVET1|| 0.92%
/etc/init.d/ejabberd1|| 0.92%
cp1|| 0.92%
##1|| 0.92%
.sendxmpprc1|| 0.92%
лшkill1|| 0.92%
{EXTEN},5}1|| 0.92%
[menu]1|| 0.92%
ejabberdctl1|| 0.92%
____
*) Интервалы неактивности длительностью 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$