Category Archives: UC&C

HOWTO disable “Play on Phone”

I was recently asked a really good question: how can you disable the “Play on Phone” functionality in Exchange 2007 Unified Messaging? PoP is a handy feature because it lets you use a simple UI in Outlook or OWA to get your voice mail on any phone that your UM server can dial out to. For security reasons, though, some organizations want to prevent people from placing outbound calls to potentially untrusted numbers (like, oh, I don’t know, this).There’s no direct way to do this from the UI, but you can accomplish it with a bit of trickery: set the OutCallsAllowed attribute on the IP gateway used by the UM server (set-UMIPGateway MyUMGateway -OutCallsAllowed $false will do the trick.)

Why does this work? This flag tells the UM server to never send SIP INVITE messages to the gateway for the new call. If there are no gateway objects with the property set to true, then UM will not attempt to place any outbound calls. PoP is the only Exchange UM feature that will result in new outbound SIP INVITE messages; call transfers use the SIP REFER message, so the automated attendant and call answering features will still work. However, this doesn’t disable the PoP user interface, so users will still see the buttons; they just won’t work when clicked.

Comments Off on HOWTO disable “Play on Phone”

Filed under HOWTO, Security, UC&C

The Lawyers’ Guide to Outlook 2007

My friend Ben Schorr, an Outlook MVP who has the good fortune to live someplace nice, just mailed me to tell me that his new book is out. It’s called The Lawyers’ Guide to Outlook 2007, which is a wonderfully descriptive title. I haven’t read it, but based on the table of contents alone I strongly recommend it– the very fact that he has a section called “Why an Empty Inbox?” tells me everything I need to know to recommend it. If you’re an attorney, or work with them, check it out.

Comments Off on The Lawyers’ Guide to Outlook 2007

Filed under Reviews, UC&C

OCS 2007 presence schema and XSD available

When I talk about UCMA in the UC development classes I’ve been teaching, attendees frequently ask how they can publish custom presence information. The answer is that you can construct custom presence in two ways: using your own completely custom schema (which CWA, OCS, and other MS applications won’t understand) or by passing presence data using Microsoft’s presence schema. That schema is documented here, which makes it much easier to take the second route.

Comments Off on OCS 2007 presence schema and XSD available

Filed under UC&C

HOWTO parse Autodiscover with Cocoa

I’ve recently been spending time programming again. This has been a welcome return to my roots, and it’s certainly reminded me of the pleasure that comes from building good code. Of course, every pleasure has its obverse, and I was reminded of that today because I spent all day beating my head against what appeared to be a bug in NSXMLNode. You’re supposed to be able to use the nodesForXPath: method to do an XPath query against an XML tree. I’d written some code that sent an Autodiscover request to Exchange and parsed the returned data (which looks like this), but my code never found any EwsUrl nodes, even though they were plainly visible.

I tried the xpath command-line tool, and it did what I expected; “xpath ~/Desktop/EWS.xml //EwsUrl” returned both nodes. Apple’s own XMLBrowser sample (in /Developer/Examples/Foundation/XMLBrowser) didn’t work properly either, but the XMLMate plug-in for TextMate did. I looked carefully at the Autodiscover sample in the Exchange 2007 SP1 SDK and found that everything looked OK. Then I went back to my main reference for this stuff. On page 780, I finally found the answer in a subtle clue: the book’s sample was using an XPath query that included the namespace! I modified my code to look like this:

NSXMLNode *rSpace = [NSXMLNode namespaceWithName: @”r”
stringValue:@”http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a”];

[[adResponse rootElement] addNamespace:rSpace];

