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

Не работает AUDIOHOOK_INHERIT(MixMonitor)=yes

0

Ранее по совету с этого же форума добавил опцию

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

И запись после переадресации пошла. Сейчас же слышу мелодию удержания и конец записи когда 1-й принявший вызов кладет трубку, чтобы передать другому принимающему звонящего.

    [incoming-call-rabotaem]
exten=>_X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
    same=>n,Set(dfname=${path2rec}/${fname})
    same=>n,Set(monopt=nice -n 19)
    same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
    same=>n,MixMonitor(${dfname}.wav)
    same=>n,Dial(SIP/161&SIP/162&SIP/163&SIP/164&SIP/165&SIP/167,6,t)
    same=>n,Dial(SIP/401&SIP/402&SIP/101&SIP/102&SIP/103&SIP/104&SIP/105&SIP/106&SIP/161&SIP/162&SIP/163&SIP/164&$
    same=>n,Hangup
exten=>h,1,Set(fname2=${fname}_${DIALEDPEERNUMBER})
    same=>n,Set(dfname2=${path2rec}/${fname2})
    same=>n,System(oggenc ${dfname}.wav -Q -q 0 -o ${dfname2}.ogg && rm -f ${dfname}.wav)
    same=>n,Set(CDR(userfield)=in)
    same=>n,Set(CDR(record)=${fname2}.ogg)
    same=>n,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})

Что могло случиться?

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

спросил 2014-02-26 09:49:29 +0400

thunderamur Gravatar thunderamur
405 61 8 27

обновил 2014-02-26 09:54:43 +0400

1 Ответ

0

AUDIOHOOK_INHERIT устанавливается на канале. Это означает, что, если при ВХОДЯЩЕМ звонке, на канале абонента включаем AUDIOHOOK_INHERIT то у нас будет записан и разговор абонента с оператором1 и разговор абонента с оператором2

Но при ИСХОДЯЩЕМ звонке, AUDIOHOOK_INHERIT включаем на канале оператора1, который разрушается при трансфере абонента на оператора2. В следствии чего и отсутствует запись разговора оператора2+абонент, но есть запись оператор1+абонент.

поправьте, если я ошибаюсь.

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

ответил 2014-02-26 19:21:11 +0400

artefackt Gravatar artefackt flag of Ukraine
1 3 5

обновил 2014-02-26 19:23:34 +0400

Comments

но это можно "пофиксить" позвонив через конференцию.

meral ( 2014-02-26 19:59:29 +0400 )редактировать

т.е. все ходящие завести в конференцию (для каждого входящего свою, конечно)?

thunderamur ( 2014-02-27 03:36:39 +0400 )редактировать
1

да. создаете динамически конференцию для ИСХОДЯЩИХ. одновременно делаете в ту же конференцию новый звонок куда звонили. возникает много побочных задач, например надо отбой правильно организовывать. пишите саму конференцию. вариант 2 - ставите трензитный астриск и на нем пишите. что происходит на основном его не будет интересовать. два астериска на одном компе запускаются на разных портах с использованием ключа -c c указанием альтернативного asterisk.conf

meral ( 2014-02-27 12:27:23 +0400 )редактировать

Да у меня проблема с переводом ВХОДЯЩЕГО звонка. А вот финт ушами с транзитным астером для записи очень интересен. Но тогда основной и станет транзитным в моем случае, а 2-й будет просто коммутировать внутренних абонентов. Дело в том, что если я на одном из астеров буду просто писать, то не смогу получить такую инфу как, например, кто ответил на вызов. В общем идея интересная, спасибо!

Но к моему вопросу, выходит у меня все должно писаться, если делается трансфер ВХОДЯЩЕГО?

thunderamur ( 2014-02-28 03:38:11 +0400 )редактировать

ну и с входящим вы также можете сделать. еще можете попробывать контекст в котором сделать запись, после нее dial(local/${EXTEN}@incoming-call-rabotaem/n)

meral ( 2014-02-28 06:18:10 +0400 )редактировать

Ее понял, после чего (нее)?

thunderamur ( 2014-02-28 06:48:41 +0400 )редактировать

после команды записи.

meral ( 2014-02-28 19:24:22 +0400 )редактировать

к сожалению, не могу понять, что мне это даст, разъясни, пожалуйста.

thunderamur ( 2014-03-03 04:37:14 +0400 )редактировать

будет два канала. возможно первый не будет схлопываться при трансфере. пробывать надо.вы попробуйте. понять врядли получится без понимания как астериск работает. а его у вас похоже нету.

meral ( 2014-03-03 12:03:39 +0400 )редактировать

Попробовал, получил зацикливание.

thunderamur ( 2014-03-05 06:29:07 +0400 )редактировать

ну подумайте как убрать цикл. или перечитайте что я писал. я гдето писал что надо звонить в текущий контекст? вообще я вам идею выдал. решения полные я даю только для интересных или типичных заданий. наймите программиста если вам все еще непонятно как сделать.

meral ( 2014-03-05 08:47:46 +0400 )редактировать

То, что ты предложил понял. Но оно проблему не решило.

Проблема заключалась в другом - обратите внимание на System, она отрабатывает после того, как оператор1 кладет трубку, поэтому разговор с оператор2 уже в танк не влазит. Так сделано, для того, что в имя файла писать номер ответившего оператора. Вернул сжатие в MixMonitor - получил запись всего разговора.

Всем спасибо за участие!

thunderamur ( 2014-04-03 07:26:29 +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 ленту новостей

Статистика

Задан: 2014-02-26 09:49:29 +0400

Просмотрен: 702 раз

Обновлен: Feb 26 '14

Похожие вопросы:

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