Uploaded image for project: 'FreeSWITCH'
  1. FreeSWITCH
  2. FS-9723

Issue with cc_warning_tone in mod_callcenter module

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.6.7, 1.6.11
    • Fix Version/s: 1.9
    • Component/s: mod_callcenter
    • Security Level: public
    • Labels:
      None
    • Environment:
      Debian 8.4
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • uname:
      Linux GCNDialer 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
    • Userland:
      GNU/Linux
    • Distribution:
      Debian
    • Distribution Version:
      Debian 8 jessie
    • Compiler:
      gcc
    • FreeSWITCH GIT Revision:
      FreeSWITCH Version 1.6.12+git~20161108T192303Z~6e09b4314b~64bit (git 6e09b43 2016-11-08 19:23:03Z 64bit)
    • GIT Master Revision hash::
      HEAD

      Description

      We are doing implementation using mod_callcenter module by taking reference from documentation (https://freeswitch.org/confluence/display/FREESWITCH/mod_callcenter). So far everything works well except cc_warning_tone playback. We are never getting tone when some connect to agent.
      1. fscli_log.txt
        92 kB
        Samir Doshi
      2. fscli_siplog_loglevel9_log.txt
        125 kB
        Samir Doshi
      3. fscli_siplog.txt
        104 kB
        Samir Doshi

        Activity

        Hide
        smrdoshi Samir Doshi added a comment - - edited
        Here is the more information about problem and my workaround for our setup,

        File : mod_callcenter.c
        Line : 1803

        if ((o_announce = switch_channel_get_variable(member_channel, "cc_outbound_announce"))) {
                   playback_array(agent_session, o_announce);
        }

        o_announce variable suppose to get the value which we set in "cc_outbound_announce" and do playback of audio file or tone. But in debug I found we are getting null / blank value in o_announce variable and because of that its not doing any playback.

        I am not quite sure how to fix this problem in c code but for now I kept below line after if condition and it started working.
        playback_array(agent_session, "tone_stream://%(200,0,500,600,700)");

        Let me know if you need any other information from me.
        Show
        smrdoshi Samir Doshi added a comment - - edited Here is the more information about problem and my workaround for our setup, File : mod_callcenter.c Line : 1803 if ((o_announce = switch_channel_get_variable(member_channel, "cc_outbound_announce"))) {            playback_array(agent_session, o_announce); } o_announce variable suppose to get the value which we set in "cc_outbound_announce" and do playback of audio file or tone. But in debug I found we are getting null / blank value in o_announce variable and because of that its not doing any playback. I am not quite sure how to fix this problem in c code but for now I kept below line after if condition and it started working. playback_array(agent_session, "tone_ stream://%(200,0,500,600,700) "); Let me know if you need any other information from me.
        Hide
        italorossi Italo Rossi added a comment -
        You're confusing cc_outbound_announce and cc_warning_tone.

        https://freeswitch.org/confluence/display/FREESWITCH/mod_callcenter#mod_callcenter-cc_outbound_announce

        And actually what you specified on cc_warning_tone is being honored and FreeSWITCH is playing it:

        EXECUTE sofia/internal/8003@172.xx.xx.3 playback(tone_stream://%(200,0,500,600,700);loops=3)
        2016-11-04 09:05:06.637472 [DEBUG] switch_ivr_play_say.c:1467 Codec Activated L16@8000hz 1 channels 20ms
        2016-11-04 09:05:06.637472 [DEBUG] switch_core_media_bug.c:828 Attaching BUG to sofia/external/0833573222
        2016-11-04 09:05:06.637472 [DEBUG] mod_callcenter.c:1776 Agent 8003 answered "Outbound Call" <D0820833573222> from queue agent8003@default (Recorded)
        2016-11-04 09:05:06.637472 [DEBUG] switch_ivr_bridge.c:2010 (sofia/external/0833573222) State Change CS_EXECUTE -> CS_HIBERNATE
        2016-11-04 09:05:06.637472 [DEBUG] switch_ivr_bridge.c:2012 (sofia/internal/8003@172.xx.xx.3) State Change CS_EXECUTE -> CS_HIBERNATE
        2016-11-04 09:05:06.657461 [DEBUG] switch_ivr_play_say.c:1910 done playing file tone_stream://%(200,0,500,600,700);loops=3

        You may need to validate your tgml using plain dialplan to make sure it's working
        Show
        italorossi Italo Rossi added a comment - You're confusing cc_outbound_announce and cc_warning_tone. https://freeswitch.org/confluence/display/FREESWITCH/mod_callcenter#mod_callcenter-cc_outbound_announce And actually what you specified on cc_warning_tone is being honored and FreeSWITCH is playing it: EXECUTE sofia/internal/8003@172.xx.xx.3 playback(tone_ stream://%(200,0,500,600,700);loops=3) 2016-11-04 09:05:06.637472 [DEBUG] switch_ivr_play_say.c:1467 Codec Activated L16@8000hz 1 channels 20ms 2016-11-04 09:05:06.637472 [DEBUG] switch_core_media_bug.c:828 Attaching BUG to sofia/external/0833573222 2016-11-04 09:05:06.637472 [DEBUG] mod_callcenter.c:1776 Agent 8003 answered "Outbound Call" <D0820833573222> from queue agent8003@default (Recorded) 2016-11-04 09:05:06.637472 [DEBUG] switch_ivr_bridge.c:2010 (sofia/external/0833573222) State Change CS_EXECUTE -> CS_HIBERNATE 2016-11-04 09:05:06.637472 [DEBUG] switch_ivr_bridge.c:2012 (sofia/internal/8003@172.xx.xx.3) State Change CS_EXECUTE -> CS_HIBERNATE 2016-11-04 09:05:06.657461 [DEBUG] switch_ivr_play_say.c:1910 done playing file tone_ stream://%(200,0,500,600,700);loops=3 You may need to validate your tgml using plain dialplan to make sure it's working
        Hide
        smrdoshi Samir Doshi added a comment -
        We tried with both variables cc_outbound_announce and cc_warning_tone but got same result. Its never playing tone for agent before bridging member. Moreover I confirmed the tgml and that looks fine.

        I kept below code in C file and it worked fine.
        playback_array(agent_session, "tone_stream://%(200,0,500,600,700)");

        Exactly same tgml I had configure in cc_outbound_announce and cc_warning_tone but not working.
        Show
        smrdoshi Samir Doshi added a comment - We tried with both variables cc_outbound_announce and cc_warning_tone but got same result. Its never playing tone for agent before bridging member. Moreover I confirmed the tgml and that looks fine. I kept below code in C file and it worked fine. playback_array(agent_session, "tone_ stream://%(200,0,500,600,700) "); Exactly same tgml I had configure in cc_outbound_announce and cc_warning_tone but not working.
        Hide
        italorossi Italo Rossi added a comment -
        Fixed. Try latest master
        Show
        italorossi Italo Rossi added a comment - Fixed. Try latest master

          People

          • Assignee:
            italorossi Italo Rossi
            Reporter:
            smrdoshi Samir Doshi
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development