[Freeswitch-users] Dialplan authentication

Густаво Силва gfs at etherway.ru
Wed Apr 15 16:17:00 MSD 2015


I would like to use this approach:
     <action inline="false" application="set" 
data="PASSWD=${user_data(${caller_id_number}@${sip_from_host} param 
password)}"/>

I dont know how I could access the password of the registered user who 
is making a call, to authenticate (or check billing) with the rad_auth 
module if I am using xml_radius module.

First I had tested only the mod rad_auth as Sergey had mentioned. It had 
worked. Know I am working together with the xml_radius module.

On 15.04.2015 14:55, Gustavo Silva wrote:
> So, in dialplan I could access this parameter by ${vm_pass}?
>
> Sent from my BlackBerry 10 smartphone.
> *From: *Борисов, Дмитрий / Dmitriy Borisov
> *Sent: *среда, 15 апреля 2015 г., 14:51
> *To: *FreeSWITCH Users Help
> *Reply To: *FreeSWITCH Users Help
> *Subject: *Re: [Freeswitch-users] Dialplan authentication
>
>
> Hi!
>
> If you use rad_auth dialplan command, then after using it you will 
> have Freeswitch-AVPair channel variable with value vm_pass=1234
> If you use auth_invite or auth_reg, than mod_xml_radius will create 
> user param with name Freeswitch-AVPair and value vm_pass=1234 in 
> result directory
>
> 2015-04-15 13:56 GMT+03:00 Густаво Силва <gfs at etherway.ru 
> <mailto:gfs at etherway.ru>>:
>
>     It works.
>
>     Man, just more one question, how can I get the value of this
>     variable in my diaplan? I am using mod_xml_radius.
>
>             Freeswitch-AVPair = "vm_pass=1234"
>
>
>
>
>
>
>     On 15.04.2015 12:08, Sergey Safarov wrote:
>>     Add strings to dialplan like
>>     <action inline="true" application="set" data="GWID=${h323-gw-id}"/>
>>     <action inline="true" application="set"
>>     data="TRANSACTIONID=h323-ivr-out=transactionID:1234"/>
>>     <action inline="true" application="set"
>>     data="CALLEDNUMBER=${destination_number}"/>
>>     <action inline="true" application="set"
>>     data="CALLINGNUMBER=${caller_id_number}"/>
>>
>>     You can try comment this attributs in rad_auth.conf.xml
>>
>>
>>
>>     On Wed, Apr 15, 2015 at 11:26 AM, Густаво Силва <gfs at etherway.ru
>>     <mailto:gfs at etherway.ru>> wrote:
>>
>>         Sergey, do you know why I am getting these variables undefined?
>>
>>         [ERR] mod_rad_auth.c:178 Undefined channel variable: GWID.
>>         [ERR] mod_rad_auth.c:178 Undefined channel variable:
>>         TRANSACTIONID.
>>         [ERR] mod_rad_auth.c:178 Undefined channel variable:
>>         CALLEDNUMBER.
>>         [ERR] mod_rad_auth.c:178 Undefined channel variable:
>>         CALLINGNUMBER.
>>
>>
>>
>>
>>         On 14.04.2015 22:34, Sergey Safarov wrote:
>>>         In provided example password stored in directory.
>>>         Directory can be in mod_xml_radius
>>>         (https://freeswitch.org/confluence/display/FREESWITCH/mod_xml_radius)
>>>         or other dynamically generated directory.
>>>
>>>
>>>         On Tue, Apr 14, 2015 at 9:56 PM, Gustavo Silva
>>>         <silvagustavo at yandex.ru <mailto:silvagustavo at yandex.ru>> wrote:
>>>
>>>             Hi Sergey,
>>>
>>>             Tks for the help but there is a catch in this solution.
>>>             I will be still having ‎the password and user name in
>>>             freeswitch server.
>>>
>>>             I would like that the radius server handles it.
>>>
>>>             Is there a way with the rad_auth module where I wouldn't
>>>             need to set up password in diaplan file? All the
>>>             authentication should be done with the radius server.
>>>
>>>             I say that because, for example: I have 200 users, with
>>>             diferentes passwords configured in the radius server.
>>>             So, by this solution with rad_auth module, I should also
>>>             have 200 different password in the diaplan
>>>             configuration, right?
>>>
>>>             Regards,
>>>             Gustavo
>>>
>>>             Sent from my BlackBerry 10 smartphone.
>>>             *From: *Sergey Safarov
>>>             *Sent: *вторник, 14 апреля 2015 г., 21:16
>>>             *To: *FreeSWITCH Users Help
>>>             *Reply To: *FreeSWITCH Users Help
>>>             *Subject: *Re: [Freeswitch-users] Dialplan authentication
>>>
>>>
>>>             This can help you
>>>
>>>             [root at fs1 autoload_configs]# cat rad_auth.conf.xml
>>>             <configuration name="rad_auth.conf" description="radius
>>>             authentification module">
>>>              <settings>
>>>                 <!-- backward compatibility to allow radiusclient
>>>             config file instead of an embedded config -->
>>>                 <!--  <param name="radius_config"
>>>             value="/usr/local/etc/radiusclient/radiusclient.conf"/>
>>>               -->
>>>              </settings>
>>>
>>>              <client>
>>>                <param name="authserver" value="10.40.0.5:1814:x7h6t4g"/>
>>>                <param name="dictionary"
>>>             value="/etc/radiusclient/dictionary.all"/>
>>>                <param name="seqfile" value="/var/run/radius.seq"/>
>>>                <param name="mapfile"
>>>             value="/etc/radiusclient/port-id-map"/>
>>>                <param name="default_realm" value=""/>
>>>                <param name="radius_timeout" value="1"/>
>>>                <param name="radius_retries" value="0"/>
>>>                <param name="radius_deadtime" value="0"/>
>>>                <param name="bindaddr" value="*"/>
>>>              </client>
>>>
>>>              <vsas>
>>>                <!--
>>>                     name:       just a description
>>>             value:  direct input or variable
>>>                     pec:        vendor ID (0 for default, 9 for
>>>             cisco...)
>>>                     expr:       0 - direct input (string), 1 -
>>>             channel variable
>>>             direction:  in for radius-request, out for radius-response
>>>                -->
>>>
>>>                <!-- mappings for radius request message; input
>>>             attributes -->
>>>                <param name="h323-conf-id" id="24" value="CALLID"
>>>             pec="9" expr="1" direction="in"/>
>>>                <param name="h323-gw-id" id="33" value="GWID" pec="9"
>>>             expr="1" direction="in"/>
>>>                <param name="Cisco-AVPair" id="1"
>>>             value="TRANSACTIONID" pec="9" expr="1" direction="in"/>
>>>                <param name="Called-Station-Id" id="30"
>>>             value="CALLEDNUMBER" pec="0" expr="1" direction="in"/>
>>>                <param name="Calling-Station-Id" id="31"
>>>             value="CALLINGNUMBER" pec="0" expr="1" direction="in"/>-->
>>>                <param name="NAS-Port-Type" id="61" value="0" pec="0"
>>>             expr="0" direction="in"/>
>>>                <param name="Login-User" id="1" value="1" pec="0"
>>>             expr="0" direction="in"/> -->
>>>
>>>                <!-- mappings for radius-response message; output
>>>             values from returning outributes -->
>>>                <param name="CREDIT_AMOUNT" id="101"
>>>             value="credit_amount" pec="9" expr="0" direction="out"/>
>>>                <param name="CURRENCY" id="110" value="currency"
>>>             pec="9" expr="0" direction="out"/>
>>>                <param name="CREDIT_TIME" id="102"
>>>             value="h323-credit_time" pec="9" expr="0" direction="out"/>
>>>                <param name="PER_MINUTE_PRICE" id="251"
>>>             value="Cisco-Servicce-Info" pec="9" expr="0"
>>>             direction="out"/>
>>>                <param name="PREFFERED_LANG" id="107"
>>>             value="preffered_lang" pec="9" expr="0" direction="out"/>
>>>                <param name="H323-IVR-IN:DIRATION" id="1"
>>>             value="h323_ivr_duration" pec="9" expr="0"
>>>             direction="out"/> -->
>>>                <param name="RADIUS_RETURN_CODE" id="103"
>>>             value="return_code" pec="9" expr="0" direction="out"/>
>>>                <!-- expr param is to be ignored here-->
>>>              </vsas>
>>>             </configuration>
>>>             [root at fs1 autoload_configs]#
>>>
>>>             Dialplan fragment
>>>             <extension name="operator-rad-auth" continue="true">
>>>              <condition regex="any">
>>>             <regex field="${accountcode}" expression="^8$"/>
>>>              </condition>
>>>              <condition field="${destination_number}"
>>>             expression="^\+(\d+)$">
>>>             <action application="export"
>>>             data="h323-gw-id=${accountcode_bleg}"/>
>>>             <action application="unset" data="disable_radius_start"/>
>>>             <action application="unset" data="disable_radius_stop"/>
>>>             <action inline="true" application="set"
>>>             data="CALLID=h323-conf-id=${uuid}"/>
>>>             <action inline="true" application="set"
>>>             data="GWID=${accountcode_bleg}"/>
>>>             <action inline="true" application="set"
>>>             data="USERNAME=login at operator.ru
>>>             <mailto:login at operator.ru>"/>
>>>             <action inline="true" application="set"
>>>             data="PASSWD=xxxxxxxx"/>
>>>             <action inline="true" application="set"
>>>             data="DIALED_NUMBER=$1"/>
>>>             <action application="auth_function" data="in
>>>             ${DIALED_NUMBER}, in ${USERNAME}, in ${PASSWD}, out
>>>             AUTH_RESULT"/>
>>>              </condition>
>>>             </extension>
>>>
>>>             Log fragment
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> parsing
>>>             [mr24.gateways.rcsnet.ru->operator-rad-auth] continue=true
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Regex
>>>             (PASS) [operator-rad-auth] ${accountcode}(8) =~ /^8$/
>>>             match=any
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Regex
>>>             (PASS) [operator-rad-auth]
>>>             ${destination_number}(+749593377xx) =~ /^\+(\d+)$/
>>>             break=on-false
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             export(h323-gw-id=${accountcode_bleg})
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             unset(disable_radius_start)
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             unset(disable_radius_stop)
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             set(CALLID=h323-conf-id=${uuid}) INLINE
>>>             EXECUTE sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru>
>>>             set(CALLID=h323-conf-id=bd091212-e2b0-11e4-98e2-d102deb9a97d)
>>>             2015-04-14 14:15:43.446357 [DEBUG] mod_dptools.c:1435
>>>             sofia/mr24/00000796396528xx at gateways.operator.ru
>>>             <mailto:00000796396528xx at gateways.operator.ru> SET
>>>             [CALLID]=[h323-conf-id=bd091212-e2b0-11e4-98e2-d102deb9a97d]
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             set(GWID=${accountcode_bleg}) INLINE
>>>             EXECUTE sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> set(GWID=1460)
>>>             2015-04-14 14:15:43.446357 [DEBUG] mod_dptools.c:1435
>>>             sofia/mr24/00000796396528xx at gateways.rcsnet.ru
>>>             <mailto:00000796396528xx at gateways.rcsnet.ru> SET
>>>             [GWID]=[1460]
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             set(USERNAME=login at operator.ru
>>>             <mailto:login at operator.ru>) INLINE
>>>             EXECUTE sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru>
>>>             set(USERNAME=login at operator.ru <mailto:login at operator.ru>)
>>>             2015-04-14 14:15:43.446357 [DEBUG] mod_dptools.c:1435
>>>             sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> SET
>>>             [USERNAME]=[login at operator.ru <mailto:login at operator.ru>]
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             set(PASSWD=xxxxxxxx) INLINE
>>>             EXECUTE sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru>
>>>             set(PASSWD=xxxxxxxx)
>>>             2015-04-14 14:15:43.446357 [DEBUG] mod_dptools.c:1435
>>>             sofia/mr24/00000796396528xx at gateways.operator.ru
>>>             <mailto:00000796396528xx at gateways.operator.ru> SET
>>>             [PASSWD]=[xxxxxxxxxxx]
>>>             Dialplan: sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             set(DIALED_NUMBER=749593377xx) INLINE
>>>             EXECUTE sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru>
>>>             set(DIALED_NUMBER=749593377xx)
>>>             2015-04-14 14:15:43.446357 [DEBUG] mod_dptools.c:1435
>>>             sofia/mr24/00000796396528xx at gateways.rcsnet.ru
>>>             <mailto:00000796396528xx at gateways.rcsnet.ru> SET
>>>             [DIALED_NUMBER]=[749593377xx]
>>>             sofia/mr24/0000079639652834 at gateways.rcsnet.ru
>>>             <mailto:0000079639652834 at gateways.rcsnet.ru> Action
>>>             auth_function(in ${DIALED_NUMBER}, in ${USERNAME}, in
>>>             ${PASSWD}, out AUTH_RESULT)
>>>             ..........
>>>
>>>             bd091212-e2b0-11e4-98e2-d102deb9a97d EXECUTE
>>>             sofia/mr24/00000796396528xx at gateways.operator.ru
>>>             <mailto:00000796396528xx at gateways.operator.ru>
>>>             auth_function(in 74959337786, in login at operator.ru
>>>             <mailto:login at operator.ru>, in xxxxxxxxxxxx, out
>>>             AUTH_RESULT)
>>>             [DEBUG] mod_rad_auth.c:301 allocate initial structure.
>>>             [DEBUG] mod_rad_auth.c:313 initialzed configuration.
>>>             [DEBUG] mod_rad_auth.c:318 set authserver :=
>>>             10.40.0.5:1814:xxxxxxxx.
>>>             [DEBUG] mod_rad_auth.c:318 set dictionary :=
>>>             /etc/radiusclient/dictionary.all.
>>>             [DEBUG] mod_rad_auth.c:318 set seqfile :=
>>>             /var/run/radius.seq.
>>>             [DEBUG] mod_rad_auth.c:318 set mapfile :=
>>>             /etc/radiusclient/port-id-map.
>>>             [DEBUG] mod_rad_auth.c:318 set default_realm := .
>>>             [DEBUG] mod_rad_auth.c:318 set radius_timeout := 1.
>>>             [DEBUG] mod_rad_auth.c:318 set radius_retries := 0.
>>>             [DEBUG] mod_rad_auth.c:318 set radius_deadtime := 0.
>>>             [DEBUG] mod_rad_auth.c:318 set bindaddr := *.
>>>             [DEBUG] mod_rad_auth.c:371 ... radius: User-Name:
>>>             login at operator.ru <mailto:login at operator.ru>
>>>             [DEBUG] mod_rad_auth.c:380 ... radius: User-Password:
>>>             xxxxxxxxxxxxxxxxxx
>>>             DEBUG] mod_rad_auth.c:396 ... radius: Called-station-Id:
>>>             74959337786
>>>             [DEBUG] mod_rad_auth.c:413 Handle attribute: h323-conf-id
>>>             [DEBUG] mod_rad_auth.c:439 ... dictionary data: id:24,
>>>             vendor id:9, attr type:0, attr name:h323-conf-id (589848)
>>>             [DEBUG] mod_rad_auth.c:444 ... radius: key:h323-conf-id,
>>>             value:CALLID
>>>             (h323-conf-id=bd091212-e2b0-11e4-98e2-d102deb9a97d) as
>>>             string
>>>             [DEBUG] mod_rad_auth.c:413 Handle attribute: h323-gw-id
>>>             [DEBUG] mod_rad_auth.c:439 ... dictionary data: id:33,
>>>             vendor id:9, attr type:0, attr name:h323-gw-id (589857)
>>>             [DEBUG] mod_rad_auth.c:444 ... radius: key:h323-gw-id,
>>>             value:GWID (1460) as string
>>>             [DEBUG] mod_rad_auth.c:413 Handle attribute: NAS-Port-Type
>>>             [DEBUG] mod_rad_auth.c:439 ... dictionary data: id:61,
>>>             vendor id:0, attr type:1, attr name:NAS-Port-Type (61)
>>>             [DEBUG] mod_rad_auth.c:456 ... radius:
>>>             key:NAS-Port-Type, value:0 (0) as integer
>>>             [DEBUG] mod_rad_auth.c:491 sending radius packet ...
>>>             [DEBUG] mod_rad_auth.c:497 RADIUS Authentication OK
>>>             [DEBUG] mod_rad_auth.c:519 Handle attribute: CREDIT_AMOUNT
>>>             [DEBUG] mod_rad_auth.c:522   attribute (CREDIT_AMOUNT)
>>>             found in radius packet
>>>             [DEBUG] mod_rad_auth.c:523   set variable credit_amount
>>>             := h323-credit-amount=-600913.47
>>>             [DEBUG] mod_rad_auth.c:519 Handle attribute: CURRENCY
>>>             [DEBUG] mod_rad_auth.c:522   attribute (CURRENCY) found
>>>             in radius packet
>>>             [DEBUG] mod_rad_auth.c:523   set variable currency :=
>>>             h323-currency=RUR
>>>             [DEBUG] mod_rad_auth.c:519 Handle attribute: CREDIT_TIME
>>>             [DEBUG] mod_rad_auth.c:522   attribute (CREDIT_TIME)
>>>             found in radius packet
>>>             [DEBUG] mod_rad_auth.c:523   set variable
>>>             h323-credit_time := h323-credit-time=86400
>>>             [DEBUG] mod_rad_auth.c:519 Handle attribute:
>>>             PER_MINUTE_PRICE
>>>             [DEBUG] mod_rad_auth.c:522   attribute
>>>             (PER_MINUTE_PRICE) found in radius packet
>>>             [DEBUG] mod_rad_auth.c:523   set variable
>>>             Cisco-Servicce-Info := 0.000000
>>>             [DEBUG] mod_rad_auth.c:519 Handle attribute:
>>>             RADIUS_RETURN_CODE
>>>             [DEBUG] mod_rad_auth.c:522   attribute
>>>             (RADIUS_RETURN_CODE) found in radius packet
>>>             [DEBUG] mod_rad_auth.c:523   set variable return_code :=
>>>             h323-return-code=0
>>>
>>>
>>>
>>>
>>>
>>>             On Tue, Apr 14, 2015 at 5:28 PM, Gustavo Silva
>>>             <silvagustavo at yandex.ru <mailto:silvagustavo at yandex.ru>>
>>>             wrote:
>>>
>>>
>>>                 First it says that the the login is OK and after it
>>>                 says that the login is incorrect.
>>>
>>>                 Tue Apr 14 17:24:11 2015 : Auth: Login OK:
>>>                 [1008/<via Auth-Type =
>>>                 DIGEST>] (from client localhost port 0 cli 1008)
>>>                 Tue Apr 14 17:24:11 2015 : Info: rlm_radutmp: Login
>>>                 entry for NAS
>>>                 localhost port 0 duplicate
>>>                 Tue Apr 14 17:24:11 2015 : Auth: Login incorrect:
>>>                 [<no User-Name
>>>                 attribute>/<no User-Password attribute>] (from
>>>                 client localhost port 0
>>>                 cli 1008)
>>>                 Tue Apr 14 17:24:14 2015 : Error: rlm_radutmp:
>>>                 Logout for NAS localhost
>>>                 port 0, but no Login record
>>>
>>>
>>>
>>>                 Sent from my BlackBerry 10 smartphone.
>>>
>>>                 	Original Message
>>>
>>>                 *From: *Борисов, Дмитрий / Dmitriy Borisov
>>>                 *Sent: *вторник, 14 апреля 2015 г., 17:22
>>>                 *To: *FreeSWITCH Users Help
>>>                 *Reply To: *FreeSWITCH Users Help
>>>                 *Subject: *Re: [Freeswitch-users] Dialplan
>>>                 authentication
>>>
>>>
>>>                 Hi!
>>>
>>>                 Configuration looks good there, and what in
>>>                 radius.log on RADIUS server?
>>>
>>>                 2015-04-14 14:01 GMT+03:00 Густаво Силва
>>>                 <gfs at etherway.ru <mailto:gfs at etherway.ru>>:
>>>
>>>                     I have set up the following in my dialplan:
>>>
>>>                     <extension name="auth" continue="true">
>>>                     <condition field="${radius_auth_result}"
>>>                     expression="^0$">
>>>                       <action application="radius_auth" inline="true"/>
>>>                     </condition>
>>>                     </extension>
>>>
>>>                     I am facing the following error:
>>>
>>>                     Dialplan: sofia/internal/1008 at ipaddress Regex
>>>                     (PASS) [auth]
>>>                     ${radius_auth_result}(0) =~ /^0$/ break=on-false
>>>                     Dialplan: sofia/internal/1008 at ipaddress Action
>>>                     radius_auth() INLINE
>>>                     EXECUTE sofia/internal/1008 at ipaddress radius_auth()
>>>                     2015-04-14 13:53:42.734956 [ERR]
>>>                     mod_xml_radius.c:1090 mod_xml_radius:
>>>                     Failed to authenticate
>>>
>>>                     What should I do to the call authentication work?
>>>
>>>                     Regards,
>>>                     Gustavo
>>>
>>>
>>>                     _________________________________________________________________________
>>>                     Professional FreeSWITCH Consulting Services:
>>>                     consulting at freeswitch.org
>>>                     <mailto:consulting at freeswitch.org>
>>>                     http://www.freeswitchsolutions.com
>>>
>>>                     Official FreeSWITCH Sites
>>>                     http://www.freeswitch.org
>>>                     http://confluence.freeswitch.org
>>>                     http://www.cluecon.com
>>>
>>>                     FreeSWITCH-users mailing list
>>>                     FreeSWITCH-users at lists.freeswitch.org
>>>                     <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>>                     http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>                     UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>                     http://www.freeswitch.org
>>>
>>>
>>>
>>>
>>>                 -- 
>>>                 with best regards,
>>>                 Dmitriy Borisov
>>>
>>>
>>>                 _________________________________________________________________________
>>>                 Professional FreeSWITCH Consulting Services:
>>>                 consulting at freeswitch.org
>>>                 <mailto:consulting at freeswitch.org>
>>>                 http://www.freeswitchsolutions.com
>>>
>>>                 Official FreeSWITCH Sites
>>>                 http://www.freeswitch.org
>>>                 http://confluence.freeswitch.org
>>>                 http://www.cluecon.com
>>>
>>>                 FreeSWITCH-users mailing list
>>>                 FreeSWITCH-users at lists.freeswitch.org
>>>                 <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>>                 http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>                 UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>                 http://www.freeswitch.org
>>>
>>>
>>>
>>>
>>>             _________________________________________________________________________
>>>             Professional FreeSWITCH Consulting Services:
>>>             consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>>>             http://www.freeswitchsolutions.com
>>>
>>>             Official FreeSWITCH Sites
>>>             http://www.freeswitch.org
>>>             http://confluence.freeswitch.org
>>>             http://www.cluecon.com
>>>
>>>             FreeSWITCH-users mailing list
>>>             FreeSWITCH-users at lists.freeswitch.org
>>>             <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>>             http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>             UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>             http://www.freeswitch.org
>>>
>>>
>>>
>>>
>>>         _________________________________________________________________________
>>>         Professional FreeSWITCH Consulting Services:
>>>         consulting at freeswitch.org  <mailto:consulting at freeswitch.org>
>>>         http://www.freeswitchsolutions.com
>>>
>>>         Official FreeSWITCH Sites
>>>         http://www.freeswitch.org
>>>         http://confluence.freeswitch.org
>>>         http://www.cluecon.com
>>>
>>>         FreeSWITCH-users mailing list
>>>         FreeSWITCH-users at lists.freeswitch.org  <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>         http://www.freeswitch.org
>>
>>
>>         _________________________________________________________________________
>>         Professional FreeSWITCH Consulting Services:
>>         consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>>         http://www.freeswitchsolutions.com
>>
>>         Official FreeSWITCH Sites
>>         http://www.freeswitch.org
>>         http://confluence.freeswitch.org
>>         http://www.cluecon.com
>>
>>         FreeSWITCH-users mailing list
>>         FreeSWITCH-users at lists.freeswitch.org
>>         <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>         http://www.freeswitch.org
>>
>>
>>
>>
>>     _________________________________________________________________________
>>     Professional FreeSWITCH Consulting Services:
>>     consulting at freeswitch.org  <mailto:consulting at freeswitch.org>
>>     http://www.freeswitchsolutions.com
>>
>>     Official FreeSWITCH Sites
>>     http://www.freeswitch.org
>>     http://confluence.freeswitch.org
>>     http://www.cluecon.com
>>
>>     FreeSWITCH-users mailing list
>>     FreeSWITCH-users at lists.freeswitch.org  <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>     http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>     UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>     http://www.freeswitch.org
>
>
>     _________________________________________________________________________
>     Professional FreeSWITCH Consulting Services:
>     consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>     http://www.freeswitchsolutions.com
>
>     Official FreeSWITCH Sites
>     http://www.freeswitch.org
>     http://confluence.freeswitch.org
>     http://www.cluecon.com
>
>     FreeSWITCH-users mailing list
>     FreeSWITCH-users at lists.freeswitch.org
>     <mailto:FreeSWITCH-users at lists.freeswitch.org>
>     http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>     UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>     http://www.freeswitch.org
>
>
>
>
> -- 
> with best regards,
> Dmitriy Borisov
>
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20150415/02bef0d4/attachment-0001.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list