예제 #1
0
        internal void Publish(string sipUri, string basic, string note, int expires)
        {
            UserAgent pua = new UserAgent(Stack)
            {
                LocalParty = PublicServiceIdentity, RemoteParty = new Address(sipUri)
            };

            Useragents.Add(pua);
            Message request = pua.CreateRequest("PUBLISH");

            request.InsertHeader(new Header("presence", "Event"));
            request.InsertHeader(new Header(pua.LocalParty.ToString(), "P-Preferred-Identity"));
            request.InsertHeader(new Header("application/pidf+xml", "Content-Type"));

            StringBuilder sb = new StringBuilder();

            sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
            sb.Append(
                "<presence xmlns=\"urn:ietf:params:xml:ns:pidf\" xmlns:im=\"urn:ietf:params:xml:ns:pidf:im\" entity=\"" +
                sipUri + "\">\n");
            sb.Append("<tuple id=\"Sharp_IMS_Client\">\n");
            sb.Append("<status>\n");
            sb.Append("<basic>" + basic + "</basic>\n");
            sb.Append("</status>\n");
            sb.Append("<note>" + note + "</note>\n");
            sb.Append("</tuple>\n");
            sb.Append("</presence>\n");
            request.Body = sb.ToString();
            pua.SendRequest(request);
        }
예제 #2
0
        public void SendInvite(string uri)
        {
            uri = checkURI(uri);
            UserAgent cua = new UserAgent(Stack)
            {
                LocalParty = PublicServiceIdentity, RemoteParty = new Address(uri)
            };

            Useragents.Add(cua);
            Message invite = cua.CreateRequest("INVITE");

            cua.SendRequest(invite);
        }
예제 #3
0
파일: SIPApp.cs 프로젝트: ims-research/CS
        public void SendMessage(string uri, string message, string contentType = "text/plain")
        {
            uri = checkURI(uri);
            UserAgent mua = new UserAgent(Stack)
            {
                LocalParty = PublicServiceIdentity, RemoteParty = new Address(uri)
            };

            Useragents.Add(mua);
            Message m = mua.CreateRequest("MESSAGE", message);

            m.InsertHeader(new Header(contentType, "Content-Type"));
            mua.SendRequest(m);
        }
예제 #4
0
        public void SendInvite(string uri, SDP sdp)
        {
            uri = checkURI(uri);
            UserAgent cua = new UserAgent(Stack)
            {
                LocalParty = PublicServiceIdentity, RemoteParty = new Address(uri)
            };

            Useragents.Add(cua);
            Message invite = cua.CreateRequest("INVITE");

            invite.InsertHeader(new Header("application/sdp", "Content-Type"));
            invite.Body = sdp.ToString();
            cua.SendRequest(invite);
        }
예제 #5
0
 public void SendIM(string uri, string message, string contentType = "text/plain")
 {
     uri = checkURI(uri);
     if (IsRegistered())
     {
         UserAgent mua = new UserAgent(Stack)
         {
             LocalParty = RegisterUA.LocalParty, RemoteParty = new Address(uri)
         };
         Useragents.Add(mua);
         Message m = mua.CreateRequest("MESSAGE", message);
         m.InsertHeader(new Header(contentType, "Content-Type"));
         mua.SendRequest(m);
     }
 }
예제 #6
0
 public void Invite(string uri)
 {
     uri = checkURI(uri);
     if (IsRegistered())
     {
         UserAgent cua = new UserAgent(Stack)
         {
             LocalParty = RegisterUA.LocalParty, RemoteParty = new Address(uri)
         };
         Useragents.Add(cua);
         Message invite = cua.CreateRequest("INVITE");
         cua.SendRequest(invite);
     }
     else
     {
         Log.Error("isRegistered failed in invite message");
     }
 }
예제 #7
0
 public void Invite(string uri, SDP sdp)
 {
     uri = checkURI(uri);
     if (IsRegistered())
     {
         UserAgent cua = new UserAgent(Stack)
         {
             LocalParty = RegisterUA.LocalParty, RemoteParty = new Address(uri)
         };
         Useragents.Add(cua);
         Message invite = cua.CreateRequest("INVITE");
         invite.InsertHeader(new Header("application/sdp", "Content-Type"));
         invite.Body = sdp.ToString();
         cua.SendRequest(invite);
     }
     else
     {
         Log.Error("isRegistered failed in invite message");
     }
 }
예제 #8
0
파일: SIPApp.cs 프로젝트: ims-research/USPS
 public override void DialogCreated(Dialog dialog, UserAgent ua, SIPStack stack)
 {
     Useragents.Remove(ua);
     Useragents.Add(dialog);
     Log.Info("New dialog created");
 }