Call History
The Call History page lists the calls handled for your SIP accounts, newest first, with a row for each SIP leg. SIPSorcery sits in the middle of every call, so a call is at least two legs:
- In: the call the server received, from your phone for a call you placed, or from a caller or provider for a call to one of your SIP accounts;
- Out: each call the server placed for it. A dial string with several destinations, or a destination with several registered devices, places several Out legs, and each is listed with its own result, including the ones that failed or were cancelled because another answered first.
For example, dialling 214 from your phone with a dial plan that forwards it to music@iptel.org gives
an In leg to sip:214@sipsorcery.com and an Out leg to sip:music@iptel.org.
Each row shows when the leg started, its direction, destination and From, its status (the final SIP response, such as 200 OK or 486 Busy Here) and, once it has been answered and ended, its duration. Long destinations and From headers are shortened; hover over one to see all of it, or open the leg's details, which also show the SIP account it belongs to. A leg that is still being set up or is in progress has no duration yet. The list can be searched and sorted, and the search covers your whole history, not only the page showing.
Export CSV downloads the calls the list is showing as a CSV file for a spreadsheet: every page of
them, in the same order, and only those matching the search if there is one. It has a row per leg with more than
the list shows, including the account, dial plan, hang up and failure reasons, the Call-ID, and each Out leg's In
leg. Times are in UTC, and the start time is repeated in the time zone from your
settings if you've set one. Anything that a
spreadsheet would run as a formula, such as a caller's name starting with =, is written with an
apostrophe in front so it shows as text.
A leg's details show when it was answered and hung up, and which end hung up: remote end hungup marks the leg whose far end ended the call. An In leg's details list the Out legs placed for it, and an Out leg's link back to its In leg.
Dial plan trace
An In leg's Trace button opens its details and its dial plan trace: what the dial plan did while setting the call up, step by step, with how long after the start each step happened. It records:
- which dial plan ran, or that the account had none;
- for a Ruby dial plan, each
sys.Logmessage, eachsys.Dialand whether it was answered and if not why, responses sent, emails, and any error, each with the line of the dial plan it came from; - for a Simple Wizard or Json dial plan, each rule that was tried, why the ones that didn't match didn't, and what the matching rule did.
It's the first place to look when a call didn't go where you expected. The trace is recorded when the dial plan finishes, so a call that is still being set up doesn't have one yet. Every call is traced; there's nothing to switch on.
Call records are kept for a limited time, not indefinitely, and each call's trace is deleted with it.