Logo Search packages:      
Sourcecode: sofia-sip version File versions  Download package

SOFIAPUBFUN int nta_check_supported ( nta_incoming_t irq,
sip_t const *  sip,
sip_require_t require,
tag_type_t  tag,
tag_value_t  value,
  ... 
)

Check that UAC supports all the required features.

The list of required features is compared with the features supported by the UAC. If some features are not supported, return 421. If irq is non-NULL, the 421 response message is sent to the client, too.

Parameters:
irq incoming transaction object (may be NULL).
sip contents of the SIP message
require list of required protocol features
tag,value,... optional list of tagged arguments used when responding to the transaction
Returns:
0 if successful. 421 if any of the required features is not supported.

Definition at line 111 of file nta_check.c.

References SIP_421_EXTENSION_REQUIRED, sip_s::sip_supported, SIPTAG_REQUIRE, ta_end, ta_start, and ta_tags.

{
  if (!sip_has_unsupported(NULL, sip->sip_supported, require))
    return 0;

  if (irq) {
    ta_list ta;
    ta_start(ta, tag, value);
    nta_incoming_treply(irq,
                  SIP_421_EXTENSION_REQUIRED,
                  SIPTAG_REQUIRE(require),
                  ta_tags(ta));
    ta_end(ta);
  }

  return 421;
}


Generated by  Doxygen 1.6.0   Back to index