Database Store and Call Logging (Windows CE 5.0)
The VAIL uses the following interfaces for persistent database storage:
- IVoIPCallLogDB stores call log records. These records indicate the type, start time, end time, and duration of the call, and the name and URI of the other party.
- IVoIPCallerInfoDB stores caller-specific information, such as friendly name, speed dial index, specialized ringtone, blocked status, and forwarding URI.
These interfaces are pluggable and have implementations that can be replaced by an OEM.
The supplied implementations use Windows CE databases and store information locally on the device. An OEM can replace either database implementation by replacing the CLSID in the registry with the CLSID of the new implementation.
To replace the implementations, change the CLSID in the CallLogDB or CallerInfoDB registry entry in this location: HKEY_CLASSES_ROOT\CLSID\254D6845-7CF1-4B90-A658-E4C430C3A7BE\Plugins.
The VoIP manager initializes each database by performing the following steps:
- Calls CoCreateInstance using the CLSID retrieved from the registry.
- Calls QueryInterface for IID_IVoIPCallLogDB or IID_IVoIPCallerInfoDB.
- Calls IVoIPCallLogDB::Init or IVoIPCallerInfoDB::Init with the URI of the phone used in provisioning.
If initialization fails, IVoIPMgr::Initialize still succeeds. The phone is functional; however, calls are not logged by the VoIP manager. In addition, the database flag is missing from the current state variable of the VoIP manager. For more information, see IVoIPMgr::State.
If an application attempts to access a database through the VoIP manager after initialization fails, the API returns the error VOIP_E_NODB.
The databases are associated with the phone URI. In the default implementation, if a phone is provisioned with one URI and reprovisioned with another URI, the database used by the VoIP manager changes. Therefore, if the user has a dataset stored in a database using one URI, and the URI changes, the data in the database appears to be missing.
After a call is terminated, the VoIP manager logs the call to the appropriate database. If this database does not exist, logging does not take place but the phone is functional.
See Also
VAIL Objects and Interfaces | VAIL Reference
Send Feedback on this topic to the authors