I have a Freeswitch setup working on an Alix embedded platform in conjunction with a USB FXO device from Sangoma. My goal is to be able to either answer incoming calls on a softphone or on a POTS handset elsewhere in the building, and to also be able to make outgoing calls from either. For clarity, the analogue line has two physical extensions, one connected to the POTS and the other to the FXO.

I can make and receive calls fine, but have problems when the call is answered on the POTS handset.

Here is the dialplan I initially used in /opt/freeswitch/conf/ dialplans/public/01_incoming.xml:

<include>
  <extension name="public_did">
    <condition field="${strftime(%w)}" expression="^(\d)$">
<!-- There seems to be a delay of 7 seconds from when FS starts dealing with the call and from when it starts ringing -->
      <action application="sleep" data="23000"/>
      <action application="set" data="domain_name=$${domain}"/>
      <action application="transfer" data="1001 XML default"/>
    </condition>
  </extension>
</include>

It's pretty basic, and if the softphone is not registered or does not answer then the call goes to voicemail. However the call will always go to voicemail, and the voicemail application will begin to execute after the call has been answered on the POTS handset.

I've been trying to make the dialplan more useful, by having it ring the softphone immediately, and only transfer the call to the voicemail application if the line is still ringing. I'm in the UK, hence my choice of frequencies in the tone_detect application:

<include>
  <extension name="public_did">
    <condition field="${strftime(%w)}" expression="^(\d)$">
<!-- There seems to be a delay of 7 seconds from when FS starts dealing with the call and from when it starts ringing -->
      <action application="set" data="call_timeout=23"/>
      <action application="set" data="continue_on_fail=true"/>
      <action application="set" data="hangup_after_bridge=true"/>
<action application="bridge" data="sofia/internal/1001%$$ {domain}"/>
      <action application="sleep" data="23000"/>
<action application="tone_detect" data="ring 400,450 r +5000 set RING=true"/>
      <action application="transfer" data="public_answer_and_email"/>
    </condition>
  </extension>

<extension name="public_answer_and_email">
    <condition field="RING" expression="true">
       <action application="answer"/>
       <action application="voicemail" data="default $${domain} 1001"/>
    </condition>
  </extension>
</include>

Unfortunately, this is not working, and the logs are not yielding anything the is helpful to me. Is my use of the tone_detect application and the basic dialplan correct?

Merul

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
FreeSWITCH-users mailing list
[email protected]
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

Reply via email to