/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 - 2 0 2 1 ĠSIP 3 . IO , ĠCorp . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . sip 3 . twig . ce . service . media . domain Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Ċ import Ġio . sip 3 . commons . domain . payload . R tp Report Payload Ċ import Ġkotlin . math . max Ċ import Ġkotlin . math . min Ċ Ċ class ĠLeg Session Ġ{ ĊĊĠĠĠ Ġvar ĠcreatedAt : ĠLong Ġ= ĠLong . MAX _ VALUE ĊĠĠĠ Ġvar Ġterminated At : ĠLong Ġ= ĠLong . MAX _ VALUE ĊĠĠĠ Ġvar Ġduration : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġlateinit Ġvar Ġcall Id : ĠString ĊĊĠĠĠ Ġlateinit Ġvar Ġsrc Addr : ĠString ĊĠĠĠ Ġvar Ġsrc Port : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġsrc Host : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġdst Addr : ĠString ĊĠĠĠ Ġvar Ġdst Port : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġdst Host : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġval Ġcodecs Ġ= Ġmutable Set Of < Codec >() ĊĊĠĠĠ Ġval Ġout Ġ= Ġmutable ListOf < Media Session >() ĊĠĠĠ Ġval Ġ` in ` Ġ= Ġmutable ListOf < Media Session >() ĊĊĠĠĠ Ġfun Ġupdate Timestamp s () Ġ{ ĊĠĠĠĠĠĠĠ ĠcreatedAt Ġ= Ġmin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . min Of OrNull Ġ{ Ġit . createdAt Ġ} Ġ?: ĠLong . MAX _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` in `. min Of OrNull Ġ{ Ġit . createdAt Ġ} Ġ?: ĠLong . MAX _ VALUE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġterminated At Ġ= Ġmax ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . max Of OrNull Ġ{ Ġit . terminated At Ġ} Ġ?: ĠLong . MIN _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` in `. max Of OrNull Ġ{ Ġit . terminated At Ġ} Ġ?: ĠLong . MIN _ VALUE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠCodec ( val Ġname : ĠString , Ġval Ġpayload Type : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . name Ġ Ġ== Ġ( other Ġas ? ĠCodec )?. name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġname . hashCode () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }