Originate()

Since 1.6.1.0 Applications Found this useful? Upvote it. ×

Originate a call.

Last reviewed 2026-04-14

Originate(tech_data,type,arg1[,arg2,arg3,timeout,options])
Dialplan Builder -- build your Originate() command
Channel technology and data for creating the outbound channel. For example, SIP/1234.
If the type is `app`, then this is the application name. If the type is `exten`, then this is the context that the channel will be sent to.
If the type is `app`, then this is the data passed as arguments to the application. If the type is `exten`, then this is the extension that the channel will be sent to.
If the type is `exten`, then this is the priority that the channel is sent to. If the type is `app`, then this parameter is ignored.
Timeout in seconds. Default is 30 seconds.
Before originating the outgoing call, Gosub to the specified location using the current channel.
Comma-separated list of codecs to use for this call. Default is `slin`.
Originate asynchronously. In other words, continue in the dialplan without waiting for the originated channel to answer.
Before originating the outgoing call, Gosub to the specified location using the newly created channel.
The caller ID number to use for the called channel. Default is the current channel's Caller ID number.
The caller ID name to use for the called channel. Default is the current channel's Caller ID name.
A series of channel variables to set on the destination channel.
Full arguments reference
  • tech_data required - Channel technology and data for creating the outbound channel. For example, SIP/1234.
  • type required - This should be app or exten, depending on whether the outbound channel should be connected to an application or extension.
  • arg1 required - If the type is app, then this is the application name. If the type is exten, then this is the context that the channel will be sent to.
  • arg2 - If the type is app, then this is the data passed as arguments to the application. If the type is exten, then this is the extension that the channel will be sent to.
  • arg3 - If the type is exten, then this is the priority that the channel is sent to. If the type is app, then this parameter is ignored.
  • timeout - Timeout in seconds. Default is 30 seconds.
  • options
    • a - Originate asynchronously. In other words, continue in the dialplan without waiting for the originated channel to answer.
    • b - Before originating the outgoing call, Gosub to the specified location using the newly created channel.
      • context
      • exten
      • priority required
        • arg1 required (multiple)
        • argN
    • B - Before originating the outgoing call, Gosub to the specified location using the current channel.
      • context
      • exten
      • priority required
        • arg1 required (multiple)
        • argN
    • C - Comma-separated list of codecs to use for this call. Default is slin.
    • c - The caller ID number to use for the called channel. Default is the current channel's Caller ID number.
    • n - The caller ID name to use for the called channel. Default is the current channel's Caller ID name.
    • v - A series of channel variables to set on the destination channel.
      • var1 (multiple)
        • name required
        • value required
Description

This application originates an outbound call and connects it to a specified extension or application. This application will block until the outgoing call fails or gets answered, unless the async option is used. At that point, this application will exit with the status variable set and dialplan processing will continue.

This application sets the following channel variable before exiting:

  • ORIGINATE_STATUS - This indicates the result of the call origination.
    • FAILED
    • SUCCESS
    • BUSY
    • CONGESTION
    • HANGUP
    • RINGING
    • UNKNOWN - In practice, you should never see this value. Please report it to the issue tracker if you ever see it.
Arguments
  • tech_data required - Channel technology and data for creating the outbound channel. For example, SIP/1234.
  • type required - This should be app or exten, depending on whether the outbound channel should be connected to an application or extension.
  • arg1 required - If the type is app, then this is the application name. If the type is exten, then this is the context that the channel will be sent to.
  • arg2 - If the type is app, then this is the data passed as arguments to the application. If the type is exten, then this is the extension that the channel will be sent to.
  • arg3 - If the type is exten, then this is the priority that the channel is sent to. If the type is app, then this parameter is ignored.
  • timeout - Timeout in seconds. Default is 30 seconds.
  • options
    • a - Originate asynchronously. In other words, continue in the dialplan without waiting for the originated channel to answer.
    • b - Before originating the outgoing call, Gosub to the specified location using the newly created channel.
      • context
      • exten
      • priority required
        • arg1 required (multiple)
        • argN
    • B - Before originating the outgoing call, Gosub to the specified location using the current channel.
      • context
      • exten
      • priority required
        • arg1 required (multiple)
        • argN
    • C - Comma-separated list of codecs to use for this call. Default is slin.
    • c - The caller ID number to use for the called channel. Default is the current channel's Caller ID number.
    • n - The caller ID name to use for the called channel. Default is the current channel's Caller ID name.
    • v - A series of channel variables to set on the destination channel.
      • var1 (multiple)
        • name required
        • value required
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
ConfBridge() MusicOnHold() StartMusicOnHold() StopMixMonitor() 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() 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() Stasis() StatsD() 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
ConfBridge() MusicOnHold() StartMusicOnHold() StopMixMonitor() 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() 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() Stasis() StatsD() 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()