Skip to content

Commit cc7be03

Browse files
bean-duduxiangbin
and
duxiangbin
authored
Add Record-Route support (#77)
* add Record-Rotte support * add Record-Rotte support * delete .idea Co-authored-by: duxiangbin <[email protected]>
1 parent 1b0f995 commit cc7be03

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
certs
33

44
# Binaries for programs and plugins
5+
.idea
56
*.exe
67
*.exe~
78
*.dll

Diff for: pkg/session/session.go

+14-4
Original file line numberDiff line numberDiff line change
@@ -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

250249
func (s *Session) sendRequest(req sip.Request) (sip.Response, error) {
@@ -363,6 +362,8 @@ func (s *Session) Provisional(statusCode sip.StatusCode, reason string) {
363362
}
364363

365364
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+
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

Comments
 (0)