[asterisk-users] RES: RES: How to invoke a binary file from the dial plan?

Kevin Larsen kevin.larsen at pioneerballoon.com
Wed Jun 3 08:29:13 CDT 2015


> Hi Kevin.
> 
> Thank you very much for the hint! It worked very well!
> 
> Your example     ' exten => 1234,1,System(echo "This is a test" >> /
> var/log/asterisk/test.txt) '     executes when the SIP client (my 
> softphone Jitsi) sends  a SIP INVITE to asterisk.  So, the softphone
> tries to establish a session with target 1234.
> 
> Now, lets suppose my softphone rings and I answer a call. During the
> call, the caller asks me to execute a command (ex: to open a door or
> gate). In this case, what have I to program in dial plan to Asterisk
> execute System() again? Is it possible to execute a dial plan even 
> during an ongoing call?
> 
> Finally, lets suppose I want to use my softphone to execute a dial 
> plan, even without establishing a call (no session with target 
> 1234). For example, If I decide to open a dor or gate using my 
> softphone, without existing an ongoing call, what have I to program 
> in dial plan to Asterisk executes System(). Is this idea possible?
> 
> Any hint will be very hepful!

I love this question, simply because it allows me to talk about one of the 
neatest features I programmed into my system that barely anyone knows 
exists. Plus it lines up pretty much exactly with what you are trying to 
do.

We have our gate control system tied into our Asterisk phone system so it 
is possible to dial a code on the phone and open the entrance gate to let 
someone in after hours. Only problem is this happens so rarely that no one 
(myself included) ever remembered the code. Thus a search for a better 
way.

Now, when someone uses the gate phone to request entry, I change the 
caller ID on the display of the person who answers to read "Press 9 to 
open gate". During the call, they can hit 9 at any time and the gate will 
open for them. Up until they answer, the caller ID reads Gate Phone, but 
when they answer, it changes to that text.

The part about opening the gate is the magic piece you want to look into. 
Read up on applicationmap in features.conf. It's pretty simple and very 
effective. Here is what mine looks like. I am going to replace my actual 
command with <insert command here>.

gate => 9,self/callee,System,<insert command here> ; Custom application to 
open the gate.

This says that this feature is active in the 'gate' context of my 
dialplan. The dialing pattern it is looking for is a 9. 'self' tells it to 
activate on the channel that dialed it and callee says that the person 
receiving the call is the only one that can activate it (otherwise the 
person at the gate phone could hit 9 to open it). I am running the System 
dialplan application and passing it the <insert command here> value. 
Everything after the ';' is a comment as normal. The <insert command here> 
is equivalent to what you would put inside the '()' if it were in the 
dialplan (i.e. 'System(<insert command here>)').

Pretty straightforward to get it working once you know what to look for. 
Let me know if you want to know how I manipulate the Caller ID upon 
answering the call to give the instructions to the callee on how to open 
the gate/door.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20150603/f824a967/attachment-0001.html>


More information about the asterisk-users mailing list