<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.claritycon.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Unified Communications Development - All Comments</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/default.aspx</link><description>Michael Greenlee
(mgreenlee at claritycon dot com)</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>re: Transferring calls in UCMA 2.0, part one</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/04/14/transferring-calls-in-ucma-2-0-part-one.aspx#75713</link><pubDate>Thu, 07 May 2009 15:14:27 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:75713</guid><dc:creator>mgreenlee</dc:creator><description>&lt;p&gt;Hi Andi,&lt;/p&gt;
&lt;p&gt;Yes, you're expected to implement your own logic to handle transfers, forwards, etc. in any applications you create. Aside from testing (like what you're doing), UCMA 2.0 isn't usually meant for client applications, and things like initiating a new call in response to a REFER aren't built in. In theory you might want to do something different when your application gets a REFER.&lt;/p&gt;
&lt;p&gt;Thanks for sharing all the details of your investigation! This is definitely useful info.&lt;/p&gt;
&lt;p&gt;Michael&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=75713" width="1" height="1"&gt;</description></item><item><title>re: Transferring calls in UCMA 2.0, part one</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/04/14/transferring-calls-in-ucma-2-0-part-one.aspx#75710</link><pubDate>Thu, 07 May 2009 10:55:58 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:75710</guid><dc:creator>Andi</dc:creator><description>&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;ok, news of my exlorations:&lt;/p&gt;
&lt;p&gt;void AvCallTransferReceived(object sender, AudioVideoCallTransferReceivedEventArgs arg)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;AudioVideoCall newAvCall = arg.Accept(null);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;newAvCall.BeginEstablish((result) =&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;newAvCall.EndEstablish(result);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}, null);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;found in the SDK and tested. works well, also for self-transfers. hope that these posts help other devs, so that you can safe the time intensive try-and-errors.&lt;/p&gt;
&lt;p&gt;other points for which we invested extensive exploration to understand how they work:&lt;/p&gt;
&lt;p&gt;- to handle forwards (i.e. 302 moved temp) you must register a method at the event Forwarded before you invoke BeginEstablish() -&amp;gt; analogous to transfer)&lt;/p&gt;
&lt;p&gt;- the first 180 ringing message is sent back to the caller AFTER the callback-method (which is registered at the endpoint with RegisterForIncomingCall&amp;lt;AudioVideoCall&amp;gt;()) is processed. I made the mistake to accept the call synchronous (in a lab/test-environment) with call.EndAccept(call.BeginAccept(null, null)); -&amp;gt; so the caller never get the 180 ringing. accpet async, also in labs!&lt;/p&gt;
&lt;p&gt;andi&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=75710" width="1" height="1"&gt;</description></item><item><title>re: Transferring calls in UCMA 2.0, part one</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/04/14/transferring-calls-in-ucma-2-0-part-one.aspx#75706</link><pubDate>Thu, 07 May 2009 08:22:28 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:75706</guid><dc:creator>Andi</dc:creator><description>&lt;p&gt;Hi again,&lt;/p&gt;
&lt;p&gt;You must register a method to the event TransferReceived BEFORE invoking BeginEstablish. This marks the call as AllowTransfer=true and the RemoteParticipant can apply a transfer. Have you experience in receiving the transfer (in an user-endpoint)? The registered method is called an there i invoke arg.Allow(null); This causes the 202 Accepted after the REFER. But the Receiver of REFER does not initiate a new call. Should I kick off this manual in the TransferReceived-Callback-Method? Or does the UCMA-Lib this for me?&lt;/p&gt;
&lt;p&gt;greets&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=75706" width="1" height="1"&gt;</description></item><item><title>re: Transferring calls in UCMA 2.0, part one</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/04/14/transferring-calls-in-ucma-2-0-part-one.aspx#75701</link><pubDate>Wed, 06 May 2009 22:09:31 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:75701</guid><dc:creator>Andi</dc:creator><description>&lt;p&gt;Hello Michael,&lt;/p&gt;
&lt;p&gt;We&amp;#39;re working on an UCMA2-product (an application-endpoint) and a test-server which allows us testing/observating the product&amp;#39;s behaviour (the latter is realized with user-endpoints to simulate sip-participants). Now, the user-endpoints should be able to handle a transfer. When i initiate a transfer on a call which remoteEndpoint is one of the test-server&amp;#39;s user-endpoint, the BeginTransfer of the transfer-initiator fails with an InvalidOperationException. After a few minutes/hours research i noticed, that the user-endpoint doesn&amp;#39;t allow transfers. I&amp;#39;ve not yet found a way to enable the user-endpoint for transfer-handling. I set &lt;/p&gt;
&lt;p&gt;RegisterMethods = &amp;quot;INVITE,MESSAGE,INFO,OPTIONS,BYE,CANCEL,NOTIFY,ACK,REFER,BENOTIFY&amp;quot;&lt;/p&gt;
&lt;p&gt;on the userEndpointSettings, but this didn&amp;#39;t change the situation. I&amp;#39;ve seen also that there exists a Property &amp;quot;RemoteEndpointProperties&amp;quot; on the avCall which contains again a Property &amp;quot;AllowTransfer = false&amp;quot;.&lt;/p&gt;
&lt;p&gt;Have you any hint how i switch on the transfer ability on user-endpoints? Thank you for any idea!&lt;/p&gt;
&lt;p&gt;best regards, andi&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=75701" width="1" height="1"&gt;</description></item><item><title>Transferring calls in UCMA 2.0, part one</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/pages/transferinitiator-class.aspx#70993</link><pubDate>Tue, 14 Apr 2009 18:55:07 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:70993</guid><dc:creator>Unified Communications Development</dc:creator><description>&lt;p&gt;College students, like very small children, are easily entertained. Back in my college days, I always&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=70993" width="1" height="1"&gt;</description></item><item><title>Blogs I Heart: Michael Greenlee’s UCMA Blog</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/21/installing-a-certificate-for-ucma-v2-0-applications.aspx#68318</link><pubDate>Fri, 03 Apr 2009 22:19:51 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:68318</guid><dc:creator>Chris Mayo's Blog - Unified Communications Development</dc:creator><description>&lt;p&gt;While watching progress bars during the setup of my TS box for the Fabrikam VMs, I thought I’d catch&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=68318" width="1" height="1"&gt;</description></item><item><title>re: How to publish presence using UCMA v2.0 and have a clever Communicator status</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/03/how-to-publish-presence-using-ucma-v2-0-and-have-a-clever-communicator-status.aspx#67725</link><pubDate>Wed, 01 Apr 2009 19:17:49 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:67725</guid><dc:creator>Peter</dc:creator><description>&lt;p&gt;Yes, thats what I thought wrt. the director FQDN.&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=67725" width="1" height="1"&gt;</description></item><item><title>re: Subscribe to presence in UCMA v2.0</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/10/subscribe-to-presence-in-ucma-v2-0.aspx#67654</link><pubDate>Wed, 01 Apr 2009 13:35:30 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:67654</guid><dc:creator>mgreenlee</dc:creator><description>&lt;p&gt;Thanks, Thor! I wasn't aware of those classes for specific presence categories, and can't find them documented anywhere. How did you find out about them?&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=67654" width="1" height="1"&gt;</description></item><item><title>re: How to publish presence using UCMA v2.0 and have a clever Communicator status</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/03/how-to-publish-presence-using-ucma-v2-0-and-have-a-clever-communicator-status.aspx#67653</link><pubDate>Wed, 01 Apr 2009 13:34:24 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:67653</guid><dc:creator>mgreenlee</dc:creator><description>&lt;p&gt;I believe you should use the FQDN of the server that is functioning as a Director.&lt;/p&gt;
&lt;p&gt;Does this answer your question?&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=67653" width="1" height="1"&gt;</description></item><item><title>re: Subscribe to presence in UCMA v2.0</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/10/subscribe-to-presence-in-ucma-v2-0.aspx#67636</link><pubDate>Wed, 01 Apr 2009 12:35:44 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:67636</guid><dc:creator>Thor Halvor</dc:creator><description>&lt;p&gt;Here is a tip for you:&lt;/p&gt;
&lt;p&gt;Instead of writing alot of code to understand the rawXml from the Category, you can write this:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;foreach (PresenceCategoryWithMetaData category in notification.Categories)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PresenceState state = PresenceState.Create(category);&lt;/p&gt;
&lt;p&gt;and &amp;quot;State&amp;quot; got all the info you want. :)&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=67636" width="1" height="1"&gt;</description></item><item><title>re: How to publish presence using UCMA v2.0 and have a clever Communicator status</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/03/how-to-publish-presence-using-ucma-v2-0-and-have-a-clever-communicator-status.aspx#67471</link><pubDate>Tue, 31 Mar 2009 20:02:22 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:67471</guid><dc:creator>Peter</dc:creator><description>&lt;p&gt;How will this work with a enterprise edition deployment with directors? What server should be entered as the OCS server in the UserEndpointSettings?&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=67471" width="1" height="1"&gt;</description></item><item><title>re: Installing a certificate for UCMA v2.0 applications</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/21/installing-a-certificate-for-ucma-v2-0-applications.aspx#67377</link><pubDate>Mon, 30 Mar 2009 13:34:19 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:67377</guid><dc:creator>Rasmus</dc:creator><description>&lt;p&gt;Excellent walkthough. Exactly what I was missing to be able to debug my OCS app.&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=67377" width="1" height="1"&gt;</description></item><item><title>re: Troubleshooting TLSException in UCMA 2.0 applications</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/25/troubleshooting-tlsexception-in-ucma-2-0-applications.aspx#66654</link><pubDate>Fri, 27 Mar 2009 09:15:45 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:66654</guid><dc:creator>thalvor</dc:creator><description>&lt;p&gt;Ahh that is the reason!! thank you... I didnt &amp;quot;run as admin&amp;quot;... &lt;/p&gt;
&lt;p&gt;perfect that you added this blogpost 2days ago :)&lt;/p&gt;
&lt;p&gt;- keep up!&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=66654" width="1" height="1"&gt;</description></item><item><title>re: How to publish presence using UCMA v2.0 and have a clever Communicator status</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/03/how-to-publish-presence-using-ucma-v2-0-and-have-a-clever-communicator-status.aspx#66061</link><pubDate>Wed, 25 Mar 2009 01:20:40 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:66061</guid><dc:creator>mgreenlee</dc:creator><description>&lt;p&gt;Jorge,&lt;/p&gt;
&lt;p&gt;Thanks for the correction -- I haven't seen that issue myself yet. I'll incorporate your suggestion into my code. Thanks for pointing that out.&lt;/p&gt;
&lt;p&gt;Michael&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=66061" width="1" height="1"&gt;</description></item><item><title>re: How to publish presence using UCMA v2.0 and have a clever Communicator status</title><link>http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/03/how-to-publish-presence-using-ucma-v2-0-and-have-a-clever-communicator-status.aspx#66060</link><pubDate>Wed, 25 Mar 2009 01:18:43 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:66060</guid><dc:creator>mgreenlee</dc:creator><description>&lt;p&gt;Marten,&lt;/p&gt;
&lt;p&gt;To publish presence on behalf of other users, you could establish a UserEndpoint for each user whose presence you want to publish. You could then use the LocalOwnerPresence instance associated with each UserEndpoint to publish presence for that user.&lt;/p&gt;
&lt;p&gt;Does this sound like it would cover what you're trying to do? If you give me some more details of what you have in mind, I can explain further.&lt;/p&gt;
&lt;p&gt;Michael&lt;/p&gt;
&lt;img src="http://blogs.claritycon.com/aggbug.aspx?PostID=66060" width="1" height="1"&gt;</description></item></channel></rss>