adding public context for security.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6578 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Brian West 2007-12-08 19:03:12 +00:00
parent 13843320a3
commit 38368b21a9
27 changed files with 374 additions and 209 deletions

View File

@ -12,6 +12,7 @@
<param name="login" value="myjid@myserver.com/talk"/> <param name="login" value="myjid@myserver.com/talk"/>
<param name="password" value="mypass"/> <param name="password" value="mypass"/>
<param name="dialplan" value="XML"/> <param name="dialplan" value="XML"/>
<param name="context" value="public"/>
<param name="message" value="Jingle all the way"/> <param name="message" value="Jingle all the way"/>
<param name="rtp-ip" value="$${bind_server_ip}"/> <param name="rtp-ip" value="$${bind_server_ip}"/>
<!-- <param name="ext-rtp-ip" value="$${external_rtp_ip"/> --> <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip"/> -->
@ -38,6 +39,7 @@
<param name="name" value="$${xmpp_server_profile}"/> <param name="name" value="$${xmpp_server_profile}"/>
<param name="password" value="secret"/> <param name="password" value="secret"/>
<param name="dialplan" value="XML"/> <param name="dialplan" value="XML"/>
<param name="context" value="public"/>
<param name="rtp-ip" value="$${bind_server_ip}"/> <param name="rtp-ip" value="$${bind_server_ip}"/>
<param name="server" value="jabber.server.org:5347"/> <param name="server" value="jabber.server.org:5347"/>
<!-- disable to trade async for more calls --> <!-- disable to trade async for more calls -->

View File

@ -3,6 +3,7 @@
<param name="debug" value="0"/> <param name="debug" value="0"/>
<param name="ip" value="$${local_ip_v4}"/> <param name="ip" value="$${local_ip_v4}"/>
<param name="port" value="4569"/> <param name="port" value="4569"/>
<param name="context" value="public"/>
<param name="dialplan" value="XML"/> <param name="dialplan" value="XML"/>
<param name="codec-prefs" value="PCMU@20i,PCMA,speex,L16"/> <param name="codec-prefs" value="PCMU@20i,PCMA,speex,L16"/>
<param name="codec-master" value="us"/> <param name="codec-master" value="us"/>

View File

