<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=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
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;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@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 lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>I&#8217;m facing a problem that I&#8217;m not even sure that belongs to the FS boundaries but I&#8217;m asking anyway: I need to know when the legB of the call transfers the legA to another extension. Here&#8217;s the scenario:<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>PSTN -&gt; Cisco Unified CM -&gt; Sip Trunk (FreeSwitch) -&gt; ESL application<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>An incoming call is effectively bounded by a Cisco Call Manager platform to a SIP trunk managed by FreeSwitch, and controlled by a Java application. I can answer the call, play prompts and do some more stuff. After that, I&#8217;m originating a call to another extension (managed by the CUCM, not freeswitch) to be answered by an agent, and bridging both legs using uuid_bridge. So what I&#8217;ve is a classic call center scenario where I connect incoming calls to agents, and I calculate the call handling time based on the time between the call was bridged to an operator and the time the call was dropped because one of the two legs hanged up. Also after receiving the disconnection notice I perform some cleanup tasks. Great. So far so good.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>But, there&#8217;s a problem that begins when the agent (legB) transfers the call to another extension (or even an external phone number) using the transfer function on their IP Phone. As this phone is not &#8216;controlled&#8217; by FreeSwitch there&#8217;s no event registered for this call transfer. So what is happening is that both legs are still connected to FS even when the agent (legB) has transferred the call. This off course is an undesired behavior, because I&#8217;m saying that &#8216;agentB spent 30 minutes handling call X&#8217; when he actually transferred this call to someone else after maybe just 20 seconds.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>So what I need is an event or something that helps me to detect when a call has been transferred, not using the &#8216;transfer&#8217; tool on freeswitch but transferred outside FreeSwitch. The only notification that FreeSwitch receives after a call transfer is performed is this SIP message (with its response):<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>recv 805 bytes from udp/[192.168.23.104]:5060 at 14:40:04.945886:<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; ------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; UPDATE sip:mod_sofia@192.168.5.72:5060 SIP/2.0<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Via: SIP/2.0/UDP 192.168.23.104:5060;branch=z9hG4bK78836e9096b<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; From: &lt;sip:5562@192.168.23.104&gt;;tag=63092ed1-42e0-4489-9bb9-bd2b77b7fcf3-28767966<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; To: &quot;&quot; &lt;sip:5512@192.168.5.72&gt;;tag=cFQ5y9jHy0a0p<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Date: Mon, 31 Oct 2011 14:39:41 GMT<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Call-ID: e062f678-7e70-122f-f890-000c298202db<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; User-Agent: Cisco-CUCM8.0<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Max-Forwards: 70<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Supported: timer,resource-priority,replaces<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; CSeq: 101 UPDATE<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Contact: &lt;sip:5562@192.168.23.104:5060&gt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Supported: X-cisco-srtp-fallback<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Supported: Geolocation<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; P-Asserted-Identity: &quot;Leona C&quot; &lt;sip:5655@192.168.23.104&gt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Remote-Party-ID: &quot;Leona C&quot; &lt;sip:5655@192.168.23.104&gt;;party=calling;screen=yes;privacy=off<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Content-Length: 0<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>send 624 bytes to udp/[192.168.23.104]:5060 at 14:40:04.946088:<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; ------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; SIP/2.0 200 OK<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Via: SIP/2.0/UDP 192.168.23.104:5060;branch=z9hG4bK78836e9096b<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; From: &lt;sip:5562@192.168.23.104&gt;;tag=63092ed1-42e0-4489-9bb9-bd2b77b7fcf3-28767966<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; To: &quot;&quot; &lt;sip:5512@192.168.5.72&gt;;tag=cFQ5y9jHy0a0p<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Call-ID: e062f678-7e70-122f-f890-000c298202db<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; CSeq: 101 UPDATE<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Contact: &lt;sip:mod_sofia@192.168.5.72:5060&gt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; User-Agent: FreeSWITCH-mod_sofia/1.0.head-git-<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Accept: application/sdp<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Supported: timer, precondition, path, replaces<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Session-Expires: 1800;refresher=uas<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Min-SE: 120<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; Content-Length: 0<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Is there any way to react to this incoming message and generate an event or action? A channel variable or something that I may be missing? Any thoughts?<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Thanks for your kindly attention,<o:p></o:p></p><p class=MsoNormal>Hector<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>