New Call
Authentication
Basic authentication of the form Basic <base64(username:password)>.
Request
the direction of the call:
inbound- The call was originated outside jambonzoutbound- The call was originated by jambonz
the reason phrase from the SIP status LINE of the last response (e.g. Trying, OK, Busy Here). This is not the RFC 3326 Reason header - see sip_reason_header.
current status of the call:
trying- a new incoming call has arrived or an outbound call has just been sentringing- a 180 Ringing response has been sent or receivedearly-media- an early media connection has been established prior to answering the call (183 Session Progress)in-progress- call has been answeredcompleted- an answered call has endedfailed- a call attempt failedbusy- a call attempt failed because the called party returned a busy statusno-answer- a call attempt failed because it was not answered in time
the RFC 3326 Reason header of the SIP message that caused this status change, if it carried one; omitted otherwise.
Carriers fronting ISDN/E1 PRI trunks put the authoritative disconnect cause here rather than in the status line, and the same SIP status can carry different causes - a 503 may be cause=38 (network out of order) or cause=41 (temporary failure) - so the status code alone cannot classify the outcome of a call. A 408 with Q.850;cause=18 (“no user responding”) is a call nobody answered, not a platform fault.
Present on whichever event observed it: a final failure response, a BYE on an answered call, or a CANCEL from a caller who gave up. The CANCEL case matters most, because the 487 and its Request Terminated phrase are generated by jambonz itself - so without this header every abandoned inbound call looks identical, and SIP;cause=200;text="Call completed elsewhere" is what distinguishes a forked branch losing the race from a caller who hung up.
Two parsing caveats: the header is re-serialized in transit, which normalizes the optional whitespace RFC 3326 allows around ;, so a carrier’s Q.850 ;cause=18 arrives as Q.850;cause=18 - parse tolerantly rather than string-matching. And a message may carry more than one Reason header, in which case they arrive comma-separated; split on commas outside quotes, since a text="..." value may contain one.