[asterisk-bugs] [JIRA] (ASTERISK-27131) PJSIP: Registration problems with Polycom phones behind NAT
Asterisk Team (JIRA)
noreply at issues.asterisk.org
Fri Jul 14 03:11:58 CDT 2017
[ https://issues.asterisk.org/jira/browse/ASTERISK-27131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=237706#comment-237706 ]
Asterisk Team commented on ASTERISK-27131:
------------------------------------------
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].
> PJSIP: Registration problems with Polycom phones behind NAT
> -----------------------------------------------------------
>
> Key: ASTERISK-27131
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-27131
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Affects Versions: 13.17.0
> Reporter: Sergej Kasumovic
>
> This is not strictly a bug, but what end user will see manifests itself as bug.
> The issue affects Polycom phones and only if they are behind NAT and Asterisk server is somewhere else.
> Consider the following scenario:
> * Asterisk is publicly available and it is irrelevant if it is behind NAT or not
> * Polycom phone is behind NAT. This is important step.
> * PJSIP is used
> * Endpoint is defined with max_contacts > 1 in aor section
> * We define all options necessary to combat NAT (such as rewrite_contact=yes, force_rport, rtp_symmetric etc)
> * We register couple of different devices (softphones) with different registration expiry times on the same endpoint
> Now here is the problem with Polycom.
> Polycom will try to register and Asterisk will reply with 200 OK with all contacts currently registered to server. Since Polycom is behind NAT and we use rewrite_contact option, Polycom phone will not be able to find its Contact in response and will use the first one from the list.
> If the first one from the list, does not match its ;expires=T time, Polycom's registration timer will simply not work. What happens is that the phone won't re-register on time, will start losing registration as well as displaying messages about 'registration failure' on display and so on.
> One can easily replicate this with all Polycom models (VVX, Soundpoints etc).
> This used to work perfectly in chan_sip and of course it will work perfectly in PJSIP if max_contacts=1 and remove_existing=yes are set. The reason for it is that the only one Contact will be returned and this one will have correct ;expires parameter.
> It will also work if Asterisk and Polycom are in same network, as the phone will find the relevant Contact in the list.
> So I am attaching a patch.
> It is not perfect and you probably won't accept the way it is as it is not what the RFC says (return all bindings).
> What it does is that it will simply return the one and only Contact header that we got on register.
> Possibly this should be rewritten to have config option or something.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list