@ -1,207 +1,209 @@
<context name="default"> <include>
<extension name="intercept"> <context name="default">
<condition field="destination_number" expression="^886$"> <extension name="intercept">
<action application="answer"/> <condition field="destination_number" expression="^886$">
<action application="intercept" data="${db(select/last_dial/global)}"/> <action application="answer"/>
<action application="sleep" data="2000"/> <action application="intercept" data="${db(select/last_dial/global)}"/>
</condition> <action application="sleep" data="2000"/>
</extension> </condition>
</extension>
<extension name="intercept-ext"> <extension name="intercept-ext">
<condition field="destination_number" expression="^886(\d+)$"> <condition field="destination_number" expression="^886(\d+)$">
<action application="answer"/> <action application="answer"/>
<action application="intercept" data="${db(select/last_dial_ext/$1)}"/> <action application="intercept" data="${db(select/last_dial_ext/$1)}"/>
<action application="sleep" data="2000"/> <action application="sleep" data="2000"/>
</condition> </condition>
</extension> </extension>
<extension name="redial"> <extension name="redial">
<condition field="destination_number" expression="^870$"> <condition field="destination_number" expression="^870$">
<action application="transfer" data="${db(select/last_dial/${caller_id_number})}"/> <action application="transfer" data="${db(select/last_dial/${caller_id_number})}"/>
</condition> </condition>
</extension> </extension>
<extension name="global" continue="true"> <extension name="global" continue="true">
<condition field="${network_addr}" condition="^$"> <condition field="${network_addr}" condition="^$">
<action application="set" data="use_profile=${cond(${is_lan_addr($${local_ip_v4})} == yes ? nat : default)}"/> <action application="set" data="use_profile=${cond(${is_lan_addr($${local_ip_v4})} == yes ? nat : default)}"/>
<anti-action application="set" data="use_profile=${cond(${is_lan_addr(${network_addr})} == yes ? nat : default)}"/> <anti-action application="set" data="use_profile=${cond(${is_lan_addr(${network_addr})} == yes ? nat : default)}"/>
</condition> </condition>
<!-- This will setup some variables if the user isn't authenticated. <!-- This will setup some variables if the user isn't authenticated.
numbering_plan is required for the demo to function properly. numbering_plan is required for the demo to function properly.
--> -->
<condition field="${numbering_plan}" condition="^1$"> <condition field="${numbering_plan}" condition="^1$">
<action application="set_user" data="default@${domain}"/> <action application="set_user" data="default@${domain}"/>
</condition> </condition>
<condition> <condition>
<action application="info"/> <action application="info"/>
<action application="db" data="insert/spymap/${caller_id_number}/${uuid}"/> <action application="db" data="insert/spymap/${caller_id_number}/${uuid}"/>
<action application="db" data="insert/last_dial/${caller_id_number}/${destination_number}"/> <action application="db" data="insert/last_dial/${caller_id_number}/${destination_number}"/>
<action application="db" data="insert/last_dial/global/${uuid}"/> <action application="db" data="insert/last_dial/global/${uuid}"/>
</condition> </condition>
</extension> </extension>
<extension name="eavesdrop"> <extension name="eavesdrop">
<condition field="destination_number" expression="^88(.*)$|^*0(.*)$"> <condition field="destination_number" expression="^88(.*)$|^*0(.*)$">
<action application="answer"/> <action application="answer"/>
<action application="eavesdrop" data="${db(select/spymap/$1)}"/> <action application="eavesdrop" data="${db(select/spymap/$1)}"/>
</condition> </condition>
</extension> </extension>
<extension name="star-69"> <extension name="star-69">
<condition field="destination_number" expression="^\*69$|^869$"> <condition field="destination_number" expression="^\*69$|^869$">
<action application="transfer" data="${db(select/call_return/${caller_id_number})}"/> <action application="transfer" data="${db(select/call_return/${caller_id_number})}"/>
</condition> </condition>
</extension> </extension>
<extension name="add-group"> <extension name="add-group">
<condition field="destination_number" expression="^81(\d{2})$"> <condition field="destination_number" expression="^81(\d{2})$">
<action application="answer"/> <action application="answer"/>
<action application="group" data="insert:$1:${sofia_contact(${sip_from_user}@${domain})}"/> <action application="group" data="insert:$1:${sofia_contact(${sip_from_user}@${domain})}"/>
<action application="gentones" data="%(1000, 0, 640)"/> <action application="gentones" data="%(1000, 0, 640)"/>
</condition> </condition>
</extension> </extension>
<extension name="del-group"> <extension name="del-group">
<condition field="destination_number" expression="^80(\d{2})$"> <condition field="destination_number" expression="^80(\d{2})$">
<action application="answer"/> <action application="answer"/>
<action application="group" data="delete:$1:${sofia_contact(${sip_from_user}@${domain})}"/> <action application="group" data="delete:$1:${sofia_contact(${sip_from_user}@${domain})}"/>
<action application="gentones" data="%(1000, 0, 320)"/> <action application="gentones" data="%(1000, 0, 320)"/>
</condition> </condition>
</extension> </extension>
<extension name="call-group-simo"> <extension name="call-group-simo">
<condition field="destination_number" expression="^82(\d{2})$"> <condition field="destination_number" expression="^82(\d{2})$">
<action application="bridge" data="${group(call:$1)}"/> <action application="bridge" data="${group(call:$1)}"/>
</condition> </condition>
</extension> </extension>
<extension name="call-group-order"> <extension name="call-group-order">
<condition field="destination_number" expression="^83(\d{2})$"> <condition field="destination_number" expression="^83(\d{2})$">
<action application="set" data="call_timeout=10"/> <action application="set" data="call_timeout=10"/>
<action application="bridge" data="${group(call:$1:order)}"/> <action application="bridge" data="${group(call:$1:order)}"/>
</condition> </condition>
</extension> </extension>
<!-- <!--
if the calling party is the called party, go to their VM if the calling party is the called party, go to their VM
if the calling party is NOT the called party dial the extension if the calling party is NOT the called party dial the extension
(1000-1019) for 30 seconds and go to voicemail if the (1000-1019) for 30 seconds and go to voicemail if the
call fails (continue_on_fail=true), otherwise hang up after a call fails (continue_on_fail=true), otherwise hang up after a
successful bridge (hangup_after-bridge=true) successful bridge (hangup_after-bridge=true)
--> -->
<extension name="Local_Extension"> <extension name="Local_Extension">
<condition field="destination_number" expression="^(10[01][0-9])$" continue="on-true"> <condition field="destination_number" expression="^(10[01][0-9])$" continue="on-true">
<action application="set" data="dialed_ext=$1"/> <action application="set" data="dialed_ext=$1"/>
</condition> </condition>
<condition field="destination_number" expression="^${caller_id_number}$"> <condition field="destination_number" expression="^${caller_id_number}$">
<action application="set" data="voicemail_authorized=${sip_authorized}"/> <action application="set" data="voicemail_authorized=${sip_authorized}"/>
<action application="voicemail" data="check default $${domain} ${dialed_ext}"/> <action application="voicemail" data="check default $${domain} ${dialed_ext}"/>
<anti-action application="set" data="call_timeout=30000"/> <anti-action application="set" data="call_timeout=30000"/>
<anti-action application="set" data="hangup_after_bridge=true"/> <anti-action application="set" data="hangup_after_bridge=true"/>
<anti-action application="set" data="continue_on_fail=true"/> <anti-action application="set" data="continue_on_fail=true"/>
<anti-action application="db" data="insert/call_return/${dialed_ext}/${caller_id_number}"/> <anti-action application="db" data="insert/call_return/${dialed_ext}/${caller_id_number}"/>
<anti-action application="db" data="insert/last_dial_ext/${dialed_ext}/${uuid}"/> <anti-action application="db" data="insert/last_dial_ext/${dialed_ext}/${uuid}"/>
<anti-action application="bridge" data="sofia/$${domain}/${dialed_ext}"/> <anti-action application="bridge" data="sofia/$${domain}/${dialed_ext}"/>
<anti-action application="voicemail" data="default $${domain} ${dialed_ext}"/> <anti-action application="voicemail" data="default $${domain} ${dialed_ext}"/>
</condition> </condition>
</extension> </extension>
<!-- dial via SIP uri --> <!-- dial via SIP uri -->
<extension name="SIP_URI"> <extension name="SIP_URI">
<condition field="destination_number" expression="^sip:(.*)$"> <condition field="destination_number" expression="^sip:(.*)$">
<action application="bridge" data="sofia/${use_profile}/$1"/> <action application="bridge" data="sofia/${use_profile}/$1"/>
</condition> </condition>
</extension> </extension>
<!-- <!--
start a dynamic conference with the settings of the start a dynamic conference with the settings of the
"default" conference profile in conference.conf.xml "default" conference profile in conference.conf.xml
--> -->
<extension name="Conferences"> <extension name="Conferences">
<condition field="destination_number" expression="^(3\d{3})$"> <condition field="destination_number" expression="^(3\d{3})$">
<action application="conference" data="$1@default"/> <action application="conference" data="$1@default"/>
</condition> </condition>
</extension> </extension>
<!-- dial the freeswitch conference via SIP--> <!-- dial the freeswitch conference via SIP-->
<extension name="FS_Conf_SIP"> <extension name="FS_Conf_SIP">
<condition field="destination_number" expression="^888$"> <condition field="destination_number" expression="^888$">
<action application="bridge" data="sofia/${use_profile}/888@conference.freeswitch.org"/> <action application="bridge" data="sofia/${use_profile}/888@conference.freeswitch.org"/>
</condition> </condition>
</extension> </extension>
<extension name="static-park"> <extension name="static-park">
<condition field="destination_number" expression="^8192$"> <condition field="destination_number" expression="^8192$">
<action application="fifo" data="default in undef /ram/swimp.raw"/> <action application="fifo" data="default in undef /ram/swimp.raw"/>
</condition> </condition>
</extension> </extension>
<extension name="unpark"> <extension name="unpark">
<condition field="destination_number" expression="^8193$"> <condition field="destination_number" expression="^8193$">
<action application="answer"/> <action application="answer"/>
<action application="fifo" data="default out nowait"/> <action application="fifo" data="default out nowait"/>
</condition> </condition>
</extension> </extension>
<!-- <!--
if the number starts with a *393 then strip the *393 if the number starts with a *393 then strip the *393
and dial the remainder of the number out our "fwd" gateway and dial the remainder of the number out our "fwd" gateway
--> -->
<extension name="FWD"> <extension name="FWD">
<condition field="destination_number" expression="^\*393([\*\d]+)$"> <condition field="destination_number" expression="^\*393([\*\d]+)$">
<!-- Just incase they are using Asterisk let's disable VAD and only use G.711 --> <!-- Just incase they are using Asterisk let's disable VAD and only use G.711 -->
<action application="export" data="rtp_disable_vad_out=true"/> <action application="export" data="rtp_disable_vad_out=true"/>
<action application="export" data="absolute_codec_string=PCMU@20i,PCMA@20i"/> <action application="export" data="absolute_codec_string=PCMU@20i,PCMA@20i"/>
<action application="bridge" data="sofia/gateway/fwd/$1"/> <action application="bridge" data="sofia/gateway/fwd/$1"/>
</condition> </condition>
</extension> </extension>
<!-- a sample IVR --> <!-- a sample IVR -->
<extension name="IVR_Demo"> <extension name="IVR_Demo">
<condition field="destination_number" expression="5000"> <condition field="destination_number" expression="5000">
<action application="ivr" data="demo"/> <action application="ivr" data="demo"/>
</condition> </condition>
</extension> </extension>
<!-- <!--
Parking extensions... transferring calls to 5900 will park them in a Parking extensions... transferring calls to 5900 will park them in a
queue. dialing 5901 will let you pull them out of the queue. queue. dialing 5901 will let you pull them out of the queue.
--> -->
<extension name="park"> <extension name="park">
<condition field="destination_number" expression="^5900$"> <condition field="destination_number" expression="^5900$">
<action application="fifo" data="default in undef soundfiles/swimp.raw"/> <action application="fifo" data="default in undef soundfiles/swimp.raw"/>
</condition> </condition>
</extension> </extension>
<extension name="unpark"> <extension name="unpark">
<condition field="destination_number" expression="^5901$"> <condition field="destination_number" expression="^5901$">
<action application="answer"/> <action application="answer"/>
<action application="fifo" data="default out nowait"/> <action application="fifo" data="default out nowait"/>
</condition> </condition>
</extension> </extension>
<extension name="Localized_Dialplan"> <extension name="Localized_Dialplan">
<condition field="${numbering_plan}" expression="^[[:alnum:]]+$"/> <condition field="${numbering_plan}" expression="^[[:alnum:]]+$"/>
<condition field="${default_gateway}" expression="[[:alnum:]]"/> <condition field="${default_gateway}" expression="[[:alnum:]]"/>
<condition field="destination_number" expression="^([[:alnum:]]+)$"> <condition field="destination_number" expression="^([[:alnum:]]+)$">
<action application="transfer" data="$1 XML ${numbering_plan}-Numbering-Plan"/> <action application="transfer" data="$1 XML ${numbering_plan}-Numbering-Plan"/>
</condition> </condition>
</extension> </extension>
<!-- <!--
this is a "catchall" extension that will match anything that's this is a "catchall" extension that will match anything that's
unmatched thus far.... uncomment and reloadxml to activate it unmatched thus far.... uncomment and reloadxml to activate it
--> -->
<!-- <!--
<extension name="catchall"> <extension name="catchall">
<condition> <condition>
<action application="set" data="effective_caller_id_name=another noob"/> <action application="set" data="effective_caller_id_name=another noob"/>
<action application="bridge" data="sofia/$${domain}/888@conference.freeswitch.org"/> <action application="bridge" data="sofia/$${domain}/888@conference.freeswitch.org"/>
</condition> </condition>
</extension> </extension>
--> -->
</context> </context>
</include>

