diff --git a/sip/transport_udp.go b/sip/transport_udp.go index 91d0f6c..f2ded95 100644 --- a/sip/transport_udp.go +++ b/sip/transport_udp.go @@ -99,7 +99,14 @@ func (t *transportUDP) CreateConnection(ctx context.Context, laddr Addr, raddr A func (t *transportUDP) createConnection(ctx context.Context, laddr Addr, raddr Addr, handler MessageHandler) (Connection, error) { laddrStr := laddr.String() lc := &net.ListenConfig{} - udpconn, err := lc.ListenPacket(ctx, "udp", laddrStr) + + protocol := "udp" + if laddr.IP == nil && raddr.IP.To4() != nil { + // Use IPV4 if remote is same + protocol = "udp4" + } + + udpconn, err := lc.ListenPacket(ctx, protocol, laddrStr) if err != nil { return nil, err }