Skip to content

Commit f267270

Browse files
author
Baglan
committed
Added Redirect method to given sip.Uri
1 parent ce888b3 commit f267270

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

pkg/session/session.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ func (s *Session) GetEarlyMedia() string {
210210
return s.answer
211211
}
212212

213-
//ProvideOffer .
213+
// ProvideOffer .
214214
func (s *Session) ProvideOffer(sdp string) {
215215
s.offer = sdp
216216
}
@@ -220,7 +220,7 @@ func (s *Session) ProvideAnswer(sdp string) {
220220
s.answer = sdp
221221
}
222222

223-
//Info send SIP INFO
223+
// Info send SIP INFO
224224
func (s *Session) Info(content string, contentType string) {
225225
method := sip.INFO
226226
req := s.makeRequest(s.uaType, method, sip.MessageID(s.callID), s.request, s.response)
@@ -230,7 +230,7 @@ func (s *Session) Info(content string, contentType string) {
230230
s.sendRequest(req)
231231
}
232232

233-
//ReInvite send re-INVITE
233+
// ReInvite send re-INVITE
234234
func (s *Session) ReInvite() {
235235
method := sip.INVITE
236236
req := s.makeRequest(s.uaType, method, sip.MessageID(s.callID), s.request, s.response)
@@ -240,7 +240,7 @@ func (s *Session) ReInvite() {
240240
s.sendRequest(req)
241241
}
242242

243-
//Bye send Bye request.
243+
// Bye send Bye request.
244244
func (s *Session) Bye() (sip.Response, error) {
245245
req := s.makeRequest(s.uaType, sip.BYE, sip.MessageID(s.callID), s.request, s.response)
246246
return s.sendRequest(req)
@@ -261,7 +261,7 @@ func (s *Session) Reject(statusCode sip.StatusCode, reason string) {
261261
tx.Respond(response)
262262
}
263263

264-
//End end session
264+
// End end session
265265
func (s *Session) End() error {
266266

267267
if s.status == Terminated {
@@ -333,8 +333,17 @@ func (s *Session) Accept(statusCode sip.StatusCode) {
333333
}
334334

335335
// Redirect send a 3xx
336-
func (s *Session) Redirect(target string, code sip.StatusCode) {
336+
func (s *Session) Redirect(target sip.Uri, code sip.StatusCode, reason string) {
337+
tx := (s.transaction.(sip.ServerTransaction))
338+
request := s.request
339+
340+
s.Log().Debugf("Redirect: Request => %s, body => %s", request.Short(), request.Body())
337341

342+
response := sip.NewResponseFromRequest(request.MessageID(), request, code, reason, "")
343+
s.contact.Address = target
344+
response.AppendHeader(s.contact)
345+
346+
tx.Respond(response)
338347
}
339348

340349
// Provisional send a provisional code 100|180|183

0 commit comments

Comments
 (0)