Hi guys,

I've got a strange situation that I'm at a loss to explain. With all
callers, I go through a dialplan where I check to see if they should
be a moderator, then transfer them to another which puts them into a
conference accordingly. This worked great on one server, but when I
copied the code to another server (both running CentOS), the transfer
no longer works properly. Here's a log snippet from the incorrectly
working server:

Dialplan: sofia/internal/[email protected] Regex (FAIL)
[hold_music] destination_number(7001) =~ /^9999$/ break=on-false
Dialplan: sofia/internal/[email protected] Regex (FAIL)
[hold_music] ${sip_has_crypto}() =~
/^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$/ break=on-false
Dialplan: sofia/internal/[email protected] ANTI-Action
set(zrtp_enrollment=true)
Dialplan: sofia/internal/[email protected] ANTI-Action answer()
Dialplan: sofia/internal/[email protected] ANTI-Action
playback(/usr/local/freeswitch/sounds/vpbx/moh.wav)
2009-09-25 07:51:31.204920 [DEBUG] switch_core_state_machine.c:114
(sofia/internal/[email protected]) State Change CS_ROUTING ->
CS_EXECUTE
2

(note that the 7001 in the first line is the number I chose for my dialplan)
On the working server, the first line is still there, but the second
(and further) is replaced by further checks to see if it might be my
conference dialplans, which is what I would expect. I looked into
dialplans/default.xml, and the code for the above is there, but let me
copy it here again to discuss:

    <extension name="hold_music">
      <condition field="destination_number" expression="^9999$"/>
      <condition field="${sip_has_crypto}"
expression="^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$">
        <action application="answer"/>
        <action application="execute_extension" data="is_secure XML features"/>
        <action application="playback" data="$${hold_music}"/>
        <!-- This really should be an IVR for zrtp enrollment but this
is just a demo-->
        <anti-action application="set" data="zrtp_enrollment=true"/>
        <anti-action application="answer"/>
        <anti-action application="playback" data="$${hold_music}"/>
      </condition>
    </extension>

Now, the way I understand this, it says that if the number is 9999, it
should check the 2nd condition (which says to play hold music in a
couple of different flavors), but if the number is NOT 9999, it should
go past, not even checking the 2nd condition. This understanding is
corroborated by the "working" server, which does indeed skip past and
not check the 2nd condition. Does anyone know why a server might be
going into a conditional that it knows it failed on?

For what it's worth, both servers are running on the current trunk,
with the only change being the addition of flite.

BB

_______________________________________________
FreeSWITCH-users mailing list
[email protected]
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

Reply via email to