RELEASE NOTES Version 0.3-pre4 Nov 13th, 2005 ==================================== PJLIB - Correct error reporting in the whole library. No more vague -1 errors! - New super portable socket abstraction. - Other headers were made super portable too. - Ioqueue supports multiple pending operations in a single socket! - No more floating point. - Ported to new platforms: - i386/linux kernel (!) - Sparc/Solaris - Alpha/Linux PJSIP - Correct error reporting in the whole library. No more -1 errors! - Rewrote event, now much more readable. - Per object tracing. Version 0.2.9 - 2005/06/19 ==================================== Core: - Moved authentication stuff to core. SIMPLE: - Initial implementation of Event framework (SUBSCRIBE/NOTIFY) - Initial implementation of Presence - Tidying up here and there. Version 0.2.8.5 - 2005/06/05 ==================================== Core: - Tidying up sip_msg.h (no need to export clone/shallow_clone/print API for headers). - Endpoint now can respond with 501/Not Supported if incoming request is not handled by any modules. - Endpoint also supports Allow header now. - Changed transport names to capital letters (thanks ...) - Fixed bug with locking in select() ioqueue. - Add status phrase for >= 700 status codes. pjsua: - Verify URL in arguments to prevent crash. - Can read commands from config file. - Now has buddy list and can send IM! SIMPLE: - Instant Messaging support! MEDIA: - CLOSING SEQUENCE IS NOT PROPER!!! SOMETIMES THREAD IS DEADLOCKED, OR DSOUND IS NOT CLOSED PROPERLY!!! Version 0.2.8 - 2005/05/28 ==================================== - Simple STUN client support SIP UDP port and media RTP/RTCP ports are now STUN aware. - Major changed in I/O queue, now callback is used. Callback is better because multiple libraries can register to single I/O queue. It was not possible with previous implementation, because the function which does polling needs to understand what to do when a key is signalled. The changes was initially needed to support STUN, but then the STUN client implementation uses the simpler select() (in stun_client.c). - Merge SDP library into PJMEDIA (no more PJSDP). PJSDP only has couple of files (sdp.[hc]), not worth maintaining a library. - Fixed bug in select() I/O queue (not thread safe). Version 0.2.7 - 2005/05/14 ==================================== PJLIB: - Major reorganization in pool, introducing pool factory and policy. All libraries now can be completely agnostic about memory management choosen by application. - Fixed bug in GUID generation on mingw - Fixed bug in scanner if ASCII > 127 is fed into the input - More doxygen documentation PJMEDIA: - Renamed some functions/structs/etc. UA library: - Registration client completed (including authentication). - Fixed a crash condition when tsx has not received any response. PJSUA: - Use getopt.c Version 0.2.6 - 2005/04/17 ==================================== All: - tidying up header files. Core library: - Removed PJSIP_HAS_DUMP macro (now automatically calculated based on log level) - Added pjsip_tx_data_invalidate_msg() UA library: - big modification in dialog API to better support injecting custom header in outgoing message and to make it more flexible for future features (such as caching the outgoing message): - sending messages is now done in two steps: (1)create the msg transmit buffer (pjsip_dlg_tx_data), (2)send the msg transmit buffer. - dialog state won't change in step (1); it will change only when the message is actually sent in step (2). What won't change: - the dialog state - outgoing CSeq - outgoing message transmit buffer (pjsip_dlg_tx_data) will be deleted when sent in step (2). Application MAY save request messages for future transmission, even after the request has been sent. To do so, it must increment the reference counter and remember that each time the request is sent, the reference counter will be decremented. Also application CAN NOT re-send the message while the transaction that sends the message has not terminated. - changed API names: pjsip_dlg_answer_invitation() --> pjsip_dlg_answer(), etc. - initial sip_reg.h for SIP registration. Auth library: - the digest authentication should work, however it has not been tested with any SIP servers because we don't have REGISTER support yet. *Note*: authentication in pjsua still uses hardcoded user/pass: hello/world. Version 0.2.5.2 - 2005/03/25 ==================================== UA library: - Major modification in dialog callbacks, now high level callbacks such as on_calling(), on_incoming(), on_provisional(), on_established(), and on_disconnected() are provided instead of just one callback (on_event()). - Added pjsip_dlg_disconnect() which should handle all cases of disconnection such as sending CANCEL, sending BYE, or sending final response to INVITE. - Added and updated doxygen comments. - Changed: pjsip_dialog_xxx --> pjsip_dlg_xxx New: - PJSIP Auth library, which supports digest scheme. - Only client functionality is present at the moment. PJSUA: - Remove callgen feature, as it makes the application complicated. Will move it to different application, to make way for more sophisticated call generator. - Support the new callback framework. - Support the new digest authentication (UAC only). SIP core: - Added PJSIP_EVENT_BEFORE_TX, triggered by transaction before sending outgoing message (including retransmission). Application can use this event (via dialog callback) to modify the message before transmission (such as adding authorization headers). - Added general purpose function to print text body. - Move constant strings in parser to public/extern, just in case other part of the library need to use them. PJMEDIA: - Protect against NULL in destroy session. Misc: - Rename build output directory x_Win32_x --> x_vc7_x or x_vc6_x, also library naming includes _vc7_ or _vc6_ now. - Renamed pjsip_test_core --> pjsip_core_test. - Renamed pjaudio_tool --> pjmedia_audio_tool. - Renamed sdp_test --> pjsdp_test - PJLIB test: added second pool test after new/malloc test. - Renamed README.txt --> INSTALL.txt