rtpengine

package module
v0.0.0-...-5b8f87d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2024 License: BSD-2-Clause Imports: 9 Imported by: 0

README

go-rtpengine

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EncodeComando

func EncodeComando(cookie string, command *RequestRtp) ([]byte, error)

Trasformar o comando em bencode

Types

type AddressFamily

type AddressFamily string

Tipo Address Family string

const (
	AddressFamilyIP4 AddressFamily = "IP4"
	AddressFamilyIP6 AddressFamily = "IP6"
)

type Client

type Client struct {
	*Engine
	// contains filtered or unexported fields
}

func NewClient

func NewClient(rtpengine *Engine, options ...ClientOption) (*Client, error)

func (*Client) Close

func (s *Client) Close() error

Fechar conexão aberta.

func (*Client) ComandoNG

func (c *Client) ComandoNG(cookie string, comando *RequestRtp) error

Comando NG formatado em bencode para rtpengine

func (*Client) NewComando

func (c *Client) NewComando(comando *RequestRtp) *ResponseRtp

func (*Client) RespostaNG

func (c *Client) RespostaNG(cookie string) (*ResponseRtp, error)

Resposta do servidor ngcp-rtpengine

type ClientOption

type ClientOption func(c *Client) error

func WithClientDns

func WithClientDns(dns string) ClientOption

WithClientDns Permite definir o dns do serviço do rtpengine a função resolve o ip do serviço.

func WithClientHostname

func WithClientHostname(hostname string) ClientOption

WithClientHostname Permite definir o nome do host padrão do client resolve o endereço ipv4 da maquina local.

func WithClientIP

func WithClientIP(host string) ClientOption

WithClientPort Permite definir o IP padrão do client

func WithClientPort

func WithClientPort(port int) ClientOption

WithClientPort Permite definir a porta padrão do client

func WithClientProto

func WithClientProto(proto string) ClientOption

WithClientPort Permite definir o protocolo padrão do client

type Codecs

type Codecs string

Tipo de string codecs

const (
	CODEC_PCMU  Codecs = "PCMU"
	CODEC_PCMA  Codecs = "PCMA"
	CODEC_G729  Codecs = "G729"
	CODEC_G729a Codecs = "G729a"
	CODEC_OPUS  Codecs = "opus"
	CODEC_G722  Codecs = "G722"
	CODEC_G723  Codecs = "G723"
	CODEC_ILBC  Codecs = "iLBC"
	CODEC_SPEEX Codecs = "speex"
)

type CryptoSuite

type CryptoSuite string

Tipo de parametros para o CryptoSuite

const (
	SRTP_AEAD_AES_256_GCM         CryptoSuite = "AEAD_AES_256_GCM"
	SRTP_AEAD_AES_128_GCM         CryptoSuite = "AEAD_AES_128_GCM"
	SRTP_AES_256_CM_HMAC_SHA1_80  CryptoSuite = "AES_256_CM_HMAC_SHA1_80"
	SRTP_AES_256_CM_HMAC_SHA1_32  CryptoSuite = "AES_256_CM_HMAC_SHA1_32"
	SRTP_AES_192_CM_HMAC_SHA1_80  CryptoSuite = "AES_192_CM_HMAC_SHA1_80"
	SRTP_AES_192_CM_HMAC_SHA1_32  CryptoSuite = "AES_192_CM_HMAC_SHA1_32"
	SRTP_AES_CM_128_HMAC_SHA1_80  CryptoSuite = "AES_CM_128_HMAC_SHA1_80"
	SRTP_AAES_CM_128_HMAC_SHA1_32 CryptoSuite = "AES_CM_128_HMAC_SHA1_32"
	SRTP_F8_128_HMAC_SHA1_80      CryptoSuite = "F8_128_HMAC_SHA1_80"
	SRTP_F8_128_HMAC_SHA1_32      CryptoSuite = "F8_128_HMAC_SHA1_32"
	SRTP_NULL_HMAC_SHA1_80        CryptoSuite = "NULL_HMAC_SHA1_80"
	SRTP_NULL_HMAC_SHA1_32        CryptoSuite = "NULL_HMAC_SHA1_32"
)

type DTLS

type DTLS string

Tipo de string DTLS