22
conf/dialplan/public.xml Normal file
View File

@ -0,0 +1,22 @@
<include>
<context name="public">
<extension name="blah">
<condition>
<action application='info'/>
</condition>
</extension>
<extension name="public_extensions">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="transfer" data="$1 XML default"/>
</condition>
</extension>
<extension name="public_did">
<condition field="destination_number" expression="^(5551212)$">
<action application="transfer" data="$1 XML default"/>
</condition>
</extension>
</context>
</include>

View File

@ -7,5 +7,8 @@
<!--<param name="vm-email-all-messages" value="true"/>--> <!--<param name="vm-email-all-messages" value="true"/>-->
<param name="dial-string" value="sofia/${use_profile}/888@conference.freeswitch.org"/> <param name="dial-string" value="sofia/${use_profile}/888@conference.freeswitch.org"/>
</params> </params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user> </user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1001"/> <user id="1001" mailbox="1001">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1002"/> <user id="1002" mailbox="1002">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1003"/> <user id="1003" mailbox="1003">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1004"/> <user id="1004" mailbox="1004">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1005"/> <user id="1005" mailbox="1005">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1006"/> <user id="1006" mailbox="1006">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1007"/> <user id="1007" mailbox="1007">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1008"/> <user id="1008" mailbox="1008">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1009"/> <user id="1009" mailbox="1009">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1010"/> <user id="1010" mailbox="1010">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1011"/> <user id="1011" mailbox="1011">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1012"/> <user id="1012" mailbox="1012">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1013"/> <user id="1013" mailbox="1013">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1014"/> <user id="1014" mailbox="1014">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1015"/> <user id="1015" mailbox="1015">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1016"/> <user id="1016" mailbox="1016">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1017"/> <user id="1017" mailbox="1017">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1018"/> <user id="1018" mailbox="1018">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -1,3 +1,10 @@
<include> <include>
<user id="1019"/> <user id="1019" mailbox="1019">
<params>
<param name="password" value="1234"/>
</params>
<variables>
<variable name="inbound_context" value="default"/>
</variables>
</user>
</include> </include>

