unified messaging

All posts tagged unified messaging

Voicemails worden niet afgeleverd in de inbox

Zoals je misschien wel weet beschikt Exchange 2010 over een mogelijkheid om voice mails af te leveren in de mailbox van een gebruiker. Er wordt hierbij gebruik gemaakt van het SMTP protocol om berichten via de HUB server af te leveren in de mailbox server.

Indien je meerdere receive connectors hebt kun je, indien deze verkeerd zijn geconfigureerd, tegen problemen aanlopen zoals onderstaande melding:

The Unified Messaging server encountered an error while trying to process the message with header file “C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\voicemail\bee89072-35bb-4e28-8f7d-733029404602.txt”. Error details: “Microsoft.Exchange.UM.UMCore.SmtpSubmissionException: Submission to the Hub Transport server failed. The operation will be retried. —> Microsoft.Exchange.Net.ExSmtpClient.UnexpectedSmtpServerResponseException: Unexpected SMTP server response. Expected: 220, actual: 500, whole response: 500 5.3.3 Unrecognized command

Zoals je ziet in bovenstaande melding treed er een error 500 5.3.3 op wanneer wordt geprobeerd het bericht af te leveren bij de HUB Transport server. Standaard zal de UM server het certificaat gebruiken om zich te authenticeren. Hierbij is het van belang dat de Exchange Server authenticatie optie aanstaat op de receive connector. Standaard zal dit de client servernaam zijn, bijvoorbeeld Client EX003. Deze connector accepteert standaard alle connecties van verbindingen die geauthenticeerd zijn.

Wanneer je een receive connector aanmaakt, bijvoorbeeld een relay voor applicaties, dien je deze te beschermen door de specifieke IP adressen of IP reeksen op te geven. Dit laatste is kan natuurlijk leiden tot vreemde situaties. Stel dat de UM server IP adres 192.168.1.25 heeft en de reeks 192.168.1.1/24 wordt toegevoegd aan de relay connector. Dan zal dit als gevolg hebben dat de server zich niet meer kan authenticeren met het certificaat wat kan leiden tot de error 500 5.3.3. De UM server gaat er namelijk vanuit dat hij zichzelf moet authenticeren met het certificaat.

Indien je toch gebruik wil maken van hele reeksen in de relay connector is er één oplossing: configureer een aparte connector met het UM server IP adres en de correcte authenticatie methode.

Dit zal als gevolg hebben dat de UM server deze connector gebruikt in plaats van de relay connector. Voor receive connectors geld namelijk dat de meest restrictieve connector zal worden gebruikt.

Tijdens een upgrade naar Exchange 2010 SP1 liep ik tegen een vervelend probleem op. Na het upgraden van de Unified Messaging server accepteerde de server geen gesprekken meer.

In dit geval was de Unified Messaging server verbonden met een Nortel CS1000 centrale welke gebruik maakt van o.a. de subscriber access en auto attendant van Exchange.

Maar hoe kom je erachter wat er precies verkeerd gaat? Als eerst natuurlijk de event logs bekeken van de UM server hier was eigenlijk weinig bijzonders in te zien. Omdat het logging level standaard op een laag niveau staat is het, zeker in dit soort gevallen, handig om deze tijdelijk wat hoger in te stellen. Dit kun je op twee manieren doen:

  • Exchange Management Console
  • Exchange Management Shell

Exchange Management Console

  • open de Exchange Management Console
  • selecteer de node server management
  • selecteer de Unified Messaging server
  • selecteer de optie Manage Diagnostics Logging in het rechter menu
  • zoek MsExchange Unified Messaging op in de lijst
  • verhoog het logging niveau voor: UMCalldata, UMCore en UMService

Exchange Management Shell

  • open de Exchange Management Shell
  • voer de volgende Powershell cmdlets uit:

              Set-EventlogLevel “Servername\MSExchange Unified Messaging\UMCalldata”
              -level Expert
              Set-EventlogLevel “Servername\MSExchange Unified Messaging\UMCore”
              -level Expert
              Set-EventlogLevel “Servername\MSExchange Unified Messaging\UMService”
              -level Expert

Belangrijk om op te merken is dat je niet vergeet het logging niveau weer in te stellen op het originele niveau nadat je klaar bent met troubleshooten.

Wanneer het logging niveau is aangepast dien je het probleem opnieuw te reproduceren. Dit kan eenvoudig gedaan worden door bijvoorbeeld te bellen naar de Subscriber Access.