const (
	DTLSOff     DTLS = "off"
	DTLSNo      DTLS = "no"
	DTLSDisable DTLS = "disable"
	DTLSPassive DTLS = "passive"
	DTLSActive  DTLS = "active"
)

type DTLSFingerprint

type DTLSFingerprint string

Tipo DTLS-fingerprint string

const (
	DTLSFingerprintSha256 DTLSFingerprint = "sha-256"
	DTLSFingerprintSha1   DTLSFingerprint = "sha-1"
	DTLSFingerprintSha224 DTLSFingerprint = "sha-224"
	DTLSFingerprintSha384 DTLSFingerprint = "sha-384"
	DTLSFingerprintSha512 DTLSFingerprint = "sha-512"
)

type DTLSReverse

type DTLSReverse string

Tipo DTLS reverso string

const (
	DTLSReversePassive DTLSReverse = "passive"
	DTLSReverseActive  DTLSReverse = "active"
)

type DtlsHash

type DtlsHash string

Definição dos tipo dtls

const (
	Sha256 DtlsHash = "sha-256"
	Sha1   DtlsHash = "sha-1"
	Sha224 DtlsHash = "sha-224"
	Sha384 DtlsHash = "sha-384"
	Sha512 DtlsHash = "sha-512"
)

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

func (*Engine) Conn

func (r *Engine) Conn() (net.Conn, error)

Abrir conexão com p proxy rtpengine

func (*Engine) GetCookie

func (r *Engine) GetCookie() string

Gera o cookie do comando

func (*Engine) GetIP

func (r *Engine) GetIP() net.IP

Atribuir o ip padrão para conexão

func (*Engine) GetNG

func (r *Engine) GetNG() int

Atribuir a porta padrão NG porta de controler

func (*Engine) GetPort

func (r *Engine) GetPort() int

Atribuir a porta padrão para conexão

func (*Engine) GetProto

func (r *Engine) GetProto() string

Atribuir o protocolo padrão para conexão

type ICE

type ICE string

Tipo de string ICE

const (
	ICERemove     ICE = "remove"
	ICEForce      ICE = "force"
	ICEDefault    ICE = "default"
	ICEForceRelay ICE = "force-relay"
	ICEOptional   ICE = "optional"
)

type OSRTP

type OSRTP string

Tipo OSRTP string

const (
	OSRTPOffer        OSRTP = "offer"
	OSRTPOfferRFC     OSRTP = "offer-RFC"
	OSRTPOfferLegacy  OSRTP = "offer-legacy"
	OSRTPAcceptRFC    OSRTP = "accept-RFC"
	OSRTPAcceptLegacy OSRTP = "accept-legacy"
	OSRTPAccept       OSRTP = "accept"
)

type ParamFlags

type ParamFlags string

Tipo de parametros usado como flags

