[Home]

Summary:ASTERISK-25990: PJSIP TLS registration should respect client_uri scheme when generating Contact URI
Reporter:Sebastian Damm (sdamm)Labels:
Date Opened:2016-05-04 04:11:32Date Closed:2016-05-16 13:29:00
Priority:MinorRegression?
Status:Closed/CompleteComponents:Channels/chan_pjsip Resources/res_pjsip_outbound_registration
Versions:13.8.2 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Attachments:
Description:As already written on the Asterisk-User list, Asterisk always sends a sips Contact URI when registering via TLS. This can be bad when interoperating with a server which uses sip:a@b.de;transport=tls Contact URIs. Then inbound calls don't work, because Asterisk expects a sips URI in the incoming INVITE as well.

The discussion can be found here:
http://lists.digium.com/pipermail/asterisk-users/2016-May/289096.html

Asterisk should respect the client_uri scheme and send an appropriate Contact URI.

This is how it should be:

client_uri=sips:1234567@example.org
--> Contact: sips:1234567@1.2.3.4

client_uri=sip:1234567@example.org\;transport=tls
--> Contact: sip:1234567@1.2.3.4;transport=tls

Content of list post:

{quote}
Hi,

I'm registering an Asterisk against my TLS capable service, using
res_pjsip. My config looks like this:
{noformat}
[devtrunk_reg]
type=registration
outbound_auth=devtrunk_auth
server_uri=sip:example.org\;transport=tls
client_uri=sip:1234567 at example.org\;transport=tls
outbound_proxy=sip:dev.example.org\;transport=tls\;lr
contact_user=1234567
retry_interval=60
expiration=600
line=yes
endpoint=222

[devtrunk_auth]
type=auth
auth_type=userpass
username=1234567
password=secret
realm=example.org
{noformat}

It registers fine, but this is what the REGISTER request looks like:
{noformat}
<--- Transmitting SIP request (903 bytes) to TLS:1.2.3.4:5061 --->
REGISTER sip:example.org;transport=tls SIP/2.0
Via: SIP/2.0/TLS
9.8.7.6:55664;rport;branch=z9hG4bKPjNlqlgmSOP7O4LqOTUqJtFZB8fTmc0ZKL;alias
Route: <sip:dev.example.org;transport=tls;lr>
From: <sip:1234567 at example.org>;tag=vhDrzKtv9lMR53ZJFgVTnvGcACJiN6Aa
To: <sip:1234567 at example.org>
Call-ID: nzgHdLyliuBwecmae2Y..0oY2DqYjH0V
CSeq: 14861 REGISTER
Contact: <sips:1234567 at 9.8.7.6:55664;transport=TLS;line=dhslasr>
Expires: 600
Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL,
UPDATE, PRACK, MESSAGE, REFER, REGISTER
Max-Forwards: 70
User-Agent: Asterisk PBX 13.8.2
Content-Length:  0
{noformat}

What I really don't like is the Contact line. It starts with sips
instead of sip. This makes inbound calls not work because the server
sends a sip Contact header instead of sips. And Asterisk rejects that.

In the header of the 480 response I see this line:

Warning: 381 SIP "SIPS Required"

Since I can't reconfigure the server to send sips Contact URIs, I need
Asterisk to send out a contact URI in the register, that starts with
sip: as well. Then inbound calls would work.

Is there any way to get rid of this sips URI?

Interestingly, when sending out calls, the Contact URI starts with sip
instead of sips, so outbound calls work.
{quote}
Comments:By: Asterisk Team (asteriskteam) 2016-05-04 04:11:34.085-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].