Search This Blog

Thursday, December 17, 2015

Lync voice routing: block 9xx premium numbers

Here is an example of the route patters that does not allow calls to 9xx numbers in Germany


^\+(?!499)(\d*)$

Australia

^\+(?!61)(\d*)$

USA

^\+(?!1)(\d*)$

Switzerland

^\+(?!41)(\d*)$

Thursday, December 10, 2015

Wav file with G.723.1 codec can not be played in Windows Media Player of Windows 8

To solve the issue follow the advice on this link:

https://groups.google.com/forum/#!topic/microsoft.public.win32.programmer.directx.audio/lv5AWSNNw38


"I ended up copying the msg723.acm file from a Windows 2003 Server,  dropped 
it in the \windows\syswow64 directory, then creating a registry entry to the
file under
HKLM\Software\Wow6432Note\Microsoft\WindowsNT\CurrentVersion\Drivers32
REG_SZ  msacm.msg723 = msg723.acm .
Now the codec shows up in the Media Player About listing and I can play back 
the call recordings.

Lindsay"


Indeed it works much better now.  I have this kind of file generated a voice recording in Altigen MaxACD Call center WAV G.723.1 ((khz, 8bit, Mono, 0.8kb/sec)

the other choice is WAV GSM and WAV PCM. The latter can be played in Media Player out of the box.

Tuesday, November 17, 2015

How to change ADFS token life from default 60 to 240 minutes

How to change ADFS token life from default 60 to 240 minutes:

Set-ADFSRelyingPartyTrust -Targetname "relying_party" -TokenLifetime 240

Saturday, November 14, 2015

Altigen MaxACD 6.5 and AMD CPU

Altigen supports only Intel processor. However, we have successfully tested MaxACD in VMWare Virtual machine in a host with AMD Opteron processor.

Wednesday, November 11, 2015

Some help for Lync, SFB designers

https://skypevalidator.com

SFB conversations in mobile and Desktop are different?

http://ucmart.uk/2015/06/15/skype-for-business-enable-server-side-conversation-history/

MS Project - task types

All is turning around a simple formula:

W =  U * D

where W - work, U - units (number of resources for the task), D - duration.

Task types can be Fixed Work, Fixed Units, Fixed Duration.


Most used is Fixed Work.

If you have 32h of Work and it is fixed, you need 1 person (8h working day) and 4 days then duriation. If you add additonal resource, now you have say 2 persons - then duration will be 2.


Now if you would set task as Fixed Duration and you add second person, MSP will change Work, not duration (because it is fixed). It is less intuitive, but once you have formula and mind and you know which variable is fixed, then all become clear.

Fixed units is also a task type, and guess what - the same formula applies.  Can not change unit then. By changing duration to 2 you will half the work to 16. The same MPS person can only do half of the work if you ask him to half duration.

Tuesday, November 3, 2015

What's new in SharePoint 2016

http://en.share-gate.com/blog/whats-new-in-sharepoint-2016

5000 items limit removed
10gb files upload
Hybrid nature

SfB client login process

http://skype4b.uk/2015/11/03/skype-for-business-client-sign-in-workflow-chart-external/

Monday, October 5, 2015

How to generate packets for testing

The easiest is with Nmaps nping:

 .\nping -c 9999999 --delay 10s --tcp -p 5061 my_testing_host_ip


Take a network trace from SBA without wireshark

SBA is a difficult animal, you do not want to install extra software on it. If you still need to take network trace you can create a following cmd file:

netsh trace start persistent=yes capture=yes maxsize=2048 tracefile=c:\temp\nettrace.etl

timeout 60

netsh trace stop


and run is as administrator

Then open in Microsoft Message Analyser and save as - export as netmon .cap file.

Then you can read it with Wireshark if you want, as you can see it is not possible without Wireshark :)

or use https://github.com/microsoft/etl2pcapng 

Thursday, July 9, 2015

New-SPContentDatabase creates database with guid instead of name

Hello if you are trying to create a content DB with a name, but instead SP creates name with GUID - make sure that SQL database is deleted from Management studio, but also that files in the disk also deleted (mdf and log). If files will still be there, powershell will not create DB with that name.

Tuesday, June 16, 2015