const (
	TrustAddress          ParamFlags = "trust-address"
	Symmetric             ParamFlags = "symmetric"
	Asymmetric            ParamFlags = "asymmetric"
	Unidirectional        ParamFlags = "unidirectional"
	Force                 ParamFlags = "force"
	StrictSource          ParamFlags = "strict-source"
	MediaHandover         ParamFlags = "media-handover"
	Reset                 ParamFlags = "reset"
	PortLatching          ParamFlags = "port-latching"
	NoRtcpAttribute       ParamFlags = "no-rtcp-attribute"
	FullRtcpAttribute     ParamFlags = "full-rtcp-attribute"
	LoopProtect           ParamFlags = "loop-protect"
	RecordCall            ParamFlags = "record-call"
	AlwaysTranscode       ParamFlags = "always-transcode"
	SIPREC                ParamFlags = "SIPREC"
	PadCrypto             ParamFlags = "pad-crypto"
	GenerateMid           ParamFlags = "generate-mid"
	Fragment              ParamFlags = "fragment"
	OriginalSendrecv      ParamFlags = "original-sendrecv"
	SymmetricCodecs       ParamFlags = "symmetric-codecs"
	AsymmetricCodecs      ParamFlags = "asymmetric-codecs"
	InjectDTMF            ParamFlags = "inject-DTMF"
	DetectDTMF            ParamFlags = "detect-DTMF"
	GenerateRTCP          ParamFlags = "generate-RTCP"
	SingleCodec           ParamFlags = "single-codec"
	NoCodecRenegotiation  ParamFlags = "no-codec-renegotiation"
	PierceNAT             ParamFlags = "pierce-NAT"
	SIPSourceAddress      ParamFlags = "SIP-source-address"
	AllowTranscoding      ParamFlags = "allow-transcoding"
	TrickleICE            ParamFlags = "trickle-ICE"
	RejectICE             ParamFlags = "reject-ICE"
	Egress                ParamFlags = "egress"
	NoJitterBuffer        ParamFlags = "no-jitter-buffer"
	Passthrough           ParamFlags = "passthrough"
	NoPassthrough         ParamFlags = "no-passthrough"
	Pause                 ParamFlags = "pause"
	EarlyMedia            ParamFlags = "early-media"
	BlockShort            ParamFlags = "block-short"
	RecordingVsc          ParamFlags = "recording-vsc"
	BlockEgress           ParamFlags = "block-egress"
	StripExtmap           ParamFlags = "strip-extmap"
	NATWait               ParamFlags = "NAT-wait"
	NoPortLatching        ParamFlags = "no-port-latching"
	RecordingAnnouncement ParamFlags = "recording-announcement"
	ReuseCodecs           ParamFlags = "reuse-codecs"
	RTCPMirror            ParamFlags = "RTCP-mirror"
	StaticCodecs          ParamFlags = "static-codecs"
	CodecExceptPCMU       ParamFlags = "codec-except-PCMU"
	CodecExceptPCMA       ParamFlags = "codec-except-PCMA"
	CodecExceptG729       ParamFlags = "codec-except-G729"
	CodecExceptG729a      ParamFlags = "codec-except-G729a"
	CodecExceptOpus       ParamFlags = "codec-except-opus"
	CodecExceptG722       ParamFlags = "codec-except-G722"
	CodecExceptG723       ParamFlags = "codec-except-G723"
	CodecExceptILBC       ParamFlags = "codec-except-iLBC"
	CodecExceptSpeex      ParamFlags = "codec-except-speex"
	CodecStripPCMU        ParamFlags = "codec-strip-PCMU"
	CodecStripPCMA        ParamFlags = "codec-strip-PCMA"
	CodecStripG729        ParamFlags = "codec-strip-G729"
	CodecStripG729a       ParamFlags = "codec-strip-G729a"
	CodecStripOpus        ParamFlags = "codec-strip-opus"
	CodecStripG722        ParamFlags = "codec-strip-G722"
	CodecStripG723        ParamFlags = "codec-strip-G723"
	CodecStripILBC        ParamFlags = "codec-strip-iLBC"
	CodecStripSpeex       ParamFlags = "codec-strip-speex"
	CodecMaskPCMA         ParamFlags = "codec-mask-PCMA"
	CodecMaskG729         ParamFlags = "codec-mask-G729"
	CodecMaskG729a        ParamFlags = "codec-mask-G729a"
	CodecMaskOpus         ParamFlags = "codec-mask-opus"
	CodecMaskG722         ParamFlags = "codec-mask-G722"
	CodecMaskG723         ParamFlags = "codec-mask-G723"
	CodecMaskILBC         ParamFlags = "codec-mask-iLBC"
	CodecMaskSpeex        ParamFlags = "codec-mask-speex"
	CodecTranscodePCMA    ParamFlags = "codec-transcode-PCMA"
	CodecTranscodeG729    ParamFlags = "codec-transcode-G729"
	CodecTranscodeG729a   ParamFlags = "codec-transcode-G729a"
	CodecTranscodeOpus    ParamFlags = "codec-transcode-opus"
	CodecTranscodeG722    ParamFlags = "codec-transcode-G722"
	CodecTranscodeG723    ParamFlags = "codec-transcode-G723"
	CodecTranscodeILBC    ParamFlags = "codec-transcode-iLBC"
	CodecTranscodeSpeex   ParamFlags = "codec-transcode-speex"
)

type ParamRTCPMux

type ParamRTCPMux string

Tipo de parametros usado no rtcp-mux

