Ku pamięci: OCS 2007 R2 i usuwanie plusa przy wychodzeniu (non-RFC 3966)


Standardowo OCS 2007 R2, jak i jego poprzednik OCS 2007 RTM korzystają z RFC 3966 (http://www.ietf.org/rfc/rfc3966.txt), czyli Mediation Server przy wychodzących połączeniach dokleja do numeru E.164 w Request Uniform Resource Identifier (URI) znak plusa z przodu. Oczywiście, jeśli druga strona to wspiera to jest super, ale wielu producentów nie wspiera takiego formatu i oczekuje numeru bez plusa, w innym przypadku dostaniemy zrzutkę w stylu „not acceptable here”, czy coś podobnego.

W OCS 2007 RTM, którego daaawwnnno nie ruszałem usunięcie plusa było możliwe przy wychodzeniu na zewnątrz (przez Mediation) dopiero od KB 952780 i KB 952785 (to był jakiś CU, chyba CU5). Po aktualizacji dostępny był plik konfiguracyjny MediationServerSvc.exe.config (w głównym katalogu z dll’kami do OCS’a). Należało wyedytować plik konfiguracyjny i zrobić restart serwera Mediation:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
                 <appSettings>
                                <add key="RemovePlusFromRequestURI" value="Yes" />
                 </appSettings>
</configuration>

W ostatnim tygodniu musiałem skonfigurować trunk z OCS 2007 R2 do Session Border Controlera (SBC) u providera Orange, żeby zrobić kilka testów. SIP trunk realizowany jest z Mediation (TCP, 5060) do SBC (TCP,5060). Oczywiście pierwszy call i buuuuuu… Okazało się, że jest dokładany plus, którego SBC nie akceptuje – z związku z czym poszukałem w sieci i usuwanie plusa się delikatnie zmieniło w tej wersji.

W R2 robi się to przez ustawienia WMI – RemovePlusFromRequestURI , więcj tutaj: Enterprise Voice Server-Side Components.

Wartość RemovePlusFromRequestURI można zmienić za pomocą skryptu – wywołujemy go na Mediation serwerze:

' RemovePlusFromRequestURI
'

  Dim objLocator
  Dim objService
  Dim objInstances
  Dim objInstance

  Wscript.Echo "Connecting to local WMI store..."

  Set objLocator = CreateObject("WbemScripting.SWbemLocator")
  Set objService = objLocator.ConnectServer(".", "rootcimv2")

  Wscript.Echo "select * from MSFT_SIPMediationServerConfigSetting"
  Set objInstances = _
    objService.ExecQuery("select * from MSFT_SIPMediationServerConfigSetting")

  If IsNull(objInstances) Or (objInstances.Count = 0) Then
    Wscript.Echo "Error: No instance"

  Else

    For Each objInstance in objInstances

      objInstance.Properties_.Item("RemovePlusFromRequestURI").Value = "TRUE"
      objInstance.Put_
      wscript.Echo "Done"
    Exit For
    Next

  End If

  Wscript.Echo ""

I wystarczy restart…

Możemy też wykorzystać inną metodę – narzędzie WBEMTest (http://technet.microsoft.com/en-us/library/cc785775.aspx). Musimy być członkiem grupy RTCUniversalServerAdmins i uruchomić narzędzie na Mediation serwerze.

>Start > Run > wbemtest.

W oknie Windows Management Instrumentation Tester klikamy Connect.

W oknie Connect > Namespace wpisujemy rootcimv2 i klikamy Connect.

Następnie otwieramy Open Class. W boksieGet Object Path, wpisujemy MSFT_SIPMediationServerConfigSetting, i klikamy OK.

W oknie Object Editor dla MSFT_SIPMediationServerConfigSetting  klikamy Instances.

Podwójny klik na MSFT_SIPMediationServerConfigSetting=”{…}”.

Przewijamy w dół okna i zmieniamy wartość RemovePlusFromRequestURI na TRUE (standardowo jest FALSE).

Restartujemy serwer Mediation – włala 🙂

http://technet.microsoft.com/en-us/library/dd441273(office.13).aspx

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s