2009年12月22日

trixbox Pro: ホットデスク機能(2009年現在)

とりあえず、現行品に関する情報をまとめました。

============================

ホットデスク機能:

http://help.trixbox.com/index.php?title=Troubleshooting/Hot_Desking_or_Hoteling&highlight=hot+desk

Hot Desking is a Call Center Edition only feature which allows one to use festival seating (where more than one agent sits at one desk at different time, or otherwise known as 'unassigned seating'), and allows these agents to log into the queue at any phone to which they are seated.

Aさん、Bさん、Cさんが横一列でシャワーをあびているとします。

ホットデスクを例えると、いわば、「人のシャワーコードをつかんで自分に向ける」ような機能です。

・通常の内線通話は自分で取れるし、他の人にも電話できる(シャワーをあびながら、お互いに雑談は可能。)
・しかし、キューとして入ってくるコール(シャワーの水)は、他人のものを奪える
・一度に複数のシャワーを自分の頭の上に設置できる。
・ログアウトすれば元通り。

と考えていただいてよいと思います。
考え方としては、「人の電話機で自分の(または任意の)キューから流れてくる
コールを取ることができる」というものです。

==============================
注)

現在のホットデスク機能は、AgentCallBackLoginという機能を使っています。
が、下記にこうあります。
http://www.voip-info.org/tiki-index.php?page=Asterisk%20cmd%20AgentCallbackLogin
New in Asterisk v1.4.0: (July 2006) Due to various issues with
AgentCallbackLogin this feature is deprecated by Digium (according to
Kevin P. Fleming). Similar functionality can be achieved through
existing dialplan functionatliy using dynamic members: The functionality
has been replaced with AEL dialplan logic located in the
doc/queues-with-callback-members.txt file within the Asterisk source.

Removed in Asterisk v1.6

ということですので、trixbox次期バージョンでは仕様がかわることはまず間違いありません。よって下記の情報はあとわずかな期間のみの情報です。
==============================

trixbox(asterisk)は、この機能を次のようにして実現しています。

■通常の使い方(本人が自分のキューにはいった場合)

(1)電話機リスト(実際にはMacアドレス)
1--- Nakayo電話機
2--- Snom電話機
3--- Nokia電話機

(2)asteriskユーザリスト
Aさん--- 3番の電話
Bさん--- 1番の電話
Cさん--- 2番の電話

(3)Neoエージェントリスト
5000 --- 3番の電話機
5200 --- 1番の電話機
5700 --- 2番の電話機

■ホットデスクの場合

(例えば、Aさんは 5000番と5200番のキュー、Bさんが5700番のキューを横取りする(つかむ)とします。)

(1)電話機リスト(実際にはMacアドレス)
1--- Nakayo電話機
2--- Snom電話機
3--- Nokia電話機

(2)asteriskユーザリスト
5000Aさん--- 3番の電話
5200Bさん--- 1番の電話
5700Cさん--- 2番の電話

(3)Neoエージェントリスト(**番のキューは、*の電話機へ)
5000 --- 3の電話機
5200 --- 3の電話機★
5700 --- 1の電話機★
5300 --- (空白)

となります。ACDによるキューに着番した場合、通常の(2)を見に行くのではな
く、まず(3)のNeoエージェントリストを見に行くのがみそです。

★(着信)→(ACDでキュートして振り分け)→(該当内線番号がどの電話機に結びついているか)→(その電話機を鳴らす)

という処理の中では、「誰の電話を」ではなく、「5200の“キュー用端末はどれか”」という仕方で処理されています。また、"複数のキューに同時に入れる”というのも味噌です。

ですから、HUDが、「5000番にホットデスクログインしている人をキューからログアウトする」という場合には、単に5000番の人を(2)のユーザリストから探してログオフするだけではだめで、「キュー」に関していうと、

まず、
【1】5000番には、現在、3の電話機が割ついている
【2】(2)より、3の電話機の本来の持ち主はAさん
【3】Aさんの電話機は 3番のNokia電話機
【4】3番のNokia電話機は、(本来の)5000番と(本来の)5200番に割ついている
【5】(3)のエージェントリストから、5000番と5200番を削除する。そして、

