FreeSWITCH 1.8
上QQ阅读APP看书,第一时间看更新

Actions and anti-actions

Actions and anti-actions live inside conditions. Actions are executed if the condition expression matches. Anti-actions are executed if the condition don't match.

Let's look at an "hello world" example, insert the following at the beginning of default.xml dialplan:

<extension name="giovanni_05"> 
   <condition field="destination_number" expression="^4321$"> 
            <action application="answer"/>   
         <action application="log" data="WARNING YESSSSS"/> 
         <anti-action application="log" data="WARNING NOOOOOOOOT"/> 
         <action application="hangup"/> 
   </condition> 
</extension> 

Then, as usual, reloadxml, and call 4321. Your terminal will show the following:

Now, call instead 5555 (or whatever):

As you can see, this time only the anti-action has been executed. There is no "answer", and no explicit hangup (the hangup there is because when there are no more (anti-)actions in the call's TODO list, then... hangup. What else?).