Страница 1 из 2

Запись одного говорящего.

СообщениеДобавлено: 05 ноя 2021, 19:06
spirt
У нас в нерабочее время входящий звонок поступает в следующий контекст и после бипа нужно чтобы астер записал сообщение от звонящего.

exten = _X.,1,Answer()
same = n,Playback(ivr/same = n,Playback(ivr/none-worktime))
same = n,Playback(beep)
same = n,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)});
same = n,Set(CDR(filename)=${fname}.wav);
same = n,MixMonitor(${DIR_RECORDS}${fname}.wav);
same = n,Hangup()

Однако после бипа астер кладёт трубку. Прошу подсказать, как решить данный вопрос.

Re: Запись одного говорящего.

СообщениеДобавлено: 05 ноя 2021, 22:11
ded
Если после бипа астер кладёт трубку, значит не выполняется шаг
same = n,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)});

Вставляйте проверку до и после
same = n,NoOp(File name is ${fname})

Почему он не выполняется - подскажет консоль. Включайте вербозность побольше
CLI> core set verbose 10
и читайте что вам скажет Астериск в консоли.

Поле CDR(filename) в базе имеет длину 120 символов, может ваш ${fname}.wav) длинее?

Re: Запись одного говорящего.

СообщениеДобавлено: 05 ноя 2021, 22:43
Zavr2008
Dial не вижу, поэтому бип и дальше пролетает до Hangup почти моментально.

Re: Запись одного говорящего.

СообщениеДобавлено: 06 ноя 2021, 04:34
spirt
ded писал(а):Если после бипа астер кладёт трубку, значит не выполняется шаг
same = n,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)});

Выполняется
ded писал(а):Вставляйте проверку до и после
same = n,NoOp(File name is ${fname})

Почему он не выполняется - подскажет консоль. Включайте вербозность побольше
CLI> core set verbose 10
и читайте что вам скажет Астериск в консоли.

Сделал как было сказано. Гляньте пожалуйста вывод консоли:
[Показать] Спойлер:
-- Executing [77172642812@othertime:1] NoOp("SIP/voip-77172642812-00000a08", "7010064646 => 77172642812") in new stack
-- Executing [77172642812@othertime:2] Answer("SIP/voip-77172642812-00000a08", "") in new stack
> 0x7efda0079a60 -- Strict RTP switching to RTP target address 185.48.127.7:18534 as source
-- Executing [77172642812@othertime:3] Playback("SIP/voip-77172642812-00000a08", "/var/lib/asterisk/sounds/ivr/none-worktime") in new stack
-- <SIP/voip-77172642812-00000a08> Playing '/var/lib/asterisk/sounds/ivr/none-worktime.alaw' (language 'ru')
> 0x7efda0079a60 -- Strict RTP learning complete - Locking on source address 185.48.127.7:18534
-- Executing [77172642812@othertime:4] Playback("SIP/voip-77172642812-00000a08", "beep") in new stack
-- <SIP/voip-77172642812-00000a08> Playing 'beep.alaw' (language 'ru')
-- Executing [77172642812@othertime:5] NoOp("SIP/voip-77172642812-00000a08", "File name is ") in new stack
-- Executing [77172642812@othertime:6] Set("SIP/voip-77172642812-00000a08", "fname=1636158320.4653-2021-11-06-06_25") in new stack
-- Executing [77172642812@othertime:7] NoOp("SIP/voip-77172642812-00000a08", "File name is 1636158320.4653-2021-11-06-06_25") in new stack
-- Executing [77172642812@othertime:8] Set("SIP/voip-77172642812-00000a08", "CDR(filename)=1636158320.4653-2021-11-06-06_25.wav") in new stack
-- Executing [77172642812@othertime:9] MixMonitor("SIP/voip-77172642812-00000a08", "/var/calls/1636158320.4653-2021-11-06-06_25.wav") in new stack
-- Executing [77172642812@othertime:10] Hangup("SIP/voip-77172642812-00000a08", "") in new stack
== Begin MixMonitor Recording SIP/voip-77172642812-00000a08
== Spawn extension (othertime, 77172642812, 10) exited non-zero on 'SIP/voip-77172642812-00000a08'
== MixMonitor close filestream (mixed)
== End MixMonitor Recording SIP/voip-77172642812-00000a08

ded писал(а):Поле CDR(filename) в базе имеет длину 120 символов, может ваш ${fname}.wav) длинее?

Длина имени меньше 120 символов.

Re: Запись одного говорящего.

СообщениеДобавлено: 06 ноя 2021, 04:37
spirt
Zavr2008 писал(а):Dial не вижу, поэтому бип и дальше пролетает до Hangup почти моментально.

Это входящий звонок. На него мы делаем same = n,Answer(). Dial вроде как не нужен. Или я не прав?

Re: Запись одного говорящего.

СообщениеДобавлено: 06 ноя 2021, 05:49
Zavr2008
Answer лишь переводит входящее плечо звонка в состояние ответа.
А дальше уже диалплан должен заботиться что с ним делать - позвонить куда либо (тогда Dial нужен), Playback какой зарядить или IVR.
В Вашем же случае не читали Будущего Телефонии явно.
Поставьте хотя бы MusicOnHold как указано тут.

Re: Запись одного говорящего.

СообщениеДобавлено: 06 ноя 2021, 12:49
spirt
Zavr2008 писал(а):А дальше уже диалплан должен заботиться что с ним делать - позвонить куда либо (тогда Dial нужен), Playback какой зарядить или IVR.

Всё верно, Dial нужен только если нужно позвонить куда-либо. А в нашей ситуации звонок не требуется. Человек позвонил ночью - астер снял трубку и Playback сказал ему что он невовремя и предложил высказаться по этому поводу после бипа. И нужно как-то это высказывание записать. IVR тоже не нужен.
Zavr2008 писал(а):В Вашем же случае не читали Будущего Телефонии явно.

Читал 3-е и 4-е издание, много. Но там же море информации, всего не упомнишь...
Не понимаю каким образом музыка на удержании может повлиять на ситуацию? По вашей же ссылке сказано, что она используется если заданный екстеншен переводиться в режим ожидания. В нашем же случае звонящий не испытывает никакого ожидания. К тому же музыка на удержании уже настроена по умолчанию.
На всякий случай попробую настроить сегодня по наступлению нерабочего времени, вдруг и вправду поможет...

Re: Запись одного говорящего.

СообщениеДобавлено: 06 ноя 2021, 13:27
Zavr2008
Playback сказал ему что он невовремя и предложил высказаться по этому поводу после бипа

Это называется автоответчик. Для этого приложение есть в диалплане тут.
То, что Вы лишь запустили MixMonitor ничего не решает)
Он лишь записывает в стерео обе стороны.
Второго плеча (второй стороны) у звонка нет - делаете playback(beep) и дальше просто трубку кладете.

Re: Запись одного говорящего.

СообщениеДобавлено: 06 ноя 2021, 14:26
ded
Да, spirt изобретает Voicemail. Который уже изобретён.
spirt писал(а):А в нашей ситуации звонок не требуется. Человек позвонил ночью - астер снял трубку и Playback сказал ему что он невовремя и предложил высказаться по этому поводу после бипа

Используйте приложение Voicemail.

Re: Запись одного говорящего.

СообщениеДобавлено: 06 ноя 2021, 15:58
Wapo
Лучше уж Record-приложение