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

340 HP-UX C SIP Stack Programmers Guide
DNS Support for Call-legs, Subscriptions, and Register-Clients
return rv;
}
}
/*=========================================================================================*/
DNS SUPPORT FOR
CALL-LEGS,
S
UBSCRIPTIONS,
AND REGISTER-
C
LIENTS
As mentioned above, DNS support propagates upwards to objects that use the
Transaction layer. Both call-legs and subscriptions have a state that indicates a
Msg-Send-Failure and dedicated APIs that enable the application to manipulate
the DNS List object and re-send the request to the next IP address.
CALL-LEG LAYER The RVSIP_CALL_LEG_STATE_MSG_SEND_FAILURE state indicates a
message send failure. The application can obtain the DNS List object handle by
calling the RvSipCallLegDNSGetList() function. Once the application has a
handle to the list, it can manipulate the list using the transport API.
C
ALL-LEG DNS API Calling RvSipCallLegDNSContinue() causes the SIP Stack to prepare an
internal cloned transaction and terminate the original transaction. If the
application wishes, it can call RvSipCallLegGetOutboundMsg() and manipulate
the message before sending it. To actually try and send the message to the next
address in the DNS list, the application should call the
RvSipCallLegDNSReSendRequest() function.
Calling RvSipCallLegDNSGiveUp() indicates that the application does not
want to keep trying to send the message, and will terminate the call leg. Call-leg
transactions use the same API function with the specific transaction handle. For
more information on these functions, see the Call-leg DNS Functions section in
the Call-leg Functions chapter of the SIP Stack Reference Guide.
SUBSCRIPTIONS LAYER The RVSIP_SUBS_STATE_MSG_SEND_FAILURE state indicates a message
send failure. The application can obtain the DNS List object handle by calling
the RvSipSubsDNSGetList() API function. Once the application has a handle to
the list, it can manipulate the list using the transport API.
S
UBSCRIPTION DNS API Calling RvSipSubsDNSContinue(), causes the SIP Stack to prepare an internal
cloned transaction and terminate the original transaction. To actually try and
send the message to the next address in the DNS list, the application should call
the RvSipSubsDNSReSendRequest() function. Calling
RvSipSubsDNSGiveUp() indicates that the application does not want to keep
trying to send the message. For more information, see the Subscription DNS API
section in the Event Notification Functions chapter of the SIP Stack Reference
Guide.