In dit geval was hier ook niet voldoende in te zien dus bleef er maar één optie over: een sniffer gebruiken. Persoonlijk ben ik favoriet van Wireshark welke je gratis kunt downloaden van deze site

Eenmaal geïnstalleerd dien je het probleem nogmaals te reproduceren, vergeet hiervoor niet de capture te starten.

Wanneer het probleem is gereproduceerd zul je in de capture diverse berichten zien van het protocol SIP. Selecteer één van deze regels en kies vervolgens de optie Analyze gevolgd Follow TCP Stream. Dit zorgt ervoor dat alle SIP berichten worden weergeven in één overzicht.

Normaliter zul je de volgende berichten zien: 

In dit probleem geval volgde direct na de Invite een Moved Temporarily:

SIP/2.0 302 Moved Temporarily
FROM: “Johan Veldhuis”<sip:110@pabx.local;user=phone>;tag=4ed6938-a161f0a-13c4-40030-6e2965-28e24116-6e2965
TO: <sip:101@pabx.local;user=phone>;epid=EEBEB645D0;tag=4c63a61135
CSEQ: 1 INVITE
CALL-ID: 5219808-a161f0a-13c4-40030-6e2965-72d8d4f0-6e2965
VIA: SIP/2.0/TCP 192.168.1.60:5060;branch=z9hG4bKc2922de4f77bdbe59f2613f3.1,SIP/2.0/TCP 192.168.1.10:5060;received=192.168.1.10;branch=z9hG4bK-6e2965-ae51b48a-6f4d0e7
CONTACT: <sip:101@pabx.local:5065;user=phone;transport=Tcp;maddr=pabx.local>
CONTENT-LENGTH: 0
SERVER: RTCC/3.5.0.0

Wanneer je kijkt naar bovenstaande trace zie je dat naast poort 5060 ook gebruik gemaakt wordt van poort 5065. Exchange UM probeert namelijk het gesprek te verplaatsen van poort 5060 naar poort 5065. Echter de Nortel centrale blijft hardnekkig verzoeken sturen naar poort 5060. Om dit probleem op te lossen dient de trunk aan de Nortel kant aangepast te worden zodat deze verkeer stuurt naar poort 5065 i.p.v. 5060.
Nadat dit is aangepast zal de Nortel de Exchange UM weer kunnen bereiken zonder problemen. Maar is dit een echte oplossing? Niet echt maar voordat ik dit bespreek is er eerst wat meer uitleg nodig.

Maar waarom wil Exchange het verkeer omleiden naar poort  5065 en niet gewoon poort 5060 welke standaard gebruikt wordt voor SIP?  Poort 5060 wordt inderdaad gebruikt voor SIP maar naast dit proces draait het UM Worker proces wat verantwoordelijk is voor de uiteindelijke afhandeling. Exchange maakt hiervoor gebruik van een aantal poorten:

  • 5065 en 5067 voor SIP
  • 5066 en 5068 voor Secure SIP

Het Exchange UM Worker proces wordt één keer per week gerecycled wat dus betekend dat het zomaar deze week poort 5065 is en volgende week poort 5067. Wanneer dit gebeurd zal de Nortel dus wederom geen gesprekken meer af kunnen leveren aan de Exchange UM server.

Is er een oplossing voor het probleem? Op dit moment nog niet maar er zal ongetwijfeld hard gewerkt worden aan een oplossing hiervoor. Tot dit zover is zijn er een aantal opties:

  • upgrade Exchange 2010 niet naar SP1
  • plaats een gateway tussen de Exchange 2010 UM server en de Nortel omgeving
  • reboot de Exchange 2010 UM server elke week

Aangezien alle opties niet echt oplossingen zijn is het kiezen voor de minst slechte in mijn ogen is dit de laatste oplossing.

Wil je meer informatie hebben over hetExchange 2010 UM proces neem dan eens een kijkje op de volgende site.

In Exchange 2010 SP1 beta zijn veel veranderingen terug te vinden. In deze tutorial ga ik specifiek in op de Unified Messaging Role van Exchange 2010 SP1

Voordat je gaat beginnen met de installatie van de UM rol dien je er voor te zorgen dat je onderstaande twee bestanden hebt gedownload en geïnstalleerd:

Dit is nieuw in Service Pack 1, in de RTM versie was het niet benodigd om deze bestanden te installeren maar was het voldoende om de prerequisits middels de Exchange-UM.xml te installeren. De bovenstaande bestanden zijn een aanvulling hierop. Let op dat de installatie van de Unified Communications Managed API 2.0 niet een kwestie van de installatie draaien is. De installatie pakt namelijk de bestanden uit in de directory C:\Microsoft UCMA 2.0 RuntimeInstaller Package\amd64 hier is het bestand  SetupUcmaRuntime te vinden welke de applicatie daadwerkelijk installeerd.

