/// <summary> /// Default incoming call constructor. /// </summary> /// <param name="ua">Owner UA.</param> /// <param name="invite">INVITE server transaction.</param> /// <exception cref="ArgumentNullException">Is riased when <b>ua</b> or <b>invite</b> is null reference.</exception> internal SIP_UA_Call(SIP_UA ua, SIP_ServerTransaction invite) { if (ua == null) { throw new ArgumentNullException("ua"); } if (invite == null) { throw new ArgumentNullException("invite"); } m_pUA = ua; m_pInitialInviteTransaction = invite; m_pLocalUri = invite.Request.To.Address.Uri; m_pRemoteUri = invite.Request.From.Address.Uri; m_pInitialInviteTransaction.Canceled += delegate { // If transaction canceled, terminate call. SetState(SIP_UA_CallState.Terminated); }; m_State = SIP_UA_CallState.WaitingToAccept; }
/// <summary> /// Default outgoing call constructor. /// </summary> /// <param name="ua">Owner UA.</param> /// <param name="invite">INVITE request.</param> /// <exception cref="ArgumentNullException">Is riased when <b>ua</b> or <b>invite</b> is null reference.</exception> /// <exception cref="ArgumentException">Is raised when any of the argumnets has invalid value.</exception> internal SIP_UA_Call(SIP_UA ua, SIP_Request invite) { if (ua == null) { throw new ArgumentNullException("ua"); } if (invite == null) { throw new ArgumentNullException("invite"); } if (invite.RequestLine.Method != SIP_Methods.INVITE) { throw new ArgumentException("Argument 'invite' is not INVITE request."); } m_pUA = ua; m_pInvite = invite; m_pLocalUri = invite.From.Address.Uri; m_pRemoteUri = invite.To.Address.Uri; m_State = SIP_UA_CallState.WaitingForStart; m_pEarlyDialogs = new List <SIP_Dialog>(); }
/// <summary> /// Default outgoing call constructor. /// </summary> /// <param name="ua">Owner UA.</param> /// <param name="invite">INVITE request.</param> /// <exception cref="ArgumentNullException">Is riased when <b>ua</b> or <b>invite</b> is null reference.</exception> /// <exception cref="ArgumentException">Is raised when any of the argumnets has invalid value.</exception> internal SIP_UA_Call(SIP_UA ua, SIP_Request invite) { if (ua == null) { throw new ArgumentNullException("ua"); } if (invite == null) { throw new ArgumentNullException("invite"); } if (invite.RequestLine.Method != SIP_Methods.INVITE) { throw new ArgumentException("Argument 'invite' is not INVITE request."); } m_pUA = ua; m_pInvite = invite; m_pLocalUri = invite.From.Address.Uri; m_pRemoteUri = invite.To.Address.Uri; m_State = SIP_UA_CallState.WaitingForStart; m_pEarlyDialogs = new List<SIP_Dialog>(); }