HP-UX C SIP Stack Programmer's Guide (Novembery 2007)
Working with DNS 335
State Machine and API Functions
RvSipTransactionDNSContinue() will not terminate the original transaction.
The application must send ACK on the original transaction by calling the
RvSipTransactionAck() function.
Note The application must first call RvSipTransactionDNSContinue() to copy
the transaction and then call RvSipTransactionAck() to trigger an ACK on the
original transaction.
TERMINATING THE TRANSACTION
To terminate the transaction, the application should call the
RvSipTransactionTerminate() function.
Sample Code
The following sample code demonstrates how to implement a state changed
callback. In this sample, the request message will be sent to the next address on
the list upon failure.
/*=========================================================================================*/
void RVCALLCONV AppTranscStateChangedEvHandler(
IN RvSipTranscHandle hTransaction,
IN RvSipTranscOwnerHandle pOwner,
IN RvSipTransactionState eNewState,
IN RvSipTransactionStateChangeReason eReason)
{
RvSipTranscHandle hCloneTransc = NULL;
RvChar strMethod[512] = {'\0'};
RvStatus rv = RV_OK;
RvSipAddressHandle hUri = NULL;
rv = RvSipTransactionGetRequestUri(hTransaction,&hUri)
if (rv != RV_OK)
{
/*Performs error handle routine.*/
}
rv = RvSipTransactionGetMethodStr(hTransaction, 512, strMethod);
if (rv != RV_OK)
{
/*Performs error handle routine.*/
}