GenericDBProxy demonstrates the Proxy behaviour and the integration with databases via JDBC, using standard J2EE techniques. The application proxies incoming INVITE requests to a list of URIs retrieved from one of the several preconfigured Application Databases. Which database is queried, which statement is executed and which data is sent along, depends on the application prefix. The application looks for an application prefix in the request URI which uses to retrieve the query information from the Master DB.
The application flow can be summarized as follows
- 1. Retrieve application prefix from the request URI
- 2. Use application prefix to query the master DB for dynamic query data
- 3. Use the dynamic query data retrieved to identify the application db to be queried and prepare the SQL statement to send.
- 3.1 Execute the SQL sentence and retrieve a list or proxy URIs.
- 4. Proxy to the URIs retrieved.
Note that the SQL sentence passed to the application DB is an statement instead of a query. This allows to execute an stored procedure before retrieving the list of URIs which enables the application to be used with transactional purposes. An example would be the one in the picture, where a provisioning application would activate a certain service of the user calling and proxy the request to a media service which would play an announcement like 'Your service has been activated. Thank you'