simple (fixed) asterisk callback configuration

intro

This a simple howto get a callback feature into asterisk.

Its based on the assumption, that you have a account at a provider, which lets you dial into your box remotely and the location you call from provides a callerID. So this setup is mostly useful, if you have a flatrate at home and would like to use it, lets say, from your parents place.

The call process looks is the following:

  1. you call from the phone which sends the caller ID 004144555111 the trigger number 004144555666
  2. wait until you get a buisy signal
  3. hangup
  4. wait until it rings
  5. pick it up
  6. enter password (optional, see security remark)
  7. enter target number
The target number will then be called according to the outbound call routing in your pbx.

Of course, you can setup more than one of those in case you are in a hotel and your room fone provides direct dial through callerID. Just install it temporarily for your hotel stay on your home asterisk.

Security remark: The authentication of the callback trigger is based on the callerID of the calling line. If your SIP provider allows SIP URI calls the callerID might be spoofed. I thats the case, you should but additional security in place (like a password, see below).

A more complicated setup which allows to trigger a callback from any number can be found here.

how does it work

  1. The system recognizes the number you dialed and the number you dialed from (CallerID)
  2. the call gets rejected
  3. a fixed call file will be copied from a directory (/var/spool/asterisk/ in the example below) into the outgoing directory
  4. asterisk initiates the outbound call according to the rules in the call file
  5. once you pick up the callback call, you will get a dialtone and be able to dial as from a local extension

example

004144555666: inbound number on your asterisk
004144555111: number of the remote destination which would likes to get a callback
provider: is the SIP account of your outbound (flatrate?) SIP provider, as configured in sip.conf
somewhere in your inbound context in extensions.conf:
exten => 004144555666/004144555111,1,NoOp(provider callback destination)
exten => 004144555666/004144555111,2,Wait(1)
exten => 004144555666/004144555111,3,system(cp /var/spool/asterisk/provider.call /var/spool/asterisk/outgoing/)
exten => 004144555666/004144555111,4,HangUp
somewhere in extensions.conf (without password):
[callback-dialtone]
exten => s,1,answer()
exten => s,2,background(welcome)
exten => s,3,DISA(no-password,home)
exten => s,4,goto(2)

somewhere in extensions.conf (with password):

[callback-dialtone-auth]
exten => s,1,answer()
exten => s,2,background(welcome)
exten => s,3,authenticate(5678)
exten => s,4,DISA(no-password,home)
call file: /var/spool/asterisk/provider.call
Channel: SIP/004144555111@provider
Context: callback-dialtone
Extension: s
MaxRetries: 2
RetryTime: 1

bugs & questions

In case of questions &bugs please leave a comment here in this blog.

Trackbacks

  1. variable asterisk callback

    introThis howto is a extension to my recent "simple (fixed) asterisk callback configuration". This configuration is useful to trigger a callback from a location you rarely use, but provides a callerID. This is for example useful in hotel ro

Comments

Display comments as (Linear | Threaded)

  1. Yossi Ben Hagai says:

    You may want to use mv instead of cp as asterisk may grab a partial file from outgoing dir while the copy operation is still in progress.


Add Comment


HTML-Tags will be converted to Entities.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Standard emoticons like :-) and ;-) are converted to images.