View File

@ -49,7 +49,7 @@
</params> </params>
<variables> <variables>
<!--all variables here will be set on all inbound calls that originate from this user --> <!--all variables here will be set on all inbound calls that originate from this user -->
<variable name="testing" value="this"/> <variable name="inbound_context" value="default"/>
<!-- limit the max number of outgoing calls for this user --> <!-- limit the max number of outgoing calls for this user -->
<!--<variable name="max_calls" value="2"/>--> <!--<variable name="max_calls" value="2"/>-->

View File

@ -46,6 +46,7 @@
<settings> <settings>
<param name="debug" value="1"/> <param name="debug" value="1"/>
<param name="context" value="public"/>
<param name="rfc2833-pt" value="101"/> <param name="rfc2833-pt" value="101"/>
<param name="sip-port" value="5060"/> <param name="sip-port" value="5060"/>
<param name="dialplan" value="XML,enum"/> <param name="dialplan" value="XML,enum"/>

View File

@ -4,6 +4,7 @@
<param name="rfc2833-pt" value="101"/> <param name="rfc2833-pt" value="101"/>
<param name="sip-port" value="5070"/> <param name="sip-port" value="5070"/>
<param name="dialplan" value="XML,enum"/> <param name="dialplan" value="XML,enum"/>
<param name="context" value="public"/>
<param name="dtmf-duration" value="100"/> <param name="dtmf-duration" value="100"/>
<param name="codec-prefs" value="$${global_codec_prefs}"/> <param name="codec-prefs" value="$${global_codec_prefs}"/>
<param name="use-rtp-timer" value="true"/> <param name="use-rtp-timer" value="true"/>