Freeswitch Softphone

From FreeSWITCH Wiki
(Redirected from Freeswitch softphone)
Jump to: navigation, search

Contents

Configuration

See mod_portaudio for initial setup information.

Originating Calls

This example API will dial the FreeSWITCH conference bridge from portaudio. One advantage of this method vs. using "pa call" is that a dialplan is not necessary.

originate {effective_caller_id_name=FreeSWITCH,effective_caller_id_number=9193869900}portaudio/auto_answer &bridge({originate_timeout=60}sofia/external/888@conference.freeswitch.org)

Receiving Calls

Create the following dialplan entry

  <extension name="test">
    <condition field="destination_number" expression="^3$">
      <action application="bridge" data="portaudio"/>
    </condition>
  </extension>

And then call extension 3 with a softphone.

On the console you will see BRRRINNGGG and then type

pa answer

Music on Hold

Some config will need to be done to specify a default MOH file.

<document type="freeswitch/xml">
<!--
#set "pa_ring_file=C:\\freeswitch\\sounds\\_ring.wav"
-->
<!--
#set "pa_hold_file=C:\\freeswitch\\sounds\\_hold.wav"
-->

<section name="configuration" description="Various Configuration">
..
  <variables>
    <variable name="pa_ring_file" value="$${pa_ring_file}"/>
    <variable name="pa_hold_file" value="$${pa_hold_file}"/>


FreeSWITCH as a Dedicated Soft Phone

The following example configuration assumes an extension of 1000, area code of 208, and that freeswitch.local domain is pointed to the internal IP of FreeSWITCH.


/conf/directory/default/freeswitch.local

Setup the gateway.

   <include>
     <user id="1000">
       <gateways>
         <gateway name="freeswitch.local">
         	<param name="username" value="1000"/>
         	<param name="password" value="1234"/>
         	<param name="from-user" value=""/>
         	<param name="from-domain" value="freeswitch.local"/>
         	<param name="expire-seconds" value="60"/>
         	<param name="register" value="true"/>
         	<param name="retry_seconds" value="30"/>
         	<param name="extension" value="1000"/>
         	<param name="context" value="default"/>
         </gateway>
       </gateways>
       <params>
         <param name="password" value="1234"/>
       </params>
     </user>
   </include>


/conf/dialplan/default.xml

The example below assumes that the gateway is freeswitch.local which is the local phone system. In the example below make sure to change 1208 to your area code.

 <?xml version="1.0" encoding="utf-8"?>
 <include>
   <context name="default">
     <extension name="freeswitch.local">
       <condition field="destination_number" expression="^(\d{4})$">
         <action application="export" data="nolocal:absolute_codec_string=PCMU"/>
         <action application="set" data="effective_caller_id_number=5555551212"/>
         <action application="set" data="effective_caller_id_name=FreeSWITCH"/>
         <action application="bridge" data="sofia/gateway/freeswitch.local/$1"/>
       </condition>
     </extension>
         
     <extension name="freeswitch.local">
       <condition field="destination_number" expression="^(\d{7})$">
         <action application="export" data="nolocal:absolute_codec_string=PCMU"/>
         <action application="set" data="effective_caller_id_number=5555551212"/>
         <action application="set" data="effective_caller_id_name=FreeSWITCH"/>
         <action application="bridge" data="sofia/gateway/freeswitch.local/1208$1"/>
       </condition>
     </extension>
   
     <extension name="freeswitch.local">
       <condition field="destination_number" expression="^(\d{10})$">
         <action application="export" data="nolocal:absolute_codec_string=PCMU"/>
         <action application="set" data="effective_caller_id_number=5555551212"/>
         <action application="set" data="effective_caller_id_name=FreeSWITCH"/>
         <action application="bridge" data="sofia/gateway/freeswitch.local/1$1"/>
       </condition>
     </extension>
   
     <extension name="freeswitch.local">
       <condition field="destination_number" expression="^(\d{11})$">
         <action application="export" data="nolocal:absolute_codec_string=PCMU"/>
         <action application="set" data="effective_caller_id_number=5555551212"/>
         <action application="set" data="effective_caller_id_name=FreeSWITCH"/>
         <action application="bridge" data="sofia/gateway/freeswitch.local/$1"/>
       </condition>
     </extension>
   </context>
 </include>
       

/conf/directory/default

Remove all local extensions .xml files or rename them with .noload


/conf/sip_profiles/outbound.xml

If FreeSWITCH is behind the same NAT then comment out ext-rtp-ip, and ext-sip-ip. "

 <include>
   <context name="public">
 
     <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="public_extensions">
       <condition field="destination_number" expression="^(10[01][0-9])$">
 	     <action application="bridge" data="portaudio"/>
       </condition>
     </extension>
 
     <extension name="public_did">
       <condition field="destination_number" expression="^(1000)$">
 	     <action application="bridge" data="portaudio"/>
       </condition>
     </extension>
 
   </context>
 </include>

See Also