Polycom phone registration problem
Hello, I'm trying to setup freeswitch and I'm having a problem with a polycom phone registering. The phone is behind nat but the freeswitch is on a public network can anyone tell me if I don't have something configured correctly or where should look for the problem? <include> <domain name="zoogmedia.com"> <params> <param name="dial-string" value="{sip_invite_domain=${dialed_domain},presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> </params> <variables> <variable name="record_stereo" value="true"/> <variable name="default_gateway" value="$${default_provider}"/> <variable name="default_areacode" value="312"/> <variable name="transfer_fallback_extension" value="operator"/> </variables> <groups> <group name="default"> <users> <user id="14149823263"> <params> <param name="password" value="123456"/> </params> <variables> <variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/> <variable name="toll_allow" value="domestic,international,local"/> <variable name="accountcode" value="1000"/> <variable name="user_context" value="default"/> <variable name="outbound_caller_id_name" value="Sales" /> <variable name="outbound_caller_id_number" value="+14149823263" /> </variables> </user> </users> </group> </groups> </domain> </include> <configuration name="sofia.conf" description="sofia Endpoint"> <global_settings> <param name="log-level" value="0"/> <!-- <param name="auto-restart" value="false"/> --> <param name="debug-presence" value="0"/> <!-- <param name="capture-server" value="udp:homer.domain.com:5060"/> --> </global_settings> <profiles> <profile name="endpoints"> <gateways> <gateway name="TNG"> <param name="username" value="user"/> <param name="password" value="password"/> <param name="proxy" value="69.25.128.195:5060"/> <param name="from-domain" value="$${local_ip_v4}:5060"/> <param name="dtmf-type" value="rfc2833"/> <param name="extension-in-contact" value="true"/> <param name="caller-id-in-from" value="true"/> <param name="register" value="false"/> </gateway> </gateways> <aliases> </aliases> <domains> <domain name="all" alias="false" parse="true"/> </domains> <settings> <param name="debug" value="0"/> <param name="sip-trace" value="no"/> <param name="sip-capture" value="no"/> <param name="rtp-ip" value="$${external_rtp_ip}"/> <param name="sip-ip" value="$${external_sip_ip}"/> <param name="ext-rtp-ip" value="$${external_rtp_ip}"/> <param name="ext-sip-ip" value="$${external_sip_ip}"/> <param name="sip-port" value="5070"/> <param name="tls" value="$${external_ssl_enable}"/> <param name="tls-bind-params" value="transport=tls"/> <param name="tls-sip-port" value="$${external_tls_port}"/> <param name="tls-cert-dir" value="$${external_ssl_dir}"/> <param name="tls-version" value="$${sip_tls_version}"/> <param name="rfc2833-pt" value="101"/> <param name="dialplan" value="XML"/> <param name="context" value="default"/> <param name="dtmf-duration" value="2000"/> <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> <param name="outbound-codec-prefs" value="$${outbound_codec_prefs}"/> <param name="hold-music" value="$${hold_music}"/> <param name="rtp-timer-name" value="soft"/> <param name="local-network-acl" value="localnet.auto"/> <param name="manage-presence" value="false"/> <param name="inbound-codec-negotiation" value="greedy"/> <param name="nonce-ttl" value="60"/> <param name="auth-calls" value="false"/> <param name="rtp-timeout-sec" value="300"/> <param name="rtp-hold-timeout-sec" value="1800"/> <param name="rtp-rewrite-timestamps" value="true"/> <param name="track-calls" value="true"/> </settings> </profile> </profiles> </configuration> <?xml version="1.0" encoding="utf-8"?> <!-- http://wiki.freeswitch.org/wiki/Dialplan_XML --> <include> <context name="default"> <extension name="unloop"> <condition field="${unroll_loops}" expression="^true$"/> <condition field="${sip_looped_call}" expression="^true$"> <action application="deflect" data="${destination_number}"/> </condition> </extension> <extension name="check_auth" continue="true"> <condition field="${sip_authorized}" expression="^true$" break="never"> <anti-action application="respond" data="407"/> </condition> </extension> <extension name="local"> <condition field="${toll_allow}" expression="local" /> <condition field="destination_number" expression="^([0-9]{7})$"> <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}" /> <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}" /> <action application="bridge" data="sofia/gateway/TNG/+1${default_areacode}$1"/> </condition> </extension> <extension name="domestic"> <condition field="${toll_allow}" expression="domestic" /> <condition field="destination_number" expression="^(1{0,1}\d{10})$"> <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}" /> <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}" /> <action application="bridge" data="sofia/gateway/TNG/+$1"/> </condition> </extension> <extension name="international"> <condition field="${toll_allow}" expression="international" /> <condition field="destination_number" expression="^011?(\d+)$"> <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}" /> <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}" /> <action application="bridge" data="sofia/gateway/TNG/+$1"/> </condition> </extension> </context> </include>
Hi Elliot, IIRC, the scenario where the Polycom is behind NAT and the FS is on a public IP is one where Polycom fails because they are too stubborn to add rport to their SIP handling. (We've been barking at them for over 5 years on this issue.) There is a workaround in FS but it breaks non-Polycom phones that are on the same profile, so you'll need to have a separate profile for your Polycoms if you are in a mixed environment. In any case, for the sofia profile that has the Polycoms you should check out these two parameters: http://wiki.freeswitch.org/wiki/Sofia.conf.xml#NDLB-force-rport http://wiki.freeswitch.org/wiki/NAT_Traversal#NDLB-connectile-dysfunction You might also want to hop into #freeswitch on irc.freenode.net and talk to some of our resident Polycom veterans. -MC On Wed, Nov 16, 2011 at 9:14 PM, Elliott Vogel <elliott@zoogmedia.com>wrote:
Hello, I’m trying to setup freeswitch and I’m having a problem with a polycom phone registering. The phone is behind nat but the freeswitch is on a public network can anyone tell me if I don’t have something configured correctly or where should look for the problem?****
** **
<include>****
<domain name="zoogmedia.com">****
<params>****
<param name="dial-string" value=" {sip_invite_domain=${dialed_domain},presence_id=${dialed_user}@ ${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>****
</params>****
** **
<variables>****
<variable name="record_stereo" value="true"/>****
<variable name="default_gateway" value="$${default_provider}"/>****
<variable name="default_areacode" value="312"/>****
<variable name="transfer_fallback_extension" value="operator"/>****
</variables>****
** **
<groups>****
<group name="default">****
<users>****
<user id="14149823263">****
<params>****
<param name="password" value="123456"/>****
</params>****
<variables>****
<variable name="sip-force-contact" value=" NDLB-connectile-dysfunction"/>****
<variable name="toll_allow" value=" domestic,international,local"/>****
<variable name="accountcode" value="1000"/>****
<variable name="user_context" value="default"/>****
<variable name="outbound_caller_id_name" value="Sales" />*** *
<variable name="outbound_caller_id_number" value=" +14149823263" />****
</variables>****
</user>****
</users>****
</group>****
</groups>****
** **
</domain>****
</include>****
** **
** **
** **
<configuration name="sofia.conf" description="sofia Endpoint">****
** **
<global_settings>****
<param name="log-level" value="0"/>****
<!-- <param name="auto-restart" value="false"/> -->****
<param name="debug-presence" value="0"/>****
<!-- <param name="capture-server" value="udp:homer.domain.com:5060"/> -->****
</global_settings>****
** **
<profiles>****
** **
<profile name="endpoints">****
<gateways>****
<gateway name="TNG">****
<param name="username" value="user"/>****
<param name="password" value="password"/>****
<param name="proxy" value="69.25.128.195:5060"/>****
<param name="from-domain" value="$${local_ip_v4}:5060"/>****
<param name="dtmf-type" value="rfc2833"/>****
<param name="extension-in-contact" value="true"/>****
<param name="caller-id-in-from" value="true"/>****
<param name="register" value="false"/>****
</gateway>****
</gateways>****
<aliases>****
** **
</aliases>****
<domains>****
<domain name="all" alias="false" parse="true"/>****
</domains>****
<settings>****
<param name="debug" value="0"/>****
<param name="sip-trace" value="no"/>****
<param name="sip-capture" value="no"/>****
<param name="rtp-ip" value="$${external_rtp_ip}"/>****
<param name="sip-ip" value="$${external_sip_ip}"/>****
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>****
<param name="ext-sip-ip" value="$${external_sip_ip}"/>****
<param name="sip-port" value="5070"/>****
<param name="tls" value="$${external_ssl_enable}"/>****
<param name="tls-bind-params" value="transport=tls"/>****
<param name="tls-sip-port" value="$${external_tls_port}"/>****
<param name="tls-cert-dir" value="$${external_ssl_dir}"/>****
<param name="tls-version" value="$${sip_tls_version}"/>****
** **
<param name="rfc2833-pt" value="101"/>****
<param name="dialplan" value="XML"/>****
<param name="context" value="default"/>****
<param name="dtmf-duration" value="2000"/>****
<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/> ****
<param name="outbound-codec-prefs" value="$${outbound_codec_prefs} "/>****
<param name="hold-music" value="$${hold_music}"/>****
<param name="rtp-timer-name" value="soft"/>****
<param name="local-network-acl" value="localnet.auto"/>****
<param name="manage-presence" value="false"/>****
<param name="inbound-codec-negotiation" value="greedy"/>****
<param name="nonce-ttl" value="60"/>****
<param name="auth-calls" value="false"/>****
<param name="rtp-timeout-sec" value="300"/>****
<param name="rtp-hold-timeout-sec" value="1800"/>****
<param name="rtp-rewrite-timestamps" value="true"/>****
** **
<param name="track-calls" value="true"/>****
</settings>****
</profile>****
** **
</profiles>****
** **
</configuration>****
** **
<?xml version="1.0" encoding="utf-8"?>****
<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->****
<include>****
<context name="default">****
<extension name="unloop">****
<condition field="${unroll_loops}" expression="^true$"/>****
<condition field="${sip_looped_call}" expression="^true$">****
<action application="deflect" data="${destination_number}"/>****
</condition>****
</extension>****
<extension name="check_auth" continue="true">****
<condition field="${sip_authorized}" expression="^true$" break=" never">****
<anti-action application="respond" data="407"/>****
</condition>****
</extension>****
<extension name="local">****
<condition field="${toll_allow}" expression="local" />****
<condition field="destination_number" expression="^([0-9]{7})$">****
<action application="set" data=" effective_caller_id_name=${outbound_caller_id_name}" />****
<action application="set" data=" effective_caller_id_number=${outbound_caller_id_number}" />****
<action application="bridge" data=" sofia/gateway/TNG/+1${default_areacode}$1"/>****
</condition>****
</extension>****
<extension name="domestic">****
<condition field="${toll_allow}" expression="domestic" />****
<condition field="destination_number" expression="^(1{0,1}\d{10})$"> ****
<action application="set" data=" effective_caller_id_name=${outbound_caller_id_name}" />****
<action application="set" data=" effective_caller_id_number=${outbound_caller_id_number}" />****
<action application="bridge" data="sofia/gateway/TNG/+$1"/>****
</condition>****
</extension>****
<extension name="international">****
<condition field="${toll_allow}" expression="international" />****
<condition field="destination_number" expression="^011?(\d+)$">****
<action application="set" data=" effective_caller_id_name=${outbound_caller_id_name}" />****
<action application="set" data=" effective_caller_id_number=${outbound_caller_id_number}" />****
<action application="bridge" data="sofia/gateway/TNG/+$1"/>****
</condition>****
</extension>****
</context>****
</include>****
** **
** **
** **
** **
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Couldn't you do something like if $contact.address != ip.src_addr && sip_agent contains Polycom THEN NDLB-connectile-dysfunction -Matt ----- Original Message -----
From: "Michael Collins" <msc@freeswitch.org> To: "FreeSWITCH Users Help" <freeswitch-users@lists.freeswitch.org> Sent: Thursday, November 17, 2011 2:48:32 PM Subject: Re: [Freeswitch-users] Polycom phone registration problem
Hi Elliot,
IIRC, the scenario where the Polycom is behind NAT and the FS is on a public IP is one where Polycom fails because they are too stubborn to add rport to their SIP handling. (We've been barking at them for over 5 years on this issue.)
There is a workaround in FS but it breaks non-Polycom phones that are on the same profile, so you'll need to have a separate profile for your Polycoms if you are in a mixed environment. In any case, for the sofia profile that has the Polycoms you should check out these two parameters:
http://wiki.freeswitch.org/wiki/Sofia.conf.xml#NDLB-force-rport http://wiki.freeswitch.org/wiki/NAT_Traversal#NDLB-connectile-dysfunction
You might also want to hop into #freeswitch on irc.freenode.net and talk to some of our resident Polycom veterans.
-MC
On Wed, Nov 16, 2011 at 9:14 PM, Elliott Vogel < elliott@zoogmedia.com > wrote:
Hello, I’m trying to setup freeswitch and I’m having a problem with a polycom phone registering. The phone is behind nat but the freeswitch is on a public network can anyone tell me if I don’t have something configured correctly or where should look for the problem?
< include >
< domain name = " zoogmedia.com " >
< params >
< param name = " dial-string " value = " {sip_invite_domain=${dialed_domain},presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})} " />
</ params >
< variables >
< variable name = " record_stereo " value = " true " />
< variable name = " default_gateway " value = " $${default_provider} " />
< variable name = " default_areacode " value = " 312 " />
< variable name = " transfer_fallback_extension " value = " operator " />
</ variables >
< groups >
< group name = " default " >
< users >
< user id = " 14149823263 " >
< params >
< param name = " password " value = " 123456 " />
</ params >
< variables >
< variable name = " sip-force-contact " value = " NDLB-connectile-dysfunction " />
< variable name = " toll_allow " value = " domestic,international,local " />
< variable name = " accountcode " value = " 1000 " />
< variable name = " user_context " value = " default " />
< variable name = " outbound_caller_id_name " value = " Sales " />
< variable name = " outbound_caller_id_number " value = " +14149823263 " />
</ variables >
</ user >
</ users >
</ group >
</ groups >
</ domain >
</ include >
< configuration name = " sofia.conf " description = " sofia Endpoint " >
< global_settings >
< param name = " log-level " value = " 0 " />
<!-- <param name="auto-restart" value="false"/> -->
< param name = " debug-presence " value = " 0 " />
<!-- <param name="capture-server" value="udp: homer.domain.com:5060 "/> -->
</ global_settings >
< profiles >
< profile name = " endpoints " >
< gateways >
< gateway name = " TNG " >
< param name = " username " value = " user " />
< param name = " password " value = " password " />
< param name = " proxy " value = " 69.25.128.195:5060 " />
< param name = " from-domain " value = " $${local_ip_v4}:5060 " />
< param name = " dtmf-type " value = " rfc2833 " />
< param name = " extension-in-contact " value = " true " />
< param name = " caller-id-in-from " value = " true " />
< param name = " register " value = " false " />
</ gateway >
</ gateways >
< aliases >
</ aliases >
< domains >
< domain name = " all " alias = " false " parse = " true " />
</ domains >
< settings >
< param name = " debug " value = " 0 " />
< param name = " sip-trace " value = " no " />
< param name = " sip-capture " value = " no " />
< param name = " rtp-ip " value = " $${external_rtp_ip} " />
< param name = " sip-ip " value = " $${external_sip_ip} " />
< param name = " ext-rtp-ip " value = " $${external_rtp_ip} " />
< param name = " ext-sip-ip " value = " $${external_sip_ip} " />
< param name = " sip-port " value = " 5070 " />
< param name = " tls " value = " $${external_ssl_enable} " />
< param name = " tls-bind-params " value = " transport=tls " />
< param name = " tls-sip-port " value = " $${external_tls_port} " />
< param name = " tls-cert-dir " value = " $${external_ssl_dir} " />
< param name = " tls-version " value = " $${sip_tls_version} " />
< param name = " rfc2833-pt " value = " 101 " />
< param name = " dialplan " value = " XML " />
< param name = " context " value = " default " />
< param name = " dtmf-duration " value = " 2000 " />
< param name = " inbound-codec-prefs " value = " $${global_codec_prefs} " />
< param name = " outbound-codec-prefs " value = " $${outbound_codec_prefs} " />
< param name = " hold-music " value = " $${hold_music} " />
< param name = " rtp-timer-name " value = " soft " />
< param name = " local-network-acl " value = " localnet.auto " />
< param name = " manage-presence " value = " false " />
< param name = " inbound-codec-negotiation " value = " greedy " />
< param name = " nonce-ttl " value = " 60 " />
< param name = " auth-calls " value = " false " />
< param name = " rtp-timeout-sec " value = " 300 " />
< param name = " rtp-hold-timeout-sec " value = " 1800 " />
< param name = " rtp-rewrite-timestamps " value = " true " />
< param name = " track-calls " value = " true " />
</ settings >
</ profile >
</ profiles >
</ configuration >
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< include >
< context name = " default " >
< extension name = " unloop " >
< condition field = " ${unroll_loops} " expression = " ^true$ " />
< condition field = " ${sip_looped_call} " expression = " ^true$ "
< action application = " deflect " data = " ${destination_number} " />
</ condition >
</ extension >
< extension name = " check_auth " continue = " true " >
< condition field = " ${sip_authorized} " expression = " ^true$ " break = " never " >
< anti-action application = " respond " data = " 407 " />
</ condition >
</ extension >
< extension name = " local " >
< condition field = " ${toll_allow} " expression = " local " />
< condition field = " destination_number " expression = " ^([0-9]{7})$ " >
< action application = " set " data = " effective_caller_id_name=${outbound_caller_id_name} " />
< action application = " set " data = " effective_caller_id_number=${outbound_caller_id_number} " />
< action application = " bridge " data = " sofia/gateway/TNG/+1${default_areacode}$1 " />
</ condition >
</ extension >
< extension name = " domestic " >
< condition field = " ${toll_allow} " expression = " domestic " />
< condition field = " destination_number " expression = " ^(1{0,1}\d{10})$ " >
< action application = " set " data = " effective_caller_id_name=${outbound_caller_id_name} " />
< action application = " set " data = " effective_caller_id_number=${outbound_caller_id_number} " />
< action application = " bridge " data = " sofia/gateway/TNG/+$1 " />
</ condition >
</ extension >
< extension name = " international " >
< condition field = " ${toll_allow} " expression = " international " />
< condition field = " destination_number " expression = " ^011?(\d+)$ " >
< action application = " set " data = " effective_caller_id_name=${outbound_caller_id_name} " />
< action application = " set " data = " effective_caller_id_number=${outbound_caller_id_number} " />
< action application = " bridge " data = " sofia/gateway/TNG/+$1 " />
</ condition >
</ extension >
</ context >
</ include >
_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
FreeSWITCH-powered IP PBX: The CudaTel Communication Server
Official FreeSWITCH Sites
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE: http://lists.freeswitch.org/mailman/options/freeswitch-users
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Where would I set this in config? From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Brian West Sent: Thursday, November 17, 2011 7:15 PM To: FreeSWITCH Users Help Subject: Re: [Freeswitch-users] Polycom phone registration problem or just set force-rport=safe /b On Nov 17, 2011, at 5:39 PM, Matthew S. Crocker wrote: Couldn't you do something like if $contact.address != ip.src_addr && sip_agent contains Polycom THEN NDLB-connectile-dysfunction -Matt
in the sofia profile. /b On Nov 17, 2011, at 7:24 PM, Elliott Vogel wrote:
Where would I set this in config?
From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Brian West Sent: Thursday, November 17, 2011 7:15 PM To: FreeSWITCH Users Help Subject: Re: [Freeswitch-users] Polycom phone registration problem
or just set force-rport=safe
/b
participants (4)
-
Brian West
-
Elliott Vogel
-
Matthew S. Crocker
-
Michael Collins