少し前まで、顧客の1人がブラウザからクリックして(着信および発信)コールを転送する必要がありました。 ロジックは次のとおりです。コールセンターのオペレーターのグループが電話を受信して発信し、話し合い、顧客と組織の別のスペシャリストのいずれかとクライアントを接続するために必要なニーズを見つけた後。
オペレータは電話またはソフトフォンから目的の番号に「ブラインド」転送することで、従来の方法でコールを転送できるように見えますが、実際には、転送先の番号は500を超えており、常に追加および変更されています。ソフトフォンの電話帳を一元的に自動入力しても、オペレーターが快適かつ迅速に作業することはできません。まず顧客のニーズを見つけ、次にCRMで接続したい番号を見つける必要があります。 科学者が番号を入力するか、ソフトフォンの電話帳で同じ番号を見つけます。 これにより、オペレーターの労働時間が不合理に使用され、翻訳中にエラーが発生する可能性が高くなり、一般的に顧客サービスの質が低下します。
場合によっては、同様の問題が次のように解決されます。CRMのイベントに応じて、オペレーターの番号が特定のデータベースに入力され、対話者を接続するために必要な番号が入力されます。 その後、オペレータはコールをサービス番号に転送します。転送のコンテキストでは、データベースに要求が行われ、コールは最終的に目的の番号に転送されます。 この場合の発信のダイヤルプランは次のようになります。
[operator-out]
exten => _X.,1,Noop(Outgoing call from ${CALLERID(num)} to ${EXTEN})
exten => _X.,n,Set(__TRANSFER_CONTEXT=transfer)
exten => _X.,n,Dial(SIP/provider/${EXTEN},30,T)
[transfer]
exten => 800,1,Set(num=ODBC_GETXFERNUM(${CALLERID(num)}
exten => 800,n,Noop(Transfer to ${num})
exten => 800,n,Goto(some-context,${num},1)
発信コールでは、チャネル変数TRANSFER_CONTEXTが設定されます。これは、コールを転送するためのコンテキストを再定義し、ODBCを使用してコールが番号800に転送された場合、実際に転送される番号を取得します。 ただし、転送が行われる前に、オペレーターの内部番号と通話を今すぐ転送する必要がある番号との対応をテーブルの適切なフィールドに入力する必要があります。これには、従業員の少なくとも1つの追加アクションが必要です(CRMでは、転送する番号を選択する必要があります)そして、電話またはソフトフォンで変換自体を実行します)、また、テーブルのデータが正しいことを確認する必要があります:変換の直後にレコードを削除し、ダイヤルプランの空のレコードをチェックして処理します。
すべての欠点について、コールを転送する必要がある番号が事前にわかっている場合は、同様の方法を使用できます。 コールセンターが、複数の顧客の顧客への発信通話に取り組んでいるとします。 コールはCRMから自動的に生成され(コールファイルを使用するか、AMIから発信)、「次のコール」ボタンをクリックして、クライアントと会話するスクリプトが表示されます。 次に、継承した変数に番号を追加するだけで、呼び出しを転送できます。
呼び出しファイルに__num継承変数を追加します。
Channel: Local/101@from-internal
Callerid: 74950000000
MaxRetries: 2
RetryTime: 600
WaitTime: 30
Context: from-internal
Extension: 74950000000
Priority: 1
Set: __num=79991112233
また、翻訳コンテキストはさらにシンプルになります。
exten => 800,1,Noop(Transfer to ${num})
exten => 800,n,Goto(some-context,${num},1)
ただし、前述のように、この方法は望ましくありません。
幸いなことに、アスタリスクの開発者が私たちの面倒を見てくれました。cliを使用すると、特定のチャネルを特定のコンテキストに変換できます。
channel redirect <[[context,]exten,]priority>
AMI:
Action: Redirect
[ActionID:] value
Channel: value
[ExtraChannel:] value
Exten: value
[ExtraExten:] value
Context: value
[ExtraContext:] value
Priority: value
[ExtraPriority:] value>
: , , .
, . bridge show all .
> bridge show all
Bridge-ID Chans Type Technology
14418b64-0635-46e7-bd48-f4b820461eaa 2 basic simple_bridge
bridge show <bridge-id> , .
, bridge-id , bridge-id, :
> core show channels concise
SIP/RT-00000453!incoming!!1!Up!AppDial!(Outgoing Line)!89063448810!!!3!134!14418b64-0635-46e7-bd48-f4b820461eaa!1479984681.1659
SIP/67-00000452!macro-dialout-trunk!s!23!Up!Dial!SIP/RT/89063448810,300,TtL(7200000)!67!!!3!134!14418b64-0635-46e7-bd48-f4b820461eaa!1479984681.1658
, 2 bridge-id(14418b64-0635-46e7-bd48-f4b820461eaa), . . bash-, ( FreePBX 13):
#!/bin/bash context="from-internal" # , exten=$1 # num=$2 # , bridge=$(asterisk -rx 'core show channels concise' | grep SIP/$exten- | cut -d '!' -f13 ) # bridge-id SIP/xx-aaaaa channel=$(asterisk -rx 'core show channels concise' | grep $bridge | grep -v SIP/$exten- | cut -d '!' -f1) # channel SIP/provider-000000 result=$(asterisk -rx "channel redirect $channel $context,$num,1") # echo $result exit 0
- , . “” CRM .
? , CRM asterisk . , , .
--, , , .
channel redirect <[[context,]exten,]priority>
AMI:
Action: Redirect
[ActionID:] value
Channel: value
[ExtraChannel:] value
Exten: value
[ExtraExten:] value
Context: value
[ExtraContext:] value
Priority: value
[ExtraPriority:] value>
: , , .
, . bridge show all .
> bridge show all
Bridge-ID Chans Type Technology
14418b64-0635-46e7-bd48-f4b820461eaa 2 basic simple_bridge
bridge show <bridge-id> , .
, bridge-id , bridge-id, :
> core show channels concise
SIP/RT-00000453!incoming!!1!Up!AppDial!(Outgoing Line)!89063448810!!!3!134!14418b64-0635-46e7-bd48-f4b820461eaa!1479984681.1659
SIP/67-00000452!macro-dialout-trunk!s!23!Up!Dial!SIP/RT/89063448810,300,TtL(7200000)!67!!!3!134!14418b64-0635-46e7-bd48-f4b820461eaa!1479984681.1658
, 2 bridge-id(14418b64-0635-46e7-bd48-f4b820461eaa), . . bash-, ( FreePBX 13):
#!/bin/bash context="from-internal" # , exten=$1 # num=$2 # , bridge=$(asterisk -rx 'core show channels concise' | grep SIP/$exten- | cut -d '!' -f13 ) # bridge-id SIP/xx-aaaaa channel=$(asterisk -rx 'core show channels concise' | grep $bridge | grep -v SIP/$exten- | cut -d '!' -f1) # channel SIP/provider-000000 result=$(asterisk -rx "channel redirect $channel $context,$num,1") # echo $result exit 0
- , . “” CRM .
? , CRM asterisk . , , .
--, , , .
channel redirect <[[context,]exten,]priority>
AMI:
Action: Redirect
[ActionID:] value
Channel: value
[ExtraChannel:] value
Exten: value
[ExtraExten:] value
Context: value
[ExtraContext:] value
Priority: value
[ExtraPriority:] value>
: , , .
, . bridge show all .
> bridge show all
Bridge-ID Chans Type Technology
14418b64-0635-46e7-bd48-f4b820461eaa 2 basic simple_bridge
bridge show <bridge-id> , .
, bridge-id , bridge-id, :
> core show channels concise
SIP/RT-00000453!incoming!!1!Up!AppDial!(Outgoing Line)!89063448810!!!3!134!14418b64-0635-46e7-bd48-f4b820461eaa!1479984681.1659
SIP/67-00000452!macro-dialout-trunk!s!23!Up!Dial!SIP/RT/89063448810,300,TtL(7200000)!67!!!3!134!14418b64-0635-46e7-bd48-f4b820461eaa!1479984681.1658
, 2 bridge-id(14418b64-0635-46e7-bd48-f4b820461eaa), . . bash-, ( FreePBX 13):
#!/bin/bash context="from-internal" # , exten=$1 # num=$2 # , bridge=$(asterisk -rx 'core show channels concise' | grep SIP/$exten- | cut -d '!' -f13 ) # bridge-id SIP/xx-aaaaa channel=$(asterisk -rx 'core show channels concise' | grep $bridge | grep -v SIP/$exten- | cut -d '!' -f1) # channel SIP/provider-000000 result=$(asterisk -rx "channel redirect $channel $context,$num,1") # echo $result exit 0
- , . “” CRM .
? , CRM asterisk . , , .
--, , , .