1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.message;
2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.text.ParseException;
4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.CSeqHeader;
6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.CallIdHeader;
7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ContentLengthHeader;
8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ContentTypeHeader;
9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.FromHeader;
10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ToHeader;
11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ViaHeader;
12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.message.Message;
13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/**
15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @author jean.deruelle@gmail.com
17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */
19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic interface MessageExt extends Message {
20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     /**
22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * This method allows applications to associate application context with
23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * the message. This specification does not define the format of this
24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * data, this the responsibility of the application and is dependent
25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * on the application.
26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * this application data is un-interpreted by the stack.
27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Beware : when you clone a message, the deepcopy does not apply to the application data
28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * (instead, we would just make a copy of the pointer).
29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param applicationData - un-interpreted application data.
31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setApplicationData (Object applicationData);
36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Returns the application data associated with the transaction.This
40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * specification does not define the format of this application specific
41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * data. This is the responsibility of the application.
42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return application data associated with the message by the application.
44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public Object getApplicationData();
48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the multipart mime content from a message. Builds a wrapper around the
51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * content and breaks it into multiple sections. Returns these sections as
52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * a multipart mime content list. If the content type is not multipart mime
53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * then the list will have a single element in it.
54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param Message message
57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException if the content type is multipart mime but the content
58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *  is not properly encoded.
59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public MultipartMimeContent getMultipartMimeContent() throws ParseException;
62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the topmost Via header.
65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ViaHeader getTopmostViaHeader();
69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the From header or null if none present.
72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public FromHeader getFromHeader();
76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the To header or null if none present.
79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ToHeader getToHeader();
83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the callId header or null if none present.
87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
88600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
89600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
90600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public CallIdHeader getCallIdHeader();
91600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
92600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
93600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the CSeq header or null if none present.
94600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
95600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
96600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
97600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public  CSeqHeader getCSeqHeader();
98600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
99600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
100600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the content type header or null if none present.
101600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
102600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
103600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
104600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ContentTypeHeader getContentTypeHeader();
105600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
106600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
107600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the content length header or null if none present.
108600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
109600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
110600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
111600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ContentLengthHeader getContentLengthHeader();
112600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
113600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
114600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Get the first line of the request or response.
115600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
116600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v2.0
117600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
118600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public String getFirstLine();
119600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
120600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang}
121