Звездочка записывает пустые файлы - PullRequest
0 голосов
/ 30 августа 2018

Я разработал IVR, который должен позвонить по номеру и записать до тишины (2 секунды) и продолжить мой код. Я использую Python для отправки команды AGI (на основе этого документа https://wiki.asterisk.org/wiki/display/AST/AGICommand_record+file):

RECORD FILE "/var/asterisk_sound/mobile/temp" wav "" 20000 0  s=2

Поэтому, когда я звоню в IVR, я слышу, как IVR воспроизводит звук и отправляет мне DTMF, он может записывать мою речь и DTMF, если я отправляю с телефона. После того, как у меня есть небольшой файл temp.wav , например, 50 КБ. Журнал:

09:57:31:-> RECORD FILE "/var/asterisk_sound/mobile/temp" wav "" 20000 0  s=2
09:57:46:<- 200 result=4852 (timeout) endpos=102880
09:57:46:{'code': '200', 'result': '4852', 'value': 'timeout', 'endpos': '102880'}

Но когда мне звонит IVR, я все еще слышу DTMF и звук IVR, но во время записи ничего не происходит, я говорю и отправляю DTMF в течение 20 секунд (до истечения времени ожидания) без ошибок, журнал:

16:00:38:-> RECORD FILE "/var/asterisk_sound/mobile/temp" wav "" 20000 0  s=2
16:00:58:<- 200 result=0 (timeout) endpos=0
16:00:58:{'code': '200', 'result': '0', 'value': 'timeout', 'endpos': '0'}

В конце у меня есть маленький файл. У меня есть маленький файл temp.wav , как 0B.

Я запутался, может быть, я пытаюсь записать оратора, но я так не думаю. Я суммировал проблему ниже:

enter image description here

К вашему сведению: я использую Asterisk 13.1-cert1 на x86_64 CentOS 5.6

Редактировать: Мой алгоритм делает это в обоих случаях:

call a number
on reply :
    play welcome message (3 sec)
    send DTMF 
    wait 10 sec
    play BEEP
    record file until silence
    stream file
    cancel

1 Ответ

0 голосов
/ 30 августа 2018

Вам нужно ответить на звонок перед записью, а также хорошая идея отправить что-то на другой конец перед записью.

Некоторые коммутаторы (например, широко используемый Sonic_UA) не отправляют данные rtp на ваш хост, пока вы не отправите им что-нибудь.

В большинстве случаев используется что-то вроде

Playback "beep"
...