Anthony / Michael,<div><br class="webkit-block-placeholder"></div><div>Thanks for the quick responses. &nbsp;What I don&#39;t want to do is &quot;drive the call&quot; (by that listen on a socket ... do this on this event ... or anything else that my very limited FS foo would break) ... Just want to start it and then give it instructions on where to go.</div>
<div><br class="webkit-block-placeholder"></div><div>So I guess a better question would be ... how do I give directions to FS for this (and I get the 1st part ... that&#39;s obvious ... really lost on the DTMF digit part) ... and please keep in mind we&#39;re talking hundreds of extensions / IVR&#39;s and distributed machines so I can&#39;t have any dependancy on static conf files other than maybe something like what Michael mentioned where I point every call to something:</div>
<div><br class="webkit-block-placeholder"></div><div>[campaign]</div><div>exten =&gt; 100,1,ANSWER()</div><div>exten =&gt; 100,n,PLAYBACK(somefile)</div><div>exten =&gt; 100,n,BACKGROUND(somefile)</div><div>exten =&gt; 100,n,WAITEXTEN(4)</div>
<div>exten =&gt; 100,n,HANGUP()</div><div><br class="webkit-block-placeholder"></div><div>but in that same context is someone triggers DTMF:</div><div>exten =&gt; 1,1,DOSOMETHING</div><div>exten =&gt; 2,1,DOSOMETHING</div>
<div><br class="webkit-block-placeholder"></div><div>I was imaging issuing originate via XML_RPC ... something like&nbsp;<span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre; ">originate sofia/$ANI@$IP $SOMEEXTEN then on answer when FS tries to connect to $SOMEEXTEN it will ask me what to do via xml_curl ... where I would normally respond with something like this:</span></div>
<div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;"><br class="webkit-block-placeholder"></span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;document type=&quot;freeswitch/xml&quot;&gt;
  &lt;section name=&quot;dialplan&quot; description=&quot;FS RESPONSE&quot;&gt;
    &lt;context name=&quot;public&quot;&gt;
      &lt;extension name=&quot;$EXTEN&quot;&gt;
        &lt;condition field=&quot;destination_number&quot; expression=&quot;&quot;&gt;
          &lt;action application=&quot;set&quot; data=&quot;hangup_after_bridge=true&quot;/&gt;
          &lt;action application=&quot;set&quot; data=&quot;continue_on_fail=true&quot;/&gt;
          &lt;action application=&quot;set&quot; data=&quot;call_timeout=180&quot;/&gt;
          &lt;action application=&quot;set&quot; data=&quot;proxy_media=true&quot;/&gt;
          &lt;action application=&quot;set&quot; data=&quot;pass_rfc2833=true&quot;/&gt;
          &lt;action application=&quot;set&quot; data=&quot;accountcode=$CUSTOMER&quot; /&gt;
          &lt;action application=&quot;set&quot; data=&quot;origination_caller_id_name=NULL&quot; /&gt;
          &lt;action application=&quot;set&quot; data=&quot;origination_caller_id_number=$CIDNUM&quot; /&gt;
          &lt;action application=&quot;set&quot; data=&quot;effective_caller_id_name=NULL&quot; /&gt;
          &lt;action application=&quot;set&quot; data=&quot;effective_caller_id_number=$CIDNUM&quot; /&gt;
          &lt;action application=&quot;set&quot; data=&quot;userfield=$BUNCHOFCRAPFORMYCDR&quot; /&gt;
          &lt;action application=&quot;bridge&quot; data=&quot;sofia/external/$ANI@$PROVIDERIP&quot; /&gt;
        &lt;/condition&gt;
      &lt;/extension&gt;</span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre; ">    &lt;/context&gt;</span><br></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;">  &lt;/section&gt;
&lt;/document&gt;</span><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;">
</span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;"><br class="webkit-block-placeholder"></span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;">The challenge I&#39;ve got is I have no idea how to do stuff like the IVR mentioned above (the playback part is easy) ... but I can&#39;t grasp conceptually how to get the &quot;context&quot; with &quot;multiple extensions&quot; part back to FS via this method (is it possible?)... </span></div>
<div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;"><br class="webkit-block-placeholder"></span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;">Sorry for what is probably a very simple answer and any AST references (but I&#39;ve been using it in heavy production environments for about 5 years).  Just trying to &quot;port&quot; what I do today without making my brain melt out of my ears (and it doesn&#39;t take much for that to happen). </span></div>
<div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;"><br class="webkit-block-placeholder"></span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;">Shelby</span></div>
<div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;"><br class="webkit-block-placeholder"></span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;">PS ... Really enjoy the list.  I usually fall out of my chair laughing once a day from your remarks Anthony.  Keep it coming!</span></div>
<div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;"><br class="webkit-block-placeholder"></span></div><div><span class="Apple-style-span" style="font-family: Courier; font-size: 12px; line-height: 13px; white-space: pre;"><br>
</span><div class="gmail_quote">On Fri, Jan 23, 2009 at 4:55 PM, Anthony Minessale <span dir="ltr">&lt;<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@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;">
Does AST mean Asterisk Open Source PBX ?<br><br>If so, then yes I am familiar with it&#39;s archetechure as I am a former developer from that project.<br><br>You have 3 choices with FreeSWITCH<br><br>1) You can open a dedicated connection to mod_event_socket or XMLRPC per call and issue the originate command from there: <br>


&nbsp;&nbsp;&nbsp; This will block until you know for sure the outcome of the
attempt.&nbsp; If it&#39;s success it will give you the uuid if not it gives you
the cause code.<br><br>2)
You can use a single mod_event_socket or XMLRPC connection to send all
calls but use the bgapi mechanism which will do the same as above<br>
&nbsp;&nbsp;&nbsp; only asynchronously, The command will return immediately and the
result will be fired as an event that you can pick up on the same or
different event_socket connection or<br>&nbsp; &nbsp; other event consumer such as a custom C,perl,lua etc module.<br>
<br>3) You can use mod_xml_cdr to generate detailed 1-file-per-leg call
files that will tell you when where and why the calls failed or did not
fail.<div><div></div><div class="Wj3C7c"><br><br><br><div class="gmail_quote">On Fri, Jan 23, 2009 at 4:39 PM, Michael Collins <span dir="ltr">&lt;<a href="mailto:msc@freeswitch.org" target="_blank">msc@freeswitch.org</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">
<div>On Fri, Jan 23, 2009 at 2:15 PM, Shelby Ramsey &lt;<a href="mailto:sicfslist@gmail.com" target="_blank">sicfslist@gmail.com</a>&gt; wrote:<br>
&gt; Sorry for the double post ... actually hit send too early ...<br>
&gt; OK ... Here goes another I&#39;m doing this with AST &nbsp;... but I want to move it<br>
&gt; to FS. &nbsp;Searched via google site:<a href="http://lists.freeswitch.org" target="_blank">lists.freeswitch.org</a> auto dialer and others<br>
&gt; ... nothing useful.<br>
&gt; Today I have a platform for auto dialing with AST (centrally managed ...<br>
&gt; about 10 machines) and we do this:<br>
&gt; &nbsp; -- Remote machines query central DB for numbers to call based on certain<br>
&gt; configs<br>
&gt; &nbsp; -- Use AMI to generate the call<br>
&gt; &nbsp; -- If call gets answered, extension info queried via rta (central db<br>
&gt; again)<br>
&gt; The nice thing about all of this is it&#39;s relatively easy to manage (through<br>
&gt; one central web interface we built) and it works ... the bad part is<br>
&gt; reporting ...<br>
&gt; So ... conceptually I&#39;m trying to accomplish the same thing ...<br>
&gt; Today we use FS a lot for termination of VoIP traffic ... all done via<br>
&gt; XML_CURL ... which is awesome &nbsp;(not to xml cdr ... and the &quot;proxying&quot; of<br>
&gt; media) ...<br>
&gt; Would like to do something like:<br>
&gt; &nbsp; -- originate request (looks simple enough)<br>
&gt; &nbsp; -- on answer XML_CURL posts info<br>
<br>
</div>Several choices, depending upon how much you want it handled inside<br>
the dialplan vs. handled in the scripting language. For the sake of<br>
testing you could do something like this:<br>
&lt;extension name=&quot;ivr-start&quot;&gt;<br>
 &nbsp;&lt;condition field=&quot;destination_number&quot; expression=&quot;ivr_whatever&quot;&gt;<br>
 &nbsp; &nbsp;&lt;action application=&quot;set&quot; data=&quot;execute_on_answer=transfer<br>
