diff --git a/sdpinfo.go b/sdpinfo.go index f6d5555..8dada48 100644 --- a/sdpinfo.go +++ b/sdpinfo.go @@ -425,6 +425,11 @@ func (s *SDPInfo) String() string { } if strings.ToLower(media.mtype) == "application" { + mediaMap.SctpMap = &transform.SctpMapStuct{ + 5000, + "webrtc-datachannel", + 1024, + } mediaMap.Payloads = media.Payloads mediaMap.SctpPort = 5000 mediaMap.SctpMaxSize = 256 * 1024 diff --git a/transform/grammer.go b/transform/grammer.go index 7d42474..735b64d 100644 --- a/transform/grammer.go +++ b/transform/grammer.go @@ -529,9 +529,9 @@ var rulesMap map[byte][]*Rule = map[byte][]*Rule{ Format: "", FormatFunc: func(obj *gabs.Container) string { if hasValue(obj, "maxMessageSize") { - return "sctpmap:%s %s %s" + return "sctpmap:%d %s %d" } else { - return "sctpmap:%s %s" + return "sctpmap:%d %s" } }, }, diff --git a/transform/sdpstruct.go b/transform/sdpstruct.go index 26de3d6..71198cb 100644 --- a/transform/sdpstruct.go +++ b/transform/sdpstruct.go @@ -145,6 +145,7 @@ type MediaStruct struct { Simulcast *SimulcastStruct `json:"simulcast,omitempty"` SctpPort int `json:"sctp-port,omitempty"` SctpMaxSize int `json:"sctp-max-message-size,omitempty"` + SctpMap *SctpMapStuct `json:"sctpmap,omitempty"` } type SdpStruct struct { @@ -159,3 +160,9 @@ type SdpStruct struct { Connection *ConnectionStruct `json:"connection,omitempty"` Icelite string `json:"icelite,omitempty"` } + +type SctpMapStuct struct { + Port int `json:"sctpmapNumber"` + App string `json:"app"` + MessageSize int `json:"maxMessageSize"` +}