📄 changes.html
字号:
String contact = new String("sip:user@"+scn.getLocalAddress()+":"+scn.getLocalPort());
scc.setHeader("Contact", contact);
- changed "application/xpidf+xml" to "application/pidf+xml"
- Rephrased the specification for SipDialog.getNewClientConnection() (Page 35)
"Returns a new SipClientConnection in this dialog. The returned
SipClientConnection will be in <em>Initialized</em>
state. The object is initialized with the given method and
following headers will be set at least (for details see RFC 3261
[1] 12.2.1.1 Generating the Request, p.73):"
- <b>SipRefreshHelper</b> (Page 49)
- Corrected code example of sending REGISTER correctly
// Initialize connection to the registrar host.com
sc = (SipClientConnection)
Connector.open("sip:host.com");
sc.setListener(this);
// Initialize request and set From, To and Contact headers
sc.initRequest("REGISTER", null);
sc.setHeader("From", "sip:sippy.user@host.com");
sc.setHeader("To", "sip:sippy.user@host.com");
- <b>Annex A</b>
- Rewritten the chapter "A.3.1 JSR 180 Push Registration Entry"
- <b>Annex B</b>
- Updated code examples
</pre>
<h2>JSR180 Final Release 1.0</h1>
<h2>Changes from Final Approval Ballot version</h2>
<pre>
- <b>SipClientConnection</b>
- corrected typos "initialised", "transtition", "alreay"
- <b>SipServerConnection</b>
- corrected typo "receicved"
- <b>SipConnection</b>
- corrected typos "supprted", "occured"
- <b>SipDialog</b>
- removed following comment from getNewClientConnection(), Contact header
"// for REGISTER, INVITE and SUBSCRIBE"
The Contact header is set for all subsequent Request in a Dialog.
- <b>SipRefreshHelper</b>
- corrected typos "relalated", "refrence"
- <b>AnnexA</b>
- corrected typos "behaviour", "not not"
- <b>AnnexB</b>
- corrected typos "othe risde", "othe rside"
</pre>
<h2>Changes from version 0.9</h2>
<pre>
- <b>SipConnection</b>
- Added following section:
Identification of the SIP API
-----------------------------
To enable applications to test for the presence of the SIP API
and its version during runtime, a system property is defined.
Platforms where this API is implemented according to this
specification shall include a system property with a key
"microedition.sip.version".When System.getProperty is called
with this key, implementations conforming to this specification
shall return the version string "1.0".
- <b>SipRefreshHelper</b>
- In update(...) method contact-parameter rephrased:
"new Contact headers as String array. Replaces all old values.
Multiple Contact header values are applicable only for REGISTER
method. If the contact parameter is null or empty the system will
set the Contact header."
</pre>
<h2>Changes from version 0.8</h2>
<pre>
- <b>SipRefreshHelper</b>
- "insure" -> "ensure"
- <b>SipRefreshListener</b>
- Rephrased refreshEvent(...)
"Called when a refresh task is successfully started, refreshed, cancelled or failed."
- <b>SipDialog</b>
- Corrected state chart text:
<tt>SipDialog</tt> has following states (for both client and server side):
- <em>early (and created)</em>, provisional 101-199 response received (or sent)</li>
Method <code>getNewClientConnection()</code> can not be called in this state.
- <em>confirmed</em>, final 2xx response received (or sent)</li>
All methods available.
- <em>terminated</em>, no response or error response (3xx-6xx) received (or sent).
Also if the dialog is terminated with BYE or un-SUBSCRIBE.</li>
Method <code>getNewClientConnection()</code> can not be called in this state.
- Corrected typo "The dialog is terminated when when..."
- <b>SipAddress</b>
- setPort(int) added text:
"Valid range is 0-65535, where 0 means that the port number is
removed from the address URI."
- getPort() moved the text:
"If the port is not explicitly set (to 5060 or other value)
it will be omitted from the address URI in returned String."
to toString() method description.
- getUser() returns:
"user part of SIP address. Returns null if the user part is missing."
- setDisplayName(...) added text:
"Empty string "" removes the display name."
- setURI(String URI) added text:
"Possible URI parameters are ignored."
</pre>
<h2>Changes from version 0.7</h2>
<pre>
- overall spelling/lang.syntax corrections
- <b>SipConnection</b>
- SIP Identity chapter clarified
- send() "Send must also close the <tt>OutputStream</tt> if it
was opened."
- <b>SipClientConnection</b>
- initRequest()
added "The methods are defined in the RFC 3261 [1] and extensional
specifications from SIP WG and SIMPLE WG [2][3]."
- <b>SipDialog</b>
- code example: added else{}-block to "if(resp) {..."
- <b>SipRefreshHelper</b>
- rephrased: "The handling of such binding would significantly
increase application complexity and size."
- <b>Annex A</b>
- spelling corrected
</pre>
<h2>Changes from version 0.6</h2>
<pre>
- <b>Overview</b>
- Class Diagram redrawn and fixed
- Example codes updated
- <b>SipConnection</b>
- getDialog() rephrase "Returns the current SIP dialog.
This is available when the SipConnection belongs to a created
SipDialog and the system has received (or sent) provisional
(101-199) or final response (200)."
- openContentInputStream()
- removed InterruptedIOException
- rephrase "IOException if the InputStream can not
be opened, because of an I/O error occured."
- openContentOutputStream()
- removed InterruptedIOException
- rephrase "IOException if the InputStream can not
be opened, because of an I/O error occured."
- added sentence "Again send() must not be called after
closing the OutputStream, since it will throw Exception
because of calling the method in wrong state."
- added "SipConnectionNotifier scn =
(SipConnectionNotifier) Connector.open("sips:5080");"
as an example of opening server connection with sips-scheme.
- SIP identity chapter moved here (and revised) from AnnexA.
- <b>SipClientConnection</b>
- state diagram redrawn
- new state <em>Unauthorized</em> for setCredentials()
- updated method access list
- setListener() moved to "Can be called in every state" access group
- initCancel()
- rephrase "INVALID_STATE if the request can not be set, because
of wrong state (in SipClientConnection) or the system has
already got the 200 OK response (even if not read with
receive() method)."
- initRequest(String method, SipConnectionNotifier scn)
- new parameter SipConnectionNotifier to enable
request association to the notifier. This is needed
to set e.g. From and Contact headers correctly.
- added to Exceptions "ACK and CANCEL methods can not be
initialized in Created state."
- added Contact to pre-set headers. Set by the system for
REGISTER, INVITE and SUBSCRIBE. Contact set if
if SipConnectionNotifier is given
- From se according to the terminal SIP settings if identity
sharing is used.
If SIP identity is not used From must be set to some
default value e.g. anonymous URI.
- initAck()
- spec rewritten to the 2xx case
- error responses 3xx-6xx are ACKnowledged by the system
- setCredentials(String username, String password, String realm)
- realm-parameter added
- user can set multiple credential triplets (user, passwd, realm)
where realm (protection domain) differs.
- can be set in <em>Initialized</em> or <em>Unauthorized</em> state
- <b>SipServerConnection</b>
- state diagram redrawn
- initResponse(int code)
- added "Furthermore, if the system has automatically sent the
"100 Trying" response, the 100 response initialized and
sent by the user is just ignored."
- <b>SipConnectionNotifier</b>
- added "SipConnectionNotifier can be also opened with sips: scheme,
which indicates that this server connection accepts only requests
over secure transport (as defined by RFC 3261 [1] for SIPS URIs)"
- <b>SipDialog</b>
- state diagram redrawn
- changed getNewClientConnection() to
getNewClientConnection(String method)
throws IllegalArgumentException, SipException;
-> more straightforward to use
- added what headers are at least set when calling
getNewClientConnection(String method)
- example code updated
- <b>SipClientConnectionListener</b>
- only @see SipClientConnection
- <b>SipRefreshHelper</b>
- emphasize that refresh ID returned from enableRefresh() has to be
used in the stop() and update() methods.
- update() "If no content is set the message will be sent
automatically and the method returns null."
- update() define more specificly method parameters
- example code updated
- <b>SipRefreshListener</b>
- refreshEvent(...) clarified parameter explanations
- example code updated
- <b>SipException</b>
- removed unused PARSE_ERROR, renumbered error codes
- <b>Annex A</b>
- revised PushRegistry parameters
- SIP identity discussion moved to the SipConnection spec
- <b>Annex B</b>
- example codes updated
</pre>
<h2>Changes from version 0.51</h2>
<pre>
- updated copyright terms in Overview and PDF document
- small editorial changes on layouts
- <b>SipClientConnection</b>
- removed unnecessary sc.send() method and updated
usage of receive() method in code examples
- added returns statement for: boolean receive(long timeout)
- generalized setCredentials() text, removed word HTTP
- <b>SipDialog</b>
- Corrected text "...at earliest after provisional 101-199 response..."
- added returns statement for: byte getState();
- <b>SipHeader SipAddress</b>
- added returns statement for: getName(), getHost(), getScheme(), toString()
</pre>
<h2>Changes from version 0.5</h2>
<pre>
- <b>SipClientConnection</b>
- replace methods setRefresh(boolean) and getRefreshID()
with
int enableRefresh(SipRefreshListener srl)
- <b>SipRefreshHelper</b>
- removed methods getAll(), stopAll(), addRefreshListener(),
removeRefreshListener()
- updated code example, including REGISTER refresh with
one update(...) and stop(...)
- <b>SipDialog</b>
- removed methods getLocalTag(), getRemoteTag(), getCallID()
- removed method close()
- added code example about SUBSCRIBE-NOTIFY with SipDialog
- <b>SipHeader</b>
- added special parsing support for headers
WWW-Authenticate, Proxy-Authenticate,
Proxy-Authorization, Authorization
- syntax is:
auth-header-name: auth-scheme LWS auth-param *(COMMA auth-param)
- toString() will return the header value in the same format
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -