1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.header;
2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.text.ParseException;
4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.extensions.JoinHeader;
6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.extensions.ReferredByHeader;
7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.extensions.ReplacesHeader;
8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.extensions.SessionExpiresHeader;
9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PAccessNetworkInfoHeader;
10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PAssertedIdentityHeader;
11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PAssertedServiceHeader;
12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PAssociatedURIHeader;
13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PCalledPartyIDHeader;
14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PChargingFunctionAddressesHeader;
15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PChargingVectorHeader;
16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PMediaAuthorizationHeader;
17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PPreferredIdentityHeader;
18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PPreferredServiceHeader;
19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PProfileKeyHeader;
20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PServedUserHeader;
21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PUserDatabaseHeader;
22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PVisitedNetworkIDHeader;
23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PathHeader;
24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.PrivacyHeader;
25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.SecurityClientHeader;
26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.SecurityServerHeader;
27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.SecurityVerifyHeader;
28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ims.ServiceRouteHeader;
29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.InvalidArgumentException;
31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.address.Address;
32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.Header;
33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.HeaderFactory;
34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/**
36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Header factory extensions. These will be included in the next release of
37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * JAIN-SIP.
38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @since 2.0
40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */
42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic interface HeaderFactoryExt extends HeaderFactory {
43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Create a RequestLine from a String
46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException
47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public SipRequestLine createRequestLine(String requestLine) throws ParseException;
49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Create a StatusLine from a String.
53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public SipStatusLine createStatusLine(String statusLine) throws ParseException;
55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Create a ReferredBy Header.
59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address --
61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            address for the header.
62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ReferredByHeader createReferredByHeader(Address address);
65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Create a Replaces header with a call Id, to and from tag.
69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param callId -
71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            the call id to use.
72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param toTag -
73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            the to tag to use.
74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param fromTag -
75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            the fromTag to use.
76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ReplacesHeader createReplacesHeader(String callId, String toTag,
79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang            String fromTag) throws ParseException;
80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * creates a P-Access-Network-Info header.
83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Access-Network-Info header
85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PAccessNetworkInfoHeader createPAccessNetworkInfoHeader();
87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
88600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
89600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * P-Asserted-Identity header
90600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
91600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address -
92600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            Address
93600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Asserted-Identity header
94600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException
95600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
96600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
97600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PAssertedIdentityHeader createPAssertedIdentityHeader(Address address)
98600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang            throws NullPointerException, ParseException;
99600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
100600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
101600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Creates a new P-Associated-URI header based on the supplied address
102600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
103600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param assocURI -
104600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            Address
105600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Associated-URI header
106600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
107600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *             if the supplied address is null
108600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException
109600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
110600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PAssociatedURIHeader createPAssociatedURIHeader(Address assocURI);
111600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
112600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
113600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * P-Called-Party-ID header
114600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
115600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address -
116600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            Address
117600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Called-Party-ID header
118600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
119600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException
120600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
121600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PCalledPartyIDHeader createPCalledPartyIDHeader(Address address);
122600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
123600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
124600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * P-Charging-Function-Addresses header
125600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
126600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Charging-Function-Addresses header
127600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
128600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PChargingFunctionAddressesHeader createPChargingFunctionAddressesHeader();
129600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
130600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
131600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * P-Charging-Vector header
132600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
133600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param icid -
134600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            icid string
135600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Charging-Vector header
136600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
137600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException
138600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
139600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PChargingVectorHeader createChargingVectorHeader(String icid) throws ParseException;
140600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
141600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     /**
142600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * P-Media-Authorization header
143600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param token - token string
144600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Media-Authorizarion header
145600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws InvalidArgumentException
146600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException
147600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
148600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PMediaAuthorizationHeader createPMediaAuthorizationHeader(String token)
149600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        throws InvalidArgumentException, ParseException;
150600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
151600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
152600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * P-Preferred-Identity header
153600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address - Address
154600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Preferred-Identity header
155600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
156600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
157600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PPreferredIdentityHeader createPPreferredIdentityHeader(Address address);
158600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
159600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
160600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * P-Visited-Network-ID header
161600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created P-Visited-Network-ID header
162600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
163600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PVisitedNetworkIDHeader createPVisitedNetworkIDHeader();
164600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
165600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
166600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * PATH header
167600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address - Address
168600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created Path header
169600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
170600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws ParseException
171600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
172600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PathHeader createPathHeader(Address address);
173600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
174600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
175600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Privacy header
176600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param privacyType - privacy type string
177600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created Privacy header
178600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
179600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
180600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PrivacyHeader createPrivacyHeader(String privacyType);
181600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
182600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
183600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
184600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Service-Route header
185600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address - Address
186600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created Service-Route header
187600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws NullPointerException
188600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
189600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ServiceRouteHeader createServiceRouteHeader(Address address);
190600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
191600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
192600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Security-Server header
193600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created Security-Server header
194600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
195600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public SecurityServerHeader createSecurityServerHeader();
196600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
197600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
198600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Security-Client header
199600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created Security-Client header
200600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
201600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public SecurityClientHeader createSecurityClientHeader();
202600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
203600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
204600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
205600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Security-Verify header
206600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return newly created Security-Verify header
207600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
208600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public SecurityVerifyHeader createSecurityVerifyHeader();
209600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
210600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
211600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
212600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Creates a new SessionExpiresHeader based on the newly supplied expires value.
213600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
214600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param expires - the new integer value of the expires.
215600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @throws InvalidArgumentException if supplied expires is less
216600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * than zero.
217600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return the newly created SessionExpiresHeader object.
218600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
219600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
220600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public SessionExpiresHeader createSessionExpiresHeader(int expires) throws InvalidArgumentException ;
221600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
222600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
223600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
224600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Create a Join header with a call Id, to and from tag.
225600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
226600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param callId -
227600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            the call id to use.
228600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param toTag -
229600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            the to tag to use.
230600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param fromTag -
231600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *            the fromTag to use.
232600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
233600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
234600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public JoinHeader createJoinHeader(String callId, String toTag,
235600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang            String fromTag) throws ParseException;
236600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
237600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
238600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
239600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return the newly created P-User-Database header
240600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param the database name, that may be an IP:port or a domain name.
241600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
242600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PUserDatabaseHeader createPUserDatabaseHeader(String databaseName);
243600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
244600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
245600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
246600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
247600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address
248600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return The newly created P-Profile-Key header
249600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
250600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PProfileKeyHeader createPProfileKeyHeader(Address address);
251600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
252600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
253600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param address of the served user.
254600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return The newly created P-Served-User Header.
255600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
256600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PServedUserHeader createPServedUserHeader(Address address);
257600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
258600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
259600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
260600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return The newly created P-Preferred-Service Header.
261600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
262600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PPreferredServiceHeader createPPreferredServiceHeader();
263600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
264600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
265600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
266600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return The newly created P-Asserted-Service Header.
267600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
268600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public PAssertedServiceHeader createPAssertedServiceHeader();
269600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
270600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
271600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Create a header from a string. The string is assumed to be in the
272600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * name:value format. The trailing CRLF (if any ) will be stripped
273600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * before parsing this. The header should be a singleton.
274600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
275600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public Header createHeader(String header) throws ParseException;
276600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
277600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang}
278