配置代接電話,須要更改 分機、撥號計劃、外線 的配置express
代接組內分機的這個「組」, 不是「conf/directory/default.xml"中配置的 group,而是要在分機配置中配置。而後會在撥號計劃中使用到這個配置。app
以下配置: 「callgroup」dom
<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>
線上代碼, 再解釋:ui
<!-- 全局截斷分機代接 --> <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 是中途攔截的意思,也就是說,在通話中的話,也能吧電話接過來,搶劫哈~spa
1.不例外, 先」answer「rest
2.而後攔截呼叫code
攔截呼叫要先查找呼叫,固然是查找最後一個啦:「${domain_name}-last_dial_ext」,全局,主內,或者指定的分機。xml
這裏使用的hash表,來存儲的 記錄, 因此是在hash表中查,官網是用db記錄的,就在db中查了。blog
前面提到了查詢,那麼這些個記錄是哪裏來的呢;一樣是撥號計劃中記錄的啦。ip
要代接的,通常都是外線呼入的,固然也有內線呼入的,那麼怎麼記錄呢?
內線呼入,固然是在內線的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>
上面三個加粗的,分別是記錄指定分機,組內,全局的。
外線,就在外線的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轉的咋記錄?