SIP RA Type - separate "100 Trying" response event
Open Cloud's SIP RA Type defines events for the various classes of error response, similar to what is in Mobicents' RA and the recommendation in JSR 22, ie.
javax.sip.message.Response.INFORMATIONAL // 1xx
javax.sip.message.Response.SUCCESS // 2xx
javax.sip.message.Response.REDIRECT // 3xx
javax.sip.message.Response.CLIENT_ERROR // 4xx
javax.sip.message.Response.SERVER_ERROR // 5xx
javax.sip.message.Response.GLOBAL_FAILURE // 6xx
We also added a separate event type for "100 Trying" responses
javax.sip.message.Response.TRYING // 100 only
The INFORMATIONAL event type is now used for 101-199 responses.
The reason for this is that most applications never use the 100 Trying response directly. It is only used to stop retransmits of the INVITE, and does not contain any other information. Proxies always drop 100 Trying responses - they never get forwarded. "Informational" (101-199) responses are important to applications, since they will often set up early dialogs or have SDP content.
By making "100 Trying" a separate event type, this makes it easy for the RA to filter out these responses, so they never have to enter the SLEE event router. The RA can know that no services are interested in "100 Trying" events by implementing the serviceActivated/serviceDeactivated callbacks (from JSR 240 EDR) and keeping track of the event types that services require.
If we did not have this separate event type, we would have to always fire an "INFORMATIONAL" event for "100 Trying", even though it is almost certainly not used by any application. So I think this is a simple optimization and should be part of a standard SIP RA Type.