Monday, December 22, 2008

Viewing the downloaded Address Book file in readable format

For troubleshooting reasons I have often looked in the garbled ABS file (GalContacts.db) that is downloaded to the Office Communicator client in the %userprofile%\appdata\Local\Microsoft\Communicator\ folder. I just stumbled over this tip for creating a version of the ABS file in CSV format that is saved in "My Received Files".

Set the following registry key to enable the CSV file creation and then restart Office Communicator.

[HKEY_CURRENT_USER\Software\Microsoft\Communicator]
"DumpContactstoCSVFile"=dword:00000001

View Jeff Schertz full tip (with screenshots) in his post Viewing the OCS Address Book (for Humans).

Sunday, December 21, 2008

Office Communications Server 2007 R2 is RTM'ed

On the 19th of December Office Communications Server 2007 R2 was Released To Manufacturing (Build 6907), so it is in good time for the official launch on February 3rd.

We have been working with R2 since the Beta and are currently working hard to develop our material for our 4 days on-site Voice training delivered on R2 (Now based on RC, but will be updated to RTM before the first trainings start in January). Our new training will include training on all aspects of R2, but as usual with a special focus on Voice integration.

image

New in this version are a lot of things like telephony enhancements and new clients including the Attendant Console (A group based switchboard solution) an updated "Office Communicator for Windows Mobility R2" (Nicknamed CoMo) that includes phone state on mobile phone calls and One Number features (I will do a review of this client later), Dial-in conferencing support (Including CWA support for external clients) and of course enhancements to the overall architecture (Including a move to a 64 bit Server platform) and not least an updated CWA that now supports Desktop Sharing also for external users and non-Microsoft browsers ... and much, much more that I will talk about later (Or that you can find at other blogs).

The official launch of Office Communications Server 2007 R2 will be a soft launch and Inceptio (the company I work for) is participating as a sponsor for this event, that you can sign up for here.

What will we do in terms of spreading the word on R2?

I have had plans to publish information on R2 earlier, but I didn't since it was hard to determine what information was OK to publish and what was not (And I like my MVP benefits to much too risk it). I will now start posting information on R2 starting with the new Windows Mobility client.

Furthermore I will be speaking at Exchange Connections (March 15-18 2009) and I currently have three sessions (Subject to change).

OCS 2007 R2 from PowerPoint to Reality

So you have seen all the nice presentations and demos from Microsoft on Unified Communications and bought the idea!? As you probably guessed, it usually is a tad more complex than the marketing slides tries to convince you, so in this session I will give you the tricks for implementing OCS 2007 R2 in your organization successfully. After this session you will know where to focus your attention before, during, and after your deployment project, including advice on where to focus your attention in terms of the organizational implementation.

Tips and Tricks for Maximizing Your Investment in Unified Communications
So you have OCS 2007 R2 and/or Exchange 2007 implemented in your organization and you are starting to realize your investment by using presence, click-to-dial, one Unified Messaging inbox etc., but maybe you want even more ROI on your investment? In this session we will do a lap around the platform and look under the hood for developers. We will look at and demonstrate how to integrate business processes with Exchange 2007 SP1 Web services, how to build services that manage communications, and also take a look at Windows Workflows that talk and IM.

What Does it Take to Voice-Enable Your OCS 2007 R2 Deployment?

How do you provide OCS 2007 R2 and Exchange with its own voice? This session will focus on all the voice capabilities of OCS and Exchange. We’ll discuss the possible scenarios and how to enable them in your environment. This will include detailed discussions on the actual capabilities of the different solutions and based on experience from real-life deployment the efforts required to implement and maintain the different voice scenarios ranging from a pure standalone Enterprise Voice scenario to a full PBX and UM integrated dual forking scenario.

See all of the sessions here.

Lastly we have our training sessions including 2-4 day (based on previous experience) OCS 2007 R2 Voice Boot Camps that we deliver on-site in Europe, both as open and closed training sessions. They Include level 3-500 training on OCS 2007 R2 infrastrucutre and Voice related subjects and we bring a full lab environment including powerful portables, network, telephony equipment (E.g. Nortel CS1000, Gatewasy and/or soft PBX) wideband GN2000 headsets, and much more. The newest addition to this is our 2-day developer training on R2/Exchange 2007 SP1 (Get more info in this by contacting me at my.initials@inceptio.dk).

