====== OpenSER 1.0.x Database Table Structure ====== Authors of initial tutorial: Norman Brandinger ===== Accounting ===== This table is used by the ACC module to report on transactions - accounted calls. More information is available at: http://www.openser-project.org/docs/modules/1.1.x/acc.html ** Accounting (//acc//) Table ** Column Name Column Attribute Column Description caller_UUID varchar(64) Caller Unique User ID (not used by OpenSER ?) callee_UUID varchar(64) Callee Unique User ID (not used by OpenSER ?) sip_from varchar(128) From header field indicates the initiator of the request sip_to varchar(128) To header field specifies the logical recipient of the request sip_status varchar(128) Response codes are consistent with, and extend, HTTP/1.1 response codes. Not all HTTP/1.1 response codes are appropriate. SIP defines a new class, 6xx sip_method varchar(16) A method is the primary function that a request is meant to invoke on a server i_uri varchar(128) Inbound Request-URI o_uri varchar(128) Outbound Request-URI from_uri varchar(128) From URI to_uri varchar(128) To URI sip_callid varchar(128) Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client. username varchar(64) Username / Phone Number domain varchar(128) Domain part of Inbound Request-URI fromtag varchar(128) The tag parameter serves as a general mechanism to identify a dialog, which is the combination of the Call-ID along with two tags, one from participant in the dialog totag varchar(128) The tag parameter serves as a general mechanism to identify a dialog, which is the combination of the Call-ID along with two tags, one from participant in the dialog time datetime Date / Time this record was written timestamp timestamp(14) Timestamp header field describes when the UAC sent the request to the UAS caller_deleted char(1) Caller Deleted (not used by OpenSER ?) callee_deleted char(1) Callee Deleted (not used by OpenSER ?) src_leg varchar(128) Source Call Leg (Source-Destination pairs defines a call-leg). A call leg is another name for a dialog. dst_leg varchar(128) Destination Call Leg (Source-Destination pairs defines a call-leg). A call leg is another name for a dialog. ** Accounting (//acc//) Table Indexes ** Keyname Field(s) INDEX: acc_user (username, domain) KEY: sip_callid (sip_callid) ===== Active Sessions ===== This table is used by SERWeb. It is not used by OpenSER. ** Active Sessions (//active_sessions// ) Table ** Column Name Column Attribute Column Description sid varchar(32) name varchar(32) val text changed varchar(14) ** Active Sessions (//active_sessions//) Indexes ** PRIMARY KEY (name, sid) KEY changed (changed) ===== Administrative Privileges ===== Multi-domain SERWeb Access Control List (ACL). It is not used by OpenSER. ** Administrative Privileges (//admin_privileges//) Table ** Column Name Column Attribute Column Description username varchar(64) Username / Phone Number domain varchar(128) priv_name varchar(64) priv_value varchar(64) ** Administrative Privileges (//admin_privileges//) Indexes ** PRIMARY KEY (username, priv_name, priv_value, domain) ===== Aliases ===== This table is similar to the "location" table. More information is available at: http://www.openser-project.org/docs/modules/1.1.x/registrar.html ** Aliases (//aliases//) Table ** Column Name Column Attribute Column Description username varchar(64) Alias Username / Phone Number domain varchar(128) Domain Name contact varchar(255) Contact header field value provides a URI whoses meaning depends on the type of request or response it is in received varchar(255) Received IP:PORT in the format SIP:IP:PORT path varchar(255) Path Header(s) per RFC 3327 expires datetime Date/Time that this entry expires q float(10,2) Value used for preferential routing callid varchar(255) Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client. cseq int(11) CSeq header field contains a single decimal sequence number and the request method last_modified timestamp(14) Date/Time this entry was last changed flags int(11) Flags user_agent varchar(255) User-Agent header field contains information about the UAC originating the request socket varchar(128) Socket used to connect to OpenSER. For example: UDP:IP:PORT methods int(11) Flags that indicate the SIP Methods this contact will accept. ** Aliases (//aliases//) Indexes ** PRIMARY KEY (username, domain, contact) INDEX aliases_contact (contact) ===== Database Aliases ===== This table us used by the alias_db module as an alternative for user aliases via userloc. More information about the alias_db module can be found at: http://www.openser-project.org/docs/modules/1.1.x/alias_db.html ** Database Aliases (//dbaliases//) Table ** Column Name Column Attribute Column Description alias_username varchar(64) Alias Username / Phone Number alias_domain varchar(128) Alias Domain Name username varchar(64) Username / Phone Number domain varchar(128) Domain Name ** Database Aliases (//dbaliases//) Indexes** UNIQUE KEY alias_key (alias_username, alias_domain) INDEX alias_user (username, domain) ===== Domains ===== This table is used by the domain module to determine if a host part of a URI is "local" or not. More information about the domain module can be found at: http://www.openser-project.org/docs/modules/1.1.x/domain.html ** Domains (//domain//) Table ** Column Name Column Attribute Column Description domain varchar(128) Domain Name last_modified datetime Date/Time this record was last modified ** Domains (//domain//) Indexes** PRIMARY KEY (domain) ===== Groups ===== This table us used by the group module as a means of group membership checking. Used primarily for Access Control Lists (ACL's) More information about the group module can be found at: http://www.openser-project.org/docs/modules/1.1.x/group.html ** Groups (//grp//) Table ** Column Name Column Attribute Column Description username varchar(64) Username / Phone Number domain varchar(128) Domain Name grp varchar(50) Group Name last_modified datetime Date/Time this record was last modified ** Groups (//grp//) Indexes ** PRIMARY KEY (username, domain, grp) ===== Gateways ===== This table contains Least Cost Routing Gateway definitions More information can be found at: http://www.openser-project.org/docs/modules/1.1.x/lcr.html ** Gateways (//gw//) Table ** Column Name Column Attribute Column Description gw_name varchar(128) Gateway Name grp_id int Gateway ID ip_addr int IP Address of the gateway port smallint Port of the gateway uri_scheme tinyint URI scheme of the gateway transport tinyint Transport type to be used for the gateway strip tinyint The number of digits to strip from the RURI before applying the prefix prefix varchar(16) The RURI(destination) prefix ** Gateways (//gw//) Indexes ** PRIMARY KEY (gw_name) KEY (grp_id) ===== Gateway Groups ===== This table is used for administrative purposes only to associate names with gateway group ids More information can be found at: http://www.openser-project.org/docs/modules/1.1.x/lcr.html ** Gateway Groups (//gw_grp//) Table ** Column Name Column Attribute Column Description grp_id int unsigned Group ID grp_name varchar(64) Group Name ===== Least Cost Routing ===== This table is used by the lcr (Least Cost Routing) rules More information about the lcr module can be found at: http://www.openser-project.org/docs/modules/1.1.x/lcr.html ** Least Cost Routing (//lcr//) Table ** Column Name Column Attribute Column Description prefix varchar(16) The Request-URI (destination) prefix from_uri varchar(128) The FROM (source) URI grp_id int unsigned Group ID priority tinyint unsigned Priority ** Least Cost Routing (//lcr//) Indexes ** KEY (prefix) KEY (from_uri) KEY (grp_id) ===== User Locations ===== Persistent user location information More information can be found at: http://www.openser-project.org/docs/modules/1.1.x/usrloc.html ** User Locations (//location//) Table ** Column Name Column Attribute Column Description username varchar(64) Username / Phone Number domain varchar(128) Domain Name contact varchar(255) Contact header field value provides a URI whose meaning depends on the type of request or response it is in received varchar(255) Received IP:PORT in the format SIP:IP:PORT path varchar(255) Path Header(s) per RFC 3327 expires datetime Expires header field gives the relative time after which the message (or content) expires q float(10,2) Value used for preferential routing callid varchar(255) Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client. cseq int(11) CSeq header field contains a single decimal sequence number and the request method last_modified timestamp(14) Date/Time this record was last modified flags int(11) Internal Flags user_agent varchar(255) User-Agent header field contains information about the UAC originating the request socket varchar(128) Socket used to connect to OpenSER. For example: UDP:IP:PORT methods int(11) Methods accepted ** User Locations (//location//) Indexes ** PRIMARY KEY (username, domain, contact) ===== Missed Calls ===== acc like table for keeping track of missed calls **Missed Calls (//missed_calls//) Table** Column Name Column Attribute Column Description sip_from varchar(128) From header field indicates the initiator of the request sip_to varchar(128) To header field specifies the logical recipient of the request sip_status varchar(128) Response codes are consistent with, and extend, HTTP/1.1 response codes. Not all HTTP/1.1 response codes are appropriate. SIP defines a new class, 6xx sip_method varchar(16) A method is the primary function that a request is meant to invoke on a server i_uri varchar(128) Inbound Request-URI o_uri varchar(128) Outbound Request-URI from_uri varchar(128) From URI to_uri varchar(128) To URI sip_callid varchar(128) Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client. username varchar(64) Username / Phone Number domain varchar(128) Domain Name fromtag varchar(128) The tag parameter serves as a general mechanism to identify a dialog, which is the combination of the Call-ID along with two tags, one from participant in the dialog totag varchar(128) The tag parameter serves as a general mechanism to identify a dialog, which is the combination of the Call-ID along with two tags, one from participant in the dialog time datetime Date / Time this record was written timestamp timestamp(14) Timestamp header field describes when the UAC sent the request to the UAS src_leg varchar(128) Source Call Leg (Source-Destination pairs defines a call-leg). A call leg is another name for a dialog. dst_leg varchar(128) Destination Call Leg (Source-Destination pairs defines a call-leg). A call leg is another name for a dialog. ** Missed Calls (//missed_calls//) Indexes ** INDEX mc_user (username, domain) ===== Pending ===== SerWEB - Not used by OpenSER. Unconfirmed subscription requests ** Pending (//pending//) Table ** Column Name Column Attribute Column Description phplib_id varchar(32) Unique ID username varchar(64) Username / Phone Number domain varchar(128) Domain Name password varchar(25) Password first_name varchar(25) First Name last_name varchar(45) Last Name phone varchar(15) Phone Number email_address varchar(50) Email Address datetime_created datetime Date / Time this record was created datetime_modified datetime Date / Time this record was last modified confirmation varchar(64) flag char(1) sendnotification varchar(50) greeting varchar(50) ha1 varchar(128) md5(username:realm:password) ha1b varchar(128) md5(username@domain:realm:password) allow_find char(1) timezone varchar(128) rpid varchar(128) The SIP Remote-Party-ID header identifies the calling party and includes user, party, screen and privacy headers that specify how a call is presented and screened. domn int(10) uuid varchar(64) Unique User ID ** Pending (//pending//) Indexes ** PRIMARY KEY (username, domain) KEY user_2 (username) UNIQUE KEY phplib_id (phplib_id) ===== Phone Book ===== SERWeb - Not used by OpenSER. User's Phonebook ** Phone Book (//phonebook//) Table ** Column Name Column Attribute Column Description id int(10) ID of this record username varchar(64) Username / Phone Number domain varchar(128) Domain Name fname varchar(32) First Name lname varchar(32) Last Name sip_uri varchar(128) SIP URI associated with this record ** Phone Book (//phonebook//) Indexes ** PRIMARY KEY (id) ===== Regular Expression Group ===== This table is used by the group module to check membership based on regular expressions More information about the group module can be found at: http://www.openser-project.org/docs/modules/1.1.x/group.html ** Regular Expression Group (//re_grp//) Table ** Column Name Column Attribute Column Description reg_exp varchar(128) Regular Expression group_id int(11) Group ID ** Regular Expression Group (//re_grp//) Indexes ** UNIQUE KEY reg_exp (reg_exp) ===== Server Monitoring ===== SERWeb - Not used by OpenSER ** Server Monitoring (//server_monitoring//) Table ** Column Name Column Attribute Column Description time datetime id int(10) param varchar(32) value int(10) increment int(10) ** Server Monitoring (//server_monitoring//) Indexes ** PRIMARY KEY (id, param) ===== Server Monitoring ===== SERWeb - Not used by OpenSER ** Server Monitoring (//server_monitoring_agg//) Table** Column Name Column Attribute Column Description param varchar(32) s_value int(10) s_increment int(10) last_aggregated_increment int(10) av float mv int(10) ad float lv int(10) min_val int(10) max_val int(10) min_inc int(10) max_inc int(10) lastupdate datetime Date/Time this record was last modified ** Server Monitoring (//server_monitoring_agg//) Indexes ** PRIMARY KEY (param) ===== Offline Message Storage ===== This table us used by the msilo module to provide offline message storage More information about the msilo module can be found at: http://www.openser-project.org/docs/modules/1.1.x/msilo.html ** Offline Message Storage (//silo//) Table ** Column Name Column Attribute Column Description mid integer Unique ID per message src_addr varchar(255) Source address - From URI dst_addr varchar(255) Destination address - To URI r_uri varchar(255) Request-URI == username@domain (for compatibility with old version) username varchar(64) Username / Phone Number domain varchar(128) Domain inc_time integer Incoming time exp_time integer Expiration time snd_time integer Reminder send time ctype varchar(32) Content type body blob Body of the message ===== Speed Dial===== This table is used by the speeddial module to provide on-server speed dial facilities More information about the speeddial module can be found at: http://www.openser-project.org/docs/modules/1.1.x/speeddial.html ** Speed Dial (//speed_dial//) Table** Column Name Column Attribute Column Description uuid varchar(64) Unique User ID username varchar(64) Username / Phone Number domain varchar(128) Domain Name sd_username varchar(64) Speed Dial Username sd_domain varchar(128) Speed Dial Domain new_uri varchar(192) New URI fname varchar(128) First Name lname varchar(128) Last Name description varchar(64) Description ** Speed Dial (//speed_dial//) Indexes ** PRIMARY KEY (username, domain, sd_domain, sd_username) ===== Subscriber ===== This table is used to provide authentication information More information about the speeddial module can be found at: http://www.openser-project.org/docs/modules/1.1.x/auth_db.html ** Subscriber (//subscriber//) Table ** Column Name Column Attribute Column Description phplib_id varchar(32) Unique ID (used by SERWeb) username varchar(64) Username / Phone Number domain varchar(128) Domain Name password varchar(25) Password first_name varchar(25) First Name last_name varchar(45) Last Name phone varchar(15) Phone Number email_address varchar(50) Email Address datetime_created datetime Date / Time this record was created datetime_modified datetime Date / Time this record was last modified confirmation varchar(64) flag char(1) sendnotification varchar(50) greeting varchar(50) ha1 varchar(128) md5(username:realm:password) ha1b varchar(128) md5(username@domain:realm:password) allow_find char(1) timezone varchar(128) rpid varchar(128) The SIP Remote-Party-ID header identifies the calling party and includes user, party, screen and privacy headers that specify how a call is presented and screened. domn int(10) uuid varchar(64) Unique User ID ** Subscriber (//subscriber//) Indexes ** UNIQUE KEY phplib_id (phplib_id) PRIMARY KEY (username, domain) KEY user_2 (username) ===== Trusted ===== This table is used by the permissions module to determine if a call has the appropriate permission to be established More information about the permissions module can be found at: http://www.openser-project.org/docs/modules/1.1.x/permissions.html ** Trusted (//trusted//) Table ** Column Name Column Attribute Column Description src_ip varchar(39) source address is equal to source address of request proto varchar(4) transport protocol is either "any" or equal to transport protocol of request. Possible values that can be stored are "any", "udp", "tcp", "tls", and "sctp" from_pattern varchar(64) regular expression matches From URI of request ** Trusted (//trusted//) Indexes ** PRIMARY KEY (src_ip, proto, from_pattern) ===== URI ===== This table is used by uri_db module to implement various SIP URI checks. A configuration parm: modparam("uri_db", "use_uri_table", 1) means that the (uri) table should be checked instead of the (subscriber) table. More information about the uri_db module can be found at: http://www.openser-project.org/docs/modules/1.1.x/uri_db.html ** URI (//uri//) Table ** Column Name Column Attribute Column Description username varchar(64) Username / Phone Number domain varchar(128) Domain Name uri_user varchar(50) Username / Phone Number last_modified datetime Date/Time this record was last modified ** URI (//uri//) Indexes ** PRIMARY KEY (username, domain, uri_user) ===== User Preferences ===== This table us used by the avpops module to implement Attribute Value Pairs (AVP's) More information about the avpops module can be found at: http://www.openser-project.org/docs/modules/1.1.x/avpops.html ** User Preferences (//usr_preferences//) Table ** Column Name Column Attribute Column Description uuid varchar(64) Unique User ID username varchar(100) Username / Phone Number domain varchar(128) Domain Name attribute varchar(32) AVP Attribute type int(11) AVP Type value varchar(128) AVP Value modified timestamp(14) Date/Time this record was last modified ** User Preferences (//usr_preferences//) Indexes ** PRIMARY KEY (uuid, username, domain, attribute, type,v alue) INDEX ua_idx (uuid, attribute) INDEX uda_idx (username, domain, attribute) ===== User Preference Types ===== ** User Preference Types (//usr_preferences_types//) Table ** Column Name Column Attribute Column Description att_name varchar(32) att_rich_type varchar(32) att_raw_type int att_type_spec text default_value varchar(100) ** User Preference Types (//usr_preferences_types//) Indexes ** PRIMARY KEY (att_name) ===== Table Versions ===== This table contains OpenSER table names and version numbers. It is used by various OpenSER routines to ensure that the correct version of a particular table is being used. ** Table Versions (//version//) Table ** Column Name Column Attribute Column Description table_name varchar(64) Table Name table_version smallint(5) Table Version ===== Database Structure Stuff ===== {{indexmenu>database|js}}