Excellent explanation, Michael. Thanks a lot.<br><br><div class="gmail_quote">16 ฦลืามฬั 2012šว. 2:47 ะฯฬฺุฯืมิลฬุ Michael Collins <span dir="ltr">&lt;<a href="mailto:msc@freeswitch.org">msc@freeswitch.org</a>&gt;</span> ฮมะษำมฬ:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Virendra,<br><br>If inline execution is still confusing you then it&#39;s because you are probably having a difficult time visualizing the two steps in dialplan processing: parsing and executing.<br>
<br>During the parsing phase, the dialplan module is going through each extension looking at the conditions. Each time a condition matches (shows &quot;PASS&quot; in the FS log) it then looks inside that condition to see if there are any actions. If there are actions inside the matching condition then each action is added to a &quot;task list&quot; in the order they appear in the dialplan. These actions are *NOT* executed right now. They are simply added to the big &quot;to-do list&quot; of actions. Then, once all the parsing is done, the dialplan module goes back to the task list and starts executing each action, one at a time.<br>

<br>Does that part make sense? If not, then the following information won&#39;t help you...<br><br>The &quot;inline&quot; execution of an action means that the action is executed *during the parsing phase*. In other words, when the dialplan module finds a matching condition and there is an action to add to the task list, it looks to see if there is an inline=&quot;true&quot; attribute. If there is, then the dialplan parser basically says, &quot;Oh, I should not add this action to the task list; instead I should *execute this action RIGHT NOW* before I continue.&quot; <br>

<br>To see that for real, consider this extension:<br><font style="font-family:courier new,monospace" size="1">š &lt;extension name=&quot;inline test&quot;&gt;<br>ššš &lt;condition field=&quot;destination_number&quot; expression=&quot;^(5599)$&quot;&gt;<br>

ššššš &lt;action application=&quot;log&quot; data=&quot;INFO I&#39;m first!&quot;/&gt;<br>ššššš &lt;action application=&quot;log&quot; data=&quot;INFO Oh no you&#39;re not!&quot; inline=&quot;true&quot;/&gt;<br></font><font style="font-family:courier new,monospace" size="1">ššššš &lt;action application=&quot;log&quot; data=&quot;INFO Bummer, dude!&quot;/&gt;<br>


</font><font style="font-family:courier new,monospace" size="1">ššš &lt;/condition&gt;šššššššššššššššššššššššššššššššššššššššššš <br>š &lt;/extension&gt;</font><br><br>So, when I dial 5599, which debug line gets printed first? To find out, check out this <a href="http://pastebin.freeswitch.org/18406" target="_blank">pastebin</a>.<br>

<br>The dialplan processing starts at line #41 of the pastebin. Every log line that starts with &quot;Dialplan:&quot; represents the dialplan module parsing the dialplan. The interesting stuff occurs starting at line #269 - we match the condition on the extension. Line #270 is the first action from this condition to add to the task list. Now, look closely at lines #271-273. On line #271 the dialplan parser sees the action - but notice the &quot;INLINE&quot; there. At line #272 you see the actual log that the action is being executed. On line #273 is the actual log application&#39;s output. So, this action was not added to the task list but rather executed right there. It was &quot;executed inline.&quot; Note that at line #274 it goes back to dialplan parsing and adding items to the task list.<br>

<br>Skip down to line #294 - there you&#39;ll see the items from the task list actually being executed. The two log applications that were not executed &quot;inline&quot; finally get executed there at the end. <br><br>If you really want to see how this works try adding and removing the inline=&quot;true&quot; on the various actions in this extension. Watch the logs. You&#39;ll see that anything with inline=&quot;true&quot; gets executed long before the items that don&#39;t have inline=&quot;true&quot;.<br>

<br>Hope this helps.<br><br>-MC<br><br><div class="gmail_quote">On Tue, Feb 14, 2012 at 9:26 PM, virendra bhati <span dir="ltr">&lt;<a href="mailto:virbhati@gmail.com" target="_blank">virbhati@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Hi,<br><br>I have FS 1.0.6 &quot;bridge&quot; book and after reading chapters 5 and 8. Still this is very confusing concept. that&#39;s why i want to know from you guys an simple language with 2 or more example if you can reply with answer. Inline execution is very confusing <br>

</div></blockquote><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">concept for me.<br></div></blockquote><br></div><br>
<br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
<a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br>