package Ġru . ste ch . sip Ċ Ċ import Ġgov . nist . javax . sip . header . Request Line Ċ import Ġgov . nist . javax . sip . header . S IP Header Ċ import Ġru . ste ch . util . LIB NAME Ċ import Ġjavax . sip . header . Content Length Header Ċ import Ġjavax . sip . header . Header Ċ Ċ class ĠS ip RequestBuilder ( ĊĠĠĠ Ġval Ġrequest Line : ĠRequest Line , ĊĠĠĠ Ġval Ġheaders : ĠMutable Map < String , ĠHeader > Ġ= Ġlinked Map Of (), ĊĠĠĠ Ġvar Ġr tp Host : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġr tp Port : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġr tp SessionId : ĠString ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs dp Ġ= Ġif Ġ( rtp Host Ġ!= Ġnull Ġ&& Ġr tp Port Ġ!= Ġnull ) Ġ" v = 0 \ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" o =- Ġ$ rtp SessionId Ġ 0 ĠIN ĠIP 4 Ġ$ rtp Host \ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s =${ LIB NAME }\ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" t = 0 Ġ 0 \ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" m = audio Ġ$ rtp Port ĠR TP / AV P Ġ 8 Ġ 1 2 0 \ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" c = IN ĠIP 4 Ġ${ rtp Host }\ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" a = send recv \ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" a = rtp map : 8 ĠPC MA / 8 0 0 0 \ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" a = rtp map : 1 2 0 Ġtele phone - event / 8 0 0 0 \ r \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" a = fm tp : 1 2 0 Ġ 0 - 1 6 " Ġelse Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġcontent Length Ġ= Ġs dp . toByteArray (). size ĊĠĠĠĠĠĠĠ Ġ( headers [ S IP Header . CONTENT _ LENGTH ] Ġas ĠContent Length Header ). content Length Ġ= Ġcontent Length ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġbuilder . append ( request Line . toString ()) ĊĠĠĠĠĠĠĠ Ġfor Ġ(( _, Ġvalue ) Ġin Ġheaders ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ( value . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . append ("\ r \ n ") ĊĠĠĠĠĠĠĠ Ġbuilder . append ( sdp ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} Ċ }