Exemplo n.º 1
0
        private void SendNotify(Dialog dialog, int expires)
        {
            int transactionId = GetTransactionId(Methods.Notifym);

            var writer = GetWriter();

            writer.WriteRequestLine(Methods.Notifym, dialog.RemoteUri);
            writer.WriteVia(dialog.Transport, dialog.LocalEndPoint, transactionId);
            writer.WriteFrom(dialog.LocalUri, dialog.LocalTag);
            writer.WriteTo(dialog.RemoteUri, dialog.RemoteTag);
            writer.WriteDate(DateTime.UtcNow);
            writer.WriteCallId(dialog.CallId);
            writer.WriteCseq(dialog.GetNextLocalCseq(), Methods.Notifym);
            writer.WriteContact(dialog.LocalEndPoint, dialog.Transport);
            //Event: message-summary
            //writer.WriteEvent();
            writer.WriteSubscriptionState(expires);
            writer.WriteMaxForwards(70);
            writer.WriteContentType(contentType);
            writer.WriteContentLength(content.Length);
            writer.WriteCRLF();

            writer.Write(content);

            notifyProducer.SendRequest(dialog.ConnectionAddresses, writer, transactionId);
        }
Exemplo n.º 2
0
        private void SendNotify(Dialog dialog, int expires, PresenceDocument document)
        {
            int transactionId = GetTransactionId(Methods.Notifym);

            var writer = new SipMessageWriter();

            writer.WriteRequestLine(Methods.Notifym, dialog.RemoteUri);
            writer.WriteVia(dialog.Transport, dialog.LocalEndPoint, transactionId);
            writer.WriteFrom(dialog.LocalUri, dialog.LocalTag);
            writer.WriteTo(dialog.RemoteUri, dialog.RemoteTag);
            writer.WriteCallId(dialog.CallId);
            writer.WriteEventPresence();
            writer.WriteSubscriptionState(expires);
            writer.WriteMaxForwards(70);
            writer.WriteCseq(dialog.GetNextLocalCseq(), Methods.Notifym);
            writer.WriteContact(dialog.LocalEndPoint, dialog.Transport);

            if (document != null)
            {
                writer.WriteContentType(application, pidfXml);
                //writer.WriteContentLength();
                //writer.WriteCRLF();

                //writer.RewriteContentLength(
                //    document.CopyTo((length) => writer.GetBytesForCustomWrite(length)));

                document.WriteLenghtAndContent(writer);
            }
            else
            {
                writer.WriteContentLength(0);
                writer.WriteCRLF();
            }

            notifyProducer.SendRequest(dialog.Transport, dialog.LocalEndPoint,
                                       dialog.RemoteEndPoint, ServerAsyncEventArgs.AnyConnectionId, writer, transactionId);
        }
Exemplo n.º 3
0
		private void SendNotify(Dialog dialog, int expires, PresenceDocument document)
		{
			int transactionId = GetTransactionId(Methods.Notifym);

			var writer = new SipMessageWriter();

			writer.WriteRequestLine(Methods.Notifym, dialog.RemoteUri);
			writer.WriteVia(dialog.Transport, dialog.LocalEndPoint, transactionId);
			writer.WriteFrom(dialog.LocalUri, dialog.LocalTag);
			writer.WriteTo(dialog.RemoteUri, dialog.RemoteTag);
			writer.WriteCallId(dialog.CallId);
			writer.WriteEventPresence();
			writer.WriteSubscriptionState(expires);
			writer.WriteMaxForwards(70);
			writer.WriteCseq(dialog.GetNextLocalCseq(), Methods.Notifym);
			writer.WriteContact(dialog.LocalEndPoint, dialog.Transport);

			if (document != null)
			{
				writer.WriteContentType(application, pidfXml);
				//writer.WriteContentLength();
				//writer.WriteCRLF();

				//writer.RewriteContentLength(
				//    document.CopyTo((length) => writer.GetBytesForCustomWrite(length)));

				document.WriteLenghtAndContent(writer);
			}
			else
			{
				writer.WriteContentLength(0);
				writer.WriteCRLF();
			}

			notifyProducer.SendRequest(dialog.Transport, dialog.LocalEndPoint,
				dialog.RemoteEndPoint, ServerAsyncEventArgs.AnyConnectionId, writer, transactionId);
		}
Exemplo n.º 4
0
		private void SendNotify(Dialog dialog, int expires)
		{
			int transactionId = GetTransactionId(Methods.Notifym);

			var writer = GetWriter();

			writer.WriteRequestLine(Methods.Notifym, dialog.RemoteUri);
			writer.WriteVia(dialog.Transport, dialog.LocalEndPoint, transactionId);
			writer.WriteFrom(dialog.LocalUri, dialog.LocalTag);
			writer.WriteTo(dialog.RemoteUri, dialog.RemoteTag);
			writer.WriteDate(DateTime.UtcNow);
			writer.WriteCallId(dialog.CallId);
			writer.WriteCseq(dialog.GetNextLocalCseq(), Methods.Notifym);
			writer.WriteContact(dialog.LocalEndPoint, dialog.Transport);
			//Event: message-summary
			//writer.WriteEvent();
			writer.WriteSubscriptionState(expires);
			writer.WriteMaxForwards(70);
			writer.WriteContentType(contentType);
			writer.WriteContentLength(content.Length);
			writer.WriteCRLF();

			writer.Write(content);

			notifyProducer.SendRequest(dialog.ConnectionAddresses, writer, transactionId);
		}