<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Why are you specifying the 5801 extension before the eavesdrop? You want to dial the Softphone extension: 1003, so all you need to do is to specifiy it on the originate string and pass the control to the eavesdrop app:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>originate <a href="mailto:sofia/internal/1003@X.X.X.X">sofia/internal/1003@X.X.X.X</a> &amp;eavesdrop(uuid)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>You don&#8217;t need any more references to 5801, specially because you already have the UUID which is all you need to do the eavesdrop<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] <b>On Behalf Of </b>x.liu<br><b>Sent:</b> Tuesday, February 28, 2012 2:27 PM<br><b>To:</b> freeswitch-users@lists.freeswitch.org<br><b>Subject:</b> Re: [Freeswitch-users] How to bridge a call to an extension defined in dialplan<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Thanks again!<br><br>Yes, I used dvarne's Java ESL library for a while.<br><br>It works fine for the recording the a-leg, but the b-leg which is originated with eavesdrop to a Softphone does not work as expected.<br>There was an error in my originate usage:<br><br><o:p></o:p></p><pre>originate sofia/internal/1003%x.x.x.x 5801&amp;eavesdrop &quot; + this.channelUniqueID);<o:p></o:p></pre><p class=MsoNormal>I changed the extension 5801 to &amp;socket(127.0.0.1:9981 async full) which is the action inside the extension 5801<br>then my softphone does not hang up any more, but I still can not hear the conversation of a-leg on the softphone.<br><br>There may be something wrong with my use of the combination of originate and eavesdrop.<br>I will look into it again.<br><br>Best,<br>Xing<br><br><br>On 02/28/2012 06:21 PM, Hector Geraldino wrote: <o:p></o:p></p><pre>Ok, I can see you're using dvarne's java ESL library. Please download the source code from GIT and try to run the outbound client demo (located in src/test/java/SocketClientTest.java)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Assuming you're already familiar with the netty programming model, here's what I did: I changed the implementation of the SimpleHangupOutboundHandler class in the demo to do what you're asking: it will first answer the call, bridge it to an extension, record the call and make a 2nd call to another extension using the combination of originate + eavesdrop. Backup the original file and replace it with this new implementation. Also adjust the port number on the SocketClientTest class to match the one configured in your dialplan.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hope this serve as an starting point...<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>-----Original Message-----<o:p></o:p></pre><pre>From: <a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">freeswitch-users-bounces@lists.freeswitch.org</a> [<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">mailto:freeswitch-users-bounces@lists.freeswitch.org</a>] On Behalf Of x.liu<o:p></o:p></pre><pre>Sent: Tuesday, February 28, 2012 12:40 PM<o:p></o:p></pre><pre>To: <a href="mailto:freeswitch-users@lists.freeswitch.org">freeswitch-users@lists.freeswitch.org</a><o:p></o:p></pre><pre>Subject: Re: [Freeswitch-users] How to bridge a call to an extension defined in dialplan<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Thanks for the detailed explanations, Hector!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>First,  sorry for my further questions here:<o:p></o:p></pre><pre>  In 2. you originate a 2nd call to an internal extension, what is this<o:p></o:p></pre><pre>internal extension doing?<o:p></o:p></pre><pre>  In 5. from where you originate the 3rd call, your java app or<o:p></o:p></pre><pre>dialplan, or does it matter?<o:p></o:p></pre><pre>          and to which extension?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I am asking those questions because I haven't got mine work and want to<o:p></o:p></pre><pre>fully understand how you did it.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I originate a 2rd call to my softphone from my java app. The softphone<o:p></o:p></pre><pre>was ringing and I clicked Answer button on the GUI<o:p></o:p></pre><pre>then it was immediately terminated.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I got some confusing outputs like<o:p></o:p></pre><pre>      Hangup sofia/internal/1003 [CS_ROUTING] [NO_ROUTE_DESTINATION] and<o:p></o:p></pre><pre>      Transfer sofia/internal/1003 to<o:p></o:p></pre><pre>&amp;eavesdrop[1003@b38cb4c6-620e-11e1-8992-0b1a37fbec21]<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I copy full outputs here:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>2012-02-28 13:18:28.056043 [NOTICE] switch_channel.c:920 New Channel<o:p></o:p></pre><pre>sofia/internal/1003 [b3a3b61c-620e-11e1-8995-0b1a37fbec21]<o:p></o:p></pre><pre>2012-02-28 13:18:28.076030 [NOTICE] mod_dptools.c:1117 Channel<o:p></o:p></pre><pre>[<a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a>] has been answered<o:p></o:p></pre><pre>2012-02-28 13:18:29.098072 [NOTICE] sofia.c:5460 Ring-Ready<o:p></o:p></pre><pre>sofia/internal/1003!<o:p></o:p></pre><pre>2012-02-28 13:18:31.839862 [NOTICE] sofia.c:6077 Channel<o:p></o:p></pre><pre>[sofia/internal/1003] has been answered<o:p></o:p></pre><pre>2012-02-28 13:18:31.839862 [NOTICE] switch_core_state_machine.c:166<o:p></o:p></pre><pre>Hangup sofia/internal/1003 [CS_ROUTING] [NO_ROUTE_DESTINATION]<o:p></o:p></pre><pre>2012-02-28 13:18:31.839862 [NOTICE] switch_ivr.c:1711 Transfer<o:p></o:p></pre><pre>sofia/internal/1003 to &amp;eavesdrop[1003@b38cb4c6-620e-11e1-8992-0b1a37fbec21]<o:p></o:p></pre><pre>2012-02-28 13:18:31.839862 [NOTICE] switch_core_session.c:1395 Session<o:p></o:p></pre><pre>16 (sofia/internal/1003) Ended<o:p></o:p></pre><pre>2012-02-28 13:18:31.839862 [NOTICE] switch_core_session.c:1397 Close<o:p></o:p></pre><pre>Channel sofia/internal/1003 [CS_DESTROY]<o:p></o:p></pre><pre>2012-02-28 13:19:02.756130 [NOTICE] sofia.c:634 Hangup<o:p></o:p></pre><pre><a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a> [CS_EXECUTE] [NORMAL_CLEARING]<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Any more thoughts?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Desperately want to sort this out for tomorrow morning's meeting!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Thanks!<o:p></o:p></pre><pre>Xing<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>On 02/28/2012 03:24 PM, Hector Geraldino wrote:<o:p></o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>You can find the syntax for eavesdrop in the wiki. Here's how I have it working:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>     api originate <a href="mailto:sofia/internal/1234@x.x.x.x&amp;eavesdrop">sofia/internal/1234@x.x.x.x&amp;eavesdrop</a>(aleg_uuid)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>You can try this command in the fs_cli command line (w/o the 'api' prefix). Eavesdrop will allow you to jump into a call and monitor the conversation. If the call has been bridged, you can hear both legs.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>You can do the bridge however you want. The bridge operation is not related to the eavesdrop, so the way I have this working is:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>1. I answer the call in the dialplan, and transfer the control to my java app (just as you're doing right now)<o:p></o:p></pre><pre>2. I originate a 2nd call to an internal extension.<o:p></o:p></pre><pre>3. When the 2nd call is answered, I bridge both calls using uuid_bridge uuid_lega uuid_legb (you can even do the bridge from the dialplan)<o:p></o:p></pre><pre>4. I start recording the call using 'uuid_record uuid_lega' (again, you can call the record application from the dialplan)<o:p></o:p></pre><pre>5. I can (if desired) monitor the call by originating a 3rd call to the manager extension + passing the uuid_lega to the eavesdrop app, as discussed before.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hope this helps<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>-----Original Message-----<o:p></o:p></pre><pre>From: <a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">freeswitch-users-bounces@lists.freeswitch.org</a> [<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">mailto:freeswitch-users-bounces@lists.freeswitch.org</a>] On Behalf Of x.liu<o:p></o:p></pre><pre>Sent: Tuesday, February 28, 2012 9:08 AM<o:p></o:p></pre><pre>To: <a href="mailto:freeswitch-users@lists.freeswitch.org">freeswitch-users@lists.freeswitch.org</a><o:p></o:p></pre><pre>Subject: Re: [Freeswitch-users] How to bridge a call to an extension defined in dialplan<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hi Hector,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Many thanks for your advice!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I had a try but without success yet. What I am doing is<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>1. call to an extension: 5801, it will execute my ESL Java app. I call<o:p></o:p></pre><pre>it a-leg<o:p></o:p></pre><pre>&lt;extension name=&quot;myEslNew5801&quot;&gt;<o:p></o:p></pre><pre>&lt;condition field=&quot;destination_number&quot; expression=&quot;^5801$&quot;&gt;<o:p></o:p></pre><pre>&lt;action application=&quot;limit&quot; data=&quot;hash outgoing 5801 4&quot; /&gt;<o:p></o:p></pre><pre>&lt;action application=&quot;socket&quot; data=&quot;127.0.0.1:9981 async full&quot;/&gt;<o:p></o:p></pre><pre>&lt;/condition&gt;<o:p></o:p></pre><pre>&lt;/extension&gt;<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>2. From my ESL Java app, I originate b-leg to my softphoe and eavesdrop<o:p></o:p></pre><pre>on extension 5801 by<o:p></o:p></pre><pre>      response = sendSyncSingleLineCommand(ctx.getChannel(), &quot;api<o:p></o:p></pre><pre>originate sofia/internal/1003%x.x.x.x 1003&amp;eavesdrop &quot; +<o:p></o:p></pre><pre>this.channelUniqueID);<o:p></o:p></pre><pre>      the channelUniqueID is the UUID of my a-leg session.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>      So I hope my app do the recording and talking to the user and I<o:p></o:p></pre><pre>listen it from the softphone 1003 via eavesdrop.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>       At the moment I got message: Hangup on 1003 with [CS-ROUTING]<o:p></o:p></pre><pre>[NO_ROUTE_DESTINATION]<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>      I am not quite sure if I understand correctly how the eavesdrop works:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>      Which UUID should I use in &quot;&amp;eavesdrop UUID&quot;, the existing one of<o:p></o:p></pre><pre>a-leg or I need to create a new one for b-leg?<o:p></o:p></pre><pre>      Do I need to do the bridge, in extension 5801 or in my app?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Thanks!<o:p></o:p></pre><pre>Xing<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>On 02/27/2012 08:59 PM, Hector Geraldino wrote:<o:p></o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>You can: bridge two endpoints (A -&gt;   B), record the conversation using uuid_record (or the record application), and have a 3rd extension hearing the conversation using the eavesdrop app. Here's how I've done this before:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Incoming call (A-Party)<o:p></o:p></pre><pre>Bridge call to B-Party (bridge <a href="mailto:1xxx@example.domain">1xxx@example.domain</a>)<o:p></o:p></pre><pre>Record the conversation (uuid_record aleg_uuid /path/to/audio.file)<o:p></o:p></pre><pre>A C-Party listen using eavesdrop (originate <a href="mailto:2xxx@example.domain&amp;eavesdrop">2xxx@example.domain&amp;eavesdrop</a> aleg_uuid)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>-----Original Message-----<o:p></o:p></pre><pre>From: <a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">freeswitch-users-bounces@lists.freeswitch.org</a> [<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">mailto:freeswitch-users-bounces@lists.freeswitch.org</a>] On Behalf Of x.liu<o:p></o:p></pre><pre>Sent: Monday, February 27, 2012 2:52 PM<o:p></o:p></pre><pre>To: <a href="mailto:freeswitch-users@lists.freeswitch.org">freeswitch-users@lists.freeswitch.org</a><o:p></o:p></pre><pre>Subject: Re: [Freeswitch-users] How to bridge a call to an extension defined in dialplan<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hi Peter,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Thanks for your reply!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>You are right, that is what I have been experiencing but not I wanted.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Actually my goal is simply to record the user call by my app (js or java<o:p></o:p></pre><pre>via ESL) and at the same time<o:p></o:p></pre><pre>I want to hear what the user is saying through my computer's speaker.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>The recording app seems to be ok ( I tried recording via dialplan<o:p></o:p></pre><pre>commands as well as ESL Java app).<o:p></o:p></pre><pre>What I am doing now is to bridge the call to my app for recording and to<o:p></o:p></pre><pre>a softphone for hearing user's voice.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I thought it would work as the wiki says the bridge can bridge the call<o:p></o:p></pre><pre>to multiple endpoints at the same time,<o:p></o:p></pre><pre>but unfortunately it won't work for me.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Any suggestions to achieve my goal please: recording and hearing user's<o:p></o:p></pre><pre>voice?<o:p></o:p></pre><pre>     (Note: my app will do the recording and also allow me send TTS to the<o:p></o:p></pre><pre>user)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Best,<o:p></o:p></pre><pre>Xing<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>On 02/27/2012 06:33 PM, Peter Olsson wrote:<o:p></o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>Can you explain what you're trying to achieve by doing this?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>If you bridge to multiple destinations, the first destination that answers will create the actual call - all other legs are terminated.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>/Peter<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Från: <a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">freeswitch-users-bounces@lists.freeswitch.org</a> [<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org">freeswitch-users-bounces@lists.freeswitch.org</a>] för x.liu [<a href="mailto:x.liu@hw.ac.uk">x.liu@hw.ac.uk</a>]<o:p></o:p></pre><pre>Skickat: den 27 februari 2012 19:11<o:p></o:p></pre><pre>Till: <a href="mailto:freeswitch-users@lists.freeswitch.org">freeswitch-users@lists.freeswitch.org</a><o:p></o:p></pre><pre>Ämne: Re: [Freeswitch-users] How to bridge a call to an extension defined in dialplan<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hi again,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>It looks like there is something wrong relating to the [CS_CONSUME_MEDIA] [ORIGINATOR_CANCEL],<o:p></o:p></pre><pre>but no idea how this happened.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>A bit desperately to solve this problem ASAP as we will have a demo in a few days.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Please could anybody give any clue?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Many thanks!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>On 02/27/2012 11:34 AM, x.liu wrote:<o:p></o:p></pre><pre>Now I tried it at a different machine with different version of FS.<o:p></o:p></pre><pre>The behaviour is slightly different. This time the softphone is ringing but the recording extension is not correctly executed.<o:p></o:p></pre><pre>The version for this test is &quot;FreeSWITCH Version 1.0.head (git-e566057 2011-12-14 10-27-31 -0500)&quot;<o:p></o:p></pre><pre>    (The FS version for previous tries is &quot;FreeSWITCH Version 1.0.head (git-54ddef0 2011-12-06 21-53-45 -0600)&quot; )<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I copy part of terminal message here, hope it is not too much message for the email list.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>--------------------------------------------------<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_channel.c:920 New Channel <a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a><a href="mailto:sofia/external/anonymous@sipgate.co.uk">&lt;mailto:sofia/external/anonymous@sipgate.co.uk&gt;</a>    [7596ad60-6133-11e1-9141-8b50a5b8b13b]<o:p></o:p></pre><pre>09:04.180223 [INFO] mod_dialplan_xml.c:481 Processing anonymous&lt;anonymous&gt;-&gt;74997 in context public<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_channel.c:920 New Channel <a href="mailto:sofia/internal/1003@x.x.x.x">sofia/internal/1003@x.x.x.x</a><a href="mailto:sofia/internal/1003@x.x.x.x">&lt;mailto:sofia/internal/1003@x.x.x.x&gt;</a>    [75976d18-6133-11e1-9145-8b50a5b8b13b]<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_channel.c:920 New Channel <a href="mailto:sofia/internal/74999@x.x.x.x">sofia/internal/74999@x.x.x.x</a><a href="mailto:sofia/internal/74999@x.x.x.x">&lt;mailto:sofia/internal/74999@x.x.x.x&gt;</a>    [75977f24-6133-11e1-914a-8b50a5b8b13b]<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_channel.c:920 New Channel <a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>    [7597aab2-6133-11e1-914e-8b50a5b8b13b]<o:p></o:p></pre><pre>09:04.180223 [INFO] mod_dialplan_xml.c:481 Processing anonymous&lt;anonymous&gt;-&gt;1003 in context public<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_channel.c:920 New Channel <a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>    [75980192-6133-11e1-9150-8b50a5b8b13b]<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_ivr.c:1711 Transfer <a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a><a href="mailto:sofia/external/anonymous@sipgate.co.uk">&lt;mailto:sofia/external/anonymous@sipgate.co.uk&gt;</a>    to XML[1003@public]<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_ivr_originate.c:3182 Hangup <a href="mailto:sofia/internal/1003@x.x.x.x">sofia/internal/1003@x.x.x.x</a><a href="mailto:sofia/internal/1003@x.x.x.x">&lt;mailto:sofia/internal/1003@x.x.x.x&gt;</a>    [CS_CONSUME_MEDIA] [ORIGINATOR_CANCEL]<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_ivr_originate.c:3182 Hangup <a href="mailto:sofia/internal/74999@x.x.x.x">sofia/internal/74999@x.x.x.x</a><a href="mailto:sofia/internal/74999@x.x.x.x">&lt;mailto:sofia/internal/74999@x.x.x.x&gt;</a>    [CS_CONSUME_MEDIA] [ORIGINATOR_CANCEL]<o:p></o:p></pre><pre>09:04.180223 [INFO] mod_dptools.c:2897 Originate Failed.  Cause: ORIGINATOR_CANCEL<o:p></o:p></pre><pre>09:04.180223 [INFO] mod_dialplan_xml.c:481 Processing anonymous&lt;anonymous&gt;-&gt;1003 in context public<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_core_session.c:1397 Session 2 (<a href="mailto:sofia/internal/1003@x.x.x.x">sofia/internal/1003@x.x.x.x</a><a href="mailto:sofia/internal/1003@x.x.x.x">&lt;mailto:sofia/internal/1003@x.x.x.x&gt;</a>) Ended<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_core_session.c:1399 Close Channel <a href="mailto:sofia/internal/1003@x.x.x.x">sofia/internal/1003@x.x.x.x</a><a href="mailto:sofia/internal/1003@x.x.x.x">&lt;mailto:sofia/internal/1003@x.x.x.x&gt;</a>    [CS_DESTROY]<o:p></o:p></pre><pre>09:04.180223 [NOTICE] switch_ivr.c:1711 Transfer <a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a><a href="mailto:sofia/external/anonymous@sipgate.co.uk">&lt;mailto:sofia/external/anonymous@sipgate.co.uk&gt;</a>    to XML[1003@default]<o:p></o:p></pre><pre>09:04.180223 [INFO] mod_dialplan_xml.c:481 Processing anonymous&lt;anonymous&gt;-&gt;1003 in context default<o:p></o:p></pre><pre>09:04.180223 [NOTICE] sofia.c:427 Hangup <a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>    [CS_EXECUTE] [BLIND_TRANSFER]<o:p></o:p></pre><pre>09:04.201188 [NOTICE] switch_core_session.c:1397 Session 4 (<a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>) Ended<o:p></o:p></pre><pre>09:04.201188 [NOTICE] switch_core_session.c:1399 Close Channel <a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>    [CS_DESTROY]<o:p></o:p></pre><pre>09:04.201188 [INFO] switch_ivr_async.c:3164 Bound B-Leg: *1 execute_extension::dx XML features<o:p></o:p></pre><pre>09:04.201188 [INFO] mod_dialplan_xml.c:481 Processing anonymous&lt;anonymous&gt;-&gt;74999 in context public<o:p></o:p></pre><pre>09:04.201188 [INFO] switch_ivr_async.c:3164 Bound B-Leg: *2 record_session:: recordings/anonymous.2012-02-27-11-09-04.wav<o:p></o:p></pre><pre>09:04.201188 [NOTICE] switch_core_session.c:1397 Session 3 (<a href="mailto:sofia/internal/74999@x.x.x.x">sofia/internal/74999@x.x.x.x</a><a href="mailto:sofia/internal/74999@x.x.x.x">&lt;mailto:sofia/internal/74999@x.x.x.x&gt;</a>) Ended<o:p></o:p></pre><pre>09:04.201188 [NOTICE] switch_core_session.c:1399 Close Channel <a href="mailto:sofia/internal/74999@x.x.x.x">sofia/internal/74999@x.x.x.x</a><a href="mailto:sofia/internal/74999@x.x.x.x">&lt;mailto:sofia/internal/74999@x.x.x.x&gt;</a>    [CS_DESTROY]<o:p></o:p></pre><pre>09:04.201188 [INFO] switch_ivr_async.c:3164 Bound B-Leg: *3 execute_extension::cf XML features<o:p></o:p></pre><pre>09:04.201188 [NOTICE] sofia.c:6134 Hangup <a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>    [CS_EXECUTE] [ORIGINATOR_CANCEL]<o:p></o:p></pre><pre>09:04.201188 [INFO] switch_ivr_async.c:3164 Bound B-Leg: *4 execute_extension::att_xfer XML features<o:p></o:p></pre><pre>09:04.201188 [NOTICE] switch_core_session.c:1397 Session 5 (<a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>) Ended<o:p></o:p></pre><pre>09:04.201188 [NOTICE] switch_core_session.c:1399 Close Channel <a href="mailto:sofia/internal/anonymous@x.x.x.x">sofia/internal/anonymous@x.x.x.x</a><a href="mailto:sofia/internal/anonymous@x.x.x.x">&lt;mailto:sofia/internal/anonymous@x.x.x.x&gt;</a>    [CS_DESTROY]<o:p></o:p></pre><pre>09:04.201188 [NOTICE] switch_channel.c:920 New Channel sofia/internal/<a href="sip:1003@y.y.y.y:5062">sip:1003@y.y.y.y:5062</a> [759a6630-6133-11e1-9158-8b50a5b8b13b]<o:p></o:p></pre><pre>09:04.740223 [NOTICE] sofia.c:5462 Ring-Ready sofia/internal/<a href="sip:1003@y.y.y.y:5062">sip:1003@y.y.y.y:5062</a>!<o:p></o:p></pre><pre>09:04.740223 [NOTICE] mod_sofia.c:2470 Ring-Ready <a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a><a href="mailto:sofia/external/anonymous@sipgate.co.uk">&lt;mailto:sofia/external/anonymous@sipgate.co.uk&gt;</a>!<o:p></o:p></pre><pre>09:04.740223 [NOTICE] switch_ivr_originate.c:483 Ring Ready <a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a><a href="mailto:sofia/external/anonymous@sipgate.co.uk">&lt;mailto:sofia/external/anonymous@sipgate.co.uk&gt;</a>!<o:p></o:p></pre><pre>09:07.700221 [NOTICE] sofia.c:6040 Channel [sofia/internal/<a href="sip:1003@y.y.y.y:5062">sip:1003@y.y.y.y:5062</a>] has been answered<o:p></o:p></pre><pre>09:07.700221 [NOTICE] switch_ivr_originate.c:483 Ring Ready <a href="mailto:sofia/external/anonymous@sipgate.co.uk">sofia/external/anonymous@sipgate.co.uk</a><a href="mailto:sofia/external/anonymous@sipgate.co.uk">&lt;mailto:sofia/external/anonymous@sipgate.co.uk&gt;</a>!<o:p></o:p></pre><pre>-------------------------------------------------<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hi,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>H tried this way<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>&lt;action application=&quot;bridge&quot; data=&quot;sofia/internal/1003%${sip_profile},sofia/internal/74991@${domain}&quot;/&gt;<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>74991 is reached and I heard the prompt. The 1003 softphone is terminated immediately after it is reached.<o:p></o:p></pre><pre>then extension 74991 hung up itself as well.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I saw the terminal message:<o:p></o:p></pre><pre>mod_dptools.c:2897 Originate Failed.  Cause: ORIGINATOR_CANCEL<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>What would be the reason for that?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Thanks,<o:p></o:p></pre><pre>Xing<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>On 02/26/2012 10:29 PM, Liu, Xingkun wrote:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hello,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I'd like to bridge an incoming to two endpoints simultaneuously:<o:p></o:p></pre><pre>one is a softphone which is registered to FS (to user 1003),<o:p></o:p></pre><pre>another is just an extension which is defined in conf/dialplan/public.xml<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>It looks like:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>&lt;extension name=&quot;testRecording_bridge&quot;&gt;<o:p></o:p></pre><pre>     &lt;condition field=&quot;destination_number&quot; expression=&quot;^(74990)$&quot;&gt;<o:p></o:p></pre><pre>       &lt;action application=&quot;bridge&quot; data=&quot;sofia/internal/1003%${sip_profile},sofia/internal/74991%${sip_profile}&quot;/&gt;<o:p></o:p></pre><pre>     &lt;/condition&gt;<o:p></o:p></pre><pre>&lt;/extension&gt;<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>&lt;extension name=&quot;testRecordingOnly&quot;&gt;<o:p></o:p></pre><pre>       &lt;condition field=&quot;destination_number&quot; expression=&quot;^74991$&quot;&gt;<o:p></o:p></pre><pre>         &lt;action application=&quot;set&quot; data=&quot;record_waste_resources=true&quot;/&gt;<o:p></o:p></pre><pre>         &lt;action application=&quot;javascript&quot; data=&quot;testRecordFile.js&quot;/&gt;<o:p></o:p></pre><pre>       &lt;/condition&gt;<o:p></o:p></pre><pre>     &lt;/extension&gt;<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>The incoming call dial to extension 74990, from there I want to bridge the call to the sofphone at 1003 and<o:p></o:p></pre><pre>to the extension 74991.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>The problem is that FS can not locate user 74991. So my question is what else I need to modify in order<o:p></o:p></pre><pre>to bridge the call also to extension 74991 at the same time?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I did lots of Googling, checked the wiki and tried various ways but still without success.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Any advices please?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Many Thanks!<o:p></o:p></pre><pre>Xing<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>________________________________<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is the Sunday Times Scottish University of the Year 2011-2012.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is a Scottish charity registered under charity number SC000278.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><a href="mailto:consulting@freeswitch.org">&lt;mailto:consulting@freeswitch.org&gt;</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">&lt;mailto:FreeSWITCH-users@lists.freeswitch.org&gt;</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>________________________________<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is the Sunday Times Scottish University of the Year 2011-2012.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is a Scottish charity registered under charity number SC000278.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><a href="mailto:consulting@freeswitch.org">&lt;mailto:consulting@freeswitch.org&gt;</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">&lt;mailto:FreeSWITCH-users@lists.freeswitch.org&gt;</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>________________________________<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is the Sunday Times Scottish University of the Year 2011-2012.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is a Scottish charity registered under charity number SC000278.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><a href="mailto:consulting@freeswitch.org">&lt;mailto:consulting@freeswitch.org&gt;</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">&lt;mailto:FreeSWITCH-users@lists.freeswitch.org&gt;</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>________________________________<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is the Sunday Times Scottish University of the Year 2011-2012.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is a Scottish charity registered under charity number SC000278.<o:p></o:p></pre><pre>!DSPAM:4f4bc71e32767806511310!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>--<o:p></o:p></pre><pre>Heriot-Watt University is a Scottish charity<o:p></o:p></pre><pre>registered under charity number SC000278.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is the Sunday Times<o:p></o:p></pre><pre>Scottish University of the Year 2011-2012<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>--<o:p></o:p></pre><pre>Heriot-Watt University is a Scottish charity<o:p></o:p></pre><pre>registered under charity number SC000278.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Heriot-Watt University is the Sunday Times<o:p></o:p></pre><pre>Scottish University of the Year 2011-2012<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>_________________________________________________________________________<o:p></o:p></pre><pre>Professional FreeSWITCH Consulting Services:<o:p></o:p></pre><pre><a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<o:p></o:p></pre><pre><a href="http://www.cudatel.com">http://www.cudatel.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Official FreeSWITCH Sites<o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://www.cluecon.com">http://www.cluecon.com</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>FreeSWITCH-users mailing list<o:p></o:p></pre><pre><a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><o:p></o:p></pre><pre><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><o:p></o:p></pre><pre>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><o:p></o:p></pre><pre><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><o:p></o:p></pre><p class=MsoNormal style='margin-bottom:12.0pt'><o:p>&nbsp;</o:p></p><div class=MsoNormal align=center style='text-align:center'><hr size=2 width="100%" align=center></div><p class=MsoNormal><br><b><span style='font-family:"Arial","sans-serif"'>Heriot-Watt University is the Sunday Times Scottish University of the Year 2011-2012.</span></b><span style='font-family:"Arial","sans-serif"'> </span><br><br><span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Heriot-Watt University is a Scottish charity registered under charity number SC000278. </span><o:p></o:p></p></div></body></html>