Originate()

Since 1.6.1.0 Applications Found this useful? Upvote it. ×

Originate a call.

Last reviewed 2026-08-22

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, [[term:sip]]/1234.
If the type is `app`, then this is the application name. If the type is `exten`, then this is the [[term:context|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 [[term:dialplan|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 [[term:caller-id|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, SIPSession Initiation Protocol, the standard signaling protocol used to set up, manage, and tear down VoIP calls between Asterisk and phones or carriers./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 contextA named section of the dialplan that groups extensions. Calls enter a specific context and can only reach extensions visible from it, making contexts the basic unit of call routing and security. 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 dialplanThe core call-routing configuration of Asterisk, written mostly in extensions.conf as contexts, extensions, and priorities that decide how every call is handled. Full definition → 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 IDThe calling party number (and optionally name) presented on an outbound call, set from the endpoint or manipulated in the dialplan. 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 extensionA dialplan entry that matches a dialed number or pattern within a context and triggers a sequence of prioritized steps. 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 dialplanThe core call-routing configuration of Asterisk, written mostly in extensions.conf as contexts, extensions, and priorities that decide how every call is handled. Full definition → processing will continue.

This application sets the following channelA single call leg passing through Asterisk. Channels represent connections to endpoints and are what dialplan applications act on. 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, SIPSession Initiation Protocol, the standard signaling protocol used to set up, manage, and tear down VoIP calls between Asterisk and phones or carriers./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 contextA named section of the dialplan that groups extensions. Calls enter a specific context and can only reach extensions visible from it, making contexts the basic unit of call routing and security. 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 dialplanThe core call-routing configuration of Asterisk, written mostly in extensions.conf as contexts, extensions, and priorities that decide how every call is handled. Full definition → 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 IDThe calling party number (and optionally name) presented on an outbound call, set from the endpoint or manipulated in the dialplan. 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
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() Reference section rework and a batch of audio converter improvements 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() 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() Reference section rework and a batch of audio converter improvements 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() 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()