private final MobicentsSipApplicationSession retrieveTargetedApplication ( String targetedApplicationKey ) { if ( logger . isDebugEnabled ( ) ) { logger . debug ( "retrieveTargetedApplication - targetedApplicationKey=" + targetedApplicationKey ) ; } if ( targetedApplicationKey != null && targetedApplicationKey . length ( ) > 0 ) { targetedApplicationKey = RFC2396UrlDecoder . decode ( targetedApplicationKey ) ; if ( logger . isDebugEnabled ( ) ) { logger . debug ( "retrieveTargetedApplication - decoded targetedApplicationKey=" + targetedApplicationKey ) ; } SipApplicationSessionKey targetedApplicationSessionKey ; try { targetedApplicationSessionKey = SessionManagerUtil . parseSipApplicationSessionKey ( targetedApplicationKey ) ; } catch ( ParseException e ) { logger . error ( "Couldn't parse the targeted application key " + targetedApplicationKey , e ) ; return null ; } SipContext sipContext = sipApplicationDispatcher . findSipApplication ( targetedApplicationSessionKey . getApplicationName ( ) ) ; if ( sipContext != null ) { if ( logger . isDebugEnabled ( ) ) { logger . debug ( "retrieveTargetedApplication - sipContext not null" ) ; } return sipContext . getSipManager ( ) . getSipApplicationSession ( targetedApplicationSessionKey , false ) ; } } return null ; }
Section 15 . 11 . 3 Encode URI Mechanism The container MUST use the encoded URI to locate the targeted SipApplicationSession object . If a valid SipApplicationSession is found the container must determine the name of the application that owns the SipApplicationSession object .