Nadat de bestanden zijn geinstalleerd kun je de installatie van Exchange opstarten en deUnified Messaging Role selecteren. Vergeet daarnaast niet een vinkje te zetten bij automatically install Windows Server Roles and Features required for Exchange Server. Deze nieuwe optie zorgt ervoor dat eventuele server roles en features automatisch worden geïnstalleerd tijdens de setup.

Nadat je op next hebt gedrukt zal de installatie van de UM Role automatisch uitgevoerd worden.

Eenmaal geïnstalleerd kunnen we de Exchange Management Console   er vervolgens via organizational configuration de UM Server selecteren. Op organizational configuration niveau kunnen we de volgende items configureren:

  • dial-plan
  • gateway
  • hunt group
  • auto attendant
  • UM policy

Laten we beginnen met het dial-plan. Als eerst dien je een naam, het aantal nummers van de extensie, URI type, VOIP Security en Country/Region code op te geven. Afhankelijk van wat voor soort implementatie je van plan bent kunnen de URI type en VOIP Security verschillen. Onderzoek dit dus voordat je de UM role gaat implementeren. In dit geval kiezen we voor SIP URI en Secured omdat we deze Exchange UM geving willen koppelen aan een OCS 2007 R2 omgeving.

In de tweede stap voegen we de server toe met de UM role. Aangezien alle rollen op dezelfde server zijn geinstalleerd is dit dezelfde server. Deze stap is nieuw in SP1 en zat nog niet in de RTM versie van Exchange 2010. Dit kan makkelijk zijn om bijvoorbeeld meerdere UM servers te koppelen aan hetzelfde dial-plan.

Voordat het dial-plan wordt aangemaakt wordt nog een samenvatting gegeven van de instellingen die worden gemaakt. Wanneer op New gedrukt wordt zal het dial-plan aangemaakt worden.

Wanneer het dial-plan is aangemaakt zul je een waarschuwing zien. Deze heeft betrekking op de manier waarop de UM server is geconfigureerd. Standaard staat deze zo geconfigureerd dat hij pakketten op basis van TCP accepteerd. Aangezien de VOIP Security van het dial-plan is geconfigureerd als secured zal dit in eerste instantie niet gaan werken.

Nadat je de wizard hebt afgesloten dien je de eigenschappen van het dial-plan op te vragen om het nummer voor de subscriber-access te configureren. Hiermee wordt het mogelijk voor gebruikers om hun mailbox telegonisch uit te lezen. Ga naar de tab subscriber access en vul de extensie in welke je wil gebruiken voor deze functionaliteit.

De volgende stap in het proces is het configureren van de gateway, waar moet de Exchange UM server naartoe versturen.
Hiervoor hoeven we alleen een naam, IP-adres of de FQDN van de gateway en het dial-plan welke gebruik mag maken van de gateway op te geven.

Tijdens het aanmaken van de gateway wordt automatisch een Hunt groep aangemaakt. Het kan in sommige gevallen nodig zijn de Hunt groep aan te maken of te verwijderen en een nieuwe aan te maken. Dit omdat standaard de pilot identifier niet wordt geconfigureerd. Wil je niet dat er een Hunt groep wordt aangemaakt, selecteer dan geen dial-plan tijdens het aanmaken van de UM IP Gateway maar koppel de gateway later handmatig aan het dial-plan.

Standaard wordt tijdens het aanmaken van een dial-plan een UM Mailbox policy aangemaakt. Indien je je kan vinden in de instellingen hiervan hoef je hier geen wijzigingen in aan te brengen. Mocht je bijvoorbeeld de standaard tekst willen wijzigen van het bericht welke gebruikers ontvangen wanneer de UM-enabled zijn, pas dan de policy aan.

Naast de tekst welke in het bericht aan nieuwe UM gebruikers komt te staan is het mogelijk om middels deze policy pin policies in te stellen. Hiermee kan o.a. de vereiste complexiteit, minimale pin lengte en het aantal maal dat een pin foutief ingegeven mag worden worden geconfigureerd.

Optioneel is het mogelijk om een auto attendant te configureren. Dit is een electronische receptioniste welke het o.a. mogelijk maakt om gesprekken automatisch door te schakelen en bellers een menu te geven met opties om bijvoorbeeld naar een specifieke afdeling doorverbonden te worden.