const (
	RTCPOffer   ParamRTCPMux = "offer"
	RTCPRequire ParamRTCPMux = "require"
	RTCPDemux   ParamRTCPMux = "demux"
	RTCPAccept  ParamRTCPMux = "accept"
	RTCPReject  ParamRTCPMux = "reject"
)

type ParamReplace

type ParamReplace string

Tipo de parametros para o replace

const (
	Origin                   ParamReplace = "origin"
	SessionConnection        ParamReplace = "session-connection"
	SdpVersion               ParamReplace = "SDP-version"
	Username                 ParamReplace = "username"
	SessionName              ParamReplace = "session-name"
	ZeroAddress              ParamReplace = "zero-address"
	ForceIncrementSdpVersion ParamReplace = "force-increment-sdp-version"
	ForceIncrementSdpVer     ParamReplace = "force-increment-sdp-ver"
)

type ParametrosOption

type ParametrosOption func(c *RequestRtp) error

type ParamsOptInt

type ParamsOptInt struct {
	TOS              int `json:"TOS,omitempty" bencode:"TOS,omitempty"`
	DeleteDelay      int `json:"delete-delay,omitempty" bencode:"delete-delay,omitempty"`
	DelayBuffer      int `json:"delay-buffer,omitempty" bencode:"delay-buffer,omitempty"`
	Volume           int `json:"volume,omitempty" bencode:"volume,omitempty"`
	TriggerEndTime   int `json:"trigger-end-time,omitempty" bencode:"trigger-end-time,omitempty"`
	TriggerEndDigits int `json:"trigger-end-digits,omitempty" bencode:"trigger-end-digits,omitempty"`
	DTMFDelay        int `json:"DTMF-delay,omitempty" bencode:"DTMF-delay,omitempty"`
	Ptime            int `json:"ptime,omitempty" bencode:"ptime,omitempty"`
	PtimeReverse     int `json:"ptime-reverse,omitempty" bencode:"ptime-reverse,omitempty"`
	DbId             int `json:"db-id,omitempty" bencode:"db-id,omitempty"`
	Duration         int `json:"duration,omitempty" bencode:"duration,omitempty"`
}

Parametros de comportamento tipo inteiro

type ParamsOptString

