Record()

Since 0.1.8 Applications Found this useful? Upvote it. ×

Record to a file.

Last reviewed 2026-04-14

Record(filename[,silence,maxduration,options])
Dialplan Builder -- build your Record() command
Filename (without extension)
Is the number of seconds of silence to allow before returning.
Is the maximum recording duration in seconds. If missing or 0 there is no maximum.
Append to existing recording rather than replacing.
Keep recorded file upon hangup.
Do not answer, but record anyway if line not yet answered.
Exit when 0 is pressed, setting the variable **RECORD_STATUS** to `OPERATOR` instead of `DTMF`
quiet (do not play a beep tone).
skip recording if the line is not yet answered.
use alternate '*' terminator key (DTMF) instead of default '#'
Don't truncate recorded silence.
Ignore all terminator keys (DTMF) and keep recording until hangup.
Terminate recording if *any* DTMF digit is received.
Full arguments reference
  • filename required
    • filename required
    • format required - Is the format of the file type to be recorded (wav, gsm, etc).
  • silence - Is the number of seconds of silence to allow before returning.
  • maxduration - Is the maximum recording duration in seconds. If missing or 0 there is no maximum.
  • options
    • a - Append to existing recording rather than replacing.
    • n - Do not answer, but record anyway if line not yet answered.
    • o - Exit when 0 is pressed, setting the variable RECORD_STATUS to OPERATOR instead of DTMF
    • q - quiet (do not play a beep tone).
    • s - skip recording if the line is not yet answered.
    • t - use alternate '*' terminator key (DTMF) instead of default '#'
    • u - Don't truncate recorded silence.
    • x - Ignore all terminator keys (DTMF) and keep recording until hangup.
    • k - Keep recorded file upon hangup.
    • y - Terminate recording if any DTMF digit is received.
Description

If filename contains %d, these characters will be replaced with a number incremented by one each time the file is recorded. Use core show file formats to see the available formats on your system User can press # to terminate the recording and continue to the next priority. If the user hangs up during a recording, all data will be lost and the application will terminate.

  • RECORDED_FILE - Will be set to the final filename of the recording, without an extension.
  • RECORD_STATUS - This is the final status of the command
    • DTMF - A terminating DTMF was received ('#' or '*', depending upon option 't')
    • SILENCE - The maximum silence occurred in the recording.
    • SKIP - The line was not yet answered and the 's' option was specified.
    • TIMEOUT - The maximum length was reached.
    • HANGUP - The channel was hung up.
    • ERROR - An unrecoverable error occurred, which resulted in a WARNING to the logs.
Arguments
  • filename required
    • filename required
    • format required - Is the format of the file type to be recorded (wav, gsm, etc).
  • silence - Is the number of seconds of silence to allow before returning.
  • maxduration - Is the maximum recording duration in seconds. If missing or 0 there is no maximum.
  • options
    • a - Append to existing recording rather than replacing.
    • n - Do not answer, but record anyway if line not yet answered.
    • o - Exit when 0 is pressed, setting the variable RECORD_STATUS to OPERATOR instead of DTMF
    • q - quiet (do not play a beep tone).
    • s - skip recording if the line is not yet answered.
    • t - use alternate '*' terminator key (DTMF) instead of default '#'
    • u - Don't truncate recorded silence.
    • x - Ignore all terminator keys (DTMF) and keep recording until hangup.
    • k - Keep recorded file upon hangup.
    • y - Terminate recording if any DTMF digit is received.
User Notes

Know a tip or gotcha for this topic? Share it below and help others.

Contribute a note

Share a tip, gotcha, or practical example. Keep it under 2000 characters. No questions (use the Asterisk community forums for support). Wrap code in backticks.

