SME 7 SAIL (SARK) (Asterisk) Custom Apps

Sonora Communications, Inc.

  • Increase font size
  • Default font size
  • Decrease font size

SME 7 SAIL (SARK) (Asterisk) Custom Apps

E-mail Print PDF

You can not use the pipe symbol (vertical bar) in a custom application.  Try a comma instead.

IVR Handling of Known Extensions

Create a greeting that says something like:

If you know the extension of the person you require, press
For Sales, press 2.

For Technical Support, press 3.

In the "1" entry on the IVR, reference a Custom App named "enter-extension".

include => internal-presets
include => extensions

exten => s,1,Set(TIMEOUT(digit)=5)     ;Digit Timeout 5 secs
exten => s,n,Set(TIMEOUT(response)=10) ;Response Timeout 10
exten => s,n,Background(usergreeting0002)
exten => s,n,WaitExten ;Wait for an extension to be dialed
exten => s,n,Goto(enter-extension,t,1)

exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(enter-extension,s,1)

exten => t,1,Goto(extensions,${SYSOP},1)
exten => t,2,Hangup



exten => s,1,Voicemail,u5200
exten => s,2,Hangup()

Preceding the extension number:

b = busy message
u = unavailable message
s = no message - beep only

Dial Extensions, Play a System Greeting and Send to Mailbox with No Additional Greeting

exten => s,1,Dial(SIP/5002&SIP/5003,20)
exten => s,2,Playback(usergreeting0005,skip)
exten => s,3,Voicemail,s5021
exten => s,4,Hangup()


Another way to do it is to hand code it in a custom app like this...

exten => s,1,Authenticate(XXXXX)
exten => s,2,DISA(no-password,default)

Then simply drive the custom app from your IVR. This will give you DISA access to the sail context "default" which will allow you to dial anything you can dial from a regular extension in the default cluster.


  • When adding the trunkline the stanza name has to be iaxfwd
  • A context must be set, ex: context=fromiaxfwd
  • Then create a custom app named fromiaxfwd to get to the internal extension
exten => FWDNUMBER,1,Dial(sip/EXTENSION)

Call Forwarding

A call forward agi entry point has been added so you can invoke call forwarding from custom apps. e.g.


Type can be CFIM (immediate) or CFBS (on busy or no answer).


Forward 5002 immediate to 5003


Forward 5002 immediate to Voicemail (aka DND)


In keeping with our recursive roots a logical CF to voicemail is a CF to self!

Clear any Immediate Forward on 5002.


More Call Forwarding

Q:   Should the caller be told that a call is being diverted?

When I tested mine it rings the extension and then there is a silence then it rings the extension it is diverted to. This is also the case if an alias is set to call an outside number ie. a cell phone.

A:   On a call to a phone with CFBS to an internal extension enabled it will not announce, it will simply bounce the call after whatever ringdelay you have set in the phone. This may give a brief silence or broken ring as it transfers. However, if the CFBS is to an external number then you will get an announce "please hold while I try to connect you" because we assume there will be a few seconds delay while we do the redirect.

If you are redirecting to an alias then the alias doesn't know what has happened previously in the call so you will get no announce. If you would like an announcement, then transfer to a custom app first. The custom app can do an announce and then hand control to the alias.

To hand control to an alias from your app do something like...

exten => s,1,Playback(pls-hold-while-try)
exten => s,2,agi(selintra,OutCluster,7000)
exten => s,3,hangup

where 7000 is the alias.

Last Updated on Friday, 05 September 2008 09:34