miconda left a comment (kamailio/kamailio#4336)
If it's NOT a URN scheme, then '@' is an invalid charachter in host part and should error out.
If it is a URN scheme, '@' is just another character in the host name and it's valid.
I haven't looked at the code, but from your comments above I guess that the URN value is stored in the host field of the URI structure? Would it be a case where the part after the `@` should be actually used as a host/domain (ie., the urn with the role of the username, and the value after `@` as domain/ip address)?