Blind transfer

35 views
Skip to first unread message

Laurentiu Ceausescu

unread,
Sep 12, 2011, 3:05:36 AM9/12/11
to ope...@googlegroups.com
Hi,

I have a dial plan configuration:
  <extension name="myLine">
    <condition field="destination_number" expression="^333$">
      <action application="answer"/>
      <action application="set" data="allow_voicemail=true"/>
      <action application="set" data="queue=default_queue"/>
      <action application="set" data="brand=00990099"/>
      <action application="set" data="domain_name=$${domain}"/>
      <action application="erlang_sendmsg" data="freeswitch_media_manager  ope...@toor.mydomain.org inivr ${uuid}"/>
      <action application="erlang" data="freeswitch_media_manager:!  ope...@toor.mydomain.org"/>
    </condition>
  </extension>

The following scenario works for me:
1. 202 (Twinkle phone) calls open acd line
2. agent 401 rings and pick up the call (I used Bria soft phone for the agent)
3. 401 transfer to 301 (X-Lite phone) with 'call first' option (consultative transfer)
4. 301 rings and pick up the call
5. 401 transfer the call and the call is establishe between 202 and 301

But, on step 3, the transfer failed if I used 'transfer now' option (blind transfer) instead of 'call first' option.

I've seen in the FS log:
[INFO] mod_dialplan_xml.c:336 Processing Twinkle <202>->301 in context default
[DEBUG] switch_core_state_machine.c:469 (sofia/mydomain.org/sip:4...@mydomain.org) Callstate Change HANGUP -> DOWN
[DEBUG] switch_core_state_machine.c:472 (sofia/mydomain.org/sip:4...@mydomain.org) Running State Change CS_DESTROY
[DEBUG] switch_core_state_machine.c:482 (sofia/mydomain.org/sip:4...@mydomain.org) State DESTROY
[DEBUG] mod_sofia.c:363 sofia/mydomain.org/sip:4...@mydomain.org SOFIA DESTROY
[DEBUG] switch_core_state_machine.c:60 sofia/mydomain.org/sip:4...@mydomain.org Standard DESTROY
[DEBUG] switch_core_state_machine.c:482 (sofia/mydomain.org/sip:4...@mydomain.org) State DESTROY going to sleep
Dialplan: sofia/mydomain.org/2...@mydomain.org parsing [default->IVR] continue=false
Dialplan: sofia/mydomain.org/2...@mydomain.org Regex (FAIL) [IVR] destination_number(301) =~ /^IVR$/ break=on-false
Dialplan: sofia/mydomain.org/2...@mydomain.org parsing [default->ACC] continue=false
Dialplan: sofia/mydomain.org/2...@mydomain.org Regex (FAIL) [ACC] destination_number(301) =~ /^ACC$/ break=on-false
Dialplan: sofia/mydomain.org/2...@mydomain.org parsing [default->myLine] continue=false
Dialplan: sofia/mydomain.org/2...@mydomain.org Regex (FAIL) [myLine] destination_number(301) =~ /^333$/ break=on-false
Dialplan: sofia/mydomain.org/2...@mydomain.org parsing [default->ACD-1] continue=false
Dialplan: sofia/mydomain.org/2...@mydomain.org Regex (FAIL) [ACD-1] destination_number(301) =~ /^666$/ break=on-false
[INFO] switch_core_state_machine.c:145 No Route, Aborting

I've attached the openACD and FS logs.

Any help is really appreciated.
Thanks,
Laurentiu
full.log
freeswitch.log

Micah

unread,
Sep 12, 2011, 11:51:20 AM9/12/11
to OpenACD
Seems freeswitch is handling the transfer as though the exact number
dialed was 301. Without an entry for that, freeswitch really has no
decent way to handle it. what you may want to try is to transfer the
caller to sip:3...@mydomain.org. That should make freeswitch look in
it's sip registrations for 3...@mydomain.org, allowing it to
successfully complete the transfer.

Is this meant to simulate an agent to agent transfer, or is the 301
meant to be an external 3rd party?

Micah

