Message Length Playback

This will show the important bits of logging for message length playback of a 4 second voice mail message. Turn on these macro traces: We enter the MessageHeader state of the VuiSubPlayMessage conversation:
11:58:30.263 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,CDE,10,CCsStateMachine::Execute : Next state is [/opt/cisco/connection/share/tui/VuiSubPlayMessage.cde!MessageHeader] [Src/CsStateMachine.cpp:190]
11:58:30.263 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,CDE,10,CCsStateMachine::Execute : Calling OnEntry for state [/opt/cisco/connection/share/tui/VuiSubPlayMessage.cde!MessageHeader] [Src/CsStateMachine.cpp:139]
A bit later we get to the section where we output the message length. You can see here what named properties we are accessing to determine the length and whether we should output the stream. We start by getting the stream length in milliseconds.
11:58:30.265 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,CDE,11,JS_EXT::GetPropLong: ICsNamedProps::GetPropLong() found property MsgStreamLength = 4110.  GetPropLong() returned 0x00000000 S_OK [Include/JsExtensions.h:178]
We then get the AnnounceMessageLength property, which is determined by whether the user is set to play back message duration in the admin:
11:58:30.265 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,CDE,11,JS_EXT::GetPropBool: ICsNamedProps::GetPropBool() found property AnnounceMessageLength = true.  GetPropBool() returned 0x00000000 S_OK [Include/JsExtensions.h:148]
We then get the type of the message. We should only output duration information for voicemail messages, as shown below:
11:58:30.265 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,CDE,11,JS_EXT::GetPropString: ICsNamedProps::GetPropString() found property MsgMediaType = VoiceMessage.  GetPropString() returned 0x00000000 S_OK [Include/JsExtensions.h:217]
Here you can see the phrase server adding the prompts to play "is 4 seconds long":
11:58:30.265 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,PhraseServer,3,(SingleUse.cpp) Script: VuiSubPlay_ENU.ps (AddPrompt) -- Is
11:58:30.266 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,PhraseServer,3,(SingleUse.cpp) Script: VuiSubPlay_ENU.ps (AddPhrase) -- Duration
11:58:30.266 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,PhraseServer,3,(SingleUse.cpp) Script: Common_ENU.ps (Make) -- Duration
11:58:30.266 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,CDE,11,JS_EXT::GetPropLong: ICsNamedProps::GetPropLong() found property Common.Duration = 4.  GetPropLong() returned 0x00000000 S_OK [Include/JsExtensions.h:178]
11:58:30.266 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,PhraseServer,3,(SingleUse.cpp) Script: Common_ENU.ps (AddPrompt) -- 4_Leading
11:58:30.266 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,PhraseServer,3,(SingleUse.cpp) Script: Common_ENU.ps (AddPrompt) -- SecondsLong
Much later we should end the MessageHeader state successfully:
11:58:37.406 |6235,PhoneSystem-1-001,3947524BF6A442C190B0682AB74E1988,CDE,10,CCsStateMachine::Execute : OnEntry for state [/opt/cisco/connection/share/tui/VuiSubPlayMessage.cde!MessageHeader] returned 0x00000000 S_OK [Src/CsStateMachine.cpp:143]
After that, the message itself will play.