⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes.html

📁 sipapi 说明文档.用于JAVA的SIP开发及应用.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
          in the case of auth-headers:
                 WWW-Authenticate: Digest realm="atlanta.com", 
                 domain="sip:boxesbybob.com", qop="auth", 
                 nonce="f84f1cec41e6cbe5aea9c8e88d359", opaque="", 
                 stale=FALSE, algorithm=MD5 	  
        - getValue() will return only the auth-scheme without parameters.
          In the previous example it will return only "Digest"
        - getHeaderValue() returns full header value like before e.g.
                 Digest realm="atlanta.com", 
                 domain="sip:boxesbybob.com", qop="auth", 
                 nonce="f84f1cec41e6cbe5aea9c8e88d359", opaque="", 
                 stale=FALSE, algorithm=MD5
        - auth-params are accessible with normal get/set/removeParameters()

- <b>Annex A</b>
        - further clarified permission issues
	- Connector.open("sip:5070;application=x-game");
	    - MIDlet gets only requests to the port 5070 which are tagged 
              with application = x-game. Other requests will be discarded 
              by the system.
</pre>
<h2>Changes from version 0.4</h2>
<pre>

- <b>SipConnection</b> 
        - corrected text:
          "UNKNOWN_TYPE Content-Type header not set."
        - Exception clarifications
          send()
            IOException: (e.g. port reserved) removed.
            SipException: INVALID_STATE instead of MESSAGE_NOT_INITIALIZED
          setHeader(), addHeader(), removeHeader()
            SipException: "API" reword to "system", 
	                  MESSAGE_NOT_INITIALIZED removed, enough to
                          check the state.
          openContentInputStream(), openContentOutputStream()
            SipException: INVALID_STATE instead of MESSAGE_NOT_INITIALIZED
        - simplify all get-methods to return null
            if the information is not available
            remove all Exceptions thrown.
        - change: public void removeHeader(String name) throws SipException;
          removed return value String being not very useful here

- <b>SipClientConnection</b>
        - removed text from setRequestURI()
            "MESSAGE_NOT_INITIALIZED if no message has been initialized or received."
        - add getHeader() to state lists
        - receive() signature changed to
            public boolean receive(long timeout)
                    throws SipException, java.io.IOException
            - throw SipException(INVALID_STATE) in wrong state
            - throw IOException in case of another IOException
            - returns boolean to indicate if response was really received
            reasoning:
            - should not throw Exception if user gives timeout and that time is elapsed
            - using InterruptedIOException and SipException(NO_RESPONSE)
              was not unambiguous
        - setListener() throws IOException if connection is closed otherwise successful
        - setRefresh() throws INVALID_STATE if called in wrong state
        - setCredentials() throws INVALID_STATE if called in wrong state
        - clarified method access list in each state

- <b>SipConnectionNotifier</b>
        - Removed SipException NOT_AVAILABLE from
             getLocalAddress() and getLocalPort()
          returns null or 0 respectively if the information is not available.
        - setListener() throws IOException if connection is closed otherwise successful

- <b>SipServerConnection</b>
        - "MESSAGE_NOT_INITIALIZED" removed from both
           initResponse() setReasonPhrase()
           not used because this can be handled with INVALID_STATE
        - added getHeader() to state lists
        - added send() to Initialized state
        - clarified method access list in each state

- <b>SipHeader</b>
        - removeParameter() if parameter found in this header
        - set/getParameter() clarifications
        - SipHeader parses every header with generic parser
        - parser syntax BNF added:

        header         =  header-name ":" header-value *(";" generic-param)
        header-name    =  token
        generic-param  =  token [ EQUAL gen-value ]
        gen-value      =  token / host / quoted-string
        header-value   =  1*(chars) / name-addr
        chars          =  %x20-3A / "=" / %x3F-7E     
                          ; any visible character except ";" "<" ">"

- <b>SipAddress</b>
       - does not escape address
       - "host name" term changed to "host part"
       - "user name" term changed to "user part"
       - get/setURI() accesses URI part without parameters
       - ignores headers part of SIP-URI
       - clarified getPort() comment
       - getParameterNames() returns String array, return
         null if the address does not have ny parameters.
       - accept schemes =  ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
       - removed constructor
       public SipAddress(String displayName, String user, String host, 
                         String port)

- <b>SipException</b>
       - Changed to extend SipException from IOException
           this allows calling send() from OutputStream.close()
       - INVALID_STATE
         "Method call not allowed, because of illegal state"
             -> "...of wrong state..."
       - removed unuseful errors 
         NO_RESPONSE, MESSAGE_NOT_INITIALIZED and NOT_AVAILABLE

- <b>SipRefreshHelper</b>
       - updated SipRefreshHelper text

- <b>SipDialog</b>
       - added more explanations
       - getNewClientConnection() throws SipException(INVALID_STATE)
           if called illegal dialog state.
       - getDialogID(), getCallID() returns null if dialog terminated.
       - isSameDialog(SipConnection) returns "false" if dialog is terminated
       - removed COMPLETED state
<br>
</pre>