So I guess 2009 will be yet another busy year ;-)

CU out there !

Tuesday, December 16, 2008

WM 6.1, AccuWeather and Schap's Advanced Config

Just upgraded my HTC Touch Dual to Windows Mobile 6.1 and were doing all my settings again. One program I used to have was Schap's Advanced Config (SAC) but in v1.1. From the site, I got v2.0 and that had a nice new feature: You can change the location used by the weather forecast application. My problem was that Billund, Denmark could not be chosen from the list, but by finding Billund at www.accuweather.com, I could get the city code EUR|DK|DA008|BILLUND from the URL and specify that using SAC. Now the weather app shows the correct forecast :)

Friday, December 12, 2008

Matching multi-line text and converting it into objects

Sometimes your input is simply text and you have to work with it. If it is line-based e.g. each object is a separate line, it is not so hard, but what if the output is very dynamic and the information you need to combine spans multiple lines? In this case, you could start making some kind of state machine e.g. when the starting point is reached, set a variable, save data as you go and when the ending point or the next starting point is reached, construct the object and emit it to the pipeline so it can be used.

Well, there are better ways and in this example, I'll combine these things to make is much more straight-forward and generic -

  • Use regular expressions (regex) for matching the information you want
  • Show how to construct a regex in a readable way spanning multiple lines and containing comments
  • Using a dynamic approach, where the named captures in the regex are automatically converted into properties on the output object. This means that you only have to specify the name one, the loop processing the matches is totally generic and can be reused.

The examples uses output from repadmin /showrepl, but this is just an example I picked up more or less randomly. The idea here is to show the use of regex and converting the result to objects, the idea is not to create a bullet-proof parser of the output from repadmin /showrepl.

Here's the example -

# Define some text, in this case the text is stored in $text, but
# is could come from anywhere

$text=@'
DC Options: IS_GC
Site Options: (none)
DC object GUID: aff429b7-5694-4bda-ae4a-daa7d371ce0f
DC invocationID: b578e349-5846-46c5-8e01-b4a81d609e27
==== INBOUND NEIGHBORS ======================================
DC=company,DC=org
BLL\045ADDC001 via RPC
DC object GUID: 26446473-3433-4c73-942d-c750f0e476ec
Last attempt @ 2007-08-21 13:38:53 was successful.
CN=Configuration,DC=company,DC=org
BLL\045ADDC001 via RPC
DC object GUID: 26446473-3433-4c73-942d-c750f0e476ec
Last attempt @ 2007-08-21 13:38:53 was successful.
CN=Schema,CN=Configuration,DC=company,DC=org
BLL\045ADDC001 via RPC
DC object GUID: 26446473-3433-4c73-942d-c750f0e476ec
Last attempt @ 2007-08-21 13:38:54 was successful.
DC=DomainDnsZones,DC=company,DC=org
BLL\045ADDC001 via RPC
DC object GUID: 26446473-3433-4c73-942d-c750f0e476ec
Last attempt @ 2007-08-21 13:38:54 was successful.
DC=ForestDnsZones,DC=company,DC=org
BLL\045ADDC001 via RPC
DC object GUID: 26446473-3433-4c73-942d-c750f0e476ec
Last attempt @ 2007-08-21 13:38:54 was successful.
'
@

$regex=[regex] "(?msx)
# Option m = multi-line e.g. ^=start of line and $=end of line
# Option s = single-line e.g. . includes end-of-line
# Option x = spaces and comments are allowed in the pattern making this
# line possible

# Start of line (^), match partition, eat until end of line ($)
^ (?<partition> (CN|DC)=[^`$]+? )`$

# any chars - ? means lazy i.e. match as few characters as possible
.+?

# match site before \ using a series of wordchar
(?<Site> \w+) \\

# match domain controller afterwards
(?<DC> \w+)

# any chars
.+?

# match the date last attempted, note the spaces are escaped as option x is used
Last\ attempt\D+ (?<date> [\d\-]+\ [\d\:\.apm]+ )
"


# Search for pattern matches in $text
$regex.matches($text) | Foreach-Object {
# Save current pipeline object, so it is available from inside the next foreach-object
$match=$_
# Construct a new, empty object. Always return objects as output whenever possible. It
# makes using the output must easier
$obj=new-object object
# Get all the group names defined in the pattern - ignore the numeric, auto ones
$regex.GetGroupNames() | Where-Object {$_ -notmatch '^\d+$'} | Foreach-Object {
# And add each match as a property. When multiple results are returned, the
# value must be picked up using an index number hence the GroupNumberFromName call
add-member -inputobject $obj NoteProperty $_ $match.groups[$regex.GroupNumberFromName($_)].value
}
# emit the object to the pipeline
$obj

}



This is the output -




partition                     Site                          DC                            date
--------- ---- -- ----
DC=company,DC=org... BLL 045ADDC001 2007-08-21 13:38:53
CN=Configuration,DC=compan... BLL 045ADDC001 2007-08-21 13:38:53
CN=Schema,CN=Configuration... BLL 045ADDC001 2007-08-21 13:38:54
DC=DomainDnsZones,DC=compa... BLL 045ADDC001 2007-08-21 13:38:54
DC=ForestDnsZones,DC=compa... BLL 045ADDC001 2007-08-21 13:38:54



A final note: If you input is an array of strings, you have to convert it into a single text string before calling $regex.matches. This can easily be done, by joining the elements using newline as a delimiter -




[string]::join("`n",$array)

Friday, November 21, 2008

Update Rollup 5 for Exchange Server 2007 SP1 released

The latest update for Exchange Server 2007 SP1 was released by Microsoft yesterday.

As usual, a number of issues are fixed – a couple of highlights:

955989 (http://support.microsoft.com/kb/955989/ ) The SPN registration of a cluster fails, and Error event IDs 1119 and 1034 are logged in an Exchange Server 2007 Service Pack 1 environment

954197 (http://support.microsoft.com/kb/954197/ ) Exchange 2007 CAS cannot copy the OAB from the OAB share on Windows Server 2008-based Exchange 2007 CCR clusters

Download link: http://www.microsoft.com/downloads/details.aspx?familyid=652ed33a-11a1-459c-8ffe-90b9cbfe7903&displaylang=en&tm

Fix list: http://support.microsoft.com/?kbid=953467

Happy patching :-)

Tuesday, November 11, 2008

Office Communicator Mobile update

Just a quick note to point your attention to the latest release of Office Communicator Mobile (2007 Release).

A couple of fixes in the new release, most notably KB954769, which now enables login to Communicator Mobile when running in High Security mode - the update makes Communicator Mobile use NTLM for both medium security and high security mode.

Update description and list of fixes: http://support.microsoft.com/?kbid=954767

Update download link: http://www.microsoft.com/downloads/details.aspx?familyid=2eea3e24-f216-4887-92b0-f37d942e26e0&displaylang=en&tm

Thursday, November 06, 2008

ILM "2"

MIIS is a great engine for synchronization but the lack of a decent interface - for the administrator as well as for the end user - have made it necessary to either create a lot of code yourself or invest in other systems like Omada.
With ILM "2" (what a nice name...) the game has changed. While not as complete as Omada, ILM "2" seems to have a bunch of very useful features. I just attended an instructor led lab session here in Barcelona and the way and how easy you can do workflows and dynamic groups, makes a pure ILM "2" implementation possible - at least as a starting point or for simpler things. I haven't digged into ILM "2" too deep (yet), but what I have seen, seems ok.

Pull down an VHD with the RC-code from http://technet.microsoft.com/en-us/evalcenter/cc872861.aspx

Wednesday, November 05, 2008

Server 2008 R2 Active Directory and PowerShell

Filling my head at Tech-Ed, luckily, others are more efficient bloggers than I am.

Read this excellent summary by Dmitry of the "Windows Server 2008 R2 Active Directory: What’s Coming Up"” session at IT Forum (TechEd EMEA IT Pro) by Robert DeLuca and Alain Lissoir

Tuesday, November 04, 2008

A Day at Tech-Ed the PowerShell Way

Start-Service $body

Set-Location $bathroom
Clear-Item $body

Set-Location $restaurant
Get-Item $breakfast | Format-table | Add-Content $body

Set-Location $bathRoom
$body.oldFood | Out-Null
Clear-ItemProperty $body teeth

Set-Location $desk
$today=(Get-Date).Date
$potentialSessions=Get-ChildItem $sessions | `
Where {$_.description -gt $interest -and $_.date -eq $today} | foreach {
$_ | Add-Member Noteproperty Priority (read-host "Priority") -Passthru
} | where {$_.priority}
$plannedSessions=$potentialSessions | group timeslot | foreach {
$_.group | sort priority | select -first 1
}

Set-Location $conferenceCenter
$informationOverload=$false
$plannedSessions | foreach {
if ($informationOverload) {
Start-Sleep -Minutes 90
$informationOverload=$false
}
else {
Invoke-Item $_ | where {$_.content -notlike "sales pitch"} | `
Add-Content -path $body.brain
}
[void] (Start-Sleep -Minutes 30) -and (Add-Content $body $coffee)
if ($body.brain.overloaded) {$informationOverload=$true}
}

Set-Location ($anywhere | where {$_.beerCount -gt 5 -and $_.price -eq $null} | select -first 1)
while ($body.thirsty -and $body.alcoholPercentage -lt 1.5) {
Add-Content $body $beer
}

Set-Location $hotelRoom
Start-Sleep -minutes (60*7)

# See you tomorrow ;)


OCS 2007 R2 Planning Tools – Update #2

You may have tried the OCS 2007 Planning Tool, that was Microsoft’s first try at creating a planning tool for OCS. When I blogged about the R1 version of the tool I emphasized that it was a good start, but there was room for improvement. At least one of my suggestions has been incorporated into the product (Not taking the credit for that though), namely removing the requirement for high availability at the small sites.

New features in the R2 Planning Tool are (from my memory of what was in the R1 tool) -

  • Unified Messaging
  • Monitoring Server (The replacement for QoE Monitoring, that includes CDR)
  • The new Unified Communications Applications (New roles)
    • Response Group Service
    • Conference Auto-attendendant
    • Conference Announcement Service
    • Outside Voice Control
  • Group Chat Server (New)
  • Device Update Solution (The new Update Server, that is automagically installed with OCS and includes updates of Office Communicator 2007 clients)

Then the design of how to handle sites is greatly enhanced, it will for each site you deploy ask you a series of questions about what you want to deploy at each site e.g.

  • Online Collaboration
    • Conferencing features
    • CWA
    • Group Chat
  • Users
    • Internal and/or federated (Basically do you want to deploy Edge)
  • Voice
    • Enterprise Voice (E.g. do you want local Mediation Servers)

Lastly you will be asked if you want to use Edge Servers at a specific site or Edge Servers for each site.

So a lot of new features including even better links and explanations for scalability, planning steps and assumptions for users – a very good step forward (although we still need to be able to export the topology drawings to Visio files ;-) and it doesn’t end up with 225 servers for a simple OCS deployment, due to the more detailed questions related to sites. UPDATE #2 – at TechEd we were told that export to Visio will be part of the product.

I haven’t included screenshots in this post as I’m not sure if they are still covered under NDA, but basically the tool looks very similar to the old version.

The Edge Planning Tool will be enhanced for R2 as well, but this wasn’t demonstrated and I haven’t seen it either. Take a look at the current version at Tom Laciano’s blog or Jeff Schertz detailed post on the current Edge Planning Tool.

Monday, October 27, 2008

CU @ TechEd EMEA ?

I will be in Barcelona next week and look forward to seeing some of you there! There is a lot of content on OCS 2007 R2 and I plan to attend most of these sessions to get some inspiration for our own R2 training offering.

If you want to catch-up then feel free to send me ‘sip’ call/IM or e-mail me at myinitials@inceptio.dk otherwise I will be in the Ask-The-Expert (or the MVP foolish enough to volunteer ;-) area for Unified Communications Monday from 19-21 and Tuesday from 13-17.

Wednesday, October 22, 2008

My favorite free Office Communicator tool – quick dialer from ESTOS

My favorite tool for Office Communicator is the ESTOS PhoneTools for Office Communicator and it works so well that I thought I would return the favor by doing some free advertising for ESTOS ;-)