type ParamsOptString struct {
	FromTag                string                 `json:"from-tag" bencode:"from-tag"`
	ToTag                  string                 `json:"to-tag" bencode:"to-tag"`
	CallId                 string                 `json:"call-id" bencode:"call-id"`
	TransportProtocol      TransportProtocol      `json:"transport-protocol" bencode:"transport-protocol"`
	MediaAddress           string                 `json:"media-address,omitempty" bencode:"media-address,omitempty"`
	ICE                    ICE                    `json:"ICE,omitempty" bencode:"ICE,omitempty"`
	AddressFamily          AddressFamily          `json:"address-family,omitempty" bencode:"address-family,omitempty"`
	DTLS                   DTLS                   `json:"DTLS,omitempty" bencode:"DTLS,omitempty"`
	ViaBranch              string                 `json:"via-branch,omitempty" bencode:"via-branch,omitempty"`
	XmlrpcCallback         string                 `json:"xmlrpc-callback,omitempty" bencode:"xmlrpc-callback,omitempty"`
	Metadata               string                 `json:"metadata,omitempty" bencode:"metadata,omitempty"`
	File                   string                 `json:"file,omitempty" bencode:"file,omitempty"`
	Code                   string                 `json:"code,omitempty" bencode:"code,omitempty"`
	DTLSFingerprint        DTLSFingerprint        `json:"DTLS-fingerprint,omitempty" bencode:"DTLS-fingerprint,omitempty"`
	ICELite                string                 `json:"ICE-lite,omitempty" bencode:"ICE-lite,omitempty"`
	MediaEcho              string                 `json:"media-echo,omitempty" bencode:"media-echo,omitempty"`
	Label                  string                 `json:"label,omitempty" bencode:"label,omitempty"`
	SetLabel               string                 `json:"set-label,omitempty" bencode:"set-label,omitempty"`
	FromLabel              string                 `json:"from-label,omitempty" bencode:"from-label,omitempty"`
	ToLabel                string                 `json:"to-label,omitempty" bencode:"to-label,omitempty"`
	DTMFSecurity           string                 `json:"DTMF-security,omitempty" bencode:"DTMF-security,omitempty"`
	Digit                  string                 `json:"digit,omitempty" bencode:"digit,omitempty"`
	DTMFSecurityTrigger    string                 `json:"DTMF-security-trigger,omitempty" bencode:"DTMF-security-trigger,omitempty"`
	DTMFSecurityTriggerEnd string                 `json:"DTMF-security-trigger-end,omitempty" bencode:"DTMF-security-trigger-end,omitempty"`
	Trigger                string                 `json:"trigger,omitempty" bencode:"trigger,omitempty"`
	TriggerEnd             string                 `json:"trigger-end,omitempty" bencode:"trigger-end,omitempty"`
	All                    string                 `json:"all,omitempty" bencode:"all,omitempty"`
	Frequency              string                 `json:"frequency,omitempty" bencode:"frequency,omitempty"`
	Blob                   string                 `json:"blob,omitempty" bencode:"blob,omitempty"`
	Sdp                    string                 `json:"sdp" bencode:"sdp"`
	AudioPlayer            string                 `json:"audio-player,omitempty" bencode:"audio-player,omitempty"`
	DTMFLogDest            string                 `json:"dtmf-log-dest,omitempty" bencode:"dtmf-log-dest,omitempty"`
	OutputDestination      string                 `json:"output-destination,omitempty" bencode:"output-destination,omitempty"`
	VscStartRec            string                 `json:"vsc-start-rec,omitempty" bencode:"vsc-start-rec,omitempty"`
	VscStopRec             string                 `json:"vsc-stop-rec,omitempty" bencode:"vsc-stop-rec,omitempty"`
	VscPauseRec            string                 `json:"vsc-pause-rec,omitempty" bencode:"vsc-pause-rec,omitempty"`
	VscStartStopRec        string                 `json:"vsc-start-stop-rec,omitempty" bencode:"vsc-start-stop-rec,omitempty"`
	VscPauseResumeRec      string                 `json:"vsc-pause-resume-rec,omitempty" bencode:"vsc-pause-resume-rec,omitempty"`
	VscStartPauseResumeRec string                 `json:"vsc-start-pause-resume-rec,omitempty" bencode:"vsc-start-pause-resume-rec,omitempty"`
	RtppFlags              string                 `json:"rtpp-flags,omitempty" bencode:"rtpp-flags,omitempty"`
	SdpAttr                *ParamsSdpAttrSections `json:"sdp-attr,omitempty" bencode:"sdp-attr,omitempty"`
}

Parametros de comportamento

type ParamsOptStringArray

type ParamsOptStringArray struct {
	Flags        []ParamFlags   `json:"flags,omitempty" bencode:"flags,omitempty"`
	RtcpMux      []ParamRTCPMux `json:"rtcp-mux,omitempty" bencode:"rtcp-mux,omitempty"`
	SDES         []SDES         `json:"SDES,omitempty" bencode:"SDES,omitempty"`
	Supports     []string       `json:"supports,omitempty" bencode:"supports,omitempty"`
	T38          []string       `json:"T38,omitempty" bencode:"T38,omitempty"`
	OSRTP        []OSRTP        `json:"OSRTP,omitempty" bencode:"OSRTP,omitempty"`
	ReceivedFrom []string       `json:"received-from,omitempty" bencode:"received-from,omitempty"`
	FromTags     []string       `json:"from-tags,omitempty" bencode:"from-tags,omitempty"`
	Frequencies  []string       `json:"frequencies,omitempty" bencode:"frequencies,omitempty"`
	Replace      []ParamReplace `json:"replace,omitempty" bencode:"replace,omitempty"`
}

Parametros de comportamento tipo array separado por ','

type ParamsSdpAttrCommands

type ParamsSdpAttrCommands struct {
	Add        []string   `json:"add,omitempty" bencode:"add,omitempty"`
	Remove     []string   `json:"remove,omitempty" bencode:"remove,omitempty"`
	Substitute [][]string `json:"substitute,omitempty" bencode:"substitute,omitempty"`
}

Parametros de atributos de comandos

type ParamsSdpAttrSections

