1. What specifically is the proposal that we are reviewing? Integration of Session Initiation Protocol (SIP) library. - What is the technical content of the project? Refer to the design document. - Is this a new product, or a change to a pre-existing one? If it is a change, would you consider it a "major", "minor", or "micro" change? See the Release Taxonomy in: It is a change to an existing product - Solaris. Release Taxonomy - patch/micro - If your project is an evolution of a previous project, what changed from one version to another? N/A. Note that the project was reviewed earlier as PSARC/2005/451, details are in Question 3 below. - What is the motivation for it, in general as well as specific terms? (Note that not everyone on the ARC will be an expert in the area.) Solaris doesn't provide a native SIP (Session Initiation Protocol) stack. This means that a SIP application developer needs to either use an OpenSource SIP stack that runs on Solaris or purchase a 3rd party SIP stack that runs on Solaris and use the provided API to develop applications. Alternatively, the developer would need to write a SIP stack and embed it in the product itself. Customers are reluctant to use OpenSource stacks for their products. Providing a native SIP stack on Solaris will make Solaris a very attractive platform for VoIP and related application developers. - What are the expected benefits for Sun? SIP is used for setting up/terminating sessions for multimedia applications such as VoIP and IM (Instant Messaging). The market for these applications is huge. Sun hardware is already preferred by Telcos, providing a native SIP stack on Solaris will also make Solaris the preferred platform for SIP application developers. We have been talking to customers and telco groups within Sun (like Global Telco Industry Sales), and support for SIP on Solaris is important. - By what criteria will you judge its success? Delivery of SIP stack that supports RFC 3261, RFC 3262, RFC 3323 and RFC 3325 and accompanying API. 2. Describe how your project changes the user experience, upon installation and during normal operation. N/A 3. What is its plan? - What is its current status? Has a design review been done? Are there multiple delivery phases? Currently development is complete. Design review has also been done. We have made the SIP library available via OpenSolaris since Dec 2005. The binary and source for the library are available via OpenSolaris. We have customers using this library and others planning to use this in their product. We have a Sun Customer in India, Reliance Infocomm, who is already developing a product (Application Server) using Solaris SIP. This particular case is an update to PSARC/2005/451. PSARC/2005/451 was reviewed (inception and commitment) on the 12/21/2005 for the download software on OpenSolaris. PSARC/2006/402 updates the interface stability level from unstable to committed. The main reason for PSARC/2005/451 was to provide the API to SIP developers and get feedback on the same, now we have the required input from customers. Going forwards, there will be future projects to enhance the library to include SIP extensions etc. SDP parser and adding call tracing and logging are some of the future work items. 4. Are there related projects in Sun? - If so, what is the proposal's relationship to their work? Which not-yet- delivered Sun (or non-Sun) projects (libraries, hardware, etc.) does this project depend upon? What other projects, if any, depend on this one? LSARC/2006/182 plans to integrate Ekiga, an open source VoIP and video conferencing application into Solaris. Ekiga uses OPAL library which has H.323 and SIP support. We are in discussion with the Ekiga team (and through them with the community). The community is willing to use Solaris SIP in Ekiga if it runs on Solaris, Linux and Windows. Solaris SIP works on Fedora Core 5 (and should not need much work to run on other flavors of Linux), we are investigating porting efforts on Windows. - Are you updating, copying or changing functional areas maintained by other groups? How are you coordinating and communicating with them? Do they "approve" of what you propose? If not, please explain the areas of disagreement. No. 5. How is the project delivered into the system? - Identify packages, directories, libraries, databases, etc. The library - libsip.so.1 and libsip.so - will be delivered by SUNWcsl in /usr/lib (64-bit in /usr/lib/sparcv9 for SPARC and /usr/lib/amd64 for AMD). The header file - sip.h - will be delivered into /usr/include by SUNWhea. Man pages will be delivered by SUNWman in /usr/share/man/ma3lib. 6. Describe the project's hardware platform dependencies. N/A 7. System administration N/A 8. Reliability, Availability, Serviceability (RAS) N/A 9. Observability N/A 10. What are the security implications of this project? None. The library does use MD5 internally to generate hash values for indexing transactions and dialogs and also to generate transaction and dialog ids. The application is responsible for providing the connection manager that includes transport functionalities. Thus, the application handles connection establishment, maintenance etc. In case of a TLS connection, the application creates a SIP message using SIPS URL instead of a SIP URI, so the library is not involved. 11. What is its UNIX operational environment: - Which Solaris release(s) does it run on? Solaris Nevada / Solaris 10 Update. - Environment variables? Exit status? Signals issued? Signals caught? (See signal(3HEAD).) None. - Device drivers directly used (e.g. /dev/audio)? .rc/defaults or other resource/configuration files or databases? None. - Does it use any "hidden" (filename begins with ".") or temp files? No. - Does it use any locking files? No. - Command line or calling syntax: What options are supported? (please include man pages if available) Does it conform to getopt() parsing requirements? N/A - Is there support for standard forms, e.g. "-display" for X programs? Are these propagated to sub-environments? N/A - What shared libraries does it use? (Hint: if you have code use "ldd" and "dump -Lv")? # ldd libsip.so.1 libmd5.so.1 => /lib/libmd5.so.1 libc.so.1 => /lib/libc.so.1 libpthread.so.1 => /lib/libpthread.so.1 libmd.so.1 => /lib/libmd.so.1 /platform/SUNW,Ultra-60/lib/libmd_psr.so.1 libm.so.2 => /lib/libm.so.2 /platform/SUNW,Ultra-60/lib/libc_psr.so.1 # /usr/ccs/bin/dump -Lv libsip.so.1 libsip.so.1: **** DYNAMIC SECTION INFORMATION **** .dynamic: [INDEX] Tag Value [1] NEEDED libmd5.so.1 [2] NEEDED libc.so.1 [3] NEEDED libpthread.so.1 [4] INIT 0x1e580 [5] FINI 0x1e58c [6] SONAME libsip.so.1 [7] HASH 0x94 [8] STRTAB 0x1af4 [9] STRSZ 0x142a [10] SYMTAB 0x964 [11] SYMENT 0x10 [12] CHECKSUM 0xc36c [13] VERDEF 0x2f60 [14] VERDEFNUM 0x2 [15] VERNEED 0x2f20 [16] VERNEEDNUM 0x2 [17] RELACOUNT 0x2cf [18] PLTSZ 0x3d8 [19] PLTREL 0x7 [20] JMPREL 0x538c [21] RELA 0x31cc [22] RELASZ 0x2598 [23] RELAENT 0xc [24] FEATURE_1 PARINIT [25] FLAGS 0 [26] FLAGS_1 0 [27] PLTGOT 0x3286c - Identify and justify the requirement for any static libraries. N/A - Does it depend on kernel features not provided in your packages and not in the default kernel (e.g. Berkeley compatibility package, /usr/ccs, /usr/ucblib, optional kernel loadable modules)? No. - Is your project 64-bit clean/ready? If not, are there any architectural reasons why it would not work in a 64-bit environment? Does it interoperate with 64-bit versions? Yes. - Does the project depend on particular versions of supporting software (especially Java virtual machines)? If so, do you deliver a private copy? What happens if a conflicting or incompatible version is already or subsequently installed on the system? N/A - Is the project internationalized and localized? N/A. - Is the project compatible with IPV6 interfaces and addresses? Yes. 12. What is its window/desktop operational environment? N/A - Is it ICCCM compliant (ICCCM is the standard protocol for interacting with window managers)? N/A - X properties: Which ones does it depend on? Which ones does it export, and what are their types? N/A - Describe your project's support for User Interface facilities including Help, Undo, Cut/Paste, Drag and Drop, Props, Find, Stop? N/A. - How do you respond to property change notification and ICCCM client messages (e.g. Do you respond to "save workspace")? N/A - Which window-system toolkit/desktop does your project depend on? N/A - Can it execute remotely? Is the user aware that the tool is executing remotely? Does it matter? No. - Which X extensions does it use (e.g. SHM, DGA, Multi-Buffering? (Hint: use "xdpyinfo") N/A - How does it use colormap entries? Can you share them? N/A - Does it handle 24-bit operation? N/A. 13. What interfaces does your project import and export? - Please provide a table of imported and exported interfaces, including stability levels. Pay close attention to the classification of these interfaces in the Interface Taxonomy -- e.g., "Standard," "Stable," and "Evolving;" see: http://sac.sfbay/cgi-bin/bp.cgi?NAME=interface_taxonomy.bp Use the following format: Interfaces Imported Interface Classification Comments Interfaces Exported Interface Classification Comments SIP_SEND_STATEFUL Committed SIP_DIALOG_ON_FORK Committed SIP_CRLF Committed SIP_SKIP_CRLF Committed SIP_VERSION Committed SIP Committed SIP_TO Committed SIP_FROM Committed SIP_FROM_COM Committed SIP_TAG Committed SIP_CONTENT_LENGTH Committed SIP_CONTENT_TYPE Committed SIP_CALL_ID Committed SIP_CSEQ Committed SIP_MAX_FORWARDS Committed SIP_CONTACT Committed SIP_VIA Committed SIP_RECORD_ROUTE Committed SIP_ROUTE Committed SIP_ACCEPT Committed SIP_ACCEPT_ENCODE Committed SIP_ACCEPT_LANG Committed SIP_ALERT_INFO Committed SIP_ALLOW Committed SIP_CALL_INFO Committed SIP_CONTENT_DIS Committed SIP_CONTENT_ENCODE Committed SIP_CONTENT_LANG Committed SIP_DATE Committed SIP_ERROR_INFO Committed SIP_EXPIRE Committed SIP_IN_REPLY_TO Committed SIP_MIN_EXPIRE Committed SIP_MIME_VERSION Committed SIP_ORGANIZATION Committed SIP_PRIORITY Committed SIP_REQUIRE Committed SIP_REPLYTO Committed SIP_RETRY_AFTER Committed SIP_SERVER Committed SIP_SUBJECT Committed SIP_SUPPORT Committed SIP_TIMESTAMP Committed SIP_UNSUPPORT Committed SIP_USER_AGENT Committed SIP_WARNING Committed SIP_ALLOW_EVENTS Committed SIP_EVENT Committed SIP_SUBSCRIPTION_STATE Committed SIP_WWW_AUTHEN Committed SIP_AUTHOR Committed SIP_AUTHEN_INFO Committed SIP_PROXY_AUTHOR Committed SIP_PROXY_AUTHEN Committed SIP_PROXY_REQ Committed SIP_PASSERTEDID Committed SIP_PPREFERREDID Committed SIP_PRIVACY Committed SIP_RACK Committed SIP_RSEQ Committed SIP_TRYING Committed SIP_RINGING Committed SIP_CALL_IS_BEING_FORWARDED Committed SIP_QUEUED Committed SIP_SESSION_PROGRESS Committed SIP_OK Committed SIP_ACCEPTED Committed SIP_MULTIPLE_CHOICES Committed SIP_MOVED_PERMANENTLY Committed SIP_MOVED_TEMPORARILY Committed SIP_USE_PROXY Committed SIP_ALTERNATIVE_SERVICE Committed SIP_BAD_REQUEST Committed SIP_UNAUTHORIZED Committed SIP_PAYMENT_REQUIRED Committed SIP_FORBIDDEN Committed SIP_NOT_FOUND Committed SIP_METHOD_NOT_ALLOWED Committed SIP_NOT_ACCEPTABLE Committed SIP_PROXY_AUTH_REQUIRED Committed SIP_REQUEST_TIMEOUT Committed SIP_GONE Committed SIP_REQUEST_ENTITY_2_LARGE Committed SIP_REQUEST_URI_2_LONG Committed SIP_UNSUPPORTED_MEDIA_TYPE Committed SIP_UNSUPPORTED_URI_SCHEME Committed SIP_BAD_EXTENSION Committed SIP_EXTENSION_REQUIRED Committed SIP_INTERVAL_2_BRIEF Committed SIP_TEMPORARILY_UNAVAIL Committed SIP_CALL_NON_EXISTANT Committed SIP_LOOP_DETECTED Committed SIP_TOO_MANY_HOOPS Committed SIP_ADDRESS_INCOMPLETE Committed SIP_AMBIGUOUS Committed SIP_BUSY_HERE Committed SIP_REQUEST_TERMINATED Committed SIP_NOT_ACCEPTABLE_HERE Committed SIP_BAD_EVENT Committed SIP_REQUEST_PENDING Committed SIP_UNDECIPHERABLE Committed SIP_SERVER_INTERNAL_ERROR Committed SIP_NOT_IMPLEMENTED Committed SIP_BAD_GATEWAY Committed SIP_SERVICE_UNAVAILABLE Committed SIP_SERVER_TIMEOUT Committed SIP_VERSION_NOT_SUPPORTED Committed SIP_MESSAGE_2_LARGE Committed SIP_BUSY_EVERYWHERE Committed SIP_DECLINE Committed SIP_DOES_NOT_EXIST_ANYWHERE Committed SIP_NOT_ACCEPTABLE_ANYWHERE Committed SIP_PROVISIONAL_RESP Committed SIP_FINAL_RESP Committed SIP_OK_RESP Committed SIP_NONOK_FINAL_RESP Committed SIP_REDIRECT_RESP Committed SIP_REQFAIL_RESP Committed SIP_SRVFAIL_RESP Committed SIP_GLOBFAIL_RESP Committed SIP_CLIENT_TRANSACTION Committed SIP_SERVER_TRANSACTION Committed SIPS_NEW_TRANSACTION Committed SIPS_CLNT_CALLING Committed SIPS_CLNT_INV_PROCEEDING Committed SIPS_CLNT_INV_TERMINATED Committed SIPS_CLNT_INV_COMPLETED Committed SIPS_CLNT_TRYING Committed SIPS_CLNT_NONINV_PROCEEDING Committed SIPS_CLNT_NONINV_TERMINATED Committed SIPS_CLNT_NONINV_COMPLETED Committed SIPS_SRV_INV_PROCEEDING Committed SIPS_SRV_INV_COMPLETED Committed SIPS_SRV_CONFIRMED Committed SIPS_SRV_INV_TERMINATED Committed SIPS_SRV_TRYING Committed SIPS_SRV_NONINV_PROCEEDING Committed SIPS_SRV_NONINV_COMPLETED Committed SIPS_SRV_NONINV_TERMINATED Committed SIP_UAC_DIALOG Committed SIP_UAS_DIALOG Committed SIP_DLG_NEW Committed SIP_DLG_EARLY Committed SIP_DLG_CONFIRMED Committed SIP_DLG_DESTROYED Committed SIP_PARSED_HEADER_VERSION_1 Committed SIP_VALUE_VERSION_1 Committed SIP_VALUE_ACTIVE Committed SIP_VALUE_BAD Committed SIP_VALUE_DELETED Committed MAX_SIP_METHODS Committed SIP_UNKNOWN Committed SIP_INVITE Committed SIP_ACK Committed SIP_OPTIONS Committed SIP_BYE Committed SIP_CANCEL Committed SIP_REGISTER Committed SIP_REFER Committed SIP_INFO Committed SIP_SUBSCRIBE Committed SIP_NOTIFY Committed SIP_PRACK Committed SIP_STACK_VERSION Committed SIP_STACK_DIALOGS Committed SIP_URIERR_SCHEME Committed SIP_URIERR_USER Committed SIP_URIERR_PASS Committed SIP_URIERR_HOST Committed SIP_URIERR_PORT Committed SIP_URIERR_PARAM Committed SIP_URIERR_HEADER Committed SIP_URIERR_OPAQUE Committed SIP_URIERR_QUERY Committed SIP_URIERR_PATH Committed SIP_URIERR_REGNAME Committed sip_msg_t Committed sip_header_t Committed sip_header_value_t Committed sip_dialog_t Committed sip_conn_object_t Committed sip_transaction_t Committed sip_uri_t Committed sip_str_t Committed sip_param_t Committed sip_parsed_header_t Committed sip_value_state_t Committed sip_value_t Committed sip_hdr_general_t Committed sip_method_t Committed sip_methods_t Committed sip_methods Committed sip_header_function_t Committed sip_io_pointers_t Committed sip_ulp_pointers_t Committed sip_stack_init_t Committed sip_init_conn_object Committed sip_clear_stale_data Committed sip_conn_destroyed Committed sip_new_msg Committed sip_free_msg Committed sip_hold_msg Committed sip_stack_init Committed sip_sendmsg Committed sip_process_new_packet Committed sip_guid Committed sip_branchid Committed sip_get_cseq Committed sip_get_rseq Committed sip_get_num_via Committed sip_add_from Committed sip_add_to Committed sip_add_response_line Committed sip_add_request_line Committed sip_add_via Committed sip_add_maxforward Committed sip_add_callid Committed sip_add_cseq Committed sip_add_content_type Committed sip_add_content Committed sip_add_contact Committed sip_add_route Committed sip_add_record_route Committed sip_add_branchid_to_via Committed sip_add_accept Committed sip_add_author Committed sip_add_authen_info Committed sip_add_proxy_authen Committed sip_add_proxy_author Committed sip_add_proxy_require Committed sip_add_www_authen Committed sip_add_accept_enc Committed sip_add_accept_lang Committed sip_add_alert_info Committed sip_add_allow Committed sip_add_call_info Committed sip_add_content_disp Committed sip_add_content_enc Committed sip_add_content_lang Committed sip_add_date Committed sip_add_error_info Committed sip_add_expires Committed sip_add_in_reply_to Committed sip_add_mime_version Committed sip_add_min_expires Committed sip_add_org Committed sip_add_priority Committed sip_add_reply_to Committed sip_add_require Committed sip_add_retry_after Committed sip_add_server Committed sip_add_subject Committed sip_add_supported Committed sip_add_tstamp Committed sip_add_unsupported Committed sip_add_user_agent Committed sip_add_warning Committed sip_add_allow_events Committed sip_add_event Committed sip_add_substate Committed sip_add_privacy Committed sip_add_passertedid Committed sip_add_ppreferredid Committed sip_add_rack Committed sip_add_rseq Committed sip_get_author_scheme Committed sip_get_author_param Committed sip_get_authen_info Committed sip_get_proxy_authen_scheme Committed sip_get_proxy_authen_param Committed sip_get_proxy_author_scheme Committed sip_get_proxy_author_param Committed sip_get_proxy_require Committed sip_get_www_authen_scheme Committed sip_get_www_authen_param Committed sip_get_allow_events Committed sip_get_event Committed sip_get_substate Committed sip_get_accept_type Committed sip_get_accept_sub_type Committed sip_get_accept_enc Committed sip_get_accept_lang Committed sip_get_alert_info_uri Committed sip_get_allow_method Committed sip_get_min_expires Committed sip_get_mime_version Committed sip_get_org Committed sip_get_priority Committed sip_get_replyto_display_name Committed sip_get_replyto_uri_str Committed sip_get_date_time Committed sip_get_date_day Committed sip_get_date_month Committed sip_get_date_wkday Committed sip_get_date_year Committed sip_get_date_timezone Committed sip_get_content_disp Committed sip_get_content_lang Committed sip_get_content_enc Committed sip_get_error_info_uri Committed sip_get_expires Committed sip_get_require Committed sip_get_subject Committed sip_get_supported Committed sip_get_tstamp_delay Committed sip_get_tstamp_value Committed sip_get_unsupported Committed sip_get_server Committed sip_get_user_agent Committed sip_get_warning_code Committed sip_get_warning_agent Committed sip_get_warning_text Committed sip_get_call_info_uri Committed sip_get_in_reply_to Committed sip_get_retry_after_time Committed sip_get_retry_after_cmts Committed sip_get_passertedid_display_name Committed sip_get_passertedid_uri_str Committed sip_get_ppreferredid_display_name Committed sip_get_ppreferredid_uri_str Committed sip_get_priv_value Committed sip_get_rack_resp_num Committed sip_get_rack_cseq_num Committed sip_get_rack_method Evolvin g sip_get_rseq_resp_num Committed sip_copy_start_line Committed sip_delete_start_line Committed sip_copy_header Committed sip_copy_header_by_name Committed sip_copy_all_headers Committed sip_delete_header_by_name Committed sip_add_header Committed sip_add_param Committed sip_delete_header Committed sip_delete_value Committed sip_clone_msg Committed sip_create_response Committed sip_create_OKack Committed sip_get_resp_desc Committed sip_get_branchid Committed sip_get_header Committed sip_get_header_value Committed sip_get_next_value Committed sip_get_param_value Committed sip_get_params Committed sip_is_param_present Committed sip_msg_to_str Committed sip_hdr_to_str Committed sip_reqline_to_str Committed sip_respline_to_str Committed sip_msg_is_request Committed sip_msg_is_response Committed sip_get_request_method Committed sip_get_request_uri_str Committed sip_get_response_code Committed sip_get_response_phrase Committed sip_get_sip_version Committed sip_get_msg_len Committed sip_get_route_uri_str Committed sip_get_route_display_name Committed sip_get_contact_uri_str Committed sip_get_contact_display_name Committed sip_get_from_uri_str Committed sip_get_from_display_name Committed sip_get_from_tag Committed sip_get_to_uri_str Committed sip_get_to_display_name Committed sip_get_to_tag Committed sip_get_callid Committed sip_get_callseq_num Committed sip_get_callseq_method Committed sip_get_via_sent_by_host Committed sip_get_via_sent_by_port Committed sip_get_via_sent_protocol_version Committed sip_get_via_sent_protocol_name Committed sip_get_via_sent_transport Committed sip_get_maxforward Committed sip_get_content_length Committed sip_get_content_type Committed sip_get_content_sub_type Committed sip_get_content Committed sip_parse_uri Committed sip_free_parsed_uri Committed sip_is_sipuri Committed sip_get_uri_scheme Committed sip_get_uri_user Committed sip_get_uri_password Committed sip_get_uri_host Committed sip_get_uri_port Committed sip_get_uri_params Committed sip_get_uri_headers Committed sip_get_uri_opaque Committed sip_get_uri_query Committed sip_get_uri_path Committed sip_get_uri_regname Committed sip_is_uri_teluser Committed sip_get_uri_errflags Committed sip_uri_errflags_to_str Committed sip_create_dialog_req Committed sip_get_dialog_state Committed sip_get_dialog_method Committed sip_get_dialog_callid Committed sip_get_dialog_local_tag Committed sip_get_dialog_remote_tag Committed sip_get_dialog_local_uri Committed sip_get_dialog_remote_uri Committed sip_get_dialog_remote_target_uri Committed sip_get_dialog_route_set Committed sip_is_dialog_secure Committed sip_get_dialog_local_cseq Committed sip_get_dialog_remote_cseq Committed sip_get_dialog_type Committed sip_hold_dialog Committed sip_release_dialog Committed sip_delete_dialog Committed sip_get_request_uri Committed sip_get_uri_parsed Committed sip_sent_by_to_str Committed sip_register_sent_by Committed sip_unregister_sent_by Committed sip_unregister_all_sent_by Committed sip_get_trans Committed sip_get_trans_branchid Committed sip_get_trans_method Committed sip_get_trans_state Committed sip_get_trans_resp_msg Committed sip_get_trans_orig_msg Committed sip_hold_trans Committed sip_release_trans Committed sip_get_trans_conn_obj Committed - Exported public library APIs and ABIs see above. Protocols (public or private) Drag and Drop ToolTalk Cut/Paste - Other interfaces - What other applications should it interoperate with? How will it do so? N/A - Is it "pipeable"? How does it use stdin, stdout, stderr? No. - Explain the significant file formats, names, syntax, and semantics. - Is there a public namespace? (Can third parties create names in your namespace?) How is this administered? N/A - Are the externally visible interfaces documented clearly enough for a non-Sun client to use them successfully? Yes these interfaces will be documented in man pages. 14. What are its other significant internal interfaces inter-subsystem and inter-invocation)? N/A 15. Is the interface extensible? How will the interface evolve? - How is versioning handled? Through the standard ON library practise through spec. - What was the commitment level of the previous version? N/A - Can this version co-exist with existing standards and with earlier and later versions or with alternative implementations (perhaps by other vendors)? Yes. - What are the clients over which a change should be managed? N/A - How is transition to a new version to be accomplished? What are the consequences to ISV's and their customers? If any of the interfaces change, then the application would need to changes. 16. How do the interfaces adapt to a changing world? N/A - What is its relationship with (or difficulties with) multimedia? 3D desktops? Nomadic computers? Storage-less clients? A networked file system model (i.e., a network-wide file manager)? N/A 17. Interoperability - If applicable, explain your project's interoperability with the other major implementations in the industry. In particular, does it interoperate with Microsoft's implementation, if one exists? The SIP stack conforms to specifications in the RFCs that are suppported (3261, 3262, 3265, 3323 and 3325), so it will interoperate with any implementation that is based on the RFCs. - What would be different about installing your project in a heterogeneous site instead of a homogeneous one (such as Sun)? N/A - Does your project assume that a Solaris-based system must be in control of the primary administrative node? N/A 18. Performance - How will the project contribute (positively or negatively) to "system load" and "perceived performance"? N/A - What are the performance goals of the project? How were they evaluated? What is the test or reference platform? We have provided some tools to measure the stack performance, especially the transaction and dialog management layer. These tools are available on the OpenSolaris site and are being used by customers. However, currrenty we do not have any specific goals. We are discussing this aspect with customers and their input ( the stack behavior in real world) will be used going forwards. - Does the application pause for significant amounts of time? Can the user interact with the application while it is performing long-duration tasks? N/A - What is your project's MT model? How does it use threads internally? How does it expect its client to use threads? If it uses callbacks, can the called entity create a thread and recursively call back? The library is MT-safe. The library does not impose applications to be single or multithreaded. The library does use a thread internally to manage timers used by the stack. As for recursively calling a callback function, there may be a possibility that an application registers a callback function for transaction state changes and the callback function creates a thread and sends a message that changes the transaction state resulting in calling the callback function again. However, the callbacks are called only to let the application know that a transaction/dialog has changed states, so it is unlikely that an application will implement the callback function in such a manner. Regardless, this will be mentioned in the man page that discusses stack initialization. - What is the impact on overall system performance? What is the average working set of this component? How much of this is shared/sharable by other apps? An application linked with the new library, libsip.so, increases in size (i.e. the executable) by about 30 bytes. - Does this application "wake up" periodically? How often and under what conditions? What is the working set associated with this behavior? N/A - Will it require large files/databases (for example, new fonts)? N/A - Do files, databases or heap space tend to grow with time/load? What mechanisms does the user have to use to control this? What happens to performance/system load? The memory used depends on the number of SIP messages, transaction and dialog state maintained in the system. Transactions are short lived (either terminate or time out), dialog may be long-lived and are explicitly terminated. Messages, transactions and dialogs can be prevented from being terminated by holding references to it. Applications can control memory usage by holding references only when needed and releasing them when done. 19. Please identify any issues that you would like the ARC to address. - 20. Appendices to include - One-Pager. - Prototype specification. - References to other documents. (Place copies in case directory.)