SharePoint 2010: DataForm Web Part displays "Unable to display this Web Part"


Error while executing web part: System.StackOverflowException: Operation caused a stack overflow. 
    at Microsoft.Xslt.NativeMethod.CheckForSufficientStack() 
    at Execute(XmlQueryRuntime ) 
    at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer, Boolean closeWriter) 
    at System.Xml.Xsl.XmlILCommand.Execute(IXPathNavigable contextDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter results) 
    at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results) 
    at Microsoft.SharePoint.WebPartPages.DataFormWebPart.ExecuteTransform(XslCompiledTransform xslCompiledTransform, XsltArgumentList xmlArguments, Boolean bDeferExecuteTransform) 
    at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)

Friday, June 12, 2015

Lync monitoring reports - images are missing

After some analysis we found an error in SSRS logs:

reportrendering!ReportServer_0-137!ffc!06/10/2015-12:33:19:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.RenderingObjectModelException: , Microsoft.ReportingServices.ReportProcessing.RenderingObjectModelException: A generic error occurred in GDI+. ---> System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
   at System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
   at Microsoft.Reporting.Chart.WebForms.Chart.Save(Stream imageStream, ChartImageFormat format)
   at Microsoft.ReportingServices.OnDemandReportRendering.ChartMapper.GetImage(ImageType imageType)

   --- End of inner exception stack trace ---;



Apparently gdiplus.dll was not up-to-date on the SQL SSRS server. After Windows 2012 R2 patching the problem was solved.

Wednesday, June 10, 2015

Can not sign-in from IPhone 6 to Lync after goDaddy certificate renewal

Having an issue only with IPhones. Android and Windows full client works ok. goDaddy renewal process change our root from old one to G2.

IPhone logs contans:

2015-06-10 14:09:27.341 Lync[584:35b6d9dc] ERROR APPLICATION CUcwaAutoDiscoveryGetUserUrlOperation.cpp/325:Request failed.  Error - E_SslError (E2-2-2)

and

2015-06-10 14:09:27.376 Lync[584:35b6d9dc] INFO UI CMUIUtil.mm/387:Mapping error code = 0x22020002, context = , type = 201
2015-06-10 14:09:27.377 Lync[584:35b6d9dc] INFO UI CMUIUtil.mm/1691:Mapped error message is 'Désolé... Nous ne parvenons pas vérifier le certificat du serveur. Contactez votre équipe de support technique.

or in English

We can’t verify the certificate from the server. Please contact your support team.


The issue was solved by installing goDaddy G2 CA intermediate certificate alongside with new certificate in Reverse Proxy and reboot.

Refer:  https://support.microsoft.com/en-us/kb/2965499

Sonus SBC SIP message manipulation

Nice article explaining how to build SIP manipulation rules in Sonus:

http://dmunified.com/2015/02/17/manipulate-to-header-field-into-invite-request-line-uri/


Must do for some SIP operators in Singapore. they require RequestURI to be formated in certain way, and P-asserted to be the same as TO field.

Raw Message Rule

Match Regex: @172.31.119.249:5060;user=phone
Replace Regex: @xxx.net.sg;user=phone

Header Rule

Header Action: Modify
Header Name: p-asserted-identity
Header Ordinal Number: 1st

Header Value: Modify
Type of Value: Token
Value: from.uri



Monday, May 4, 2015

EWS issues in Lync client

http://uc-dude.com/2014/05/27/complete-guide-for-troubleshooting-lync-outlook-clients-integration/

In one of my cases, the solution was to make string of internalEWS empty in registry

 HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync\sip_address@domain.con\Autodiscovery/InternalEwsUrl


Monday, April 13, 2015

O365 federation

http://blogs.technet.com/b/compilations/archive/2014/04/15/office-365-single-sign-on-with-adfs-roadmap-design-implementation-adfs-high-availability-amp-the-choice-of-configuration-database-type-for-redundancy-steps-amp-faqs.aspx#.VSuvTvmsVqU

https://sfspug.files.wordpress.com/2013/11/office-365-single-sign-on-with-adfs.pptx


http://blogs.technet.com/b/rmilne/archive/2014/04/28/how-to-install-adfs-2012-r2-for-office-365.aspx