On Sep 12, 2:05 am, Laurentiu Ceausescu <lauren...@ezuce.com> wrote:
> Hi,
>
> I have a dial plan configuration:
>   <extension name="myLine">
>     <condition field="destination_number" expression="^333$">
>       <action application="answer"/>
>       <action application="set" data="allow_voicemail=true"/>
>       <action application="set" data="queue=default_queue"/>
>       <action application="set" data="brand=00990099"/>
>       <action application="set" data="domain_name=$${domain}"/>
>       <action application="erlang_sendmsg" data="freeswitch_media_manager
> open...@toor.mydomain.org inivr ${uuid}"/>
>       <action application="erlang" data="freeswitch_media_manager:!
> open...@toor.mydomain.org"/>
> Dialplan: sofia/mydomain.org/...@mydomain.org parsing [default->IVR]
> continue=false
> Dialplan: sofia/mydomain.org/...@mydomain.org Regex (FAIL) [IVR]
> destination_number(301) =~ /^IVR$/ break=on-false
> Dialplan: sofia/mydomain.org/...@mydomain.org parsing [default->ACC]
> continue=false
> Dialplan: sofia/mydomain.org/...@mydomain.org Regex (FAIL) [ACC]
> destination_number(301) =~ /^ACC$/ break=on-false
> Dialplan: sofia/mydomain.org/...@mydomain.org parsing [default->myLine]
> continue=false
> Dialplan: sofia/mydomain.org/...@mydomain.org Regex (FAIL) [myLine]
> destination_number(301) =~ /^333$/ break=on-false
> Dialplan: sofia/mydomain.org/...@mydomain.org parsing [default->ACD-1]
> continue=false
> Dialplan: sofia/mydomain.org/...@mydomain.org Regex (FAIL) [ACD-1]
> destination_number(301) =~ /^666$/ break=on-false
> [INFO] switch_core_state_machine.c:145 *No Route, Aborting*
>
> I've attached the openACD and FS logs.
>
> Any help is really appreciated.
> Thanks,
> Laurentiu
>
>  full.log
> 13KViewDownload
>
>  freeswitch.log
> 69KViewDownload

Laurentiu Ceausescu

unread,
Sep 12, 2011, 12:47:14 PM9/12/11
to ope...@googlegroups.com
On Mon, Sep 12, 2011 at 6:51 PM, Micah <null...@gmail.com> wrote:
Seems freeswitch is handling the transfer as though the exact number
dialed was 301.  Without an entry for that, freeswitch really has no
decent way to handle it. what you may want to try is to transfer the
caller to sip:3...@mydomain.org.  That should make freeswitch look in
it's sip registrations for 3...@mydomain.org, allowing it to
successfully complete the transfer.

Is this meant to simulate an agent to agent transfer, or is the 301
meant to be an external 3rd party?

Hi Micah,
Thanks for your response.

I tried to transfer the caller to sip:3...@mydomain.org instead of 301, but looks like is the same thing.
Please note that 301 and 401 are both OpenACD agents.

I've attached also the new openACD and FS logs.

Thanks,
Laurentiu 

freeswitch.log
full.log

Micah

unread,
Sep 12, 2011, 2:23:46 PM9/12/11
to OpenACD
Try to do the transfer using the OpenACD ui; OpenACD will build the
dialstring for agent 301 for you. Once 301 picks up, 401 should be
dropped from the call.

Micah

On Sep 12, 11:47 am, Laurentiu Ceausescu <lauren...@ezuce.com> wrote:
>  freeswitch.log
> 20KViewDownload
>
>  full.log
> 2KViewDownload

Laurentiu Ceausescu

unread,
Sep 13, 2011, 10:18:55 AM9/13/11
to ope...@googlegroups.com
On Mon, Sep 12, 2011 at 9:23 PM, Micah <null...@gmail.com> wrote:
Try to do the transfer using the OpenACD ui; OpenACD will build the
dialstring for agent 301 for you.  Once 301 picks up, 401 should be
dropped from the call.

Hi Micah,

Yes, using the OpenACD agent UI, I can transfer the call to another available agent.

Thanks,
Laurentiu

Micah

unread,
Sep 14, 2011, 11:06:51 AM9/14/11
to OpenACD
For transfers, OpenACD assumes you'll be using an agent interface to
do so. This way it can be sure agents you're transferring to/from are
put into the correct states. So even if the x-lite softphone was able
to successfully transfer to agent 301's phone, the behavior at that
point is undefined on the OpenACD side.

Micah

On Sep 13, 9:18 am, Laurentiu Ceausescu <lauren...@ezuce.com> wrote:
Reply all
Reply to author
Forward
0 new messages