(3)Neoエージェントリスト
5000 --- (空白)
5200 --- (空白)
5700 --- 1の電話機
5300 --- (空白)

とする、という処理を行えば良いことになります。

ちなみに、trixbox Proのショートカットで試してみると、

*3
Non-Roaming Agent Logout
This keycode will logout the single agent who belongs to thi.

というのは、単純に、(2)asteriskユーザリストの内線番号のユーザをログアウトさせるだけ


*56
Roaming Agent Logout
This keycode will logout an agent from *any* phone. The age...

というのは、(3)Neoエージェントリストの中から、"指定された番号”だけ、情報を空白にする

という機能でした。今回は、*56に似ていますが、「指定された番号の結びついている電話機の情報をすべて(3)のテーブルから削除する」という機能で、複数ログインしてしまった場合でも、誤動作なしに、すべて削除できると思います。


========================================
生ログ

D(SIP/00085D1994DE)が、Aさんのキューになりすます、という状況。

★SIP/00085D1994DEの電話機が、*54をダイアルして、5000番になることを要求。
-- Executing DBget("SIP/00085D1994DE-b70141d8",
"REQAGENTPASS=NeoAgentPassReq/5000") in new stack
-- DBget: varname=REQAGENTPASS, family=NeoAgentPassReq, key=5000
-- DBget: Value not found in database.
-- Executing GotoIf("SIP/00085D1994DE-b70141d8", "0?10:17") in new stack
-- Goto (internal,*51,17)
-- Executing Cut("SIP/00085D1994DE-b70141d8",
"AGENTCHAN=CHANNEL|-|1") in new stack
-- Executing DBput("SIP/00085D1994DE-b70141d8",
"NeoAgent/5000=SIP/00085D1994DE") in new stack
★ここでなりすましに成功!
-- DBput: family=NeoAgent, key=5000, value=SIP/00085D1994DE
-- Executing DBput("SIP/00085D1994DE-b70141d8",
"NeoAgentMissed/5000=0") in new stack
-- DBput: family=NeoAgentMissed, key=5000, value=0
-- Executing DBput("SIP/00085D1994DE-b70141d8",
"NeoAgentLastLoc/5000=SIP/00085D1994DE") in new stack
★最後に5000番になったのは、SIP/00085D1994DEだよと登録。
-- DBput: family=NeoAgentLastLoc, key=5000, value=SIP/00085D1994DE
-- Executing Playback("SIP/00085D1994DE-b70141d8", "agent-loginok")
in new stack
-- Playing 'agent-loginok' (language 'en')
★アナウンス「エージェントはログインしました」
-- Executing Hangup("SIP/00085D1994DE-b70141d8", "") in new stack
== Spawn extension (internal, *51, 22) exited non-zero on
'SIP/00085D1994DE-b70141d8'
-- Executing ResetCDR("SIP/00085D1994DE-b70141d8", "w") in new stack
-- Executing NoCDR("SIP/00085D1994DE-b70141d8", "") in new stack
Dec 21 08:09:07 NOTICE[4188]: cdr.c:445 ast_cdr_free: CDR on channel
'SIP/00085D1994DE-b70141d8' lacks end
-- Executing GotoIf("SIP/00085D1994DE-b70141d8", "1?5") in new stack
-- Goto (internal,h,5)
-- Executing Hangup("SIP/00085D1994DE-b70141d8", "") in new stack
★ハングアップ
== Spawn extension (internal, h, 5) exited non-zero on
'SIP/00085D1994DE-b70141d8'
trixbox116613*CLI>

★NeoAgentテーブルの内容
/NeoAgent/4000 :
/NeoAgent/5000 : SIP/00085D1994DE
/NeoAgent/5100 :
========================================

★注意
電話機は他人の内線キューを受け取ることができても、HUDの動作は現在のところ、連動して変わるわけではありません。自分が、自分の8500番から他人の8000番に入って電話を受けているとしても、Webランチャがポップアップするのは8500番のアカウントに入っているHUDがポップアップします。


posted by SDozono at 14:06| 東京 ☀| Comment(0) | TrackBack(0) | trixbox Pro | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
WebとCTI、VoIP技術の高みを目指して - 技術者の24時間
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。