...
Section |
---|
ArchitectureCall Detail Recording is included as part of the Management Role bundle of sipXecs and is enabled by default. Roles, sometimes referred to as bundles, are pre-configured and cannot be modified. The Management role, by definition, can only operate on the master(primary) server. ConfigurationConfiguration requirements for CDR are very minimal and can be found in the Configuration management under the System/Servers/Services/CDR. General settings:
Advanced settings:
Navigating to CDR Service CDR Service Settings Note: Modifications to these parameters will require a restart of CDR and the Proxy Service. Service interruption is typically between 5 and 10 seconds and no in-process calls are affected. |
...
- Run pg_ctl as the user "postgres" to tell PostgreSQL to reload the configuration (i.e. >pg_ctl reload -D /var/lib/pgsql/data) No service disruption
- Restart the PostgreSQL service (i.e. >service postgresql restart) Service disruption
Recorded call events
SIPXCDR database stores all call events occured during the process of establishing a call. Every call event is saved in the call_state_events table
Analysis
Column event_type holds the event type sent
R - Call Request
T - Transfer call Event
S - Call Established Event
F - Call failed event
E - Normal End Call event
Below is an example with call_state_events table entries given from_url and to_url values. These applies when we try to place a call using a 3PCC
Example:
when from = user1, to = user1 status=R we know that user1 phone is ringing
when from = user1, to = user1 status=S we know that user1 picked up the phone
when from = user1, to = user2 status=R we know that user2 phone started ringing
when from = user1, to = user2 status=S we know that user2 answered the phone
Failure situations:
when from = user1, to = user1, status=F we know that user1 rejected the call
when from = user1, to = user2, status=E we know that user2 rejected the call (if there is no call established event (S) before, we know that user2 never answered the call and rejected it instead. If there is an (S) status event before, then user2 normally ended the call)