Record() succeeds yet Playback() fails

I’m testing Record/Playback functionality and have hit an impasse. I can record just fine, this was verified by playing the GSM file locally on my workstation. Playback through Asterisk directly after I record simply doesn’t work. I imagine I’m missing something obvious…

Dialplan in question

        exten => 1234,1,Answer()
        exten => 1234,n,Wait(2)
        exten => 1234,n,Set(RECORDED_FILE=custom/foo.gsm)
        exten => 1234,n,Record(${RECORDED_FILE},2)
        exten => 1234,n,Wait(2)
        exten => 1234,n,Playback(${RECORDED_FILE})
        exten => 1234,n,Wait(2)
        exten => 1234,n,Hangup()

Asterisk console

  == Using SIP RTP CoS mark 5
    -- Executing [1234@testingin:1] Answer("SIP/testing-00000009", "") in new stack
    -- Executing [1234@testingin:2] Wait("SIP/testing-00000009", "2") in new stack
    -- Executing [1234@testingin:3] Set("SIP/testing-00000009", "RECORDED_FILE=custom/foo.gsm") in new stack
    -- Executing [1234@testingin:4] Record("SIP/testing-00000009", "custom/foo.gsm,2") in new stack
    -- <SIP/testing-00000009> Playing 'beep.gsm' (language 'en')
    -- Executing [1234@testingin:5] Wait("SIP/testing-00000009", "2") in new stack
    -- Executing [1234@testingin:6] Playback("SIP/testing-00000009", "custom/foo.gsm") in new stack
[Jan  3 13:00:16] WARNING[5654]: file.c:650 ast_openstream_full: File custom/foo.gsm does not exist in any format
[Jan  3 13:00:16] WARNING[5654]: file.c:953 ast_streamfile: Unable to open custom/foo.gsm (format 0x2 (gsm)): No such file or directory
[Jan  3 13:00:16] WARNING[5654]: app_playback.c:471 playback_exec: ast_streamfile failed on SIP/testing-00000009 for custom/foo.gsm
    -- Executing [1234@testingin:7] Wait("SIP/testing-00000009", "2") in new stack
    -- Executing [1234@testingin:8] Hangup("SIP/testing-00000009", "") in new stack
  == Spawn extension (testingin, 1234, 8) exited non-zero on 'SIP/testing-00000009'

Any pointers will be most appreciated!

Figured it out. Extension is required for Record() but can not be used for Playback().

Hi. What do u mean ?
How could you play the recorded file ?

exten => 1234,n,Set(RECORDED_FILE=custom/foo.gsm) exten => 1234,n,Record(${RECORDED_FILE},2) exten => 1234,n,Wait(2) exten => 1234,n,Playback(${RECORDED_FILE})

On the Record line, the variable RECORDED_FILE is correct.

But the same variable is not valid for the Playback line. On playback, you do not specify the file extension.

So the above example could be changed like so to make it work…

exten => 1234,n,Set(RECORDED_FILE=custom/foo)
exten => 1234,n,Record(${RECORDED_FILE}.gsm,2)
exten => 1234,n,Wait(2)
exten => 1234,n,Playback(${RECORDED_FILE})