SIPSorcery.SIP.SIPTransaction.RequestRetransmit C# (CSharp) Method

RequestRetransmit() public method

public RequestRetransmit ( ) : void
return void
        public void RequestRetransmit()
        {
            if (TransactionRequestRetransmit != null)
            {
                try
                {
                    TransactionRequestRetransmit(this, this.TransactionRequest, this.Retransmits);
                }
                catch (Exception excp)
                {
                    logger.Error("Exception TransactionRequestRetransmit. " + excp.Message);
                }
            }

            FireTransactionTraceMessage("Send Request retransmit " + Retransmits + " " + LocalSIPEndPoint.ToString() + "->" + this.RemoteEndPoint + m_crLF + this.TransactionRequest.ToString());
        }

Usage Example

        /// <summary>
        /// Sends or resends the transaction request.
        /// </summary>
        /// <param name="transaction">The transaction to resend the request for.</param>
        /// <returns>The result of the send attempt.</returns>
        private Task <SocketError> SendTransactionRequest(SIPTransaction transaction)
        {
            Task <SocketError> result = null;

            transaction.Retransmits  = transaction.Retransmits + 1;
            transaction.LastTransmit = DateTime.Now;

            if (transaction.InitialTransmit == DateTime.MinValue)
            {
                transaction.InitialTransmit = transaction.LastTransmit;
            }

            // INVITE-UAC and no-INVITE transaction types, send request reliably.
            if (transaction.Retransmits > 1)
            {
                SIPRequestRetransmitTraceEvent?.Invoke(transaction, transaction.TransactionRequest, transaction.Retransmits);
                transaction.RequestRetransmit();
            }

            // If there is no tx request then it must be a PRack request we're being asked to send reliably.
            SIPRequest req = transaction.TransactionRequest ?? transaction.PRackRequest;

            if (transaction.OutboundProxy != null)
            {
                result = m_sipTransport.SendRequestAsync(transaction.OutboundProxy, req);
            }
            else
            {
                result = m_sipTransport.SendRequestAsync(req);
            }

            return(result);
        }
All Usage Examples Of SIPSorcery.SIP.SIPTransaction::RequestRetransmit