none
Platform Error during Transfer RRS feed

  • Question

  • Does anyone know what this error means and how to handle/prevent it?

     

    Event Type: Error
    Event Source: Office Communications Server 2007 Speech Server
    Event Category: Telephony Application Host
    Event ID: 29013
    Date:  7/9/2007
    Time:  2:31:05 PM
    User:  N/A
    Computer: *****
    Description:
    Platform Error: During processing of application 'TestCall' at URL 'http://localhost/TestCall/TestCall.speax' an internal error 'Object reference not set to an instance of an object.' occurred.  The application will be shutdown and any active calls disconnected.  
     
    Further trace information for support personnel follows:
     
    System.NullReferenceException: Object reference not set to an instance of an object.
       at Microsoft.SpeechServer.Core.TelephonySession.OnTransferCompleted(Exception error)
       at Microsoft.SpeechServer.Core.TelephonySession.SerializedTransfer(SipUri address, IList`1 localHeaders, Boolean isPeerAddress)
       at Microsoft.SpeechServer.Core.TelephonySession.SerializedTransfer(String phoneNumber, IList`1 localHeaders)

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    Monday, July 9, 2007 7:37 PM

Answers

  • Ok, I looked at the logs and the problem is that you are calling TransferAsync() in the primary session after it has already disconnected. Unfortunately, this hits a bug in our code that leads to a null-ref, so instead of reporting your mistake to you gracefully (we should raise the TransferCompleted event with a clear exception saying that the session is already disconnected), our code is hitting a null-ref and shutting down the app in a rather brutal way (although this is still somewhat cosmetic; the rest of the calls are still handled and the process is fine.)

     

    The solution for you is to fix your minor bug in order to avoid hitting ours: before you call TransferAsync, confirm that the

    TelephonySession.Closing event has not been raised. If it has been raised, you probably want to call Close() on the second session (the SupervisedTransferTelephonySession) in order to abandon the second call and clean up.

     

    Thanks for reporting this.

     

    Dan

     

    Friday, July 13, 2007 1:01 AM

All replies

  • I looked into the circumstances a little more and found out that this occured when the user hung up in the middle of being transferred. 

     

    How can I handle this exception?  I'd like to be able to log some stuff and do some other processing if this occurs. 

    Monday, July 9, 2007 8:07 PM
  • Hi, thanks for reporting this. Could you please do the following:

    • in the MSS MMC, right-click on the server and select "All Tasks->Start new log file"
    • in the MSS MMC, open the server's properties and go to the "Trace Logging" tab, and make sure Analytics and Tuning, Platform, and Application events are all enabled.
    • in that same tab, make note of the directory specified as Location
    • reproduce the error
    • in the MSS MMC, once again right-click on the server and select "All Tasks->Start new log file" (this is not a typo: do this both before and after the repro, so that the logs contain only the data we want)
    • find the next-to-most-recent ETL file. It will be in the Location directory from the above. Sort the files by Modified, and it will be the second one (the newest one will be very small, perhaps just 60k -- that's the current, still-empty one.)
    • zip that ETL file
    • send it to us. Please email this file to me. My email is my first initial and last name (no punctuation), at microsoft.com

    Also, can you collect SIP logs at the same time? Look at this thread:

     

    http://forums.microsoft.com/Ocs2007publicbeta/ShowPost.aspx?PostID=1569057&SiteID=57

     

    for details. If you could also zip and include those log files, that would help.

     

    thanks,

    Dan Herron

    Monday, July 9, 2007 10:09 PM
  • Ok, I looked at the logs and the problem is that you are calling TransferAsync() in the primary session after it has already disconnected. Unfortunately, this hits a bug in our code that leads to a null-ref, so instead of reporting your mistake to you gracefully (we should raise the TransferCompleted event with a clear exception saying that the session is already disconnected), our code is hitting a null-ref and shutting down the app in a rather brutal way (although this is still somewhat cosmetic; the rest of the calls are still handled and the process is fine.)

     

    The solution for you is to fix your minor bug in order to avoid hitting ours: before you call TransferAsync, confirm that the

    TelephonySession.Closing event has not been raised. If it has been raised, you probably want to call Close() on the second session (the SupervisedTransferTelephonySession) in order to abandon the second call and clean up.

     

    Thanks for reporting this.

     

    Dan

     

    Friday, July 13, 2007 1:01 AM