The tool provides the ability to highlight a phone number in any program / web page like this one from our webpage at Inceptio -

image 

After which you can press a hotkey (F8 is default) to dial the number. The configuration is very simple, you install it and then configure the following options -

image image

Notice that the phone number you highlight doesn’t have to be normalized, it will use your normalization rules to convert the number to E.164 format.

The product works perfectly fine with Office Communicator 2007 and R2, I personally haven’t had any issues with.

Go check it out at the ESTOS PhoneTools website.

Office Communications Server 2007 R2 resources #2

As you may know OCS 2007 R2 was publicly announced at VoiceCon. This also lifted the NDA so bloggers, Microsoft, the press etc. are now allowed to talk about OCS 2007 R2 in details.

I was in Redmond a few weeks ago to attend the R2 Metro training (Train The Trainer training on OCS 2007 R2 development) and we are also running OCS 2007 R2 internally as part of our preparation for delivering UC Boot Camps and events on R2 and I will create a series of posts on OCS 2007 R2 in the next weeks.

For now I have created a small collection of links to places, where you  can find more info on R2 -

Videos from VoiceCon 2008 (see all here)  -

  • Keynote by Eric Swift (From Microsoft if in doubt)
  • Keynote by Johan Krebbers, Group IT Architect, Royal Dutch Shell
  • Microsoft Booth visit

