Skip to content

Conversation

@basicus
Copy link

@basicus basicus commented Dec 8, 2025

Added support for the tel scheme in Uri

@emiago
Copy link
Owner

emiago commented Dec 10, 2025

Hi @basicus . It was some open topic, and it was though to be generic and based on scheme you could read different values of URI
Do you mind sharing without your fix,, how this gets parsed? Is user put into different field like Host.

@basicus
Copy link
Author

basicus commented Dec 11, 2025

Hi!
@emiago
I used RFC https://datatracker.ietf.org/doc/html/rfc3966 This is main actual tel uri standard. Other rfc is describing specific additional params.

tel uri contain info about subscriber (telephone-subscriber field in ABNF) like username in sip uri.
Specifically in RFC said:

The "tel" URI is a globally unique identifier ("name") only; it does
not describe the steps necessary to reach a particular number and
does not imply dialling semantics. Furthermore, it does not refer to
a specific physical device, only to a telephone number.

telephone-subscriber can be global-number / local-number and contain like SIP uri-params. Its contain info about user and not contain info about host.

I've modified Uri parsing flow by skipping some steps (like uriStateHost, uriStatePort) because they are not in the scheme Tel uri. I also added the build of a valid string, including tests.

With this fix made possible correct parse VoLTE SIP INVTE with tel uri in From/To Fields and in Request Line.

@emiago
Copy link
Owner

emiago commented Dec 14, 2025

Hi @basicus . We had this open topic already, so here are some thinking back then.

  • sip.Uri should be generically parsed, regardless of scheme.
  • reading special scheme could be resolved based on Scheme value and read values differentely

So my question to you, if tel uri is pased as this uri, is actually number resolved as host or there are more problems?

BTW: I am not yet rejetcing this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants