Avi,

are you sure about that ?

I have LUA scripts which rewrite the destination_number with SetVariable and that works fine.
Of course, to do that in the XML dialplan, as said before, inline should be used to set the value.

David Ponzone  Direction Technique
tel:      01 74 03 18 97
gsm:   06 66 98 76 34

Service Client IPeva
tel:      0811 46 26 26

Ce message et toutes les pièces jointes sont confidentiels et établis à l'intention exclusive de ses destinataires. Toute utilisation ou diffusion non autorisée est interdite. Tout message électronique est susceptible d'altération. IPeva décline toute responsabilité au titre de ce message s'il a été altéré, déformé ou falsifié. Si vous n'êtes pas destinataire de ce message, merci de le détruire immédiatement et d'avertir l'expéditeur.




Le 07/05/2011 à 19:52, Avi Marcus a écrit :

Indeed, inline is a missing ingredient. As well though is the previously mentioned - you can't (directly) overwrite the destination number. You can either use a new variable throughout, or transfer to set the new destination number. Note that transferring causes the dialplan to be re-run from the start..

-Avi

On Sat, May 7, 2011 at 7:13 PM, Kristian Kielhofner <kris@kriskinc.com> wrote:
There is certainly more than one way to skin this cat...

However, to keep with your current method you should read up on
dialplan hunting vs. execution and "inline" execution:

http://wiki.freeswitch.org/wiki/Dialplan_XML#Inline_Actions

In short you need to add inline="true" to your first extension.

