/// <summary> /// Creates new call ID value. /// </summary> /// <returns>Returns call ID value.</returns> public static SIP_t_CallID CreateCallID() { SIP_t_CallID callID = new SIP_t_CallID(); callID.CallID = Guid.NewGuid().ToString().Replace("-",""); return callID; }
/// <summary> /// Parses "Join" from specified reader. /// </summary> /// <param name="reader">Reader from where to parse.</param> /// <exception cref="ArgumentNullException">Raised when <b>reader</b> is null.</exception> /// <exception cref="SIP_ParseException">Raised when invalid SIP message.</exception> public override void Parse(StringReader reader) { /* Join = callid *(SEMI join-param) join-param = to-tag / from-tag / generic-param to-tag = "to-tag" EQUAL token from-tag = "from-tag" EQUAL token A Join header MUST contain exactly one to-tag and exactly one from- tag, as they are required for unique dialog matching. */ if(reader == null){ throw new ArgumentNullException("reader"); } // Parse address SIP_t_CallID callID = new SIP_t_CallID(); callID.Parse(reader); m_pCallID = callID; // Parse parameters ParseParameters(reader); // Check that to and from tags exist. if(this.Parameters["to-tag"] == null){ throw new SIP_ParseException("Join value mandatory to-tag value is missing !"); } if(this.Parameters["from-tag"] == null){ throw new SIP_ParseException("Join value mandatory from-tag value is missing !"); } }
/// <summary> /// Creates new call ID value. /// </summary> /// <returns>Returns call ID value.</returns> public static SIP_t_CallID CreateCallID() { SIP_t_CallID callID = new SIP_t_CallID(); callID.CallID = Guid.NewGuid().ToString().Replace("-", ""); return(callID); }
/// <summary> /// Default constructor. /// </summary> public SIP_Stack() { m_pTransportLayer = new SIP_TransportLayer(this); m_pTransactionLayer = new SIP_TransactionLayer(this); m_pNonceManager = new Auth_HttpDigest_NonceManager(); m_pProxyServers = new List<SIP_Uri>(); m_pRegistrations = new List<SIP_UA_Registration>(); m_pCredentials = new List<NetworkCredential>(); m_RegisterCallID = SIP_t_CallID.CreateCallID(); m_pLogger = new Logger(); m_pDnsClient = new Dns_Client(); }
/// <summary> /// Default constructor. /// </summary> public SIP_Stack() { m_pTransportLayer = new SIP_TransportLayer(this); m_pTransactionLayer = new SIP_TransactionLayer(this); m_pNonceManager = new Auth_HttpDigest_NonceManager(); m_pProxyServers = new List<SIP_Uri>(); m_pRegistrations = new List<SIP_UA_Registration>(); m_pCredentials = new List<NetworkCredential>(); m_RegisterCallID = SIP_t_CallID.CreateCallID(); m_pAllow = new List<string>(); m_pAllow.AddRange(new string[]{"INVITE","ACK","CANCEL","BYE","MESSAGE"}); m_pSupported = new List<string>(); m_pLogger = new Logger(); m_pDnsClient = new Dns_Client(); }
/// <summary> /// Parses "Join" from specified reader. /// </summary> /// <param name="reader">Reader from where to parse.</param> /// <exception cref="ArgumentNullException">Raised when <b>reader</b> is null.</exception> /// <exception cref="SIP_ParseException">Raised when invalid SIP message.</exception> public override void Parse(StringReader reader) { /* * Join = callid *(SEMI join-param) * join-param = to-tag / from-tag / generic-param * to-tag = "to-tag" EQUAL token * from-tag = "from-tag" EQUAL token * * A Join header MUST contain exactly one to-tag and exactly one from- * tag, as they are required for unique dialog matching. */ if (reader == null) { throw new ArgumentNullException("reader"); } // Parse address SIP_t_CallID callID = new SIP_t_CallID(); callID.Parse(reader); m_pCallID = callID; // Parse parameters ParseParameters(reader); // Check that to and from tags exist. if (this.Parameters["to-tag"] == null) { throw new SIP_ParseException("Join value mandatory to-tag value is missing !"); } if (this.Parameters["from-tag"] == null) { throw new SIP_ParseException("Join value mandatory from-tag value is missing !"); } }