Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Asterisk запись всех исходящих звонков

0

Задача записывать все исходящие звонки, удачные и нет. Звонки генерятся скриптом на локальный exten далее в транк

exten => 1,n,MixMonitor(/var/spool/asterisk/monitor/${CDR(start)}-${DST-NUM}-${ID_CALL}-full.wav,m)
exten => 1,n,Dial(SIP/${CUT(Out_GW,,1)}/${CUT(DST-NUM,,1)})

Проблема в том, что запись начинается только после снятия трубки на другом конце, а нужна полная запись с кпв.

Если есть идея посоветуйте.

   -- Attempting call on Local/1@call for 5556@call_2:1 (Retry 1)
    -- Executing [1@call:1] NoOp("Local/1@call-e341;2", "---- CALL START ----") in new stack
    -- Executing [1@call:2] Set("Local/1@call-e341;2", "ID_CALL=1341391741.44736") in new stack
    -- Executing [1@call:3] Set("Local/1@call-e341;2", "DST-NUM=123456") in new stack
    -- Executing [1@call:4] Set("Local/1@call-e341;2", "Loop=1") in new stack
    -- Executing [1@call:5] Set("Local/1@call-e341;2", "Call_VP=SIP/laba/44405") in new stack
    -- Executing [1@call:6] Set("Local/1@call-e341;2", "Out_VP=laba") in new stack
    -- Executing [1@call:7] Set("Local/1@call-e341;2", "Out_GW=trunk") in new stack
    -- Executing [1@call:8] Set("Local/1@call-e341;2", "Phone_id=22") in new stack
    -- Executing [1@call:9] Set("Local/1@call-e341;2", "Region_id=0") in new stack
    -- Executing [1@call:10] Set("Local/1@call-e341;2", "Num_App=44405") in new stack
    -- Executing [1@call:11] Set("Local/1@call-e341;2", "Queue=66666") in new stack
    -- Executing [1@call:12] Set("Local/1@call-e341;2", "Context=call") in new stack
    -- Executing [1@call:13] MixMonitor("Local/1@call-e341;2", "/var/spool/asterisk/monitor/2012-07-04 12:49:01-123456-1341391741.44736-full.wav,m") in new stack
  == Begin MixMonitor Recording Local/1@call-e341;2
    -- Executing [1@call:14] Dial("Local/1@call-e341;2", "SIP/trunk/123456") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/trunk/123456
    -- SIP/trunk-0002c16f is making progress passing it to Local/1@call-e341;2
    -- SIP/trunk-0002c16f answered Local/1@call-e341;2
       > Channel Local/1@call-e341;1 was answered.

Asterisk 10.3.1

удалить закрыть спам изменить тег редактировать

спросил 2012-07-04 13:13:11 +0400

Slawka Gravatar Slawka
1 1 1 2

обновил 2012-07-04 15:01:49 +0400

Comments

у mixmonitor'a нет опции m.

версия астериска, реальный диалплан ( вместе со всеми Local каналами ) и вывод из консоли сильно помогают с ответом...

komrad123 ( 2012-07-04 13:59:14 +0400 )редактировать

2 Ответа

0

ну а в чем побелма? есть два ваианта

либо ответить заранее либо написать кустомный диалплан.

ссылка удалить спам редактировать

ответил 2012-07-04 16:54:30 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Звонок исходящий, необходимо обрабатывать коды отбоя и при ответе переводить на абонента.

Slawka ( 2012-07-04 17:14:50 +0400 )редактировать
0

Мне почему-то кажется что "обрабатывать коды отбоя" и "при ответе переводить на оператора" это две разные задачи.

Первая решается проверкой состояния переменной ${DIALSTATUS} после выполнения команды Dial().

Вторую можно решить добавлением макроса в команде Dial(). Макрос будет выполнятся только если на другом конце ответили, ну а в самом макросе уже реализуйте перевод на оператора.

ссылка удалить спам редактировать

ответил 2012-07-05 13:28:23 +0400

artefackt Gravatar artefackt flag of Ukraine
1 3 5

Comments

Нужно записать процесс дозвона и не потерять DIALSTATUS

Slawka ( 2012-07-05 14:49:00 +0400 )редактировать

Командой Monitor не пробовали?

artefackt ( 2012-07-05 19:07:51 +0400 )редактировать

Ситуация аналогична

Slawka ( 2012-07-06 11:30:06 +0400 )редактировать

Попробуйте вот такой костыль:

[test]

exten => _X.,1,MixMonitor(${UNIQUEID}.wav)

same => n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)

same => n,Dial(Local/000${EXTEN}@test)

exten => _000X.,1,Answer()

same => n,Dial(SIP/${EXTEN:3})

same => n,Hangup()

exten => h,1,NoOp(dialstatus is ${DIALSTATUS})

same => n,Hangup()

К сожалению, ничего более умного в голову не пришло. Для лабы может и сойдет, а для живой системы это реальный костыль. Ну и подогнать вам нужно будет под свой диалплан. В аудиофайле должен записаться весь разговор, статус же интересующего нас звонка находится в канале Local.

artefackt ( 2012-07-06 14:35:16 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2012-07-04 13:13:11 +0400

Просмотрен: 3,449 раз

Обновлен: Jul 05 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.