Open CelsoGalo opened 5 years ago
In the example above I am trying to start a call, but actually my greatest need is for being able to handle an incoming call with URN indication in the R-URI and To header, like this:
INVITE urn:service.sos.ambulance SIP/2.0 To: <urn:service.sos.ambulance> From: <sip:5000@192.168.7.13>; tag=snl_jskfsjkjiwjf
Hi Dave, I was able to handle an incoming call (through createUAS) using URN, so actually the error I have is only when trying to place a call to outbound proxy (1st post here).
It seems to me that the URI validation that is failing could simply include the URN logic and allow it to proceed, as the call is going anyway for the outbound proxy. What do you think?
can you show me a drachtio server log (debug) for the incoming call? I'd like to first verify how that is being handled. Then I can look at the outbound side changes needed.
How are you generating urn scheme test calls? Does sipp support that?
Hey Dave, here are the files for the successful incoming call with URN. I created myself a very dummy program in NodeJS for testing it. You find logs, the javascript file and the wireshark trace in this zip file. Thanks!! incoming-OK-with-URN.zip
in your outbound example, you are tryin to send to
sip:urn:service:sos.fire
Since RFC 5031 defines a URN namespace, I don't think the sip:
scheme should be in front of the urn
scheme should it ? ie I would have expected the uri to be urn:service:sos.fire
.
Meanwhile, as far as routing a urn scheme, the spec says:
Since service URNs are not routable, a SIP proxy or user agent has to
translate the service URN into a routable URI for a location-
appropriate service provider, such as a SIP URL. A Location-to-
Service Translation Protocol (LoST) [LOST] is expected to be used as
a resolution system for mapping service URNs to URLs based on
geographic location.
This indicates to me that there needs to be a translation function to produce a sip uri from a urn.
Finally, this spec dates to 2008 and I have never see any interest in it (until your request). I'm not sure how much of a priority to make this.
At a minimum, we would need to clarify what the outbound uri looks like (per above). Examples from commercial or deployed products would be helpful
Hello Dave! Thanks for the quick answer!
Actually I have not added 'sip:' in the beginning, that was done automatically by Drachtio. If you look my previous post, you see what I used:
srf.createUAC('urn:service:sos.fire', { proxy: '192.168.7.15'});
About the Service URN usage, it is mandatory for Next Generation 911 services (NG911 in north america, NG112 in Europe). The standards are being discussed for a while but its adoptions by government entities are going real in these days. See this big contract, for example: https://www.globenewswire.com/news-release/2019/08/21/1904570/0/en/Atos-State-of-California-selects-Atos-Public-Safety-LLC-to-empower-Next-Generation-9-1-1-transformation.html
If you would like to receive wireshark traces, I can give you also.
Thank you so much for your help.
Sorry Dave, I did not answer you completely.
My outbound proxy is set this way: sip:192.168.7.15:5060;transport=tcp. I used it successfully this way in other scenarios.
I assumed that I should use the outbound proxy settings because based on URN dialing the destination cannot be determined based on the original R-URI (or R-URN).
Taking back the RFC portion that you put above, let me clarify that SIP call based on URN may be routed through some servers by using Route headers attached, but of course for the final destination it needs to be dereferenced to a pure routable URI (like SIP URI) so it can reach the final destination.
On my case, I would need to handle service URNs on both UAC (not working) and UAS (seems working for basic incoming call handling).
Hello Dave! I hope you are doing well.
I am missing for a very important project the support for URN dialing (like described at RFC5031). Is there any chance that Drachtio starts supporting it? I can help you on testing, debugging, ... :-)
On my case I am trying to send an INVITE through an outbound proxy by doing this:
srf.createUAC('urn:service:sos.fire', { proxy: '192.168.7.15'});
Please check out these logs: drachtio-sandbox-calling.zip
The error I see is the following (although:
SipDialogController::doSendRequestOutsideDialog - invalid request-uri: INVITE sip:urn:service:sos.fire SIP/2.0
I see a great potential for other projects here if we overcome this limitation.
Thank you so much! Celso