On Sat, May 7, 2011 at 11:04 AM, fieldpeak <fieldpeak@gmail.com> wrote:
> Gurus,
>
> i met an issue for dial plan, it sounds easy but puzzled me a few days not
> fix it yet...i belive gurus here could help me...
>
> i want to remove the + of destination number before routing to PSTN GW, e.g.
> when i dial +9123, i would like FS remove +, and then route to the PSTN GW,
> below is the dial plan and log,
>
> See the log, FS did remove '+' of '+9123', but then when it checks the rule
> ‘9_to_GW’, it still checks '+9123' (I expect it is '9123'), and then failed.
>
> Thanks.
>
>
>
> Dial plan:
>
> <extension name="remove_plus_of_dst_num" continue="true">
>
>    <condition field="destination_number" expression="^\+(\d+)$">
>
>        <action application="set" data="effective_destination_number=$1"/>
>
>    </condition>
>
> </extension>
>
> …...
>
> <extension name="9_to_GW" >
>
>    <condition field="destination_number" expression="^(9\d+)$">
>
>        <action application="bridge"
> data="sofia/internal/$1@192.168.200.101"/>
>
>    </condition>
>
> </extension>
>
>
>
> Log:
>
> freeswitch@mypc> 2011-05-07 22:48:05.717537 [DEBUG] sofia.c:6488 IP
> 192.168.200.201
>
>  Approved by acl "192.168.0.0/16[]". Access Granted.
>
> 2011-05-07 22:48:05.717537 [NOTICE] switch_channel.c:812 New Channel
> sofia/inter
>
> nal/+4001@192.168.200.100 [92568c57-ff7b-4dbc-b322-a9babf893e62]
>
> 2011-05-07 22:48:05.719537 [DEBUG] sofia.c:4760 Channel
> sofia/internal/+4001@192
>
> .168.200.100 entering state [received][100]
>
> 2011-05-07 22:48:05.719537 [DEBUG] sofia.c:4771 Remote SDP:
>
> v=0
>
> o=AudiocodesGW 1062502113 1062501981 IN IP4 192.168.200.201
>
> s=Phone-Call
>
> c=IN IP4 192.168.200.201
>
> t=0 0
>
> m=audio 6060 RTP/AVP 8 0 96
>
> a=rtpmap:8 PCMA/8000
>
> a=rtpmap:0 PCMU/8000
>
> a=rtpmap:96 telephone-event/8000
>
> a=fmtp:96 0-15
>
> a=ptime:20
>
>
>
> 2011-05-07 22:48:05.719537 [DEBUG] sofia.c:4908
> (sofia/internal/+4001@192.168.20
>
> 0.100) State Change CS_NEW -> CS_INIT
>
> 2011-05-07 22:48:05.719537 [DEBUG] switch_core_session.c:1116 Send signal
> sofia/
>
> internal/+4001@192.168.200.100 [BREAK]
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_core_state_machine.c:325
> (sofia/intern
>
> al/+4001@192.168.200.100) Running State Change CS_INIT
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_core_state_machine.c:361
> (sofia/intern
>
> al/+4001@192.168.200.100) State INIT
>
> 2011-05-07 22:48:05.722537 [DEBUG] mod_sofia.c:84
> sofia/internal/+4001@192.168.2
>
> 00.100 SOFIA INIT
>
> 2011-05-07 22:48:05.722537 [DEBUG] mod_sofia.c:124
> (sofia/internal/+4001@192.168
>
> .200.100) State Change CS_INIT -> CS_ROUTING
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_core_session.c:1116 Send signal
> sofia/
>
> internal/+4001@192.168.200.100 [BREAK]
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_core_state_machine.c:361
> (sofia/intern
>
> al/+4001@192.168.200.100) State INIT going to sleep
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_core_state_machine.c:325
> (sofia/intern
>
> al/+4001@192.168.200.100) Running State Change CS_ROUTING
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_channel.c:1668
> (sofia/internal/+4001@1
>
> 92.168.200.100) Callstate Change DOWN -> RINGING
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_core_state_machine.c:364
> (sofia/intern
>
> al/+4001@192.168.200.100) State ROUTING
>
> 2011-05-07 22:48:05.722537 [DEBUG] mod_sofia.c:147
> sofia/internal/+4001@192.168.
>
> 200.100 SOFIA ROUTING
>
> 2011-05-07 22:48:05.722537 [DEBUG] switch_core_state_machine.c:77
> sofia/internal
>
> /+4001@192.168.200.100 Standard ROUTING
>
> 2011-05-07 22:48:05.722537 [INFO] mod_dialplan_xml.c:331 Processing +4001
> <+4001
>
>>->+9123 in context default
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing [default->unloop]
> continu
>
> e=false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (PASS) [unloop]
> ${unroll_lo
>
> ops}(true) =~ /^true$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (FAIL) [unloop]
> ${sip_loope
>
> d_call}() =~ /^true$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing
> [default->remove_plus_of_
>
> dst_num] continue=true
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (PASS)
> [remove_plus_of_dst_
>
> num] destination_number(+9123) =~ /^\+(\d+)$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Action
> set(destination_number=912
>
> 3)
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing
> [default->remove_plus_of_
>
> src_num] continue=true
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (PASS)
> [remove_plus_of_src_
>
> num] caller_id_number(+4001) =~ /^\+(\d+)$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Action
> set(effective_caller_id_na
>
> me=4001)
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Action
> set(effective_caller_id_nu
>
> mber=4001)
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing
> [default->7_8_to_Lync] co
>
> ntinue=false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (FAIL) [7_8_to_Lync]
> destin
>
> ation_number(+9123) =~ /^([78]\d{3})$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing [default->9_to_GW]
> contin
>
> ue=false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (FAIL) [9_to_GW]
> destinatio
>
> n_number(+9123) =~ /^(9\d+)$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing [default->1_to_IPP]
> conti
>
> nue=false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (FAIL) [1_to_IPP]
> destinati
>
> on_number(+9123) =~ /^(1\d{3})$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing [default->DISA]
> continue=
>
> false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (FAIL) [DISA]
> destination_n
>
> umber(+9123) =~ /^\*(3472)$/ break=on-false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 parsing [default->Recordings]
> con
>
> tinue=false
>
> Dialplan: sofia/internal/+4001@192.168.200.100 Regex (FAIL) [Recordings]
> destina
>
> tion_number(+9123) =~ /^\*(732673)$/ break=on-false
>
> 2011-05-07 22:48:05.727537 [DEBUG] switch_core_state_machine.c:119
> (sofia/intern
>
> al/+4001@192.168.200.100) State Change CS_ROUTING -> CS_EXECUTE
>
> 2011-05-07 22:48:05.727537 [DEBUG] switch_core_session.c:1116 Send signal
> sofia/
>
> internal/+4001@192.168.200.100 [BREAK]
>
> 2011-05-07 22:48:05.727537 [DEBUG] switch_core_state_machine.c:364
> (sofia/intern
>
> al/+4001@192.168.200.100) State ROUTING going to sleep
>
> 2011-05-07 22:48:05.727537 [DEBUG] switch_core_state_machine.c:325
> (sofia/intern
>
> al/+4001@192.168.200.100) Running State Change CS_EXECUTE
>
> 2011-05-07 22:48:05.727537 [DEBUG] switch_core_state_machine.c:371
> (sofia/intern
>
> al/+4001@192.168.200.100) State EXECUTE
>
> 2011-05-07 22:48:05.727537 [DEBUG] mod_sofia.c:240
> sofia/internal/+4001@192.168.
>
> 200.100 SOFIA EXECUTE
>
> 2011-05-07 22:48:05.727537 [DEBUG] switch_core_state_machine.c:157
> sofia/interna
>
> l/+4001@192.168.200.100 Standard EXECUTE
>
> EXECUTE sofia/internal/+4001@192.168.200.100 set(destination_number=9123)
>
> 2011-05-07 22:48:05.728537 [DEBUG] mod_dptools.c:1060
> sofia/internal/+4001@192.1
>
> 68.200.100 SET [destination_number]=[9123]
>
> EXECUTE sofia/internal/+4001@192.168.200.100
> set(effective_caller_id_name=4001)
>
> 2011-05-07 22:48:05.728537 [DEBUG] mod_dptools.c:1060
> sofia/internal/+4001@192.1
>
> 68.200.100 SET [effective_caller_id_name]=[4001]
>
> EXECUTE sofia/internal/+4001@192.168.200.100
> set(effective_caller_id_number=4001
>
> )
>
> 2011-05-07 22:48:05.729537 [DEBUG] mod_dptools.c:1060
> sofia/internal/+4001@192.1
>
> 68.200.100 SET [effective_caller_id_number]=[4001]
>
> 2011-05-07 22:48:05.729537 [NOTICE] switch_core_state_machine.c:189
> sofia/intern
>
> al/+4001@192.168.200.100 has executed the last dialplan instruction, hanging
> up.
>
>
>
> 2011-05-07 22:48:05.729537 [DEBUG] switch_channel.c:2563
> (sofia/internal/+4001@1
>
> 92.168.200.100) Callstate Change RINGING -> HANGUP
>
> 2011-05-07 22:48:05.729537 [NOTICE] switch_core_state_machine.c:191 Hangup
> sofia
>
> /internal/+4001@192.168.200.100 [CS_EXECUTE] [NORMAL_CLEARING]
>
> 2011-05-07 22:48:05.730538 [DEBUG] switch_channel.c:2579 Send signal
> sofia/inter
>
> nal/+4001@192.168.200.100 [KILL]
>
> 2011-05-07 22:48:05.730538 [DEBUG] switch_core_session.c:1116 Send signal
> sofia/
>
> internal/+4001@192.168.200.100 [BREAK]
>
> 2011-05-07 22:48:05.730538 [DEBUG] switch_core_state_machine.c:371
> (sofia/intern
>
> al/+4001@192.168.200.100) State EXECUTE going to sleep
>
> 2011-05-07 22:48:05.730538 [DEBUG] switch_core_state_machine.c:325
> (sofia/intern
>
> al/+4001@192.168.200.100) Running State Change CS_HANGUP
>
> 2011-05-07 22:48:05.731538 [DEBUG] switch_core_state_machine.c:565
> (sofia/intern
>
> al/+4001@192.168.200.100) State HANGUP
>
> 2011-05-07 22:48:05.732538 [DEBUG] mod_sofia.c:457 Channel
> sofia/internal/+4001@
>
> 192.168.200.100 hanging up, cause: NORMAL_CLEARING
>
> 2011-05-07 22:48:05.732538 [DEBUG] mod_sofia.c:519 Responding to INVITE
> with: 48
>
> 0
>
> 2011-05-07 22:48:05.732538 [DEBUG] switch_core_state_machine.c:46
> sofia/internal
>
> /+4001@192.168.200.100 Standard HANGUP, cause: NORMAL_CLEARING
>
> 2011-05-07 22:48:05.732538 [DEBUG] switch_core_state_machine.c:565
> (sofia/intern
>
> al/+4001@192.168.200.100) State HANGUP going to sleep
>
> 2011-05-07 22:48:05.732538 [DEBUG] switch_core_state_machine.c:356
> (sofia/intern
>
> al/+4001@192.168.200.100) State Change CS_HANGUP -> CS_REPORTING
>
> 2011-05-07 22:48:05.732538 [DEBUG] switch_core_session.c:1116 Send signal
> sofia/
>
> internal/+4001@192.168.200.100 [BREAK]
>
> 2011-05-07 22:48:05.732538 [DEBUG] switch_core_state_machine.c:325
> (sofia/intern
>
> al/+4001@192.168.200.100) Running State Change CS_REPORTING
>
> 2011-05-07 22:48:05.732538 [DEBUG] switch_core_state_machine.c:625
> (sofia/intern
>
> al/+4001@192.168.200.100) State REPORTING
>
> 2011-05-07 22:48:06.017554 [DEBUG] switch_core_state_machine.c:53
> sofia/internal
>
> /+4001@192.168.200.100 Standard REPORTING, cause: NORMAL_CLEARING
>
> 2011-05-07 22:48:06.017554 [DEBUG] switch_core_state_machine.c:625
> (sofia/intern
>
> al/+4001@192.168.200.100) State REPORTING going to sleep
>
> 2011-05-07 22:48:06.017554 [DEBUG] switch_core_state_machine.c:350
> (sofia/intern
>
> al/+4001@192.168.200.100) State Change CS_REPORTING -> CS_DESTROY
>
> 2011-05-07 22:48:06.017554 [DEBUG] switch_core_session.c:1116 Send signal
> sofia/
>
> internal/+4001@192.168.200.100 [BREAK]
>
> 2011-05-07 22:48:06.017554 [DEBUG] switch_core_session.c:1288 Session 2
> (sofia/i
>
> nternal/+4001@192.168.200.100) Locked, Waiting on external entities
>
> 2011-05-07 22:48:06.017554 [NOTICE] switch_core_session.c:1306 Session 2
> (sofia/
>
> internal/+4001@192.168.200.100) Ended
>
> 2011-05-07 22:48:06.017554 [NOTICE] switch_core_session.c:1308 Close Channel
> sof
>
> ia/internal/+4001@192.168.200.100 [CS_DESTROY]
>
> 2011-05-07 22:48:06.018554 [DEBUG] switch_core_state_machine.c:454
> (sofia/intern
>
> al/+4001@192.168.200.100) Callstate Change HANGUP -> DOWN
>
> 2011-05-07 22:48:06.018554 [DEBUG] switch_core_state_machine.c:457
> (sofia/intern
>
> al/+4001@192.168.200.100) Running State Change CS_DESTROY
>
> 2011-05-07 22:48:06.018554 [DEBUG] switch_core_state_machine.c:467
> (sofia/intern
>
> al/+4001@192.168.200.100) State DESTROY
>
> 2011-05-07 22:48:06.018554 [DEBUG] mod_sofia.c:362
> sofia/internal/+4001@192.168.
>
> 200.100 SOFIA DESTROY
>
> 2011-05-07 22:48:06.018554 [DEBUG] switch_core_state_machine.c:60
> sofia/internal
>
> /+4001@192.168.200.100 Standard DESTROY
>
> 2011-05-07 22:48:06.018554 [DEBUG] switch_core_state_machine.c:467
> (sofia/intern
>
> al/+4001@192.168.200.100) State DESTROY going to sleep
>
--
Kristian Kielhofner

_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org