protected override void OnLineStatusChanged(LineStatusMessageBase msg) { if (msg.Type == eLineStatusType.PO_Status || msg.Type == eLineStatusType.PO_Tone) { var e = new POStatusChangedEventArgs(msg.Address); if (msg.Type == eLineStatusType.PO_Status) { e.Status = (((POStatusMessage)msg).Status == eStatus.On) ? ePOStatus.OffHook : ePOStatus.OnHook; } else { e.Tone = ((NumberReceivedMessage)msg).Number; } if (this.OnPOStatusChanged != null) { OnPOStatusChanged(this, e); } } else { var e = new ChannelStatusChangedEventArgs(msg.Address); switch (msg.Type) { case eLineStatusType.Line: var lmsg = msg as LineStatusMessage; e.Status = lmsg.Status; break; case eLineStatusType.Revert: break; case eLineStatusType.Tone: case eLineStatusType.CallerId: var nmsg = msg as NumberReceivedMessage; if (msg.Type == eLineStatusType.Tone) { e.Tone = nmsg.Number; } else { e.CallerId = nmsg.Number; } break; } if (this.OnChannelStatusChanged != null) { OnChannelStatusChanged(this, e); } } }
protected virtual void OnLineStatusChanged(LineStatusMessageBase msg) { switch (msg.Type) { case eLineStatusType.Line: break; case eLineStatusType.Revert: break; case eLineStatusType.Tone: break; case eLineStatusType.PO_Status: break; case eLineStatusType.PO_Tone: break; } }