Moderated before publishing. Email never shown.
Applications
MusicOnHold() ADSIProg() AELSub() AGI() AMD() AddQueueMember() AgentLogin() AgentRequest() AlarmReceiver() Answer() AttendedTransfer() AudioSocket() Authenticate() Background() BackgroundDetect() BlindTransfer() Bridge() BridgeAdd() BridgeWait() Broadcast() Busy() CELGenUserEvent() CallCompletionCancel() CallCompletionRequest() ChanIsAvail() ChanSpy() ChangeMonitor() ChannelRedirect() ClearHash() ConfBridge() ConfKick() Congestion() ContinueWhile() ControlPlayback() DAHDIAcceptR2Call() DAHDIRAS() DAHDIScan() DAHDISendCallreroutingFacility() DAHDISendKeypadFacility() DBdeltree() DISA() DateTime() DeadAGI() Dial() Dictate() Directory() DumpChan() EAGI() Echo() Else() ElseIf() EndIf() EndWhile() Exec() ExecIf() ExecIfTime() ExitIf() ExitWhile() ExtenSpy() ExternalIVR() Festival() Flash() FollowMe() ForkCDR() GetCPEID() Gosub() GosubIf() Goto() GotoIf() GotoIfTime() Hangup() HangupCauseClear() IAX2Provision() ICES() IVRDemo() If() ImportVar() Incomplete() JACK() JabberJoin() JabberLeave() JabberSend() JabberSendGroup() JabberStatus() Log() MP3Player() MSet() Macro() MacroExclusive() MacroExit() MacroIf() MailboxExists() MeetMe() MeetMeAdmin() MeetMeChannelAdmin() MeetMeCount() MessageSend() Milliwatt() MinivmAccMess() MinivmDelete() MinivmGreet() MinivmMWI() MinivmNotify() MinivmRecord() MixMonitor() Monitor() Morsecode() NBScat() NoCDR() NoOp() ODBCFinish() ODBC_Commit() ODBC_Rollback() OSPAuth() OSPFinish() OSPLookup() OSPNext() Originate() PJSIPHangup() PJSIPNotify() Page() Park() ParkAndAnnounce() ParkedCall() PauseMonitor() PauseQueueMember() Pickup() PickupChan() PlayTones() Playback() PrivacyManager() Proceeding() Progress() Queue() QueueLog() QueueUpdate() RaiseException() Read() ReadExten() ReceiveFAX() ReceiveMF() ReceiveSF() ReceiveText() Record() Reload() RemoveQueueMember() ResetCDR() RetryDial() Return() Ringing() SIPAddHeader() SIPDtmfMode() SIPRemoveHeader() SIPSendCustomINFO() SLAStation() SLATrunk() SMS() SayAlpha() SayAlphaCase() SayCountedAdj() SayCountedNoun() SayDigits() SayMoney() SayNumber() SayOrdinal() SayPhonetic() SayUnixTime() SendDTMF() SendFAX() SendImage() SendMF() SendSF() SendText() SendURL() Set() SetAMAFlags() Signal() SkelGuessNumber() SoftHangup() SpeechActivateGrammar() SpeechBackground() SpeechCreate() SpeechDeactivateGrammar() SpeechDestroy() SpeechLoadGrammar() SpeechProcessingSound() SpeechStart() SpeechUnloadGrammar() StackPop() StartMusicOnHold() Stasis() StatsD() StopMixMonitor() StopMonitor() StopMusicOnHold() StopPlayTones() StoreDTMF() StreamEcho() System() TestClient() TestServer() ToneScan() Transfer() TryExec() TrySystem() UnpauseMonitor() UnpauseQueueMember() UserEvent() VMAuthenticate() VMSayName() Verbose() VoiceMail() VoiceMailMain() VoiceMailPlayMsg() Wait() WaitDigit() WaitExten() WaitForCondition() WaitForNoise() WaitForRing() WaitForSignal() WaitForSilence() WaitForTone() WaitUntil() While() Zapateller()
Applications
MusicOnHold() ADSIProg() AELSub() AGI() AMD() AddQueueMember() AgentLogin() AgentRequest() AlarmReceiver() Answer() AttendedTransfer() AudioSocket() Authenticate() Background() BackgroundDetect() BlindTransfer() Bridge() BridgeAdd() BridgeWait() Broadcast() Busy() CELGenUserEvent() CallCompletionCancel() CallCompletionRequest() ChanIsAvail() ChanSpy() ChangeMonitor() ChannelRedirect() ClearHash() ConfBridge() ConfKick() Congestion() ContinueWhile() ControlPlayback() DAHDIAcceptR2Call() DAHDIRAS() DAHDIScan() DAHDISendCallreroutingFacility() DAHDISendKeypadFacility() DBdeltree() DISA() DateTime() DeadAGI() Dial() Dictate() Directory() DumpChan() EAGI() Echo() Else() ElseIf() EndIf() EndWhile() Exec() ExecIf() ExecIfTime() ExitIf() ExitWhile() ExtenSpy() ExternalIVR() Festival() Flash() FollowMe() ForkCDR() GetCPEID() Gosub() GosubIf() Goto() GotoIf() GotoIfTime() Hangup() HangupCauseClear() IAX2Provision() ICES() IVRDemo() If() ImportVar() Incomplete() JACK() JabberJoin() JabberLeave() JabberSend() JabberSendGroup() JabberStatus() Log() MP3Player() MSet() Macro() MacroExclusive() MacroExit() MacroIf() MailboxExists() MeetMe() MeetMeAdmin() MeetMeChannelAdmin() MeetMeCount() MessageSend() Milliwatt() MinivmAccMess() MinivmDelete() MinivmGreet() MinivmMWI() MinivmNotify() MinivmRecord() MixMonitor() Monitor() Morsecode() NBScat() NoCDR() NoOp() ODBCFinish() ODBC_Commit() ODBC_Rollback() OSPAuth() OSPFinish() OSPLookup() OSPNext() Originate() PJSIPHangup() PJSIPNotify() Page() Park() ParkAndAnnounce() ParkedCall() PauseMonitor() PauseQueueMember() Pickup() PickupChan() PlayTones() Playback() PrivacyManager() Proceeding() Progress() Queue() QueueLog() QueueUpdate() RaiseException() Read() ReadExten() ReceiveFAX() ReceiveMF() ReceiveSF() ReceiveText() Record() Reload() RemoveQueueMember() ResetCDR() RetryDial() Return() Ringing() SIPAddHeader() SIPDtmfMode() SIPRemoveHeader() SIPSendCustomINFO() SLAStation() SLATrunk() SMS() SayAlpha() SayAlphaCase() SayCountedAdj() SayCountedNoun() SayDigits() SayMoney() SayNumber() SayOrdinal() SayPhonetic() SayUnixTime() SendDTMF() SendFAX() SendImage() SendMF() SendSF() SendText() SendURL() Set() SetAMAFlags() Signal() SkelGuessNumber() SoftHangup() SpeechActivateGrammar() SpeechBackground() SpeechCreate() SpeechDeactivateGrammar() SpeechDestroy() SpeechLoadGrammar() SpeechProcessingSound() SpeechStart() SpeechUnloadGrammar() StackPop() StartMusicOnHold() Stasis() StatsD() StopMixMonitor() StopMonitor() StopMusicOnHold() StopPlayTones() StoreDTMF() StreamEcho() System() TestClient() TestServer() ToneScan() Transfer() TryExec() TrySystem() UnpauseMonitor() UnpauseQueueMember() UserEvent() VMAuthenticate() VMSayName() Verbose() VoiceMail() VoiceMailMain() VoiceMailPlayMsg() Wait() WaitDigit() WaitExten() WaitForCondition() WaitForNoise() WaitForRing() WaitForSignal() WaitForSilence() WaitForTone() WaitUntil() While() Zapateller()