[Freeswitch-users] Large delay/latency when bridging SIP calls

Tor Petterson tpe at actimizer.com
Fri Mar 23 13:42:58 MSK 2012


Hi

I'm having problems with bridging sip calls in Freeswitch after the
revision from February 27 "only flush on break when its a blocking
situation part 1".
I am using Freeswitch in a phone center application where I first call
an agent, then call a lead and then bridge the two calls.
If I use a version after Feb 27. it takes about 5 seconds after
bridging before any sound gets through.
Here is an anonymized version of my sofia profile:

<profile name="external">
  <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
  <!-- This profile is only for outbound registrations to providers -->
  <gateways>
    <gateway name="provider">
	<!--/// account username *required* ///-->
	<param name="username" value="user"/>
	<!--/// auth realm: *optional* same as gateway name, if blank ///-->
	<param name="realm" value="provider IP"/>
	<!--/// username to use in from: *optional* same as username, if blank ///-->
	<!--<param name="from-user" value="cluecon"/>-->
	<!--/// domain to use in from: *optional* same as realm, if blank ///-->
	<param name="from-domain" value="FS host IP"/>
	<!--/// account password *required* ///-->
	<param name="password" value="Password"/>
	<!--/// extension for inbound calls: *optional* same as username, if
blank ///-->
	<param name="extension" value="test"/>
	<!--/// proxy host: *optional* same as realm, if blank ///-->
	<!--<param name="proxy" value="asterlink.com"/>-->
	<!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
	<!--<param name="register-proxy" value="mysbc.com"/>-->
	<!--/// expire in seconds: *optional* 3600, if blank ///-->
	<!--<param name="expire-seconds" value="60"/>-->
	<!--/// do not register ///-->
	<param name="register" value="false"/>
	<!-- which transport to use for register -->
	<!--<param name="register-transport" value="udp"/>-->
	<!--How many seconds before a retry when a failure or timeout occurs -->
	<!--<param name="retry-seconds" value="30"/>-->
	<!--Use the callerid of an inbound call in the from field on outbound
calls via this gateway -->
	<!--<param name="caller-id-in-from" value="false"/>-->
	<!--extra sip params to send in the contact-->
	<!--<param name="contact-params" value="tport=tcp"/>-->
	<!-- Put the extension in the contact -->
	<!--<param name="extension-in-contact" value="true"/>-->
	<!--send an options ping every x seconds, failure will unregister
and/or mark it down-->
	<!--<param name="ping" value="25"/>-->
	<!--<param name="cid-type" value="rpid"/>-->
	</gateway>
  </gateways>

  <aliases>
    <!--
    <alias name="outbound"/>
    <alias name="nat"/>
    -->
  </aliases>

  <domains>
    <domain name="all" alias="false" parse="true"/>
  </domains>

  <settings>
    <param name="debug" value="0"/>
	<!-- If you want FreeSWITCH to shutdown if this profile fails to
load, uncomment the next line. -->
	<!-- <param name="shutdown-on-fail" value="true"/> -->
    <param name="sip-trace" value="no"/>
    <param name="sip-capture" value="no"/>
    <param name="rfc2833-pt" value="101"/>
    <!-- RFC 5626 : Send reg-id and sip.instance -->
    <!--<param name="enable-rfc-5626" value="true"/> -->
    <param name="sip-port" value="$${external_sip_port}"/>
    <param name="dialplan" value="XML"/>
    <param name="context" value="public"/>
    <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="enable-100rel" value="true"/>-->
    <!--<param name="disable-srv503" value="true"/>-->
    <!-- This could be set to "passive" -->
    <param name="local-network-acl" value="localnet.auto"/>
    <param name="manage-presence" value="false"/>

    <!-- used to share presence info across sofia profiles
	 manage-presence needs to be set to passive on this profile
	 if you want it to behave as if it were the internal profile
	 for presence.
    -->
    <!-- Name of the db to use for this profile -->
    <!--<param name="dbname" value="share_presence"/>-->
    <!--<param name="presence-hosts" value="$${domain}"/>-->
    <!--<param name="force-register-domain" value="$${domain}"/>-->
    <!--all inbound reg will stored in the db using this domain -->
    <!--<param name="force-register-db-domain" value="$${domain}"/>-->
    <!-- ************************************************* -->

    <!--<param name="aggressive-nat-detection" value="true"/>-->
    <param name="inbound-codec-negotiation" value="generous"/>
    <param name="nonce-ttl" value="60"/>
    <param name="auth-calls" value="false"/>
    <!--
	DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
    -->
    <param name="rtp-ip" value="FS host IP"/>
    <param name="sip-ip" value="FS host IP"/>
    <param name="ext-rtp-ip" value="auto-nat"/>
    <param name="ext-sip-ip" value="auto-nat"/>
    <param name="rtp-timeout-sec" value="300"/>
    <param name="rtp-hold-timeout-sec" value="1800"/>
    <!--<param name="enable-3pcc" value="true"/>-->
    <param name="rtcp-audio-interval-msec" value="5000"/>

    <!-- TLS: disabled by default, set to "true" to enable -->
    <param name="tls" value="$${external_ssl_enable}"/>
    <!-- Set to true to not bind on the normal sip-port but only on
the TLS port -->
    <param name="tls-only" value="false"/>
    <!-- additional bind parameters for TLS -->
    <param name="tls-bind-params" value="transport=tls"/>
    <!-- Port to listen on for TLS requests. (5081 will be used if
unspecified) -->
    <param name="tls-sip-port" value="$${external_tls_port}"/>
    <!-- Location of the agent.pem and cafile.pem ssl certificates
(needed for TLS server) -->
    <param name="tls-cert-dir" value="$${external_ssl_dir}"/>
    <!-- Optionally set the passphrase password used by openSSL to
encrypt/decrypt TLS private key files -->
    <param name="tls-passphrase" value=""/>
    <!-- Verify the date on TLS certificates -->
    <param name="tls-verify-date" value="true"/>
    <!-- TLS verify policy, when registering/inviting gateways with
other servers (outbound) or handling inbound registration/invite
requests how should we verify their certificate -->
    <!-- set to 'in' to only verify incoming connections, 'out' to
only verify outgoing connections, 'all' to verify all connections,
also 'in_subjects', 'out_subjects' and 'all_subjects' for subject
validation. Multiple policies can be split with a '|' pipe -->
    <param name="tls-verify-policy" value="none"/>
    <!-- Certificate max verify depth to use for validating peer TLS
certificates when the verify policy is not none -->
    <param name="tls-verify-depth" value="2"/>
    <!-- If the tls-verify-policy is set to subjects_all or
subjects_in this sets which subjects are allowed, multiple subjects
can be split with a '|' pipe -->
    <param name="tls-verify-in-subjects" value=""/>
    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may
not work with TLSv1 -->
    <param name="tls-version" value="$${sip_tls_version}"/>

  </settings>
</profile>

-- 
Tor Petterson

tpe at actimizer.com

Tobaksvejen 25, 2. tv. - 2860 Søborg
Telephone: +45 39 55 05 32
www.actimizer.com



Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list