As per my promise in my prior blog :-) Here are the details on a Web Conferencing Escalation/Debug we did recently. Thank you also to Jigar Dani (our latest addition to the team) who helped with troubleshooting.

Symptom:

=========

 

External Live Meeting client cannot join meeting. However Communicator can sign in remotely.

You could even use the OCS Event Log to find this information:

 

Log Name:      Office Communications Server

Source:        OCS Data MCU

Date:          8/9/2010 6:50:42 PM

Event ID:      41061

Task Category: (1018)

Level:         Error

Keywords:      Classic

User:          N/A

Computer:      <Your Front End Server>

Description:

Failed to connect external users because the list of proxies is empty.

Failure occurrences: 1, since 8/9/2010 6:49:42 PM.

 

Cause:

======

 

Plan of Action:

1)      Get the LiveMeeting uccp api logs

2)      Get the Live Meeting Pwconsole logs

In the UCCP log, observe that the Live Meeting Client can join the Focus without any issues, which means:

For e.g.: The SIP Transaction for INVITE sip:ContosoA@contoso.com;gruu;opaque=app:conf:focus:id:1ada91750b3b457fa0ca51612e3efa22 SIP/2.0

completes successfully with 200 OK and ACK.

After this transaction you will see:

Subscription for theEvent: conference” which also completes successfully.

After this transaction you will see:

SIP INFO request for “Content-Type: application/cccp+xml” (Content-Type: application/cccp+xml, response to "addUser" request ), complete successfully with 202 Accepted.

Following this a SIP INFO is received (“Content-Type: application/cccp+xml” (Content-Type: application/cccp+xml, response to "addUser" response) which contains information about the WebConferencing Server. This step is where we generally see issues (symtoms/causes):

In the SIP INFO look for these specific key-value pairs:

<key>serverURL</key>

<value></value>

</entry>

<key>numberOfProxies</key>

<value>0</value>

</entry>

 Did a quick MSDN search for “numberOfProxies”. Found the following link:

http://msdn.microsoft.com/en-us/library/dd908054(office.12).aspx. It says:

 numberOfProxies: An xs:string value containing a decimal string indicating how many proxy servers are being communicated from the Web Conferencing MCU to the client. This value is used by the client to look for specific keys of the form proxy[N].FQDN and proxy[N].Port. The Web Conferencing MCU MUST send this key to the client if it also sent the pwrpc.modes key with a value of "fwdtls".

So at this point it looked like having Server Side OCSLogger.exe logs for SipStack, MCUInfra, MCU and DataMCU (as per the diagram here: http://msdn.microsoft.com/en-us/library/dd923510(v=office.12).aspx)

will help find the reason, which was not the correct decision, since we have tools to identify the problem, without taking these logs.

Goto the OCS admin tool, Right Click the FE Server and you will find the option to “Validate WebConferencing Server”.   

 BTW if you did go into digging the  SIpStack, MCUInfra, Focus, DataMCU logs you will find the following traces to prove the point, when you search for your edge server fqdn or the

 30638 TL_INFO(TF_COMPONENT) [0]12F0.106C::08/09/2010-23:07:59.509.00007227 (DataMCU,FocusAdapter.ConstructLmf:focusadapter.cs(126))( 00000000026E410A )Construct lmf - add proxy data

 30639 TL_INFO(TF_COMPONENT) [0]12F0.106C::08/09/2010-23:07:59.509.00007228 (DataMCU,FocusAdapter.ConstructLmf:focusadapter.cs(130))( 00000000026E410A )    proxyHeader=’….'

 30640 TL_INFO(TF_COMPONENT) [0]12F0.106C::08/09/2010-23:07:59.509.00007229 (DataMCU,FocusAdapter.ConstructLmf:focusadapter.cs(149))( 00000000026E410A )  fqdn==<your web conferencing edge server> is not running

 30641 TL_INFO(TF_COMPONENT) [0]12F0.106C::08/09/2010-23:07:59.509.0000722a (DataMCU,FocusAdapter.ConstructLmf:focusadapter.cs(181))( 00000000026E410A )Construct lmf - Exit

 The OCS DataMCU (Web Conferencing Server) detects that it cannot communicate with the Internal Edge of the WebConferencing Edge Server  on the generally default 8057 port and hence OCS DataMCU (Web Conferencing Server) sets the numberOfProxies=0.

 The Live Meeting Client sees numberOfProxies = 0 in the SIP INFO and it does not have an Internet facing Server to connect to for PSOM (Web Conferencing) communication and hence it fails to join the meeting.

 Solution:

========

Look at any errors on the Validation wizard and resolve them. In our particular scenario: Basically the Communication from the OCS DataMCU or Front-Server to WebConferencing Edge Server  was being blocked for the port that the WebConferencing Edge Server (Internal Edge) is listening on, typically this is 8057 by default. The case was more complicated because the Live Meeting join only failed when the particular DataMCU was used so the situation seemed like a random failure. Once the communication from the OCS DataMCU or Front-Server to WebConferencing Edge Server  was working fine and Validation of Web COnferencing showed no errors, the Live Meetin client UCC API log shows the correct numberofProxies and also provides the proxy[N].FQDN and proxy[N].Port key value pairs in the SIP INFO (Content-Type: application/cccp+xml, response to "addUser" request in prior SIP INFO) received at the Live Meeting Client.

For e.g.

<entry>

<key>proxy[0].FQDN</key>

<value>testedge.contoso.com</value>

</entry>

<entry>

<key>proxy[0].Port</key>

<value>446</value>

</entry>