type ParamsSdpAttrSections struct {
	Global *ParamsSdpAttrCommands `json:"global,omitempty" bencode:"global,omitempty"`
	Audio  *ParamsSdpAttrCommands `json:"audio,omitempty" bencode:"audio,omitempty"`
	Video  *ParamsSdpAttrCommands `json:"video,omitempty" bencode:"video,omitempty"`
	None   *ParamsSdpAttrCommands `json:"none,omitempty" bencode:"none,omitempty"`
}

Parametros de manipulação de sessão

type RequestRtp

type RequestRtp struct {
	Command string `json:"command" bencode:"command"`
	*ParamsOptString
	*ParamsOptInt
	*ParamsOptStringArray
}

Estrutura da requisicão do comando

func SDPAnswer

func SDPAnswer(parametros *ParamsOptString, options ...ParametrosOption) (*RequestRtp, error)

Gera Atendimendo do SDP com passagem de Parametros

func SDPDelete

func SDPDelete(parametros *ParamsOptString, options ...ParametrosOption) (*RequestRtp, error)

Gera Delete da sessão no rtpengine com passagem de Parametros

func SDPOffering

func SDPOffering(parametros *ParamsOptString, options ...ParametrosOption) (*RequestRtp, error)

Gera oferta do SDP com passagem de Parametros

func (*RequestRtp) DeletesSDES

func (c *RequestRtp) DeletesSDES(cript []CryptoSuite) ParametrosOption

Excluir pacotes de criptografia individuais

func (*RequestRtp) DesabilitarSDES

func (c *RequestRtp) DesabilitarSDES() ParametrosOption

Desabilitar a criptografia SDES na oferta

func (*RequestRtp) EnableSDES

func (c *RequestRtp) EnableSDES(cript []CryptoSuite) ParametrosOption

Permitir apenas o pacotes de criptografia individuais

func (*RequestRtp) ICEForce

func (c *RequestRtp) ICEForce() ParametrosOption

Os atributos do ICE são primeiro removidos e, em seguida, novos atributos são gerados e inseridos, o que deixa o proxy de mídia como o único candidato ao ICE

func (*RequestRtp) ICERemove

func (c *RequestRtp) ICERemove() ParametrosOption

Qualquer atributos do ICE será removido do corpo do SDP

func (*RequestRtp) SetAttrChange

func (c *RequestRtp) SetAttrChange(sdpAttr *ParamsSdpAttrSections) ParametrosOption

Manipulador de atributos do SDP suporta adicionar, remover e substituir

func (*RequestRtp) SetCodecEncoder

func (c *RequestRtp) SetCodecEncoder(codecs []Codecs) ParametrosOption

Manipular o transcoder dos codecs

func (*RequestRtp) SetCodecExcept

func (c *RequestRtp) SetCodecExcept(codecs []Codecs) ParametrosOption

Bloquear todos os codecs, exceto aqueles fornecidos na lista de permissões.

func (*RequestRtp) SetCodecMask

func (c *RequestRtp) SetCodecMask(codecs []Codecs) ParametrosOption

Manipular codecs marca quais serão aceito na lista do SDP

func (*RequestRtp) SetCodecStrip

func (c *RequestRtp) SetCodecStrip(codecs []Codecs) ParametrosOption

Manipular codecs remover da lista do SDP

func (*RequestRtp) SetFlags

func (c *RequestRtp) SetFlags(flags []ParamFlags) ParametrosOption

Adcionar um lista de flags para rtpengine

func (*RequestRtp) SetMediaAddress

func (c *RequestRtp) SetMediaAddress(Address string) ParametrosOption

func (*RequestRtp) SetPtimeCodecAnswer

func (c *RequestRtp) SetPtimeCodecAnswer(ptime int) ParametrosOption

Adicionar o valor de ptime do codec no answer valor a ser utilizado e inteiro

func (*RequestRtp) SetPtimeCodecOffer

func (c *RequestRtp) SetPtimeCodecOffer(ptime int) ParametrosOption

Adicionar o valor de ptime do codec no offer valor a ser utilizado e inteiro

func (*RequestRtp) SetReceivedFrom

func (c *RequestRtp) SetReceivedFrom(addressFamily AddressFamily, Address string) ParametrosOption