Op organizational configuration niveau is de configuratie nu afgerond en is het tijd voor de laatste stap op server configuration niveau. Vraag hiervoor de eigenschappen op van de server en ga naar de UM Settings tab. Pas hier vervolgens de waarde van de startup mode aan naar TLS of Dual en klik op OK.

Er zal nu een waarschuwing worden weergeven dat de Exchange UM service herstart moet worden en dat geverifieerd moet worden of er een geldig certificaat is gekoppeld. Dit laatste is natuurlijk erg belangrijk aangezien we het dial-plan hebbe geconfigureerd als secure, dit zal ervoor zorgen dat authenticatie op basis van certificaten plaats zal vinden. Is het certificaat van een van de partijen niet correct dan kan er geen communicatie plaatsvinden.

Indien je ervoor kiest om het certificaat later toe te wijzen dan kan dit mogelijk problemen veroorzaken bij het herstarten van de Exchange UM service. Dit aangezien het self-signed certificate standaard niet wordt toegewezen aan de Exchange UM service.

Het configuratie proces kan natuurlijk ook makkelijker gedaan worden middels Powershell. Onderstaand een overzicht van de commando’s welke gebruikt kunnen worden om exact dezelfde configuratie te maken alleen dan middels een script:

New-UMDialplan -Name Utrecht -UriType SipName -NumberOfDigitsInExtension 3 -VoIPSecurity Secured -AccessTelephoneNumbers “110″ -CountryorRegion 030

New-UMIPGateway -Name “Utrecht VOIP Gateway”  -Address 192.168.1.250 -UMDialplan “Utrecht” 

New-UMAutoAttendant -Name Utrecht_AA -UMDialPlan Utrecht -PilotIdentifierList ”+313012345100″ -SpeechEnabled $true

Set-UMserver -identity “ex” -DialPlans “Utrecht” -UMStartupMode “TLS”

Mocht je dus met Powershell vertrouwd zijn dan raad ik aan dit te gebruiken aangezien je dan sneller klaar bent.

Nieuw in SP1 zijn twee extra toevoegingen speciaal voor de UM role, deze zijn te vinden onder tools in de Exchange Management Console:

  • Call Statistics
  • User Call logs

Als eerst de call statistics, met deze rapportage utility kun je een overzicht genereren van calls die zijn afgehandeld door je Exchange omgeving. Het kan natuurlijk best handig zijn om eens te kijken hoeveel mensen nu echt de UM functionaliteiten van Exchange gebruiken.

Naast het gehele overzicht kun je ook een overzicht genereren per user, hoeveel oproepen heeft een gebruiker gehad en wat was nou bijvoorbeeld de kwaliteit van het gesprek. Vooral dit laatste kan erg handig zijn in het geval je aan het troubleshooten bent wanneer gebruikers melden dat de gespreks kwaliteit niet altijd optimaal is.

Maar wat is er nog meer gewijzigd in SP1 op UM vlak:

  • een gebruiker kan nu aan een tweede dial plan toegevoegd worden. Soms kan het bijvoorbeeld nodig zijn om naast de primaire extensie een gebruiker een tweede extensie te geven.
  • mogelijkheid om een UM-mailbox te migreren tussen forests
  • Beheer van de UM settings is nu ook mogelijk vanuit het Exchange Control Panel
  • vervallen support voor Exchange 2010 SP1 i.c.m. Office Communication Server 2007

Opmerking: alle features en screenshots zijn gebasseerd op de beta van Service Pack 1, de uiteindelijke versie van SP1 kan dan ook nog wijzigen.

Als je aan het troubleshooten bent is wat logging vaak wel makkelijk. Op de UM server is diagnostic logging standaard geactiveerd echter wel op het laagste niveau. Mocht je toch meer logging willen hebben dan dien je het logging niveau aan te passen naar een hoger niveau.

Het aanpassen van het logging niveau kan op 2 manieren:

  • via de registry editor
  • via Powershell

De eerste methode is redelijk eenvouding:

  • start regedit op
  • ga naar HKeyLocalMachine\System\CurrentControlSet\services\MSExchange Unified Messaging\Diagnostics
  • pas de waarde aan van het gewenste item waarvan je meer logging wil hebben.  Geldige waardes zijn: Expert 7, High 5, Medium 3, Low 1, Lowest 0

Wanneer je het liever via de Powershell doet zul je bijvoorbeeld het volgende moeten uitvoeren:

  • Set-EventlogLevel “MyUMServer\MSExchange Unified Messaging\UMService” -level <Lowest | Low | Medium | High | Expert> 

