@@ -241,10 +241,9 @@ func (s *Session) ReInvite() {
241241}
242242
243243//Bye send Bye request.
244- func (s * Session ) Bye () {
245- method := sip .BYE
246- req := s .makeRequest (s .uaType , method , sip .MessageID (s .callID ), s .request , s .response )
247- s .sendRequest (req )
244+ func (s * Session ) Bye () (sip.Response , error ) {
245+ req := s .makeRequest (s .uaType , sip .BYE , sip .MessageID (s .callID ), s .request , s .response )
246+ return s .sendRequest (req )
248247}
249248
250249func (s * Session ) sendRequest (req sip.Request ) (sip.Response , error ) {
@@ -363,6 +362,8 @@ func (s *Session) Provisional(statusCode sip.StatusCode, reason string) {
363362}
364363
365364func (s * Session ) makeRequest (uaType string , method sip.RequestMethod , msgID sip.MessageID , inviteRequest sip.Request , inviteResponse sip.Response ) sip.Request {
365+ var rh * sip.RouteHeader
366+
366367 newRequest := sip .NewRequest (
367368 msgID ,
368369 method ,
@@ -385,6 +386,15 @@ func (s *Session) makeRequest(uaType string, method sip.RequestMethod, msgID sip
385386 newRequest .AppendHeader (s .contact )
386387
387388 if uaType == "UAC" {
389+ for _ , header := range s .response .Headers () {
390+ if header .Name () == "Record-Route" {
391+ h := header .(* sip.RecordRouteHeader )
392+ rh = & sip.RouteHeader {
393+ Addresses : h .Addresses ,
394+ }
395+ }
396+ }
397+ newRequest .AppendHeader (rh )
388398 if len (inviteRequest .GetHeaders ("Route" )) > 0 {
389399 sip .CopyHeaders ("Route" , inviteRequest , newRequest )
390400 }
0 commit comments