<h2>Changes from version 0.3</h2>
<pre>
- JCP (2.1) version added package.html
- Class Diagram updated; package.html
- Removed garbage from Notation table; package.html
- use "application" instead of "MIDlet" SipClientConnection
- setCredentials() NullPointerException
- rephrased acceptAndOpen() definition in SipConnectionNotifier
- Fixed SipConnectionNotifier example code
- SipServerConnection getRequestURI added to "Request Received" state
- getDialog added to SipServerConnection method access list
- get/setScheme() added in SipAddress
- get/setUser() renamed in SipAddress
- public String getHeader(String name) added in SipClientConnection
	example codes aligned to this new method
- SipExceptions: More comments, some references to methods added
- OTHER_ERROR -> GENERAL_ERROR
- NOT_ALLOWED split to INVALID_STATE and INVALID_OPERATION
- UNKOWN_CONTENT_TYPE/LENGTH generalized to UNKNOWN_TYPE/LENGTH
- DIALOG_NOT_INITIALIZED generalized to DIALOG_UNAVAILABLE
- CAN_NOT_OPEN_NEW_TRANSACTION generalized to TRANSACTION_UNAVAILABLE
- fixed SipHeader.setValue() example String comment refined
- Fixed generating javadoc using only CLDC core classes
</pre>

<h2>Changes from version 0.2</h2>
<pre>
- added reading MESSAGE content with InputStream in server connection example package.html
- corrected RFC3261 number in references package.html
- // handle other responses , in sendTextMessage() example package.html
- RefreshHelper -> SipRefreshHelper
- RefreshListener -> SipRefreshListener
- SipClientConnection state diagram fixed
- SipClientConnection.initCancel() only in Proceeding state
- more explanation in SipClientConnection.initRequest()
- throw SipException if initCancel() not allowed because of state or
	other not applicable to current method. Corrected doc text. 
- SipClientConnection.setListener() input parametr sccl documented
- getRefreshID() and setRefresh() corrected comments
- setCredentials() IllegalArgumentException text changed
- slightly clarified setHeader() commnet text. Header access discussion ongoing.
- clarified getRequestURI() text
- openContentInput/OutputStream "implementation..." sentence removed.
- SipDialog updated, equals() removed, can be compared with DialogIDs
- openContentInputStream() comment clarified. Added notes about 
	Content-Length and Content-Type
- added MESSAGE content reading in SipServerConnection example code
- initResponse() IllegalArgumentException valid status code range specified
- SipRefreshHelper explanation clarified
	- code example fixed
- SipRefreshHelper cancel() cancelAll() methods renamed. update() method
	changed to return OutputStream to fill the content.
	- comments updated
- "boolean parameter" -> "parameter without value" SipAddress, SipHeader
- SipAddress.getPort() specified
- SipAddress.setParameter()  IllegalArgumentException RFC reference
- SipAddress.getParameterNames() return String[]
- SipHeader.setValue() IllegalArgumentException more explaned
- SipException.NOT_ALLOWED explained
- INVALID_CONTENT_LENGTH removed IllegalArgumentException instead if needed
- INVALID_CONTENT_TYPE removed IllegalArgumentException instead if needed
- UNKNOWN_CONTENT_LENGTH explained
- UNKNOWN_CONTENT_TYPE added
- CAN_NOT_OPEN_NEW_TRANSACTION added to Connector.open() see SipConnection
 	and in SipConnectionNotifier
- sips:alice@company.com:5060;transport=udp fixed
- SipServerConnectionListener
	notifyRequest(SipConnectionNotifier scn)
- Added InterruptedIOException, IOException to SipClientConnection
- added IllegalArgumentException, SipException MESSAGE_NOT_INITIALIZED in 
	SipServerConnection.initResponse()
</pre>

<h2>Changes from version 0.1</h2>

<pre>
	- changed package name to javax.microedition.sip

Package description added
	- Preface
	- Overview
	- How to use the SIP API for J2ME
	- SIP (Session Initiation Protocol) Overview
	- Glossary, Notation, References

Connector
	- Connector.open() functionality with "sip" and "sips" 
	  URLs specified in SipConnection

SipConnection
	- setHeader(), addHeader(), removeHeader() semantics updated
	- getHeaders() return value specified
	- "Content-Length" MUST be set before calling open getContentOutputStream
	- send() semantics specified
	- OutputStream.close() actually informs the stack to send the message 
	- added Exceptions
	- getMethod() valid for both response and request

SipClientConnection
	- description rewritten
	- state chart and method access list added
	- example code
	- only single listener in response notification interface
	- header initialization and functionality defined in methods:					initRequest()
		initAck()
		initCancel() // returns  now SipClientConnection

SipConnectionNotifier
	- description rewritten
	- accept() changed to acceptAndOpen()
	- only single listener in request notification interface
	- added Exceptions
	- example code

SipServerConnection
	- description rewritten
	- state chart and method access list added
	- added Exceptions
	- example code
	- header initialization and functionality defined in method
		initResponse()

SipDialog
	- added getLocalTag getRemoteTag getCallID

RefreshHelper
	- updated comments and example code

RefreshListener
	- one method callback refreshEvent(...)

SipAddress
	- get/setDisplayName() added
	- added IllegalArgumentExceptions
	- getParameter() specified

SipHeader
	- getHeaderValue() added (differs from getValue() and toString())
	- Exceptions added
	- getParameter() specified

SipException
	- first list of SIP error codes
	- throws SipException added to some methods
</pre>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -