<br><br><div class="gmail_quote">On Wed, Oct 14, 2009 at 3:01 PM, Simon J Mudd <span dir="ltr">&lt;<a href="mailto:sjmudd@pobox.com">sjmudd@pobox.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi again,<br>
<br>
I&#39;m trying to build up a soho dialplan to replicate an existing Asterisk<br>
setup I want to replace.<br>
<br>
I&#39;m editing<br>
/usr/local/freeswitch/conf/dialplan/default/00_mydomain.com.xml to add<br>
some dialplan rules for various destination numbers I&#39;m using. These<br>
dialplans may use one of several gateways I have configured.<br>
<br>
I currently have:<br>
<br>
&lt;include&gt;<br>
  &lt;extension name=&quot;<a href="http://spanish_mobiles.mydomain.com" target="_blank">spanish_mobiles.mydomain.com</a>&quot;&gt;<br>
    &lt;condition field=&quot;destination_number&quot; expression=&quot;^(6\d{8})$&quot;&gt;<br>
      &lt;action application=&quot;set&quot; data=&quot;effective_caller_id_number=${outbound_caller_id_number}&quot;/&gt;<br>
      &lt;action application=&quot;set&quot; data=&quot;effective_caller_id_name=${outbound_caller_id_name}&quot;/&gt;<br>
      &lt;action application=&quot;bridge&quot; data=&quot;sofia/gateway/asterisk/$1&quot;/&gt;<br>
    &lt;/condition&gt;<br>
  &lt;/extension&gt;<br>
<br>
  &lt;extension name=&quot;<a href="http://spanish_fijos.mydomain.com" target="_blank">spanish_fijos.mydomain.com</a>&quot;&gt;<br>
    &lt;condition field=&quot;destination_number&quot; expression=&quot;^(9\d{8})$&quot;&gt;<br>
      &lt;action application=&quot;set&quot; data=&quot;effective_caller_id_number=${outbound_caller_id_number}&quot;/&gt;<br>
      &lt;action application=&quot;set&quot; data=&quot;effective_caller_id_name=${outbound_caller_id_name}&quot;/&gt;<br>
      &lt;action application=&quot;bridge&quot; data=&quot;sofia/gateway/asterisk/$1&quot;/&gt;<br>
    &lt;/condition&gt;<br>
  &lt;/extension&gt;<br>
<br>
  ... more stuff not shown ...<br>
<br>
&lt;/include&gt;<br>
<br>
Which routes out to my existing asterisk installation.<br>
<br>
I now want to record all calls. Looking at<br>
<a href="http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_record_session" target="_blank">http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_record_session</a><br>
it seems I need to add a section like into each entry prior to the<br>
application=&quot;bridge&quot;.<br>
<br>
    &lt;action application=&quot;set&quot; data=&quot;gateway_name=XXXXX&quot;/&gt;<br>
<br>
    &lt;action application=&quot;set&quot; data=&quot;RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(%Y-%m-%d %H:%M)}&quot;/&gt;<br>
    &lt;action application=&quot;set&quot; data=&quot;RECORD_COPYRIGHT=(C) 2009 my data here.&quot;/&gt;<br>
    &lt;action application=&quot;set&quot; data=&quot;RECORD_SOFTWARE=FreeSwitch&quot;/&gt;<br>
    &lt;action application=&quot;set&quot; data=&quot;RECORD_ARTIST=My name&quot;/&gt;<br>
    &lt;action application=&quot;set&quot; data=&quot;RECORD_COMMENT=My comment&quot;/&gt;<br>
    &lt;action application=&quot;set&quot; data=&quot;RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}&quot;/&gt;<br>
    &lt;action application=&quot;set&quot; data=&quot;RECORD_STEREO=true&quot;/&gt;<br>
    &lt;action application=&quot;record_session&quot; data=&quot;$${base_dir}/recordings/${gateway_name}_${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav&quot;/&gt;<br>
<br>
My question is how do I avoid repeatedly using these same 8-9 lines and<br>
&quot;merge&quot; this into some macro which given the right parameters allows me<br>
to define various extensions using different gateways but all configured<br>
&quot;the same way&quot;?<br>
<br>
Thanks for any pointers to how this should be done.<br></blockquote><div><br>Try using the execute_extension app. It&#39;s kinda like a gosub in BASIC: it&#39;ll go and execute an extension and then come back and continue executing. Put all those lines into a single extension and then call them from other extensions via execute_extension.<br>
-MC<br></div></div><br>