13 lutego 2015

Office 365 Summit Amsterdam

Właśnie trwa drugi i ostatni dzień Summitu poświęconego nowościom w Office 365. Zarówno nowym funkcjonalnościom Exchange, narzędziom programistycznym jak i Skype for Business, czyli nadchodzącej nowej wersji Lynca.

WP_20150212_002

Ponieważ w Europie jest tylko jeden taki event, więc ludzi zjechało się całkiem sporo (jak widać na poniższym zdjęciu z Key Notes).

WP_20150212_001

Mnie najbardziej zainteresowała ścieżka Skype for Business – architektura, ścieżki migracji i inne technikalia. Niestety, nie można było popracować na nowej wersji serwera, ale mam nadzieję, że już niedługo uzyskam taką możliwość. Na pewno sesje z tej tematyki pojawią się na spotkaniach PEPUG – wprowadzenie do SfB będzie prezentował Piotr Pawlik już w najbliższy czwartek. Ja też postaram się zebrać trochę przemyśleń na temat informacji zebranych na Summicie i opublikować kilka kolejnych postów.

05 lutego 2015

BToE raz jeszcze

Latem zeszłego roku napisałem post o funkcjonalności Better Together Over Ethernet w telefonach Audiocodes serii 400 (czyli sterowaniem z desktopowego klienta Lynca sprzętowym telefonem lyncowym). Od tego czasu zarówno klient Windows jak firmware telefonów został kilkukrotnie zaktualizowany i pracuje dużo lepiej i stabilniej. Aktualna wersja aplikacji desktopowej ma numerek 1.0.3, a wersja firmware dla wszystkich modeli linii 400, która wspiera BToE – 2.0.9.65.

Jednak nie tylko Audiocodes nie próżnowało. Finalną wersję analogicznego oprogramowania udostępnił klientom również SNOM. Miałem o nim napisać na jesieni, jednak duża ilość projektów, które wtedy realizowałem nieco przesunęła termin publikacji. Z drugiej strony, podobnie jak w przypadku Audiocodesa od tego czasu producent wprowadził szereg poprawek i usprawnień podnosząc jakość produktu. Aktualna wersja oprogramowania SNOM składa się z klienta desktopowego (wersja 1.1.19 – dostępna wersja 32 bity oraz 64 bity) oraz nowej generacji firmware – aktualna wersja to 8.8.3.27 (tylko dla linii 700). Co ciekawe, najprostszy model certyfikowany dla Lynca (710) nie wspiera BToE, zamiast tego wprowadzono model 715, który obsługuje tę funkcjonalność. Jednak formalnie proces certyfikacji jeszcze nie został zakończony, więc nie widać go na liście telefonów oficjalnie kwalifikowanych dla Lynca.

Jak to działa? Koncepcja połączenia telefonu z komputerem jest nieco inna niż w przypadku telefonów Audiocodes, jednak w większości przypadków konfiguracja jest stosunkowo prosta i intuicyjna. Pierwszym krokiem jest zaktualizowanie oprogramowania na telefonie - można to zrealizować poprzez pulę Lyncową – SNOM udostępnia firmware dla swoich telefonów w postaci dystrybuowanej przez usługę Device Update Lynca. Po aktualizacji firmware w menu telefonu pojawi się dodatkowa pozycja – 7 - UC Menu.

image

Po wejściu w menu widać opcje specyficzne dla współpracy ze środowiskiem Lync, a w tym wypadku najważniejsza jest opcja 1 – Better Together.

image

Teraz można przejść do opcji parowania – możemy podać albo pełną nazwę komputera (FQDN) albo adres IP naszego komputera (opcja 3 lub 2).

image

Teraz możemy sprawdzić ustawienia (opcja 4 – Information).

image

Telefon pokazuje status niesparowany (niestety całe menu nie zostało przetłumaczone), zapisany adres IP oraz domyślny port komunikacyjny (w przypadku firewalla na stacji roboczej powinniśmy utworzyć regułę dla portu 7005).

Po zainstalowaniu klienta desktopowego i jego uruchomieniu pozostaje nam wybranie z menu Better Together na telefonie opcji 1 - Pair Now. Po chwili zestawiania połączenia, aplikacja kliencka (niebieski znaczek na pasku statusu Windows) pokaże status połączenia z konkretnym telefonem, który po restarcie komputera powinien zostać automatycznie nawiązany.

image

