[Freeswitch-users] FXO and analogue phones

Merul Patel merul at mac.com
Sun Aug 23 10:27:45 PDT 2009


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1418 bytes
Desc: not available
Url : http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20090823/2a1d2794/attachment-0002.bin 


More information about the FreeSWITCH-users mailing list