Files
protocol/livekit/sip.go
2024-06-20 17:49:23 +03:00

97 lines
2.4 KiB
Go

package livekit
// ToProto implements DataPacket in Go SDK.
func (p *SipDTMF) ToProto() *DataPacket {
return &DataPacket{
Value: &DataPacket_SipDtmf{
SipDtmf: p,
},
}
}
// AsInbound converts legacy SIPTrunkInfo to SIPInboundTrunkInfo.
func (p *SIPTrunkInfo) AsInbound() *SIPInboundTrunkInfo {
if p == nil || p.Kind == SIPTrunkInfo_TRUNK_OUTBOUND {
return nil
}
var nums []string
if p.OutboundNumber != "" {
nums = []string{p.OutboundNumber}
}
return &SIPInboundTrunkInfo{
SipTrunkId: p.SipTrunkId,
Name: p.Name,
Metadata: p.Metadata,
Numbers: nums,
AllowedAddresses: p.InboundAddresses,
AllowedNumbers: p.InboundNumbers,
AuthUsername: p.InboundUsername,
AuthPassword: p.InboundPassword,
}
}
// AsTrunkInfo converts SIPInboundTrunkInfo to legacy SIPTrunkInfo.
func (p *SIPInboundTrunkInfo) AsTrunkInfo() *SIPTrunkInfo {
if p == nil {
return nil
}
var num string
if len(p.Numbers) != 0 {
num = p.Numbers[0]
}
return &SIPTrunkInfo{
SipTrunkId: p.SipTrunkId,
Kind: SIPTrunkInfo_TRUNK_INBOUND,
Name: p.Name,
Metadata: p.Metadata,
OutboundNumber: num,
InboundAddresses: p.AllowedAddresses,
InboundNumbers: p.AllowedNumbers,
InboundUsername: p.AuthUsername,
InboundPassword: p.AuthPassword,
}
}
// AsOutbound converts legacy SIPTrunkInfo to SIPOutboundTrunkInfo.
func (p *SIPTrunkInfo) AsOutbound() *SIPOutboundTrunkInfo {
if p == nil || p.Kind == SIPTrunkInfo_TRUNK_INBOUND {
return nil
}
var nums []string
if p.OutboundNumber != "" {
nums = []string{p.OutboundNumber}
}
return &SIPOutboundTrunkInfo{
SipTrunkId: p.SipTrunkId,
Name: p.Name,
Metadata: p.Metadata,
Address: p.OutboundAddress,
Transport: p.Transport,
Numbers: nums,
AuthUsername: p.OutboundUsername,
AuthPassword: p.OutboundPassword,
}
}
// AsTrunkInfo converts SIPOutboundTrunkInfo to legacy SIPTrunkInfo.
func (p *SIPOutboundTrunkInfo) AsTrunkInfo() *SIPTrunkInfo {
if p == nil {
return nil
}
var num string
if len(p.Numbers) != 0 {
num = p.Numbers[0]
}
return &SIPTrunkInfo{
SipTrunkId: p.SipTrunkId,
Kind: SIPTrunkInfo_TRUNK_OUTBOUND,
Name: p.Name,
Metadata: p.Metadata,
OutboundAddress: p.Address,
Transport: p.Transport,
OutboundNumber: num,
OutboundUsername: p.AuthUsername,
OutboundPassword: p.AuthPassword,
}
}