Автор Тема: Статистика и прослушивание звонков asterisk  (Прочитано 179675 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #60 : 20 мая 2014, 17:35:07 »
Завтра буду в скайпе, стучи, будет возможность - разберемся.
А так мы еще неделю переписываться будем, потом просто сюда решение выложишь, для тех кто еще придет.
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн serg_1984

  • Новичок
  • *
  • Сообщений: 5
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: 123
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #61 : 20 мая 2014, 20:39:17 »
Ок. Спасибо.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #62 : 22 мая 2014, 07:09:03 »
Обнаружился небольшой глюк, если запись по каким-либо направлениям отключена(т.е. не пишется файл и не заполняется поле filename в базе), то флеш плеер все равно отображается, как-будто файл есть.
Для исправления нужно внести изменения в таблицу CDR, для поля filename выставить значение по умолчанию:
mysql -p
mysql> alter table cdr alter filename set default 'none';
mysql> describe cdr;
+-------------+-----------------+------+-----+---------------------+----------------+
| Field       | Type            | Null | Key | Default             | Extra          |
+-------------+-----------------+------+-----+---------------------+----------------+
| id          | int(9) unsigned | NO   | PRI | NULL                | auto_increment |
| calldate    | datetime        | NO   | MUL | 0000-00-00 00:00:00 |                |
| clid        | varchar(80)     | NO   |     |                     |                |
| src         | varchar(80)     | NO   | MUL |                     |                |
| dst         | varchar(80)     | NO   | MUL |                     |                |
| dcontext    | varchar(80)     | NO   |     |                     |                |
| channel     | varchar(80)     | NO   |     |                     |                |
| dstchannel  | varchar(80)     | NO   |     |                     |                |
| lastapp     | varchar(80)     | NO   |     |                     |                |
| lastdata    | varchar(80)     | NO   |     |                     |                |
| duration    | int(11)         | NO   |     | 0                   |                |
| billsec     | int(11)         | NO   |     | 0                   |                |
| disposition | varchar(45)     | NO   |     |                     |                |
| amaflags    | int(11)         | NO   |     | 0                   |                |
| accountcode | varchar(20)     | NO   | MUL |                     |                |
| uniqueid    | varchar(32)     | NO   | MUL |                     |                |
| userfield   | varchar(255)    | NO   |     |                     |                |
| filename    | varchar(120)    | YES  |     | none                |                |
+-------------+-----------------+------+-----+---------------------+----------------+
18 rows in set (0.00 sec)

mysql> \q
Bye
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн serg_1984

  • Новичок
  • *
  • Сообщений: 5
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: 123
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #63 : 22 мая 2014, 07:42:22 »
Огромное спасибо.

Оффлайн dmfox00

  • Новичок
  • *
  • Сообщений: 4
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: From Earthe
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #64 : 11 ноября 2014, 09:05:55 »
Доброго.

Не понимать, как установить данное действие :)

Не могли бы привести мануал?

Благодарю.


Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #65 : 11 ноября 2014, 14:21:32 »
dmfox00,
Все подробности читайте на Хабре, таки запилил хау-ту
http://habrahabr.ru/post/212815/

Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн dmfox00

  • Новичок
  • *
  • Сообщений: 4
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: From Earthe
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #66 : 12 ноября 2014, 11:55:32 »
dmfox00,
Все подробности читайте на Хабре, таки запилил хау-ту
http://habrahabr.ru/post/212815/





Половина инфо устарела и не открывается.

Оффлайн vitaliy

  • Новичок
  • *
  • Сообщений: 4
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: СПб
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #67 : 12 ноября 2014, 18:47:37 »
Добрый день!
Возник вопрос - файлы пишутся, даже если NOANSWER

-rw-r--r-- 1 root root 10944 Nov 12 18:40 1415806847.45-2014-11-12-18_40-1556-5001.mp3
-rw-r--r-- 1 root root   864 Nov 12 18:42 1415806949.47-2014-11-12-18_42-1556-5000.mp3
-rw-r--r-- 1 root root   864 Nov 12 18:42 1415806972.48-2014-11-12-18_42-1556-5001.mp3
-rw-r--r-- 1 root root 15552 Nov 12 18:43 1415807032.50-2014-11-12-18_43-1556-5010.mp3
-rw-r--r-- 1 root root   864 Nov 12 18:44 1415807058.52-2014-11-12-18_44-1556-5010.mp3

3 файла по 864 - пустые
Как от этого избавиться?


Логи астера при звонке

  == Using SIP RTP CoS mark 5
    -- Executing [5001@spb_lomo_inc:1] Gosub("SIP/SPB_Lomo-00000037", "recording,~~s~~,1(1556,5001)") in new stack
    -- Executing [~~s~~@recording:1] MSet("SIP/SPB_Lomo-00000037", "LOCAL(calling)=1556") in new stack
    -- Executing [~~s~~@recording:2] MSet("SIP/SPB_Lomo-00000037", "LOCAL(called)=5001") in new stack
    -- Executing [~~s~~@recording:3] GotoIf("SIP/SPB_Lomo-00000037", "1?4:9") in new stack
    -- Goto (recording,~~s~~,4)
    -- Executing [~~s~~@recording:4] Set("SIP/SPB_Lomo-00000037", "fname=1415807474.55-2014-11-12-18_51-1556-5001") in new stack
    -- Executing [~~s~~@recording:5] Set("SIP/SPB_Lomo-00000037", "monopt=nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415807474.55-2014-11-12-18_51-1556-5001.wav"  "/records/mp3/1415807474.55-2014-11-12-18_51-1556-5001.mp3" && rm -f "/records/wav/1415807474.55-2014-11-12-18_51-1556-5001.wav" && chmod o+r "/records/mp3/1415807474.55-2014-11-12-18_51-1556-5001.mp3"") in new stack
    -- Executing [~~s~~@recording:6] Set("SIP/SPB_Lomo-00000037", "CDR(filename)=1415807474.55-2014-11-12-18_51-1556-5001.mp3") in new stack
    -- Executing [~~s~~@recording:7] Set("SIP/SPB_Lomo-00000037", "CDR(realdst)=5001") in new stack
    -- Executing [~~s~~@recording:8] MixMonitor("SIP/SPB_Lomo-00000037", "/records/wav/1415807474.55-2014-11-12-18_51-1556-5001.wav,b,nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415807474.55-2014-11-12-18_51-1556-5001.wav"  "/records/mp3/1415807474.55-2014-11-12-18_51-1556-5001.mp3" && rm -f "/records/wav/1415807474.55-2014-11-12-18_51-1556-5001.wav" && chmod o+r "/records/mp3/1415807474.55-2014-11-12-18_51-1556-5001.mp3"") in new stack
    -- Executing [~~s~~@recording:9] NoOp("SIP/SPB_Lomo-00000037", "Finish if_recording_20") in new stack
    -- Executing [~~s~~@recording:10] Return("SIP/SPB_Lomo-00000037", "") in new stack
    -- Executing [5001@spb_lomo_inc:2] Dial("SIP/SPB_Lomo-00000037", "SIP/5001") in new stack
  == Begin MixMonitor Recording SIP/SPB_Lomo-00000037
  == Using SIP RTP CoS mark 5
    -- Called SIP/5001
    -- SIP/5001-00000038 is ringing
    -- SIP/5001-00000038 is ringing
  == Spawn extension (spb_lomo_inc, 5001, 2) exited non-zero on 'SIP/SPB_Lomo-00000037'
  == MixMonitor close filestream (mixed)
  == Executing [nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415807474.55-2014-11-12-18_51-1556-5001.wav"  "/records/mp3/1415807474.55-2014-11-12-18_51-1556-5001.mp3" && rm -f "/records/wav/1415807474.55-2014-11-12-18_51-1556-5001.wav" && chmod o+r "/records/mp3/1415807474.55-2014-11-12-18_51-1556-5001.mp3"]
  == End MixMonitor Recording SIP/SPB_Lomo-00000037

Оффлайн vitaliy

  • Новичок
  • *
  • Сообщений: 4
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: СПб
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #68 : 13 ноября 2014, 13:35:19 »
Добрый день!

Возник еще один вопрос.
Ситуация - номер 1444 звонит на 5000, они разговаривают, после чего 5000 переводит разговор на 5001.

Результат:
в вэб-интерфейсе появляются 2 записи:
1) звонок 1444 -> 5000
2) звонок 5000 -> 5001

Записи перепутаны местами, т.е. в п.1 запись 5000 -> 5001, а в п.2 1444 -> 5000

база CDR:
92	2014-11-13 13:23:58	"1444" <1444>	1444	5000			1415874238.79		1415874254.81-2014-11-13-13_24-5000-5001.mp3
93 2014-11-13 13:24:14 "5000" <5000> 5000 5001 1415874254.81 1415874238.79-2014-11-13-13_23-1444-5000.mp3
здесь видно, что макрос перепутал имена записей.

Логи астериска:

 == Using SIP RTP CoS mark 5
    -- Executing [5000@spb_lomo_inc:1] StopMixMonitor("SIP/SPB_Lomo-0000004f", "") in new stack
    -- Executing [5000@spb_lomo_inc:2] Gosub("SIP/SPB_Lomo-0000004f", "recording,~~s~~,1(1444,5000)") in new stack
    -- Executing [~~s~~@recording:1] MSet("SIP/SPB_Lomo-0000004f", "LOCAL(calling)=1444") in new stack
    -- Executing [~~s~~@recording:2] MSet("SIP/SPB_Lomo-0000004f", "LOCAL(called)=5000") in new stack
    -- Executing [~~s~~@recording:3] GotoIf("SIP/SPB_Lomo-0000004f", "1?4:9") in new stack
    -- Goto (recording,~~s~~,4)
    -- Executing [~~s~~@recording:4] Set("SIP/SPB_Lomo-0000004f", "fname=1415874238.79-2014-11-13-13_23-1444-5000") in new stack
    -- Executing [~~s~~@recording:5] Set("SIP/SPB_Lomo-0000004f", "monopt=nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415874238.79-2014-11-13-13_23-1444-5000.wav"  "/records/mp3/1415874238.79-2014-11-13-13_23-1444-5000.mp3" && rm -f "/records/wav/1415874238.79-2014-11-13-13_23-1444-5000.wav" && chmod o+r "/records/mp3/1415874238.79-2014-11-13-13_23-1444-5000.mp3"") in new stack
    -- Executing [~~s~~@recording:6] Set("SIP/SPB_Lomo-0000004f", "CDR(filename)=1415874238.79-2014-11-13-13_23-1444-5000.mp3") in new stack
    -- Executing [~~s~~@recording:7] Set("SIP/SPB_Lomo-0000004f", "CDR(realdst)=5000") in new stack
    -- Executing [~~s~~@recording:8] MixMonitor("SIP/SPB_Lomo-0000004f", "/records/wav/1415874238.79-2014-11-13-13_23-1444-5000.wav,b,nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415874238.79-2014-11-13-13_23-1444-5000.wav"  "/records/mp3/1415874238.79-2014-11-13-13_23-1444-5000.mp3" && rm -f "/records/wav/1415874238.79-2014-11-13-13_23-1444-5000.wav" && chmod o+r "/records/mp3/1415874238.79-2014-11-13-13_23-1444-5000.mp3"") in new stack
    -- Executing [~~s~~@recording:9] NoOp("SIP/SPB_Lomo-0000004f", "Finish if_recording_23") in new stack
    -- Executing [~~s~~@recording:10] Return("SIP/SPB_Lomo-0000004f", "") in new stack
    -- Executing [5000@spb_lomo_inc:3] Dial("SIP/SPB_Lomo-0000004f", "SIP/5000") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/5000
  == Begin MixMonitor Recording SIP/SPB_Lomo-0000004f
    -- SIP/5000-00000050 is ringing
    -- SIP/5000-00000050 answered SIP/SPB_Lomo-0000004f
    -- Started music on hold, class 'default', on SIP/SPB_Lomo-0000004f
  == Using SIP RTP CoS mark 5
    -- Executing [5001@internal:1] StopMixMonitor("SIP/5000-00000051", "") in new stack
    -- Executing [5001@internal:2] Gosub("SIP/5000-00000051", "recording,~~s~~,1(5000,5001)") in new stack
    -- Executing [~~s~~@recording:1] MSet("SIP/5000-00000051", "LOCAL(calling)=5000") in new stack
    -- Executing [~~s~~@recording:2] MSet("SIP/5000-00000051", "LOCAL(called)=5001") in new stack
    -- Executing [~~s~~@recording:3] GotoIf("SIP/5000-00000051", "1?4:9") in new stack
    -- Goto (recording,~~s~~,4)
    -- Executing [~~s~~@recording:4] Set("SIP/5000-00000051", "fname=1415874254.81-2014-11-13-13_24-5000-5001") in new stack
    -- Executing [~~s~~@recording:5] Set("SIP/5000-00000051", "monopt=nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415874254.81-2014-11-13-13_24-5000-5001.wav"  "/records/mp3/1415874254.81-2014-11-13-13_24-5000-5001.mp3" && rm -f "/records/wav/1415874254.81-2014-11-13-13_24-5000-5001.wav" && chmod o+r "/records/mp3/1415874254.81-2014-11-13-13_24-5000-5001.mp3"") in new stack
    -- Executing [~~s~~@recording:6] Set("SIP/5000-00000051", "CDR(filename)=1415874254.81-2014-11-13-13_24-5000-5001.mp3") in new stack
    -- Executing [~~s~~@recording:7] Set("SIP/5000-00000051", "CDR(realdst)=5001") in new stack
    -- Executing [~~s~~@recording:8] MixMonitor("SIP/5000-00000051", "/records/wav/1415874254.81-2014-11-13-13_24-5000-5001.wav,b,nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415874254.81-2014-11-13-13_24-5000-5001.wav"  "/records/mp3/1415874254.81-2014-11-13-13_24-5000-5001.mp3" && rm -f "/records/wav/1415874254.81-2014-11-13-13_24-5000-5001.wav" && chmod o+r "/records/mp3/1415874254.81-2014-11-13-13_24-5000-5001.mp3"") in new stack
    -- Executing [~~s~~@recording:9] NoOp("SIP/5000-00000051", "Finish if_recording_23") in new stack
    -- Executing [~~s~~@recording:10] Return("SIP/5000-00000051", "") in new stack
    -- Executing [5001@internal:3] Dial("SIP/5000-00000051", "SIP/5001") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/5001
  == Begin MixMonitor Recording SIP/5000-00000051
    -- SIP/5001-00000052 is ringing
    -- SIP/5001-00000052 is ringing
    -- SIP/5001-00000052 answered SIP/5000-00000051
    -- Stopped music on hold on SIP/SPB_Lomo-0000004f
  == Spawn extension (spb_lomo_inc, 5000, 3) exited non-zero on 'SIP/5000-00000051<ZOMBIE>'
  == MixMonitor close filestream (mixed)
  == Spawn extension (internal, 5001, 3) exited non-zero on 'SIP/SPB_Lomo-0000004f'
  == MixMonitor close filestream (mixed)
  == Executing [nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415874254.81-2014-11-13-13_24-5000-5001.wav"  "/records/mp3/1415874254.81-2014-11-13-13_24-5000-5001.mp3" && rm -f "/records/wav/1415874254.81-2014-11-13-13_24-5000-5001.wav" && chmod o+r "/records/mp3/1415874254.81-2014-11-13-13_24-5000-5001.mp3"]
  == Executing [nice -n 19 /usr/bin/lame -b 32  --silent "/records/wav/1415874238.79-2014-11-13-13_23-1444-5000.wav"  "/records/mp3/1415874238.79-2014-11-13-13_23-1444-5000.mp3" && rm -f "/records/wav/1415874238.79-2014-11-13-13_23-1444-5000.wav" && chmod o+r "/records/mp3/1415874238.79-2014-11-13-13_23-1444-5000.mp3"]
  == End MixMonitor Recording SIP/5000-00000051
  == End MixMonitor Recording SIP/SPB_Lomo-0000004f


Как можно это поправить? Заранее спасибо

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #69 : 14 ноября 2014, 05:17:59 »
Половина инфо устарела и не открывается.
И что же там устарело и не открывается?



Updated: 14 November 2014, 05:19:14

Добрый день!
Возник вопрос - файлы пишутся, даже если NOANSWER
Покажите Ваш диалплан.


Updated: 14 November 2014, 05:21:05

Как можно это поправить? Заранее спасибо
Спасибо за багу, отпишусь когда появится возможность потестить.
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн vitaliy

  • Новичок
  • *
  • Сообщений: 4
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: СПб
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #70 : 14 ноября 2014, 15:19:54 »
Покажите Ваш диалплан.

macro recording (calling,called) {
        if ("${RECORDING}" = "1"){
              Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called});
              Set(monopt=nice -n 19 /usr/bin/lame -b 32  --silent "${WAV}/${fname}.wav"  "${MP3}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${fname}.mp3");
              Set(CDR(filename)=${fname}.mp3);
              Set(CDR(realdst)=${called});
              MixMonitor(${WAV}/${fname}.wav,b,${monopt});

       }
}


context Local {
        _5XXX => {
                 &recording (${CALLERID(number)},${EXTEN});
                 Dial(SIP/${EXTEN});
                 Hangup ();
                }
}

Оффлайн dmfox00

  • Новичок
  • *
  • Сообщений: 4
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: From Earthe
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #71 : 19 ноября 2014, 12:25:36 »
Половина инфо устарела и не открывается.
И что же там устарело и не открывается?


Не туда на автомате написал  :D  :beer:

Оффлайн RusLanR

  • Новичок
  • *
  • Сообщений: 6
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Ural
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #72 : 25 ноября 2014, 09:02:05 »
Прочитал статью на хабре, к сожалению ссылка на "CDR нашего Asterisk должны писаться в MySQL базу, о том как это настроить можно прочесть здесь например ;)." мёртвая. Можно как то обновить?

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #73 : 25 ноября 2014, 10:16:13 »
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн RusLanR

  • Новичок
  • *
  • Сообщений: 6
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Ural
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #74 : 02 декабря 2014, 12:25:00 »
http://blog.thecall.ru/page/asterisk-18-cdr-v-mysql-cdr_adaptive_odbc

Спасиб.

Сделал немного подругому - Апач пишет напрямую в Mysql минуя odbc.  А вот с Веб мордой понять не могу можно получать данные минуя odbc или не получится?