Jedyną drobną niedogodnością jest fakt, że przy pierwszym połączeniu w Lyncu pojawi się dodatkowe okno logowania (Lync automatycznie wykryje telefon dzięki specjalnemu sterownikowi USB). Teraz uzyskamy funkcjonalność zestawiania z telefonu połączeń wybieranych z Lynca na desktopie. Oczywiście możemy znaleźć kontakt poprzez Address Book Service z menu telefonu albo przypisać go na stałe do jednego z przycisków szybkiego wybierania (wtedy dodatkowo będzie nam się wyświetlał status kontaktu – wolny/zajęty/nieaktywny, co zresztą widać na powyższych zdjęciach), jednak dla wielu osób dużo szybsze i wygodniejsze jest użycie do tego Lynca/Outlooka i skorzystanie z integracji BToE.

Polycom dostarcza analogiczne rozwiązanie dla telefonów z linii VVX, jednak nie do końca udało mi się udokumentować testy i nie chciałbym być tendencyjny, twierdząc, że problemy z nimi związane leżą po stronie sprzętu.

04 lutego 2015

Nietypowy certyfikat dla puli Lyncowej

Niedawno miałem ciekawy problem (LS Protocol Stack event 14501 i 14428), dotyczący koegzystencji serwerów Lync z infrastrukturą Cisco CUCM/VCS. Pomimo faktu wygenerowania certyfikatów przez ten sam wewnętrzny urząd połączenia TLS pomiędzy serwerami zgłaszały błędy. Znalazłem w sieci podobny przypadek, jednak przygotowanie certyfikatu dla takiego scenariusza (domyślnie certyfikat serwera Lync jest konfigurowany tylko dla certyfikacji serwerowej (OID 1.3.6.1.5.5.7.3.1), a w tym wypadku jest wymagana dodatkowo certyfikacja kliencka (OID 1.3.6.1.5.5.7.3.2). Jak to zrobić najprościej? Domyślne metody nie pozwalają na taką operację – ani kreator certyfikatów z Lync Deployment Wizarda ani tym bardziej zawarty w IIS, formatka webowa urzędu certyfikacyjnego również nie pozwala na utworzenie takiego certyfikatu. Jednak narzędzia linii komend certreq/certutil mają bogate możlwości, które nam to ułatwią. W tym celu musimy sobie przygotować plik inf, zgodnie z artykułem “How to request a certificate with a Custom SAN”. Pik powinien zawierać wpisy jak poniżej:

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=lync.pepug.org"  
Exportable = TRUE                   ; Private key is exportable
KeyLength = 2048                    ; Common key sizes: 512, 1024, 2048, 4096, 8192, 16384
KeySpec = 1                         ; AT_KEYEXCHANGE
KeyUsage = 0xA0                     ; Digital Signature, Key Encipherment
MachineKeySet = True                ; The key belongs to the local computer account
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = CMC

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ;Server Authentication
OID=1.3.6.1.5.5.7.3.2 ;Client Authentication

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=lync.pepug.org&"
_continue_ = "dns=fe1.lab.pepug.org&"
_continue_ = "dns=fe2.lab.pepug.org&"
_continue_ = "dns=lsweb.pepug.org&"
_continue_ = "dns=lyncdiscover.pepug.org&"
_continue_ = "dns=lyncdiscoverinternal.pepug.org&"
_continue_ = "dns=dialin.pepug.org&"
_continue_ = "dns=meet.pepug.org&"
_continue_ = "dns=sip.pepug.org"

[RequestAttributes]
CertificateTemplate = WebServer1

Dwa słowa komentarza – w sekcji EnhancedKeyUsageExtension wskazujemy, że ma być obsługiwana zarówno opcja Server jak i client Authentication. Ponieważ chcemy certyfikat zainstalować na kilku serwerach w puli, więc wybieramy opcję zezwolenia na eksport klucza prywatnego. W sekcji RequestAttributes wskazujemy wykorzystywany w naszej firmie szablon tworzenia certyfikatu, jednak najciekawszy zapis zawiera sekcja Extensions – ponieważ certyfikat serwera Lync musi zawierać zarówno nazwy hostów jak i szereg innych nazw wykorzystywanych przez Lynca, więc wykorzystujemy specyficzny zapis z użyciem konkretnego identyfikatora dla certyfikatów SAN (zapis działa począwszy od Windows 2008).

Wygląda to trochę nietypowo, ale działa. Teraz tylko pozostaje utworzenie certyfikatu z użyciem narzędzia certreq:

Na jednym z serwerów wykonujemy komendę:

certreq –new certLync.inf certLync.req

Następnie po skopiowaniu pliku (ewentualnie zdalnie, jeżeli jest taka możliwość) na serwer z urzędem certyfikacji generujemy certyfikat:

certreq –submit certLync.req certLync.cer

Teraz pozostaje tylko zainstalowanie certyfikatu:

certreq -accept certLync.cer

i przypisanie go do usług serwera FrontEndowego (no i po wyeksportowaniu do pfx-a instalacja na drugim serwerze w puli).


Po restarcie usług komunikacja pomiędzy systemami zaczyna działać poprawnie.