https://www.youtube.com/watch?v=GHMaQjAS0qo

https://technet.microsoft.com/en-us/library/jj710171.aspx

Saturday, April 11, 2015

Looking for free HLB solution for Lync?

Here are some tools that I have tried and that are proven to work with Lync, Exchange and HTTP web:

http://www.zenloadbalancer.com

this guy you probably know - it is free KEMP (no cluster, 20 mbps limit)

http://freeloadbalancer.com

Heavy weight player from Open Source world:

http://www.haproxy.org

And something I have never tried, but it could be fun:

http://nginx.org/en/docs/http/load_balancing.html (Hello Igor!)







GetItemById SharePoint list function optimisation

Hello, a little magic for tonight. If you use custom code around your SharePoint, and you wonder why your code is slow on large document libraries , check out this article:

https://msdn.microsoft.com/en-us/library/bb687949(v=office.12).aspx


Then search your code to see if you use GetItemById on items collection level. If you do you might accelerate your code 10x times by simply changing it to list level.

Example (red is not optimal code):

SPList _spList = spWeb.Lists.GetList(document.MossDocLibGuid, false);

         ///       SPListItemCollection listItemCollection = _spList.Items;
         ///       SPListItem item = listItemCollection.GetItemById(document.MossDocId);  

SPListItem item = _spList.GetItemById(document.MossDocId);  

Wednesday, March 25, 2015

Error installing Service Pack 1 Microsoft CRM 2013 Language pack

Having issues  with Service Pack 1 installation:

The given key was not present in the dictionary.


in the log file I can see:

