[Freeswitch-users] Stale channels with mod_callcenter in uuid-standby mode

Ítalo Rossi italorossib at gmail.com
Fri Apr 24 00:15:21 MSD 2015


Hi Saumar,

Can you please file a JIRA?

Attach your dialplan example, FreeSWITCH debug logs with siptrace enabled.

I'll try to replicate it.

On Thu, Apr 23, 2015 at 1:42 PM Saumar Hajjar <saumar at uol.com.br> wrote:

> (Reposting: the 1st "version" didn't reach the list for some reason)
>
> After a mod_callcenter member hangs up, its channel is still present in
> the system, and its uuid is unkillable.
> I believe FS team calls it a "stale channel".
> The uuid-standby agent won't receive any more calls, until he/she hangs
> up - what would make uuid-standby a "agent hangup and call again" mode.
>
> What I'm trying to do, is nothing fancy. Basically I'm following the
> mod_callcenter documentation without much tweaking.
> Here's the test case setup:
>
> - Freeswitch with default config, mod_callcenter enabled also with
> default config
> Tested with the following versions:
> 1.4.18+git~20150312T185523Z~4eed221b69~64bit (git 4eed221 2015-03-12
> 18:55:23Z 64bit)
> 1.5.15b+git~20150117T062211Z~46cf8a4dce~64bit (git 46cf8a4 2015-01-17
> 06:22:11Z 64bit)
> 1.5.15b+git~20150421T235828Z~a4d877c189~64bit (git a4d877c 2015-04-21
> 23:58:28Z 64bit)
>
> - Dialplan mod_callcenter entries:
> <!-- Member dials *91 to enter queue support at default -->
> <extension>
>      <condition field="destination_number" expression="^\*91$">
>          <action application="callcenter" data="support at default"/>
>      </condition>
> </extension>
>
> <!-- Agent dials 4099 to wait for uuid-standby calls -->
> <extension>
>      <condition field="destination_number" expression="^(4099)$">
>          <action application="set" data="transfer_after_bridge=4099"/>
> <!-- Remove this if you just want to get a single call -->
>          <action application="sleep" data="300"/> <!-- Small delay for
> safety needs -->
>          <action application="set" data="res=${callcenter_config(agent
> set uuid ${caller_id_number}@default '${uuid}')}" />
>          <action application="set" data="res=${callcenter_config(agent
> set type ${caller_id_number}@default 'uuid-standby')}" />
>          <action application="set" data="res=${callcenter_config(agent
> set status ${caller_id_number}@default 'Available (On Demand)')}" />
>          <action application="set" data="res=${callcenter_config(agent
> set state ${caller_id_number}@default 'Waiting')}" />
>          <action application="set"
> data="cc_warning_tone=tone_stream://%(200,0,500,600,700)"/>
>          <action application="answer" />
>          <action application="playback" data="$${hold_music}"/>
>      </condition>
> </extension>
>
> - Start FS and add a test agent:
> callcenter_config agent add 1002 at default uuid-standby
>
> - Agent (extension 1002) dials 4099:
> The agent starts hearing music on hold.
>
> show channels
>
> uuid,direction,created,created_epoch,name,state,cid_name,cid_num,ip_addr,dest,application,application_data,dialplan,context,read_codec,read_rate,read_bit_rate,write_codec,write_rate,write_bit_rate,secure,hostname,presence_id,presence_data,callstate,callee_name,callee_num,callee_direction,call_uuid,sent_callee_name,sent_callee_num,initial_cid_name,initial_cid_num,initial_ip_addr,initial_dest,initial_dialplan,initial_context
> a1c9b1a4-7926-4da9-9041-100df3d1bbbb,inbound,2015-04-22
> 18:01:46,1429736506,sofia/internal/1002 at 192.168.0.136
> ,CS_EXECUTE,1002,1002,192.168.0.103,4099,playback,local_stream://moh,XML,default,PCMU,8000,64000,PCMU,8000,64000,,hajjar-notebook,
> 1002 at 192.168.0.136,,ACTIVE,,,,,,,1002,1002,192.168.0.103,4099,XML,default
>
> callcenter_config agent list
>
> name|system|uuid|type|contact|status|state|max_no_answer|wrap_up_time|reject_delay_time|busy_delay_time|no_answer_delay_time|last_bridge_start|last_bridge_end|last_offered_call|last_status_change|no_answer_count|calls_answered|talk_time|ready_time
> 1002 at default
> |single_box|a1c9b1a4-7926-4da9-9041-100df3d1bbbb|uuid-standby||Available
> (On
>
> Demand)|Waiting|1|5|0|5|5|1429734669|1429735319|1429734669|1429736506|0|0|0|0
>
> - Member (extension 1000) dials *91:
> The member gets bridged to the uuid-stand by agent. Great.
>
> show channels
>
> uuid,direction,created,created_epoch,name,state,cid_name,cid_num,ip_addr,dest,application,application_data,dialplan,context,read_codec,read_rate,read_bit_rate,write_codec,write_rate,write_bit_rate,secure,hostname,presence_id,presence_data,callstate,callee_name,callee_num,callee_direction,call_uuid,sent_callee_name,sent_callee_num,initial_cid_name,initial_cid_num,initial_ip_addr,initial_dest,initial_dialplan,initial_context
> a1c9b1a4-7926-4da9-9041-100df3d1bbbb,inbound,2015-04-22
> 18:01:46,1429736506,sofia/internal/1002 at 192.168.0.136
> ,CS_EXCHANGE_MEDIA,1000,1000,192.168.0.103,4099,uuid_bridge,d298fa41-b855-4027-ba4a-ac112df641d5,XML,default,PCMU,8000,64000,PCMU,8000,64000,,hajjar-notebook,
> 1002 at 192.168.0.136
> ,,ACTIVE,1002,1002,SEND,d298fa41-b855-4027-ba4a-ac112df641d5,1000,1000,1002,1002,192.168.0.103,4099,XML,default
> d298fa41-b855-4027-ba4a-ac112df641d5,inbound,2015-04-22
> 18:04:47,1429736687,sofia/internal/1000 at 192.168.0.136
> ,CS_SOFT_EXECUTE,1000,1000,192.168.0.120,*91,uuid_bridge,a1c9b1a4-7926-4da9-9041-100df3d1bbbb,XML,default,PCMU,8000,64000,PCMU,8000,64000,,hajjar-notebook,
> 1000 at 192.168.0.136
> ,,ACTIVE,1002,1002,SEND,d298fa41-b855-4027-ba4a-ac112df641d5,1002,1002,1000,1000,192.168.0.120,*91,XML,default
>
> 2 total.
>
> show calls
>
> uuid,direction,created,created_epoch,name,state,cid_name,cid_num,ip_addr,dest,presence_id,presence_data,callstate,callee_name,callee_num,callee_direction,call_uuid,hostname,sent_callee_name,sent_callee_num,b_uuid,b_direction,b_created,b_created_epoch,b_name,b_state,b_cid_name,b_cid_num,b_ip_addr,b_dest,b_presence_id,b_presence_data,b_callstate,b_callee_name,b_callee_num,b_callee_direction,b_sent_callee_name,b_sent_callee_num,call_created_epoch
> d298fa41-b855-4027-ba4a-ac112df641d5,inbound,2015-04-22
> 18:04:47,1429736687,sofia/internal/1000 at 192.168.0.136
> ,CS_SOFT_EXECUTE,1000,1000,192.168.0.120,*91,1000 at 192.168.0.136
> ,,ACTIVE,1002,1002,SEND,d298fa41-b855-4027-ba4a-ac112df641d5,hajjar-notebook,1002,1002,a1c9b1a4-7926-4da9-9041-100df3d1bbbb,inbound,2015-04-22
> 18:01:46,1429736506,sofia/internal/1002 at 192.168.0.136
> ,CS_EXCHANGE_MEDIA,1000,1000,192.168.0.103,4099,1002 at 192.168.0.136
> ,,ACTIVE,1002,1002,SEND,1000,1000,1429736687
>
> 1 total.
>
> callcenter_config agent list
>
> name|system|uuid|type|contact|status|state|max_no_answer|wrap_up_time|reject_delay_time|busy_delay_time|no_answer_delay_time|last_bridge_start|last_bridge_end|last_offered_call|last_status_change|no_answer_count|calls_answered|talk_time|ready_time
> 1002 at default
> |single_box|a1c9b1a4-7926-4da9-9041-100df3d1bbbb|uuid-standby||Available
> (On Demand)|In a queue
> call|1|5|0|5|5|1429736687|1429735319|1429736687|1429736506|0|1|0|0
>
> - Member hangs up
> show channels
>
> uuid,direction,created,created_epoch,name,state,cid_name,cid_num,ip_addr,dest,application,application_data,dialplan,context,read_codec,read_rate,read_bit_rate,write_codec,write_rate,write_bit_rate,secure,hostname,presence_id,presence_data,callstate,callee_name,callee_num,callee_direction,call_uuid,sent_callee_name,sent_callee_num,initial_cid_name,initial_cid_num,initial_ip_addr,initial_dest,initial_dialplan,initial_context
> a1c9b1a4-7926-4da9-9041-100df3d1bbbb,inbound,2015-04-22
> 18:01:46,1429736506,sofia/internal/1002 at 192.168.0.136
> ,CS_EXECUTE,1002,1002,192.168.0.103,4099,playback,local_stream://moh,XML,default,PCMU,8000,64000,PCMU,8000,64000,,hajjar-notebook,
> 1002 at 192.168.0.136
> ,,ACTIVE,1000,1000,RECV,d298fa41-b855-4027-ba4a-ac112df641d5,,,1002,1002,192.168.0.103,4099,XML,default
> d298fa41-b855-4027-ba4a-ac112df641d5,inbound,2015-04-22
> 18:04:47,1429736687,sofia/internal/1000 at 192.168.0.136
> ,CS_SOFT_EXECUTE,1000,1000,192.168.0.120,*91,uuid_bridge,a1c9b1a4-7926-4da9-9041-100df3d1bbbb,XML,default,PCMU,8000,64000,PCMU,8000,64000,,hajjar-notebook,
> 1000 at 192.168.0.136
> ,,ACTIVE,1002,1002,SEND,d298fa41-b855-4027-ba4a-ac112df641d5,1002,1002,1000,1000,192.168.0.120,*91,XML,default
>
> 2 total.
>
> show calls
>
> uuid,direction,created,created_epoch,name,state,cid_name,cid_num,ip_addr,dest,presence_id,presence_data,callstate,callee_name,callee_num,callee_direction,call_uuid,hostname,sent_callee_name,sent_callee_num,b_uuid,b_direction,b_created,b_created_epoch,b_name,b_state,b_cid_name,b_cid_num,b_ip_addr,b_dest,b_presence_id,b_presence_data,b_callstate,b_callee_name,b_callee_num,b_callee_direction,b_sent_callee_name,b_sent_callee_num,call_created_epoch
> d298fa41-b855-4027-ba4a-ac112df641d5,inbound,2015-04-22
> 18:04:47,1429736687,sofia/internal/1000 at 192.168.0.136
> ,CS_SOFT_EXECUTE,1000,1000,192.168.0.120,*91,1000 at 192.168.0.136
> ,,ACTIVE,1002,1002,SEND,d298fa41-b855-4027-ba4a-ac112df641d5,hajjar-notebook,1002,1002,a1c9b1a4-7926-4da9-9041-100df3d1bbbb,inbound,2015-04-22
> 18:01:46,1429736506,sofia/internal/1002 at 192.168.0.136
> ,CS_EXECUTE,1002,1002,192.168.0.103,4099,1002 at 192.168.0.136
> ,,ACTIVE,1000,1000,RECV,,,1429736687
>
> 1 total.
>
> callcenter_config agent list
>
> name|system|uuid|type|contact|status|state|max_no_answer|wrap_up_time|reject_delay_time|busy_delay_time|no_answer_delay_time|last_bridge_start|last_bridge_end|last_offered_call|last_status_change|no_answer_count|calls_answered|talk_time|ready_time
> 1002 at default
> |single_box|a1c9b1a4-7926-4da9-9041-100df3d1bbbb|uuid-standby||Available
> (On
>
> Demand)|Waiting|1|5|0|5|5|1429736687|1429735319|1429736687|1429736990|0|1|0|0
>
> Here the agent gets transfered back to uuid-standby extension and
> restarts hearing moh.
> Its state is "Waiting" - but he/she won't answer new calls. But the
> state is "Waiting" only because it got overridden by the dialplan.
> In my tests, removing the callcenter_config(agent set state..) from
> dialplan (and controlling agent state via CLI), I've noticed that the
> agent state never gets back to "Idle" (if On Demand) or "Waiting". It
> gets stuck in "In a queue call".
>
> Trying to uuid_kill the member uuid, results in -ERR No such channel!
>
> - When agent finally hangs up:
> 2015-04-22 18:21:56.804183 [NOTICE] sofia.c:952 Hangup
> sofia/internal/1002 at 192.168.0.136 [CS_EXECUTE] [NORMAL_CLEARING]
> 2015-04-22 18:21:56.824219 [NOTICE] switch_core_session.c:1641 Session 6
> (sofia/internal/1000 at 192.168.0.136) Ended
> 2015-04-22 18:21:56.824219 [NOTICE] switch_core_session.c:1645 Close
> Channel sofia/internal/1000 at 192.168.0.136 [CS_DESTROY]
> 2015-04-22 18:21:57.104198 [NOTICE] switch_core_session.c:1641 Session 4
> (sofia/internal/1002 at 192.168.0.136) Ended
> 2015-04-22 18:21:57.104198 [NOTICE] switch_core_session.c:1645 Close
> Channel sofia/internal/1002 at 192.168.0.136 [CS_DESTROY]
>
> show channels, show calls return 0
>
> If callcenter_config(agent set state...) is commented out in dialplan,
> callcenter_config agent list shows the agent as "Idle". Meaning
> mod_callcenter only perceives the call has been disconnected, after the
> agent hangs up...
>
> I'm not blaming mod_callcenter - maybe it's related to
> transfer_after_bridge.
> I already tried using exec_after_bridge_app/arg to a script that sleeps
> and transfer back to 4099. I also tried increasing the dialplan sleep.
> I'd appreciate any advice on how to make uuid-standby work.
>
> Thanks in advance,
>
> Saumar
>
>
>
>
> _________________________________________________________________________
> 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/20150423/07a3e9c8/attachment-0001.html 


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