Adicionar o received-from Usado se os endereços SDP não forem confiáveis

func (*RequestRtp) SetReplace

func (c *RequestRtp) SetReplace(replace []ParamReplace) ParametrosOption

Adiciona flags de manipulação

func (*RequestRtp) SetRtcpMux

func (c *RequestRtp) SetRtcpMux(rtcpmux []ParamRTCPMux) ParametrosOption

Manipular o comportamento do rtcp-mux

func (*RequestRtp) SetTransportProtocol

func (c *RequestRtp) SetTransportProtocol(proto TransportProtocol) ParametrosOption

Manipular o Transport Protocol do SDP

func (*RequestRtp) SetViaBranchTag

func (c *RequestRtp) SetViaBranchTag(branch string) ParametrosOption

Manipulador de atributos do SDP suporta adicionar, remover e substituir

type ResponseRtp

type ResponseRtp struct {
	Result      string       `json:"result" bencode:"result"`
	Sdp         string       `json:"sdp,omitempty" bencode:"sdp,omitempty"`
	ErrorReason *string      `json:"error-reason,omitempty" bencode:"error-reason,omitempty"`
	Warning     *string      `json:"warning,omitempty" bencode:"warning,omitempty"`
	Created     *int         `json:"created,omitempty" bencode:"created,omitempty"`
	CreatedUs   *int         `json:"created_us,omitempty" bencode:"created_us,omitempty"`
	LastSignal  *int         `json:"last signal,omitempty" bencode:"last signal,omitempty"`
	SSRC        *interface{} `json:"SSRC,omitempty" bencode:"SSRC,omitempty"`
	Tags        *interface{} `json:"tags,omitempty" bencode:"tags,omitempty"`
	Totals      *TotalRTP    `json:"totals,omitempty" bencode:"totals,omitempty"`
}

Estrutura da resposta do comando

func DecodeResposta

func DecodeResposta(cookie string, resposta []byte) *ResponseRtp

type SDES

type SDES string

Tipo SDES string

const (
	SDESOff                         SDES = "off"
	SDESNo                          SDES = "no"
	SDESDisable                     SDES = "disable"
	SDESNonew                       SDES = "nonew"
	SDESPad                         SDES = "pad"
	SDESStatic                      SDES = "static"
	SDESPrefer                      SDES = "prefer"
	SDESUnencrypted_srtp            SDES = "unencrypted_srtp"
	SDESUnencrypted_srtcp           SDES = "unencrypted_srtcp"
	SDESUnauthenticated_srtp        SDES = "unauthenticated_srtp"
	SDESEncrypted_srtp              SDES = "encrypted_srtp"
	SDESEncrypted_srtcp             SDES = "encrypted_srtcp"
	SDESAuthenticated_srtp          SDES = "authenticated_srtp"
	SDESNoAEAD_AES_256_GCM          SDES = "no-AEAD_AES_256_GCM"
	SDESNoAEAD_AES_128_GCM          SDES = "no-AEAD_AES_128_GCM"
	SDESNoAES_256_CM_HMAC_SHA1_80   SDES = "no-AES_256_CM_HMAC_SHA1_80"
	SDESNoAES_256_CM_HMAC_SHA1_32   SDES = "no-AES_256_CM_HMAC_SHA1_32"
	SDESNoAES_192_CM_HMAC_SHA1_80   SDES = "no-AES_192_CM_HMAC_SHA1_80"
	SDESNoAES_192_CM_HMAC_SHA1_32   SDES = "no-AES_192_CM_HMAC_SHA1_32"
	SDESNoAES_CM_128_HMAC_SHA1_80   SDES = "no-AES_CM_128_HMAC_SHA1_80"
	SDESNoAES_CM_128_HMAC_SHA1_32   SDES = "no-AES_CM_128_HMAC_SHA1_32"
	SDESNoF8_128_HMAC_SHA1_80       SDES = "no-F8_128_HMAC_SHA1_80"
	SDESNoF8_128_HMAC_SHA1_32       SDES = "no-F8_128_HMAC_SHA1_32"
	SDESNoNULL_HMAC_SHA1_80         SDES = "no-NULL_HMAC_SHA1_80"
	SDESNoNULL_HMAC_SHA1_32         SDES = "no-NULL_HMAC_SHA1_32"
	SDESOnlyAEAD_AES_256_GCM        SDES = "only-AEAD_AES_256_GCM"
	SDESOnlyAEAD_AES_128_GCM        SDES = "only-AEAD_AES_128_GCM"
	SDESOnlyAES_256_CM_HMAC_SHA1_80 SDES = "only-AES_256_CM_HMAC_SHA1_80"
	SDESOnlyAES_256_CM_HMAC_SHA1_32 SDES = "only-AES_256_CM_HMAC_SHA1_32"
	SDESOnlyAES_192_CM_HMAC_SHA1_80 SDES = "only-AES_192_CM_HMAC_SHA1_80"
	SDESOnlyAES_192_CM_HMAC_SHA1_32 SDES = "only-AES_192_CM_HMAC_SHA1_32"
	SDESOnlyAES_CM_128_HMAC_SHA1_80 SDES = "only-AES_CM_128_HMAC_SHA1_80"
	SDESOnlyAES_CM_128_HMAC_SHA1_32 SDES = "only-AES_CM_128_HMAC_SHA1_32"
	SDESOnlyF8_128_HMAC_SHA1_80     SDES = "only-F8_128_HMAC_SHA1_80"
	SDESOnlyF8_128_HMAC_SHA1_32     SDES = "only-F8_128_HMAC_SHA1_32"
	SDESOnlyNULL_HMAC_SHA1_80       SDES = "only-NULL_HMAC_SHA1_80"
	SDESOnlyNULL_HMAC_SHA1_32       SDES = "only-NULL_HMAC_SHA1_32"
)

