FreeSWITCH--配置代接電話


配置代接電話,需要更改 分機、撥號計划、外線 的配置

一、配置分機

代接組內分機的這個“組”, 不是“conf/directory/default.xml"中配置的 group,而是要在分機配置中配置。然后會在撥號計划中使用到這個配置。

如下配置: “callgroup”

<include>
    <user id="8002">
        <params>
            <param name="password" value="$${default_password}"/>
        </params>
        <variables>
            <variable name="toll_allow" value="domestic,international,local"/>
            <variable name="accountcode" value="8004"/>
            <variable name="user_context" value="default"/>
            <variable name="effective_caller_id_number" value="8004"/>
            <variable name="effective_caller_id_name" value="8004"/>
            <variable name="callgroup" value="allagents"/>
        </variables>
    </user>
</include>

 

二、配置撥號計划-代接

線上代碼, 再解釋:

<!-- 全局截斷分機代接 -->
<extension name="global-intercept">
  <condition field="destination_number" expression="^\#\*\*$">
    <action application="answer"/>
    <action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/global)}"/>
  </condition>
</extension>
<!-- 組內截斷分機代接 -->
<extension name="group-intercept">
  <condition field="destination_number" expression="^\#\*$">
    <action application="answer"/>
    <action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/${callgroup})}"/>
  </condition>
</extension>
<!-- 指定截斷代接 -->
<extension name="intercept-ext">
  <condition field="destination_number" expression="^\#(\d+)$">
    <action application="answer"/>
    <action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/$1)}"/>
  </condition>
</extension>
<!-- 重播 -->
<extension name="redial">
  <condition field="destination_number" expression="^(redial|\*\#)$">
    <action application="transfer" data="${hash(select/${domain_name}-last_dial/${caller_id_number})}"/>
  </condition>
</extension>

“intercept” 這個application 是中途攔截的意思,也就是說,在通話中的話,也能吧電話接過來,搶劫哈~

1.不例外, 先”answer“

2.然后攔截呼叫

   攔截呼叫要先查找呼叫,當然是查找最后一個啦:“${domain_name}-last_dial_ext”,全局,主內,或者指定的分機。

   這里使用的hash表,來存儲的 記錄, 所以是在hash表中查,官網是用db記錄的,就在db中查了。

 

三、配置撥號計划-記錄

前面提到了查詢,那么這些個記錄是哪里來的呢;同樣是撥號計划中記錄的啦。

要代接的,一般都是外線呼入的,當然也有內線呼入的,那么怎么記錄呢?

1、內線記錄呼叫

內線呼入,當然是在內線的dialplan里記錄了:

<!-- 撥分機 -->
<extension name="extension-intercom">
  <condition field="destination_number" expression="^(8[0-6][0-9][0-9])$">
  <!--<action application="log" data="console $1 ${destination_number}"/>-->
    <action application="set" data="dialed_extension=${destination_number}"/>
    <action application="set" data="callee_party_callgroup=${user_data(${destination_number}@${domain_name} var callgroup)}"/>
    <action application="export" data="dialed_extension=${destination_number}"/>
    <action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/>
    <action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
    <action application="hash" data="insert/${domain_name}-last_dial_ext/${callee_party_callgroup}/${uuid}"/>
    <action application="hash" data="insert/${domain_name}-last_dial_ext/global/${uuid}"/>
    <action application="export" data="nolocal:rtp_secure_media=${user_data(${dialed_extension}@${domain_name} var rtp_secure_media)}"/>
    <action application="hash" data="insert/${domain_name}-last_dial/${callee_party_callgroup}/${uuid}"/>
    <!--設置回鈴音-->
    <action application="set" data="ringback=${us-ring}"/>
    <!--<action application="set" data="ringback=ForestHymn3.wav"/>-->
    <!--<action application="set" data="transfer_ringback=$${hold_music}"/>-->
    <action application="set" data="transfer_ringback=local_stream://moh"/>
    <!--<action application="set" data="transfer_ringback=ForestHymn.wav}"/>-->
    <action application="set" data="call_timeout=30"/>
    <!-- <action application="set" data="sip_exclude_contact=${network_addr}"/> -->
    <action application="set" data="hangup_after_bridge=true"/>
    <!--<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
    <action application="set" data="continue_on_fail=true"/>
    <!--話機自動接聽-->
    <!--<action application="export" data="sip_auto_answer=true"/>-->
    <action application="bridge" data="user/${destination_number}@${domain_name}"/>
  </condition>
</extension>

上面三個加粗的,分別是記錄指定分機,組內,全局的。

2、外線記錄呼叫呼叫

外線,就在外線的dialplan里記錄了,轉分機,記得,是轉分機前!

  <action application="set" data="dialed_extension=8002"/>
  <action application="set" data="callee_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/>
  <action application="hash" data="insert/${domain_name}-last_dial_ext/${callee_party_callgroup}/${uuid}"/>
  <action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
  <action application="hash" data="insert/${domain_name}-last_dial_ext/${callee_party_callgroup}/${uuid}"/>
  <action application="bridge" data="[originate_timeout=30]user/${dialed_extension}"/>

 

問題: 如果是在 用esl轉的,咋加記錄?   callcenter轉的咋記錄?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM