HP-UX C SIP Stack Programmer's Guide (Novembery 2007)

384 HP-UX C SIP Stack Programmers Guide
General URI Scheme Support
GENERAL URI
S
CHEME SUPPORT
SIP defines and uses different URI schemes, such as “sip”, “sips”, “im”, “pres”
and “tel”. In addition, some implementations define proprietary URI schemes. A
general framework in the SIP Stack provides support for sending any type of
URI scheme. In each of the SIP Stack layers, a new callback function was added
with the following form: RvSipXXXOtherURLAddressFoundEv().
Whenever a SIP Stack object tries to send a request and the destination address
is not a sip or a sips URI, this callback is called. The application is required to
replace the non-SIP URI address with a sip URI address which the SIP Stack
knows how to handle. Once the application converts the non-sip URI to a sip
URI address, the SIP Stack continues with its regular behavior and tries to send
the message according to the new address. The message however remains
unchanged and will include the non-sip URI address.
The following callbacks are supplied:
RvSipTransactionOtherURLAddressFoundEv()
For transaction requests.
RvSipTranscMgrOtherURLAddressFoundEv()
For requests sent by the TransactionMgr in proxy implementations.
RvSipSubsOtherURLAddressFoundEv()
For subscription requests.
RvSipCallLegOtherURLAddressFoundEv()
For call-leg requests.
RvSipTransmitterOtherURLAddressFoundEv()
For transmitter requests.
OTHER URI
E
XTENSION SUPPORT
The Stack provides extension support for “im” and “pres” URI schemes. You
can compile the Stack with the RV_SIP_OTHER_URI_SUPPORT compilation
flag and, as a result, addresses with im and pres schemes will be parsed as im/
pres-addresses (a regular address object with type = RVSIP_ADDRTYPE_IM
or RVSIP_ADDRTYPE_PRES), and not as an absolute URI
(RVSIP_ADDRTYPE_ABS).