type TipoComandos

type TipoComandos string
const (
	Ping             TipoComandos = "ping"
	Offer            TipoComandos = "offer"
	Answer           TipoComandos = "answer"
	Delete           TipoComandos = "delete"
	Query            TipoComandos = "query"
	List             TipoComandos = "list"
	StartRecording   TipoComandos = "start recording"
	StopRecording    TipoComandos = "stop recording"
	PauseRecording   TipoComandos = "pause recording"
	BlockDTMF        TipoComandos = "block DTMF"
	UnblockDTMF      TipoComandos = "unblock DTMF"
	BlockMedia       TipoComandos = "block media"
	UnblockMedia     TipoComandos = "unblock media"
	SilenceMedia     TipoComandos = "silence media"
	UnsilenceMedia   TipoComandos = "unsilence media"
	StartForwarding  TipoComandos = "start forwarding"
	StopForwarding   TipoComandos = "stop forwarding"
	PlayMedia        TipoComandos = "play media"
	StopMedia        TipoComandos = "stop media"
	PlayDTMF         TipoComandos = "play DTMF"
	Statistics       TipoComandos = "statistics"
	Publish          TipoComandos = "publish"
	SubscribeRequest TipoComandos = "subscribe request"
	SubscribeAnswer  TipoComandos = "subscribe answer"
	Unsubscribe      TipoComandos = "unsubscribe"
)

type TotalRTP

type TotalRTP struct {
	Rtp  ValuesRTP `json:"RTP,omitempty" bencode:"RTP,omitempty"`
	Rtcp ValuesRTP `json:"RCTP,omitempty" bencode:"RTP,omitempty"`
}

type TransportProtocol

type TransportProtocol string

Definição do Protocolo de Transporte do SDP

const (
	RTP_AVP           TransportProtocol = "RTP/AVP"
	RTP_SAVP          TransportProtocol = "RTP/SAVP"
	RTP_AVPF          TransportProtocol = "RTP/AVPF"
	RTP_SAVPF         TransportProtocol = "RTP/SAVPF"
	UDP_TLS_RTP_SAVP  TransportProtocol = "UDP/TLS/RTP/SAVP"
	UDP_TLS_RTP_SAVPF TransportProtocol = "UDP/TLS/RTP/SAVPF"
)

type ValuesRTP

type ValuesRTP struct {
	Packets int `json:"packets,omitempty" bencode:"packets,omitempty"`
	Bytes   int `json:"bytes,omitempty" bencode:"bytes,omitempty"`
	Errors  int `json:"errors,omitempty" bencode:"errors,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL