I've recorded this change as "closed approved automatic," as the
changes appear to quite straightforward and need no substantial
discussion.  If you disagree, please speak up quickly.  (Submitter:
please wait at least 24 hours before putting back.)



The release binding is "patch/micro" and consolidation is "ON."  The
stability level for the two interfaces introduced is "Committed."
Following are the two interfaces:

(1) sip_get_dialog_local_contact_uri
(2) sip_create_dialog_req_nocontact

(The naming convention is in keeping with existing SIP API)

Addition of sip_get_dialog_local_contact API:
=============================================

  A SIP dialog is created when a session is established between two
  User Agents.  The characteristics of a dialog is represented by an
  internal C structure (sip_dialog) at each User Agent.  This
  structure is private and the definition is not exposed to
  applications.

  Access to the member elements of the structure by User Application
  is through accessors like sip_get_dialog_state,
  sip_get_dialog_local_cseq, et al.  CR 6583537 introduced new element
  (local_contact header) to the structure.  In order to make this
  information available to applications we need a new public method
  called sip_get_dialog_local_contact_uri.


  Details: (API declaration)
  --------------------------

  const struct sip_uri *sip_get_dialog_local_contact_uri(
      sip_dialog_t dialog, int *error);

  dialog:  Represents the structure from which the local_contact_uri
           needs to be retrieved.
  error:   Determines if the function call was successful.  *error = 0
           means "success" and *error = EINVAL means "failure."


Addition of sip_create_dialog_req_nocontact API:
================================================

  Once a dialog has been established between two User Agents, new
  requests within the dialog are generated by the SIP API
  sip_create_dialog_req().  This API uses the information stored in
  the sip_dialog structure to generate new requests.

  However within a session there is a possibility that either of the
  User Agent might desire to change its location. User Agent which
  desires to do so issues re-INVITE request with new Contact header,
  which specifies the new location.  In such situations the existing
  API sip_create_dialog_req() isn't that helpful.  It creates a
  request with the contact information maintained in the dialog.  Thus
  the application has to delete the existing contact header and add a
  new one to resulting request [generated by sip_create_dialog_req()].
  This case adds an API that does not add the the contact header to
  the request and allows application to add the new header.

  Details: (API declaration)
  --------------------------

  sip_msg_t sip_create_dialog_req_nocontact(sip_method_t method,
      sip_dialog_t dialog, char *transport, char *sent_by,
      int sent_by_port, char *via_param, uint32_t smaxforward,
      int cseq)

  Function sip_create_dialog_req_nocontact is identical to the
  existing API sip_create_dialog_req() except that the returned
  sip_msg_t will not have a "contact" header.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to