@@ -241,10 +241,9 @@ func (s *Session) ReInvite() {
241
241
}
242
242
243
243
//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 )
248
247
}
249
248
250
249
func (s * Session ) sendRequest (req sip.Request ) (sip.Response , error ) {
@@ -363,6 +362,8 @@ func (s *Session) Provisional(statusCode sip.StatusCode, reason string) {
363
362
}
364
363
365
364
func (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
+
366
367
newRequest := sip .NewRequest (
367
368
msgID ,
368
369
method ,
@@ -385,6 +386,15 @@ func (s *Session) makeRequest(uaType string, method sip.RequestMethod, msgID sip
385
386
newRequest .AppendHeader (s .contact )
386
387
387
388
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 )
388
398
if len (inviteRequest .GetHeaders ("Route" )) > 0 {
389
399
sip .CopyHeaders ("Route" , inviteRequest , newRequest )
390
400
}
0 commit comments