NSArray *idList = [responseRoot nodesForXPath:@”//r:EwsUrl” error:&err];

That solved the problem. So, lesson learned: always make sure that you’ve registered the correct namespace when using nodesForXPath!

Comments Off on HOWTO parse Autodiscover with Cocoa

Filed under General Tech Stuff, UC&C

The iPhone as a mail device

Apple has been getting a ton of press about the launch of v2.0 of the iPhone software (along with the iPhone 3G, of course!) I’ve been using a pre-release version of the v2.0 firmware on my iPhone, but I didn’t want to write about it until the release because I hoped that some of the glaring problems with Apple’s implementation would be fixed in the RTM version. Sadly, this doesn’t seem to be the case.

Apple has a page with lots of deeper information on the enterprise features of the v2 software. I haven’t spent any time with the device management or provisioning bits, nor the VPN support. However, I have spent a lot of time with the Exchange-compatible features, and overall I’d have to say Apple isn’t there yet. Windows Mobile still has some compelling features that the iPhone lacks. It’s entirely possible that I’ve just missed some iPhone features; I’ll update this post as I learn more (or am corrected).

Update 1: [0017 Monday 7/15] I should point out that Exchange ActiveSync is a protocol that supports lots of different content types and protocol option. Apple, like most other EAS licensees, has implemented a subset of EAS. I’m complaining about Apple’s implementation here, not EAS itself.

About the author

Before I get into the meat of my piece, a few words about my qualifications. I’ve been a Mac user since 1984, an iPhone user since July 8th of last year, and an Exchange admin since 1995. I’m a Microsoft MVP for Exchange and Office Communications Server. My day job involves every possible sort of exploration into how Exchange works, with a heavy focus on mobility. I carry a Windows Mobile 6.1 device daily and rely on it to get my work done. I’ve been in love with the polish and responsiveness of the iPhone UI from day 1. It’s an awesome device for most purposes. However, from my standpoint as an experienced Exchange administrator and WM device wrangler, there are still a lot of missing pieces (or things that are poorly implemented).

E-mail

Let’s start with e-mail, which seems like an easy enough application to implement. Apple got the single biggest item right: push e-mail works properly. Mail arrives when it’s supposed to, and replies are sent like they’re supposed to be. HTML mail displays beautifully. In fact, the overall Mail experience is basically just like it was in v1, for better or worse.

We interrupt this review for a special gripe: Apple, why on earth do you expand the ENTIRE folder list when I want to navigate to a new folder or move a message? This is incredibly inefficient for large mailboxes. It would help a great deal if the Mail application would remember the most recently used folder and jump to it, or (even better) if the folder list were collapsible. Please fix this in the next point release. (Side gripe: why can’t I flick left or right to change e-mail accounts, like I can with Safari’s page selector?) We now resume our regular programming.

You might think that the iPhone would work well as an offline mail client. You might also think that you should be dating Danica Patrick and that gas should be $1.25/gallon. Bad news: the iPhone’s offline story is poor. When the device radios are off, any attempt to move or delete messages results in an error dialog. How lame is that? Did anyone at Apple test a Windows Mobile device to see how it works in this situation? There are a few nice touches, though. For example, a small status line in the main mail view shows you how many messages are queued for sending. At least the software is smart enough to automatically attempt a sync as soon as the network comes back up.

There are a number of other Windows Mobile 6 features missing here: for instance, you cannot flag or unflag messages for follow-up; you can’t set out of office messages or timings, and the device will frequently complain if you try to throw away a message that a client- or server-side junk filter has already moved elsewhere. The extremely convenient press-and-hold shortcuts that WM provides (like “d” to delete or “m” for move) are of course absent here, too.

Bottom line: mail is prettier on the iPhone. The devices are tied in terms of sync behavior and performance. My WM 6.1 device has a significant edge in usability speed because of one-handed message selection and movement, plus the press-and-hold keys. I realize that for novice users this speed differential might be much smaller… but I’m not a novice. (And, to forestall any flames: the iPhone keyboard is OK with me. Once I got used to it, it’s as fast as a physical keyboard.)

Calendaring

OK, so let me get this out in the open: I can’t stand iCal on the desktop. It’s so lame compared to Entourage, Outlook, and OWA that I just flat don’t use it. The fact that the iPhone’s calendar app emulates iCal closely is not a good thing. Color coding of events on the iPhone is driven by where events appear in iCal, meaning that if you sync with Exchange (or Entourage, FTM), your events appear in one color. There’s no support for Exchange categories, an obvious omission.

One thing I do like: the default behavior when a new meeting invite appears is to play the calendar reminder sound and show an alert. This is useful because there’s no other way to show that you have pending meeting invites. There’s a host of weird behavior involving existing recurring events; after your first sync, most of them will show up as “maybe” (which in Apple-speak means “tentative”), even if you’ve previously accepted them.

Now, on to the really bad stuff. There are several common– nay, fundamental— things that you cannot do with the iPhone calendar application. You cannot:

  • create a meeting request and invite other people to attend. Without this, the wireless calendar functionality is largely useless unless you’re the Unabomber or some other kind of Luddite hermit who never works with others. (Oddly, you can view the attendee status of meetings you create on the desktop!)
  • create a recurring meeting unless it is repeated daily, weekly, bi-weekly, monthly, or yearly. That’s right– no more “first Thursday of every month” or “every Monday, Wednesday, Friday” appointments. This is disgraceful. Even Palm managed to eventually get this right, for crying out loud.
  • create a meeting in a time zone other than the one you are currently in. I guess you might be able to do this by changing the device time zone, but that doesn’t seem like a very good idea to me, and I haven’t tried it. I have tried (in vain) explaining why I created a meeting request for 4:30am Pacific time because I forgot my device was still on Eastern time, though.
  • view suggested meeting times or free/busy times, either for your own calendar or for others’. That makes sense, given that you can’t invite other people, but it’s still super lame.
  • move to an arbitrary date, in either the future or the past. Say you want to check your schedule for 331 days from now so you can grab some frequent-flyer tickets to Maui. Hit the “month” button, then flick until you get to June 2009. Let’s hope you don’t need to look at dates in the far future or you’ll end up with a pulled tendon or something.

As with the offline mode behavior of the mail app, it’s mind-boggling that Apple didn’t get these right. We’re not talking cutting-edge functionality here. The fourth one is especially egregious because it’s been that way since the v1.0 release.

Special note to IMAP users: you can receive meeting invitations as .ics attachments, but you can’t open them or add them to your calendar. This is apparently a feature, not a bug. You’re welcome. (Special bonus: the Calendar app just died on me as I was looking at my list of pending invitations).

Tasks

The iPhone doesn’t include a built-in tasks/to-do application. Windows Mobile 6 has task support baked in, so it has a clear advantage here. Apple missed the boat here, as this is a natural piece of functionality for a mobile device. There are a number of such programs at the iPhone App Store, but none of them seem to support wireless sync. My money is on OmniGroup’s OmniFocus, which I’ve recently started using on the desktop. OK, I admit it; OmniFocus doesn’t support sync yet either, but it’s supposed to soon, and I trust them based on their track record.

Notes

The iPhone Notes application is anemic and, IMHO, basically useless. (No, I don’t mean the iPhone version of Lotus Notes, because it doesn’t exist; I mean the built-in Notes application). Given its overall level of uselessness, it’s no surprise that it doesn’t sync with Exchange-side note items. If server sync is important to you, get Evernote, which has clients for Mac OS X, iPhone, Windows, Windows Mobile, and IE/Firefox/Safari. (Ping me if you want an invite). [Update 2: I use OneNote on my Windows machines, and its sync behavior with Windows Mobile is brilliant: plug in your device, automatically get the client, and then sync “just works”. It is not, however, wireless, which is what I need. Plus, there’s no Mac client.]

Policy control and security

The first time I synced the iPhone with my home Exchange server, I didn’t see two things that I expected. Windows Mobile correctly warns me that I’m using a potentially untrusted certificate, because it’s issued by my self-signed root CA. Once the initial sync connection was made, I got a warning that I would have to accept the organization’s EAS policy to let sync continue. The iPhone didn’t show either of this warnings. I consider this a failure in both cases. Without a certificate validity warning, an attacker could easily mount a man-in-the-middle SSL attack. Accepting the server-side EAS policy without telling the user opens the risk that the user’s device will be remotely wiped without her knowledge, or that other policy changes will unexpectedly remove device functionality. Because I’m on the road, I haven’t actually tested any of the remote wipe or security policy options because I need the device to keep working until I return home. Look for a follow-up article (in which I will probably complain that the iPhone doesn’t support the most interesting new EAS policies of Exchange 2007) later.

As a side note, I fixed the original WM certificate error by adding my domain root CA certificate to the device. There doesn’t seem to be a way to do this on the iPhone, although I haven’t tested the desktop provisioning utility.

Bugs!!!1!

Are there bugs? Yes, in fact there are. The most noticeable one for me is Apple’s refusal to use IMAP EXPUNGE to properly remove items. This makes it very frustrating to use an iPhone for IMAP access to an account that you use with Outlook or Entourage elsewhere. There are other bugs, too. For example, when you “reply all” to a message, your sending address is included as a recipient. I already mentioned the way that previously-accepted repeating events act, but I am too busy/lazy to come up with a detailed repro case.

Where to learn more

Apple’s got a decent “quick start” page explaining how to set up Exchange ActiveSync for use with the iPhone, and the Exchange team has a more detailed post on the Exchange team blog. I suspect the comments for this post will be a fertile ground for updates, too. [Update 3 @ 1944 7/15: my main main Omar has a wiki that chronicles bugs in the iPhone Exchange integration here.]

27 Comments

Filed under Reviews, UC&C

HOWTO integrate OCS 2007 and OCS 2007 Speech Server

One of the questions I frequently get in the UC Metro classes is how to install and use OCS 2007 Speech Server. First, you have to download it. After that, installing it is easy, but there are two other things people usually want to be able to do. First, they want to be able to use Communicator to call Speech Server. Second, they want to be able to transfer calls from Speech Server to Communicator. Michael Dunn has answers to both questions.

Comments Off on HOWTO integrate OCS 2007 and OCS 2007 Speech Server

Filed under HOWTO, UC&C

Proofpoint acquires Fortiva

The mating dance in archiving and compliance continues; I just got a press release announcing that Proofpoint has acquired Fortiva, a major software-as-a-service archiving player. This gives Proofpoint a great entrée into the world of archiving, and extends their reach in the SaaS world. This FAQ outlines how the combined entities will function; basically, Fortiva will keep its Toronto development operations, and customers will still deal directly with them for the foreseeable future.

Comments Off on Proofpoint acquires Fortiva

Filed under UC&C

Salesforce.com poaches Notes accounts

Very interesting article from The Register: it seems that Salesforce.com has announced a set of application migration tools to move Notes/Domino applications over to their hosted platform. They are doing so, in part, because Exchange is displacing Notes for e-mail, but the broader MS collaboration platform is not necessarily displacing Notes applications– at least according to the article; they don’t cite any statistics to back it up.

Comments Off on Salesforce.com poaches Notes accounts

Filed under UC&C

Podcasting Kit for SharePoint goes live!

I’ve been wanting to blog about this for a while, but we had to keep the lid on until today. Microsoft just announced the Podcasting Kit for SharePoint (PKS), primarily developed by 3Sharp. PKS is a completely integrated kit that lets you use SharePoint as an enterprise-scale podcasting aggregator and management system. You can publish your own internal podcasts, plus you can catch and redistribute podcasts from other sources. Wherever their origin, the podcasts you manage with PKS can be rated by users, tagged using tag clouds, and played back using Silverlight so that you don’t need a separate podcasting device or application. We’ve already implemented PKS internally and will shortly be rolling out a PKS portal stuffed full of tasty IT Pro content– check our web site for updates.

Comments Off on Podcasting Kit for SharePoint goes live!

Filed under General Tech Stuff, UC&C

HOWTO generate a fake Exchange UM message

When you get a voice mail message from an Exchange 2007 unified messaging server, it gets a unique message type that allows Outlook 2007 and OWA 2007 to represent it as a voice mail. In the UC Metro class I’m teaching in Toronto, someone asked me whether it was possible to create a “fake” voice mail message– in other words, is there some way to create a message from an external application that appears to be a voice message in Exchange UM-aware clients? His question made sense given that his company makes applications that already do voice integration for various things, so I did some digging (by which I mean “I asked some folks on the UM team”). Here’s the deal.

Outlook and OWA use the PidTagMessageClass property to help them decide whether a message is a voice mail. I never would have known this except for the Voice Mail and Fax Objects Protocol Specification, part of the massive spec dump Microsoft unleashed last month. Section 2.1.2.1 explains the possible values for PidTagMessageClass; subsequent sections describe how you must prepare and attach the actual audio content to the message. However, the spec doesn’t explain exactly how to set the message class in the first place; to do that you’ll need to either have mad MAPI skillz (translation: pay Dimitri and use Redemption) or set it yourself using Exchange Web Services and the attribute documentation that tells you which properties have which tags. (Update: For real voicemails, the properties are set by the store’s content conversion engine when the message is accepted at the recipient mailbox. I haven’t tested to see what happens if you submit a message that meets the spec by using SMTP; it would be interesting to know if the properties are correctly applied in that case.)

In a related note, if you’ve ever wondered where the Outlook audio notes field data is stored, check out the PidNameAudioNotes attribute.

Update: each UM user has to have an Exchange Enterprise CAL. That means that anyone to whom you send synthetic VMs to has to have the Enteprise CAL as well, even if they’re not otherwise using UM.

Comments Off on HOWTO generate a fake Exchange UM message

Filed under HOWTO, UC&C

Office 2008 Service Pack 1 released

Boom shaka laka! According to this press release, Microsoft is releasing SP1 for Office 2008 at noon PDT today. It should be up on Mactopia shortly.

Comments Off on Office 2008 Service Pack 1 released

Filed under General Tech Stuff, UC&C

HOWTO download OCS 2007 Speech Server

I had a heck of a time finding the downloadable version of the OCS 2007 Speech Server component, which you can use to build interactive voice response (IVR) and text-to-speech (TTS) capabilities into your own applications. We use it extensively in the UC Metro training, and I needed to reinstall it– but it was nowhere to be found.
Cut to the chase: it’s available at http://www.microsoft.com/downloads/details.aspx?FamilyId=BB183640-4B8F-4828-80C9-E83C3B2E7A2C&displaylang=en. Don’t try searching for “speech server 2007 download” or you’ll only get some old, obsolete microsoft.com pages that offer a broken beta version.

Comments Off on HOWTO download OCS 2007 Speech Server

Filed under UC&C

MS releases Visio connector for Exchange 2007

Now this is pretty slick: a Visio 2007 connector that can connect to an Exchange topology and automatically generate a set of topology diagrams drawn from what it finds on the network. I’ll be looking forward to seeing how this works in more complex environments than my own single-server lab in the basement.

Comments Off on MS releases Visio connector for Exchange 2007

Filed under UC&C

Mac Messenger 7.0 releases

Mac Messenger 7.0 corporate interface So this is what the future looks like. Microsoft released Mac Messenger 7.0 yesterday. The big deal about this release is its support for OCS 2007. In fact, if you’re not an OCS user, there aren’t a lot of new features here (though you can set nicknames for Live Messenger contacts, a useful feature). However, if you are using OCS, there’s a ton of good stuff.

Let’s start with the obvious: there are some new icons in the toolbar that weren’t there before. You can now place, and answer, audio and video calls through OCS. For example, if someone on my team calls me with Communicator, I’ll get a toast telling me that there’s an inbound audio call,and I can answer it, then escalate it to a video call at any time.

Second, you may notice that the “pawn”-style presence icons from previous versions have been replaced with the OCS-style “jellybean” icons. The coloring and shading of these icons is subtly different from those in Communicator, but they fit in well with the overall UI. The large jellybean next to the account name lets you change your presence status to the states supported by OCS: available, busy, do not disturb, “be right back”, and away. As in previous versions of Messenger, you can choose whether or not you want to synchronize the presence states of your MSN Messenger and OCS accounts, although these states don’t necessarily have a 1:1 mapping.

Third, there’s a way to search the GAL! The search field works just like you’d expect: when you enter a full or partial name, you get a list of results in a search pane at the top. I haven’t been able to get this feature to work for federated contacts yet (although I can add federated contacts directly if I know their e-mail address). The utility of the GAL search feature varies according to the size of your GAL: the bigger the GAL, the more useful this feature is.

Fourth, we finally get support for multiple points of presence (MPOP). If you’re logged in to more than one OCS endpoint (say, a Tanjay phone and Messenger), all of the endpoints will publish their local presence states to OCS, and OCS will aggregate them and publish a composite presence state. For example, let’s say that I’m using my Tanjay to place an outbound call. Its presence will show as “in a call”, but my Messenger presence may be “available”. OCS will take both states into consideration, decide that “in a call” trumps “available”, and publish a presence for others to see of “in a call”. This is particularly useful when you consider that OCS has a mobile client (Communicator Mobile), a web client (Communicator Web Access), and two desktop clients, plus devices like the Tanjay. It’s common for a single user to be logged in at more than one place.

One feature I haven’t tested at all is Bonjour support, in both the OCS and personal portions of the client. This might be great if you work for a large company or frequently travel to places where there are lots of other Mac users; neither of those is true of me, so I have no idea if this feature works or is useful. Stay tuned; I’ll try it on my next couple of business trips and report back on what happens.

There are some Communicator/OCS features that aren’t included in this release. For one, you cannot place outbound PSTN calls like you can in Communicator. there’s no way to change the access level of a contact or to tag a contact for status change alerts. At present, there’s no way to join an OCS-hosted conference; Messenger has very limited AppleScript support, and it is not as well-integrated with Entourage as it could be. Overall, though, this is a solid release, and the price ($0) is certainly hard to beat.

2 Comments

Filed under UC&C

HOWTO set the UM codec on a per-user basis

Exchange 2007 supports three codecs for Unified Messaging voice messages. I knew that you could choose which codec Exchange uses at the dial plan level, but until recently, I didn’t know that you could change this setting for individual users. The key is to use the CallAnsweringAudioCodec switch with the Set-UMMailbox command, like this:

Get-UMMailbox “paul” -CallAnsweringAudioCodec gsm



Of course, you can do lots of more interesting things with this cmdlet by using filters or other means to apply this setting to a group of users… say, your Entourage users, who can’t listen to UM voice mails recorded with the default WMA codec.

Technorati Tags: , ,

1 Comment

Filed under UC&C