|
|
|
|
@ -310,6 +310,8 @@ sufficient for a standard installation of rtpengine.
|
|
|
|
|
Configuration for a MySQL storage backend. Details about calls and media files
|
|
|
|
|
that are produced are stored into the database. Optionally the media files
|
|
|
|
|
themselves can be stored as well (see __output-storage__).
|
|
|
|
|
|
|
|
|
|
For MySQL database schema, see [Database schema](#database-schema)
|
|
|
|
|
|
|
|
|
|
- __\-\-forward-to=__*PATH*
|
|
|
|
|
|
|
|
|
|
@ -402,6 +404,52 @@ sufficient for a standard installation of rtpengine.
|
|
|
|
|
|
|
|
|
|
Configuration file.
|
|
|
|
|
|
|
|
|
|
## DATABASE SCHEMA
|
|
|
|
|
|
|
|
|
|
Saving recording into MySQL database requires correct database schema:
|
|
|
|
|
```
|
|
|
|
|
CREATE TABLE `recording_calls` (
|
|
|
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`call_id` varchar(250) NOT NULL,
|
|
|
|
|
`start_timestamp` decimal(13,3) DEFAULT NULL,
|
|
|
|
|
`end_timestamp` decimal(13,3) DEFAULT NULL,
|
|
|
|
|
`status` enum('recording','completed','confirmed') DEFAULT 'recording',
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
KEY `call_id` (`call_id`)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE `recording_streams` (
|
|
|
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`call` int(10) unsigned NOT NULL,
|
|
|
|
|
`local_filename` varchar(250) NOT NULL,
|
|
|
|
|
`full_filename` varchar(250) NOT NULL,
|
|
|
|
|
`file_format` varchar(10) NOT NULL,
|
|
|
|
|
`stream` mediumblob,
|
|
|
|
|
`output_type` enum('mixed','single') NOT NULL,
|
|
|
|
|
`stream_id` int(10) unsigned NOT NULL,
|
|
|
|
|
`sample_rate` int(10) unsigned NOT NULL DEFAULT '0',
|
|
|
|
|
`channels` int(10) unsigned NOT NULL DEFAULT '0',
|
|
|
|
|
`ssrc` int(10) unsigned NOT NULL,
|
|
|
|
|
`start_timestamp` decimal(13,3) DEFAULT NULL,
|
|
|
|
|
`end_timestamp` decimal(13,3) DEFAULT NULL,
|
|
|
|
|
`tag_label` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
KEY `call` (`call`),
|
|
|
|
|
CONSTRAINT `fk_call_id` FOREIGN KEY (`call`) REFERENCES `recording_calls` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE `recording_metakeys` (
|
|
|
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`call` int(10) unsigned NOT NULL,
|
|
|
|
|
`key` char(255) NOT NULL,
|
|
|
|
|
`value` char(255) NOT NULL,
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
KEY `prim_lookup` (`value`,`key`),
|
|
|
|
|
KEY `fk_call_idx` (`call`),
|
|
|
|
|
CONSTRAINT `fk_call_idx` FOREIGN KEY (`call`) REFERENCES `recording_calls` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
|
|
|
);
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## SEE ALSO
|
|
|
|
|
|
|
|
|
|
[rtpengine(8)](http://man.he.net/man8/rtpengine).
|
|
|
|
|
|