diff --git a/TODO b/TODO index 99d2d310..bf3e4e0f 100644 --- a/TODO +++ b/TODO @@ -1,132 +1,133 @@ Python PJSIP bindings --------------------- - Handle UPDATE for re-INVITE - High level Invitation class that handles SDP as well - Cleanup Registration, Publication and Subscription to behave more like Invitation - Means to query RTP statistics - Handle sending and received of multipart bodies for Invitation - Fix high CPU usage - Properly decrease reference counts of pjsip_tx_data structs - Split up .pyx file - Use STUN to determine and log the type of NAT we are behind (PJNATH_NAT_DETECT) - Add option to use the STUN response for Contact header (default false) - Fix remainig TODOs for PUBLISH/REGISTER - Make all init_options passed to PJSIPUA attributes, set local_ip at runtime - Add feature to send OPTIONS method and parse the replies - Add ability for application to request handling of arbitrary methods such as OPTIONS, REGISTER and REFER, SUBSCRIBE (but not INVITE or NOTIFY...) and have it reply. - Registration requestion URI should be settable by application - Remove any DNS or lookups from pjsip (lookup is always done outside PJSIP) - Write API documentation Audio ----- +- Add option and command to mute the microphone (useful for listen in conferences) - Play a soft beep tone while on hold every 30 seconds - Play a beep after we closed a session - Play a special beep when receiving a call while engaged in another call - Implement Automatic Gain Control in PJSIP media engine - zRTP Command line clients -------------------- Logging, based on trace_x configuration options: - Append PJSIP messages to .sipclient/log/user@domain/pjsip_trace.txt - Append MSRP messages to .sipclient/log/user@domain/msrp_trace.txt - Append XCAP messages to .sipclient/log/user@domain/xcap_trace.txt - Add timestamp and packet counters as for SIP trace for all other prorocols - Toggle sip logging at run time - Add key command to start a session when starting in receiving mode (c) - Create sip_subscribe_conference_info script - xcap_pidf_manipulation script - Publish service and status when starting/stopping rtp/msrp session script - Set the shell return code to 0 (success) for 2XX, 3XX and 1 (failure) for other codes. For invite scripts the code is based on the response for the initial INVITE, not for the BYE If RTP was not received with 6 seconds after call setup, consider the call has failed. - Add parameter to hangup after a number of seconds for sip_audio_session - Handle multiple incomming sessions (waiting for the re-INVITE) - Conference established sessions - Handle 301/302 redirect by prompting the user to accept/reject the redirection - Combine msrp/rtp in one script Applications ------------ - MSRP focus - MSRP mixer - Conference-info event package - MSRP multiparty chat - Is-composing payload - Lookup capabilities for SIP (RFC3263) - Message-summary payload - xcap-diff payload - Buddylist library - Bonjour discovery - Lookup for ENUM - Write documentation Sessions -------- - Comfort noise generator - Video (H.264) - Real time text over RTP (RFC4103) - Desktop sharing (VNC protocol) - Bit pipe over MSRP End-user experience ------------------- - Mute other applications that access the soundcard on receiving INVITE Enrollment ---------- - End-point certificate generator - Account creation - UA-profile XCAP application Middleware ---------- - rename lookup_srv to rename_rfc3263, add NAPTR lookup to it and pass a list of supported transports by the SIP library to select from (default is udp). - Configuration framework based on ua-profile event package - Event bus - Environment detection: ambient and geo-location detection User interfaces --------------- - Stand alone library - Command line clients - GUI Packaging --------- - MacOSX installer - Windows installer Others ------ - Add doc strings to all classes and functions - IPv6 support - Survive local IP address changes - P2PSIP overlay