2 videos in a series of 6 is now posted on Edge.technet.com on OCS 2007 R2

  1. What’s new on conferencing … 
  2. OCS and the new Attendant

And according to the Office Communications Server 2007 team blog the following videos will be posted in the next couple of weeks -

  1. What’s New in Office Communicator, Communicator Web Access, and Devices with Office Communications Server 2007 R2
  2. Group Chat and Office Communications Server 2007 R2”
  3. What’s New in Mobility and Anywhere Access with Office Communications Server 2007 R2
  4. What’s New in Administration and Management with Office Communications Server 2007 R2

Speech Server 2007 vs UCMA v2.0 WF activites

New Server Roles and Client Features in OCS R2 by Jeff Schertz

OCS R2 Edge Bombshell by Jeff Schertz

Microsoft OCS 2007 R2 Heralds the Death of the IP-PBX from the VoIP & Gadgets blog

Jamie Starks blog from VoiceCon

The official Press release - Microsoft Unveils Microsoft Office Communications Server 2007 Release 2

Tuesday, October 07, 2008

Forefront Threat Management Gateway Beta

I've been playing around with the beta of Microsoft Forefront Threat Management Gateway (TMG for short) since its release in late spring.

Last week, I was looking to do some testing, and logged on to the TMG box. I noticed that the 'Update Services License' had expired. (When the TMG Beta is installed, a 90-day license for Malware Inspection is installed)

Well, lab environment or not, such details have to be taken care of, so I rummaged around a bit in the interface. Turns out that addressing this is really simple:

Right-click the 'Malware Inspection' service entry, click "License Details", and change the expiration date to your liking. Your TMG Beta should now be able to download updated malware definitions again.

Rollup 4 for Exchange Server 2007 SP1 available

Update Rollup 4 for Exchange Server 2007 SP1 is now available here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=8b492ed2-ea92-412f-a852-3aa1c58d9499&DisplayLang=en

Note that it's not being offered through Microsoft Update at the time of writing this, so a manual download is in order.

Lots of fixes, including KB950138 (Outlook Anywhere issues when running Exchange 2007 SP1 on Windows Server 2008).

For the complete list of fixes go here: http://support.microsoft.com/?kbid=952580

Monday, September 29, 2008

Restarting Windows XP from a startup script is not easy

Yes, they are still out there running the big businesses!

Today, I was messing with a startup script, that should restart the PC - but WMI did not do it and shutdown.exe just returned device is not ready. This should have been fixed in SP2 - at least some KBs claims that - but that is clearly not the case.

Eventually, I found a way around: Create an AT-job to do the restart. That worked. But it was too slow as AT-jobs needs to be postponed at least a minute.

Finally, good old Sysinternals came to the rescue - this time in the shape of psexec. Sysinternals have saved the day many times and back in the late nineties you could simply not lock down and figure out where to relax security on an NT 4 without regmon and filemon. Anyway, back to today. This was how I solved my present problem -

psexec -accepteula -sd shutdown -r -t 5



 



-sd tells it to start the process in system context (the s) and detached (d) as I did not want to wait for the command - I wanted my script to finish as long as it had time to do so.

Presence the WPF way

Last time I described how to embed the presence controls onto a WPF form via the WindowsFormsHost control. Since some great things has happened. George Durzi at Clarity Consulting has released the presence controls for WPF. Its now more simple to implement presence in WPF. A persona list can be implemented like this.

<Window x:Class="NewUCControls.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:presence="clr-namespace:Microsoft.Samples.Office.UnifiedCommunications.PresenceControls;assembly=WPFMOCPresenceControls"

Title="Window1" Height="300" Width="300">
<Grid>
<presence:PersonaList Name="personaList1" Loaded="personaList1_Loaded" ShowDisplayName="True" ShowToolTip="True" ShowDetailedToolTipText="True" ShowContextMenu="True" ShowAvailability="True" />
</Grid>
</Window>

Loading personaslist is also easily done by:

List<string> sipURIs = new List<string>()
{
"someone1@somewhere.org",
"someone2@somewhere.org",
"someone3@somewhere.org",
};

personaList1.SipUris = sipURIs;

and the result will look something like this

image

Direct SIP with IP-PBX in OCS 2007

The OCS team has now posted more information on Direct SIP integration with third-party PBX’s and the RFC 3966 “changes” made to accomplish this that I started to discuss in my post Cisco is now a qualified IP PBX for Direct SIP with OCS 2007. Here’s a snippet -

With the hotfixes released in August 2008, Microsoft is significantly improving the capability for Office Communications Server 2007 to exchange calls with SIP-based IP-PBX, in particular from Cisco. As a consequence, Microsoft now supports OCS deployments in Direct SIP with IP-PBX between Office Communications Server and specific versions of Cisco Call Manager.

This change gives administrators the possibility to set up Office Communications Server so that it can directly interoperate with IP-PBX using E.164 globally routable telephone numbers without RFC3966’s mandated “+” prefix. Additionally, Office Communications Server will now be able to interoperate with IP-PBX within a private dialing plan, exchanging locally routable private numbers.

The post continues to discuss these changes in details and is certainly a recommended read. Find it here.

Saturday, September 27, 2008

Backing up remote eventlogs using WMIC

This week, I was out on an oil rig in the North Sea helping out in some fail-over testing. After the test, I had to collect eventlogs from all the computers involved and as I'm an scripting guy, I definitely did not want to do that manually. Now, this is a Windows Server 2003 and Windows XP environment. Furthermore, it is a highly restricted environment so I could not install PowerShell or plug in and use my own PC; I had to look elsewhere. First, I looked at Sysinternals's psloglist, but that could not do the job. It could either dump the eventlogs as text - I wanted binary - or it could dump as binary and empty the logs at the same time. I only wanted a backup. Next, I googled and live searched, but did not really find anything useful, when my old fried WMIC resurfaced in my mind. Wasn't there some method call in WMI, that could do the job?

Using my own PC, I could easily find the method. It was just a matter of writing gwmi win32_nt, pressing tab (as I naturally use PowerTab), selecting win32_NTEventlogFile and piping it into Get-Member -

gwmi win32_nteventlogfile | gm



And the method BackupEventlog showed up. I started wbemtest on a Windows XP PC and checked that the method also existed on Windows XP. After this, I started to figure out the WMIC command line - which quite often is hard to get right. I ended up with -



 




wmic /node:"server" nteventlog where "logfilename='system'" call backupeventlog "c:\system.evt"



Note, that the backup file specification is local to the remote node. I tried saving it back on the local PC with \\currentpc, but got access denied and I did not want to create a share for this. Also note that the WMIC alias for Win32_NTEventlogfile is NTEVENTLOG



Finally, I ended up with this backup.bat file. All.txt contains a list of the computers, I needed to get the logs from. Note that I delete the evt-files first as backupeventlog will not overwrite an existing file (if I needed to re-run the script)




set targetdir=%temp%\logs
for /f %%I in (all.txt) do del \\%%I\c$\*.evt
for /f %%I in (all.txt) do wmic /NODE:"%%I" nteventlog where "logfilename='system'" call backupeventlog "c:\system.evt"
for /f %%I in (all.txt) do wmic /NODE:"%%I" nteventlog where "logfilename='security'" call backupeventlog "c:\security.evt"
for /f %%I in (all.txt) do wmic /NODE:"%%I" nteventlog where "logfilename='application'" call backupeventlog "c:\application.evt"
for /f %%I in (all.txt) do robocopy \\%%I\c$ %targetdir%\%%I *.evt /z /njs /njh
for /f %%I in (all.txt) do del \\%%I\c$\*.evt

Saturday, September 06, 2008

Cisco is now a qualified IP PBX for Direct SIP with OCS 2007

The following versions of Cisco Unified Communications Manager has been qualified for Direct SIP integration with Microsoft Office Communications Server 2007 (It has been working with some restrictions for quite a while, but is now a tested and “qualified” solution)-

4.2[3]sr3a, 5.1.3.3000-5 & 5.1.3.1000-12 and not least 6.1.1.3000-2

Note that interoperability requires the August 2008 Update Package for OCS 2007 as described in KB952780 and also KB952783 although the latter it is not listed on the UC OIP page. KB957280 is for the Mediation Server role and KB952783 are for all the other roles (Automatically delivered through Microsoft Update). Also the Office Communicator 2007 client update KB954439 is required according to KB957285 (This upgrade currently has to be requested directly through PSS).

The fixes (that we have been waiting for quite a while) allows you to select to break some of OCS 2007 RFC 3966 compliant use of E.164 numbers for interoperability with “certain” PBXs (Read Cisco but it may also apply to other vendors) that do not correctly use or understand the + sign in a E.164 number.

Following are the changes as explained in KB92785 “Outgoing calls from Communications Server 2007 Mediation Server may not be routed correctly” -

By default, Microsoft Office Communications Server 2007 Mediation Server uses a plus sign (+) to prefix E.164 numbers in the Request Uniform Resource Identifier (URI) for outgoing calls. However, certain private branch exchanges (PBXs) do not accept numbers that are prefixed by using a plus sign (+). Therefore, an outgoing call may not be routed correctly. Additionally, the "From" headers for incoming calls from certain PBXs do not comply with Requests for Comments (RFC) 3966, "The tel URI for Telephone Numbers." In this case, Office Communicator does not resolve the number to the correct user.

To make sure that Mediation Server operates correctly together with PBXs, update 952780 adds a new Mediation Server configuration file setting for Communications Server 2007. This configuration file is called RemovePlusFromRequestURI, and it contains one of two settings, YES or NO. If your PBX does not accept numbers that are prefixed by using a plus sign (+), the setting in the configuration file should be YES. The YES setting causes Mediation Server to remove the plus sign (+) from a Request URI for outgoing calls. It also removes the plus sign (+) from the "To" header and the "From" header. If the configuration file setting is set to NO, Mediation Server will not change the Request URI, the "To" header, or the "From" header.

Note that you will have to manually force the Mediation Server to strip of the + sign using the intelligently named configuration file “RemovePlusFromRequestURI”.


Update 952783 introduces functionality for Communications Server 2007 to remove the plus sign (+) from the "From" header when it is not E.164-compliant. If this action does not create an E.164-compliant number, Communications Server 2007 introduces a "P-Asserted-ID" header that has a phone-context value of "enterprise." This header enables the user lookup functionality in Communicator 2007. Additionally, Communications Server 2007 bypasses the server normalization logic if the header contains a phone-context value of "enterprise."

It’s good to see the list of Qualified PBXs expanding; now we can only hope that the Dual Forking scenarios will follow troop with Cisco and all the other vendors who has promised to deliver Interop (E.g. Alcatel, Avaya, Ericsson, Mitel, NEC and Siemens).