12:05:48|  Error| System.Exception: Échec de l’action Microsoft.Crm.UpdateWrapper.MspInstallAction. ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Microsoft.Crm.Setup.Update.HotFixArpEntryHandler.<>c__DisplayClass7.b__5(ArpEntryDescriptor entry)
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at Microsoft.Crm.Setup.Update.HotFixArpEntryHandler.RemoveSupercededEntries(IEnumerable`1 arpEntries, Version minimumVersionToKeep)
   at Microsoft.Crm.UpdateWrapper.MspInstallAction.Do(IDictionary parameters)
   at Microsoft.Crm.Setup.Shared.CrmAction.ExecuteAction(CrmAction action, IDictionary parameters, Boolean undo)

   --- End of inner exception stack trace ---, Error, RetryCancel, Option1





My solution is to delete empty registry branches in UNINSTALL container and try again.


to get a following 





Thursday, March 19, 2015

Visio 2013 - can not replace all words at one go in the diagram

I had an issue with Viso file where I could not edit a word inside a caption string. If you type you word it will delete while string. The same for Find and Replace.

The only way I could do it in bulk is to save as vsdx (xml format), open with 7zip, extract page1.xml, bulk replace in Notepad and inject file back to archive.

Ta-Da!

Thursday, January 29, 2015

SharePoint 2010 LVT

Nice and quick training video regarding Large Lists and issue of LVT limitation

https://support.office.microsoft.com/en-us/article/SharePoint-lists-V-Techniques-for-managing-large-lists-13456600-ff66-46ec-a2d2-91736d4a166e?section=2&CorrelationId=0f7b2a49-ba3d-4456-a043-3eb1f3048c89&ui=en-US&rs=en-US&ad=US

SharePoint 2013 Search issues

I find this article as very correct in the analysis of Search issues on SP13:

http://platinumdogs.me/2014/01/07/controlling-search-noderunner-memory-usage-in-sharepoint-2013/

Although it is tempting to reduce memory of node runner this will result in noderunner out of memory error.

Leave it at zero or adjust carefully as suggested above to 1 or 2 GB.

Somme errors that you might see:

Log Name:      Application
Source:        .NET Runtime
Date:          29.01.2015 11:43:59
Event ID:      1026
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:    
Description:
Application: NodeRunner.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.OutOfMemoryException
Stack:
   at System.Runtime.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

Log Name:      Application
Source:        Application Error
Date:          29.01.2015 11:43:59
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:    
Description:
Faulting application name: NodeRunner.exe, version: 15.0.4420.1017, time stamp: 0x506723c5
Faulting module name: KERNELBASE.dll, version: 6.1.7601.18409, time stamp: 0x5315a05a
Exception code: 0xe0434352
Fault offset: 0x000000000000940d
Faulting process id: 0xe90
Faulting application start time: 0x01d03bb070ecf82a
Faulting application path: C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\NodeRunner.exe
Faulting module path: C:\Windows\system32\KERNELBASE.dll
Report Id: bae00371-a7a3-11e4-b181-00155dfe9e6f


UPDATE: the issue is back again. This article here talks about finding out which com ponent is using memory http://blogs.msdn.com/b/kristopherloranger/archive/2014/03/24/sharepoint-2013-noderunner-exe-process-information.aspx

Tuesday, January 27, 2015

Exchange Online Autottendant and Lync OnPrem

To integrate Exchange Online AA with Lync, we need to create a contact

https://technet.microsoft.com/en-us/library/gg412978.aspx

Then get Identity, you can run run Get-CsExUmContact

but then if you try to call AA but sip, or number you will get an error (in Snooper).

SIP/2.0 500 Server Internal Error
ms-user-logon-data: RemoteUser
...
CSeq: 1 INVITE
ms-diagnostics: 15014;reason="Hosted Voicemail Policy assigned to the user is not fully configured. Destination or Organization might be null";source="xxxx";appName="ExumRouting"
Server: ExumRouting/5.0.0.0

You will want to run another command to assign policy to this contact.

Grant-cshostedvoicemailpolicy –identity “paste-your-Identity as you see in get command above” –policyname O365

O365 is your policy as you defined in Exchange Online - refer to https://ahandyblog.wordpress.com/cloud-technologies/office-365-unified-messaging-with-lync-2013-on-premise/

Wednesday, January 14, 2015

SharePoint 2010 An update conflict has occurred, and you must re-try this action

In case of an error similair to this:

Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (7d825bde-c4d8-475c-b3f6-c52911242f33).

Reason: An update conflict has occurred, and you must re-try this action. The object SearchDataAccessServiceInstance was updated by ad\svcWSSAdmin, in the OWSTIMER (4472) process, on machine S2010.  View the tracing log for more information about the conflict.

Technical Support Details:
Microsoft.SharePoint.Administration.SPUpdatedConcurrencyException: An update conflict has occurred, and you must re-try this action. The object SearchDataAccessServiceInstance was updated by AD\svcWSSAdmin, in the OWSTIMER (4472) process, on machine S2010.  View the tracing log for more information about the conflict.
   at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
   at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)


Use cache cleanup procedure as described
http://www.social-point.com/sharepoint-2010-event-id-6482-application-server-administration-job-failed-for-service-instance-microsoft-office-server-search-administration-searchserviceinstance


quote:

  • Stop the Windows SharePoint Services Timer service (Found in Windows Services)
  • Navigate to the cache folder
    In Windows Server 2008, the configuration cache is in the following location:
    Drive:\ProgramData\Microsoft\SharePoint\Config
    In Windows Server 2003, the configuration cache is in the following location:
    Drive:\Documents and Settings\All Users\Application Data\Microsoft\SharePoint\Config
    Locate the folder that has the file "Cache.ini"
    (Note: The Application Data folder may be hidden. To view the hidden folder, change the folder options as required)
  • Back up the Cache.ini file.
  • Delete all the XML configuration files in the GUID folder. Do this so that you can verify that the GUID folder is replaced by new XML configuration files when the cache is rebuilt.
  • Note When you empty the configuration cache in the GUID folder, make sure that you do not delete the GUID folder and the Cache.ini file that is located in the GUID folder.
  • Double-click the Cache.ini file.
  • On the Edit menu, click Select All. On the Edit menu, click Delete. Type 1, and then click Save on the File menu. On the File menu, click Exit.
  • Start the Windows SharePoint Services Timer service
  • Note The file system cache is re-created after you perform this procedure. Make sure that you perform this procedure on all servers in the server farm.
  • Make sure that the Cache.ini file in the GUID folder now contains its previous value. For example, make sure that the value of the Cache.ini file is not 1.
  • - See more at: http://www.social-point.com/sharepoint-2010-event-id-6482-application-server-administration-job-failed-for-service-instance-microsoft-office-server-search-administration-searchserviceinstance#sthash.PDz2zKwa.dpuf