Bovenstaande commando maakt het mogelijk om het logging level van de UMService te verhogen, andere geldige parameters zijn:

  • UMCore, logging aanpassen voor de UMCore
  • UMWorkerProcess, aanpassen van de logging voor het UMWorkerProcess
  • UMManagement, aanpassen van de logging voor UMManagement
  • UMClientAccess, aanpassen van de logging voor UMClientAccess
  • UMCallData, aanpassen van de logging voor UMCallData

Indien je graag wil weten wat het huidige logging niveau is wat staat ingesteld kun je dit achterhalen door onderstaand Powershell commando uit te voeren:

Get-EventlogLevel “MyUMServer\MSExchange Unified Messaging”

Zoals bij de meeste produkten is ook de setup van Exchange 2007 te automatiseren. Dit kan al gedeeltelijk met de parameters die beschikbaar zijn bij het uitvoeren van het setup bestand.

De eerste parameter, er vanuit gaande dat het forest en het domein zijn voorbereidt, is mode, hiermee kun je opgeven of je een rol wil installeren, de-installeren, upgraden of recoveren.

/mode:install

/mode:uninstall

/mode:upgrade

/mode:RecoverServer

De volgende parameter is role hiermee kun je opgeven welke rol(len) geïnstalleerd moet(en) word(en) op de server:

/role(s):HubTransPort, HT, H installeert de HUB Transport role

/role(s):ClientAccess, CA, C installeert de Cient Access role

/role(s):MailBox, MB, M installeert de HUB Transport role

/role(s):UnifiedMessaging, UM, U installeert de Unified Messaging role

/role(s):EdgeTransport, ET, E installeert de Edge Transport role

/role(s):ManagementTools, MT, T installeert de Management Tools

Uiteraard is het ook mogelijk om de parameters te combineren, bijvoorbeeld:

/roles:H,C,M,T

Bovenstaande zal de Hub Transport, Client Access en Mailbox rollen installeren + de management tools.

Naast bovenstaande parameters is het mogelijk nog diverse parameters op te geven om bijvoorbeeld de installatie directory te wijzigen, onderstaand een overzicht hier van:

  • /OrganizationName, /on hiermee kan de naam van de Exchange organisatie opgegeven worden, dit is een verplichte parameter indien er nog geen Exchange omgeving aanwezig is.
  • /TargetDir, /t hiermee kan de installatiedirectory worden opgegeven, standaard is dit %programfiles%\Microsoft\Exchange Server.
  • /DomainController, /dc hiermee kan de domaincontroller opgegeven worden welke gebruikt zal worden om informatie uit op te halen en weg te schrijven.
  • /UpdatesDir, /u indien je niet na de installatie alle updates handmatig wil installeren dan zou je in deze map de bestanden kunnen zetten. De bestanden worden dan automatisch geïnstalleerd tijdens de installatie.

Naast deze parameters zijn er ook een aantal parameters die je kunt gebruiken om je forest of domein geschikt te maken voor Exchange 2007:

 

  • /PrepareLegacyExchangePermissions, /pl wanneer je al een eerdere versie van Exchange hebt draaien kun je niet zomaar je AD aanpassen voor 2007. Deze parameter zorgt ervoor dat de vorige versies netjes blijven draaien i.c.m. Exchange 2007. Mocht deze parameter niet gebruikt worden dan zou het kunnen dat de Recipient Update Service niet goed meer functioneert.
  • /PrepareSchema, /ps deze parameter zorgt ervoor dat het schema wordt voorbereid voor Exchange 2007. De setup dient met deze parameter gedraait te worden op de Schema Master. Dit dient niet uitgevoerd te worden indien de PrepareLegacyPermissions wordt gebruikt, dan wordt dit namelijk automatisch uitgevoerd.
  • /PrepareAD, /p hiermee wordt het forest voorbereidt voor Exchange 2007. Deze parameter zorgt er tevens voor dat PrepareDomain  wordt uitgevoerd.
  • /PrepareDomain, /pd  zorgt ervoor dat het domein wordt voorbereid voor Exchange 2007.
  • /PrepareAllDomains, /pad is eigenlijk hetzelfde als de vorige parameter alleen maakt alle domeinen en subdomeinen geschikt voor Exchange 2007.

Naast deze parameters zijn er nog een aantal parameters die gebruikt kunnen worden, voor een volledig overzicht kun je een kijkje nemen op de volgende site.