callChanges ) {
Activity callActivity = GetActivity( StringHelper.ExtractSubstring( page, callState.Name + " State:| ", "<", lineState.Name + " Status" ) );
if( callActivity != callState.Activity )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_ACTIVITY, callState.Activity.ToString(), callActivity.ToString() ) );
callState.Activity = callActivity;
String duration = StringHelper.EmptyToNull( StringHelper.ExtractSubstring( page, callState.Name + " Duration: | ", "<", lineState.Name + " Status" ) );
if( duration != callState.Duration )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_DURATION, callState.Duration, duration ) );
callState.Duration = duration;
CallType type = GetCallType( StringHelper.ExtractSubstring( page, callState.Name + " Type: | ", "<", lineState.Name + " Status" ) );
if( type != callState.Type )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_TYPE, callState.Type.ToString(), type.ToString() ) );
callState.Type = type;
Tone tone = GetTone( StringHelper.ExtractSubstring( page, callState.Name + " Tone: | ", "<", lineState.Name + " Status" ) );
if( tone != callState.Tone )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_TONE, callState.Tone.ToString(), tone.ToString() ) );
callState.Tone = tone;
String encoder = StringHelper.EmptyToNull( StringHelper.ExtractSubstring( page, callState.Name + " Encoder: | ", "<", lineState.Name + " Status" ) );
if( encoder != callState.Encoder )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_ENCODER, callState.Encoder, encoder ) );
callState.Encoder = encoder;
String decoder = StringHelper.EmptyToNull( StringHelper.ExtractSubstring( page, callState.Name + " Decoder: | ", "<", lineState.Name + " Status" ) );
if( decoder != callState.Decoder )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_DECODER, callState.Decoder, decoder ) );
callState.Decoder = decoder;
long bytesSent = ParseInt64( StringHelper.ExtractSubstring( page, callState.Name + " Bytes Sent: | ", "<", lineState.Name + " Status" ) );
if( bytesSent != callState.BytesSent )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_BYTESSENT, callState.BytesSent, bytesSent ) );
callState.BytesSent = bytesSent;
long bytesReceived = ParseInt64( StringHelper.ExtractSubstring( page, callState.Name + " Bytes Recv: | ", "<", lineState.Name + " Status" ) );
if( bytesReceived != callState.BytesReceived )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_BYTESRECEIVED, callState.BytesReceived, bytesReceived ) );
callState.BytesReceived = bytesReceived;
long packetLoss = ParseInt64( StringHelper.ExtractSubstring( page, callState.Name + " Packets Lost: | ", "<", lineState.Name + " Status" ) );
if( packetLoss != callState.PacketLoss )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_PACKETLOSS, callState.PacketLoss, packetLoss ) );
callState.PacketLoss = packetLoss;
long packetError = ParseInt64( StringHelper.ExtractSubstring( page, callState.Name + " Packet Error: | ", "<", lineState.Name + " Status" ) );
if( packetError != callState.PacketError )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_PACKETERROR, callState.PacketError, packetError ) );
callState.PacketError = packetError;
long jitter = ParseInt64( StringHelper.ExtractSubstring( page, callState.Name + " Jitter: | ", "<", lineState.Name + " Status" ).Replace( " ms", "") );
if( jitter != callState.Jitter )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_JITTER, callState.Jitter, jitter ) );
callState.Jitter = jitter;
long decodeLatency = ParseInt64( StringHelper.ExtractSubstring( page, callState.Name + " Decode Latency: | ", "<", lineState.Name + " Status" ).Replace( " ms", "") );
if( decodeLatency != callState.DecodeLatency )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_DECODELATENCY, callState.DecodeLatency, decodeLatency ) );
callState.DecodeLatency = decodeLatency;
long roundTripDelay = ParseInt64( StringHelper.ExtractSubstring( page, callState.Name + " Round Trip Delay: | ", "<", lineState.Name + " Status" ).Replace( " ms", "") );
if( roundTripDelay != callState.RoundTripDelay )
callChanges.Add( new CallPropertyChange( callState, PROPERTY_CALL_ROUNDTRIPDELAY, callState.RoundTripDelay, roundTripDelay ) );
callState.RoundTripDelay = roundTripDelay;
}
}
}
|