IVR_ANSWER XML default&quot;/&gt;<br>
 &nbsp; &nbsp;&lt;!-- rest of dialplan --&gt;<br>
 &nbsp;&lt;/condition&gt;<br>
&lt;/extension&gt;<br>
<br>
Then have:<br>
&lt;extension name=&quot;ivr-answer&quot;&gt;<br>
 &nbsp;&lt;condition field=&quot;destination_number&quot; expression=&quot;IVR_ANSWER&quot;&gt;<br>
 &nbsp; &nbsp;&lt;action application=&quot;lua&quot; data=&quot;post-info.lua ${some_important_value}&quot;/&gt;<br>
 &nbsp;&lt;/condition&gt;<br>
&lt;/extension&gt;<br>
<br>
This would have any answered call go to the &quot;ivr-answer&quot; extension<br>
while unanswered calls could stay in the ivr-start extension to get<br>
properly handled. (Busy, no answer, invalid/SIT, etc.)<br>
<br>
You could then have the &quot;ivr-answer&quot; extension do whatever is<br>
appropriate, like listen for digits, play announcement, beg for money,<br>
etc. :)<br>
<br>
-MC<br>
<div><br>
&gt; But for the life of me I can&#39;t figure out how to translate this into the xml<br>
&gt; response ...<br>
&gt; [campaign]<br>
&gt; exten =&gt; 100,1,ANSWER()<br>
&gt; exten =&gt; 100,n,WAIT(2)<br>
&gt; exten =&gt; 100,n,BACKGROUND(${SOUND_DIR}/somefile)<br>
&gt; exten =&gt; 100,n,WAITEXTEN(10)<br>
&gt; exten =&gt; 100,n,HANGUP()<br>
&gt; exten =&gt; 1,1,PLAYBACK(goodbye)<br>
&gt; .... and so on ...<br>
&gt; I&#39;ve looked at the ivr.conf stuff but it&#39;s all static and all of this has to<br>
&gt; be manageable via a web interface .... meaning dumping into a DB and<br>
&gt; returning an XML response seems reasonable ... but trying to stick or modify<br>
&gt; static text files from the web interface is too much text parsing and bad<br>
&gt; things will happen ...<br>
&gt; Any thoughts or pointing me in the right direction would be appreciated.<br>
&gt; Shelby<br>
&gt;<br>
&gt;<br>
&gt;<br>
</div>&gt; _______________________________________________<br>
&gt; Freeswitch-users mailing list<br>
&gt; <a href="mailto:Freeswitch-users@lists.freeswitch.org" target="_blank">Freeswitch-users@lists.freeswitch.org</a><br>
&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;<br>
&gt;<br>
<br>
_______________________________________________<br>
Freeswitch-users mailing list<br>
<a href="mailto:Freeswitch-users@lists.freeswitch.org" target="_blank">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>
</blockquote></div><br><br clear="all"><br></div></div>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>

<br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com" target="_blank">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank">PAYPAL:anthony.minessale@gmail.com</a><br>

IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a><br>
<a href="http://iax:guest@conference.freeswitch.org/888" target="_blank">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400<br>
<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></div>