You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

41 lines
986 B

package sdp
import (
"bytes"
"errors"
"github.com/jart/gosip/util"
)
// Origin represents the session origin (o=) line of an SDP. Who knows what
// this is supposed to do.
type Origin struct {
User string // first value in o= line
ID string // second value in o= line
Version string // third value in o= line
Addr string // tracks ip of original user-agent
}
func (origin *Origin) Append(b *bytes.Buffer) error {
if origin.ID == "" {
return errors.New("sdp missing origin id")
}
if origin.Version == "" {
return errors.New("sdp missing origin version")
}
if origin.Addr == "" {
return errors.New("sdp missing origin address")
}
if origin.User == "" {
origin.User = "-"
}
b.WriteString("o=")
b.WriteString(origin.User + " ")
b.WriteString(origin.ID + " ")
b.WriteString(origin.Version)
if util.IsIPv6(origin.Addr) {
b.WriteString(" IN IP6 " + origin.Addr + "\r\n")
} else {
b.WriteString(" IN IP4 " + origin.Addr + "\r\n")
}
return nil
}