説明

コールシステム

【課題】呼出し時刻になったときに、サーバに予定が登録された複数の相手から、呼出し対象となる相手を抽出して、自動的に呼出し及び再呼出しを行う。
【解決手段】回線通信制御部25と着信回線通信制御部26を実装した音声ボード17を具備したサーバ15と、サーバ15に接続された作業者端末14とを備え、サーバ15では、スタッフ情報管理部20は、作業者端末14からスタッフ情報データベース31の情報を登録し、運行テーブル作成部21は、運行テーブル32を作成する処理を行い、回線割当部22は、回線毎プロセスカウンタ33を参照しカウンタ数が最少の回線を選択し、呼出しプロセスと再呼出しプロセスを当該回線用のプロセス管理テーブル34に同時に登録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、呼出し時刻になったときに、自動的に発呼するコールシステムであって、特に、サーバに予定が登録された複数の相手から、呼出し対象となる相手を抽出して、呼出し及び再呼出しを行うコールシステムに関する。
【背景技術】
【0002】
バス、ハイヤー等のドライバー或いは派遣スタッフ(以下総称して単にスタッフという)の起床確認には、事務所に待機している管理者に電話をかけて起床或いは管理者側からスタッフに電話をかけて起床を確認する。
【0003】
例えば特許文献1は、インターネット網を介してユーザ端末とサービス提供サーバとが接続されてなるモーニングコールサービスシステムである。
【0004】
このモーニングコールサービスシステムは、予め記憶されているスケジュールの日時になったときに、相手に電話をかけて音声ガイダンスを流し、相手の音声から相手が完全におきたかどうかを判断する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4055371号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の通り、従来のモーニングコールシステムは、予め指定した起床予定時刻に電話機のベル(着信音)を鳴動させることにより起床を促すものであるため、 受話器を持ち上げて直ぐに元の位置に戻してしまった場合には、ユーザが完全に起床したのかどうかを確認できないといった問題点があった。
【0007】
特許文献1では、その解決策として、相手が電話に応答した際に、相手の音声を認識して起床を確認する手法を採用している。
【0008】
しかし、目覚まし時計のアラームが鳴ると、そのときはしっかり起きてアラームを止める操作を行うが、それが済むとまた眠ってしまうことがある場合と同様に、呼び出されるなど外部からの刺激に対しては、条件反射のように対応してしまうことがある。
【0009】
したがって、相手が電話に応答した際の対応を確認しただけでは、その後確実に起床したかを判断することは難しく、電話への対応を完了した後に、相手が何らかの動作を自発的に行ったことを確認することで、確実に起床したと判断することが望ましい。
【0010】
また、コンピュータ内部での確認のみでは、起床を確認できないままに放置され、支障をきたす場合があり得る。予定作業時間が過ぎたあとにコンピュータの保守者が確認しても意味がないため、呼出し状況をリアルタイムに監視できる機能が必要となる。
【0011】
さらに、公衆電話網の回線を利用するシステムでは、システムに実装できる回線数は無制限ではないため、限られた回線を効率的に使用して、遅延を最小限にして多くの呼出しができる仕組みが必要となる。
【課題を解決するための手段】
【0012】
本発明のコールシステムは、スタッフ電話機及び管理者携帯電話機と通信を行うために、電話網に接続された複数の回線通信制御部と着信回線通信制御部を実装した音声ボード、カレンダー、一次メモリ及び二次メモリを具備したサーバと、サーバに接続された作業者端末とを備えたコールシステムである。
【0013】
本発明のコールシステムのサーバは、作業者端末から、呼出し日付と呼出し時刻を含むスタッフ情報をスタッフ情報ベータベースとして二次メモリに登録するためのスタッフ情報管理部と、カレンダーから日時を取得し、当該日時から所定期間内に該当する呼出し日付と呼出し時刻を含むスタッフ情報をスタッフ情報ベータベースから抽出し、一次メモリに運行テーブルを作成する運行テーブル作成部と、所定間隔でカレンダーから現時刻を取得し、当該現時刻から呼出し時刻に達するスタッフ情報を検出するとともに、一次メモリの回線毎プロセスカウンタを参照しカウンタ数が最少の回線を選択し、発呼処理部の呼出しプロセスを再呼出しプロセスとして、それぞれのプロセス識別子を当該回線用のプロセス管理テーブルに同時に登録し、回線毎プロセスカウンタの当該回線用のカウンタ数に2を加算する回線割当部と、プロセス管理テーブルに登録された呼出しプロセスと再呼出しプロセスを並列して起動し、起動した呼出しプロセスと再呼出しプロセスから受信するイベントが、(1)呼出し前自己申告ありの場合、呼出しプロセスのプロセス識別子と、当該呼出しプロセスに対応する再呼出しプロセスのプロセス識別子をプロセス管理テーブルから削除し、回線毎プロセスカウンタのカウンタ数から2を減算し、(2)呼出し終了の場合、呼出しプロセスのプロセス識別子をプロセス管理テーブルから削除し、回線毎プロセスカウンタのカウンタ数から1を減算し、(3)再呼出し前自己申告あり及び再呼出し終了の場合、再呼出しプロセスのプロセス識別子をプロセス管理テーブルから削除し、回線毎プロセスカウンタのカウンタ数から1を減算するプロセス管理部と、プロセス管理部から起動された呼出しプロセスと再呼出しプロセスのそれぞれのプロセス識別子に含まれるスタッフ番号に該当するスタッフ情報を運行テーブルから読み出し、当該スタッフ情報のスタッフ状況が自己申告ありの場合、呼出し前自己申告ありイベントまたは再呼出し前自己申告ありイベントをプロセス管理部に送信し、当該スタッフ情報のスタッフ状況が自己申告なしの場合、一次メモリの回線使用状況テーブルを参照し、指定回線が空きならば、回線使用状況テーブルを使用に変更し、当該スタッフ情報に設定されたスタッフ電話番号に回線通信制御部から所定回数発呼を繰り返し、所定回数に達した時または応答時に呼出
し終了イベントまたは再呼出し終了イベントをプロセス管理部に送信し、処理によりスタッフ状況に変化が生じると、スタッフ番号とともにスタッフ状況更新要求をスタッフ状況更新部に送信する発呼処理部と、着信回線通信制御部から着信呼情報を受信すると、当該着信呼情報内の発信者電話番号とともにスタッフ状況更新要求をスタッフ状況更新部に送信する自己申告受信部と、発呼処理部、及び自己申告受信部から、それぞれスタッフ識別情報としてスタッフ番号及び発信者電話番号とともに送信されたスタッフ状況更新要求により、当該スタッフ識別情報に該当する運行テーブルのスタッフ情報のスタッフ状況を更新するとともに、作業者端末にスタッフ状況を通知するスタッフ状況更新部とを含むことを要旨とする。
【発明の効果】
【0014】
以上のように本発明によれば、相手が自発的に行った自己申告があったことを確認できるまで、呼出しと再呼出しを行うので、確実に起床したことを確認できる。
【0015】
また、本発明によれば、サーバから呼出し状況(スタッフ状況)をリアルタイムに作業者端末に通知し、画面に表示させるので、常に呼出し状況を監視できる。
【0016】
さらに、本発明によれば、割り当てられたプロセス数が最少の回線を選択して、呼出しプロセスと再呼出しプロセスを同時に割当てるので、回線を効率的に使用し、遅延を最小限にして多くの呼出しができる。
【図面の簡単な説明】
【0017】
【図1】実施の最良の形態のコールシステムの概略構成図
【図2】実施の最良の形態のサーバの構成図
【図3】実施の最良の形態のスタッフ情報データベースの構成図
【図4】実施の最良の形態の運行テーブルの構成図
【図5】呼出し前までのシステム全体のシーケンス図
【図6】呼出しにスタッフが全く応答しない場合のシステム全体のシーケンス図
【図7】再呼出しにスタッフが全く応答しない場合のシステム全体のシーケンス図
【図8】呼出しに応答した場合のシステム全体のシーケンス図
【図9】再呼出しに応答した場合のシステム全体のシーケンス図
【図10】呼出し前に自己申告があった場合のシステム全体のシーケンス図
【図11】呼出しにスタッフが全く応答しない場合のイメージ図
【図12】作業者端末に表示される画面のイメージ図
【図13】スタッフが全く応答しない場合のサーバ内シーケンス図
【図14】スタッフが全く応答した場合のサーバ内シーケンス図
【図15】呼出し前に自己申告があった場合のサーバ内シーケンス図
【図16】呼出しに応答後に自己申告あった場合のサーバ内シーケンス図
【図17】プロセス間制御シーケンス図
【図18】運行テーブル作成部のフローチャート
【図19】回線割当部のフローチャート
【図20】プロセス管理部のフローチャート
【図21】プロセス管理部のフローチャート
【図22】発呼処理部のフローチャート
【図23】発呼処理部のフローチャート
【図24】発呼処理部のフローチャート
【図25】発呼処理部のフローチャート
【図26】スタッフ状況更新部のフローチャート
【図27】スタッフ状況更新部のフローチャート
【図28】第2の実施の形態のコールシステムの概略構成図
【図29】第2の運行テーブル作成部のフローチャート
【図30】第3の運行テーブル作成部のフローチャート
【図31】第2の回線割当部のフローチャート
【発明を実施するための形態】
【0018】
<発明の第1の実施の形態>
本発明の実施の最良の形態のコールシステムは、図1に示すように、電話網12とインターネット10に接続され、スタッフ電話機13及び管理者携帯電話機11と通信を行うために、電話網12と接続するための複数の回線通信制御部25と着信回線通信制御部26を実装した音声ボード17と、カレンダー16と、一次メモリ及び二次メモリとを具備したサーバ15と、サーバ15に接続された作業者端末14とによって構成される。
【0019】
スタッフ電話機13は、携帯電話機が望ましいが、固定電話機であっても構わない。
【0020】
サーバ15に接続される電話回線は、アナログ電話回線とISDN電話回線のいずれであっても構わず、両方の回線を混在させることも可能であり、それぞれに対応したインターフェースを有する回線通信制御部25と着信回線通信制御部26を音声ボード17に実装する。
【0021】
回線通信制御部25は、サーバ15から指定された電話番号に自動で発呼する機能を有し、相手からの応答信号を検出してサーバ15に通知し、サーバ15の指示により通話状態となった電話回線を切断する。
【0022】
音声ボード17は、相手からの応答信号を検出した際に、サーバ15から指定された音声応答情報を再生して相手に聞かせる機能を有する。
【0023】
着信回線通信制御部26は、相手からの呼に対して自動応答するとともに、相手の電話番号(発信者電話番号)を受信してサーバ15に通知する機能を有する。
【0024】
図2のサーバ15の構成図において、一次メモリ及び二次メモリを明示していないが、一次メモリには、運行テーブル32、回線毎プロセスカウンタ33、プロセス管理テーブル34、及び回線使用状況テーブル35が作成される。二次メモリには、スタッフ情報データベース31が構築される。
【0025】
さらに、図2に示すように、サーバ15には、スタッフ情報管理部20、運行テーブル作成部21、回線割当部22、プロセス管理部23、発呼処理部24、自己申告受信部27、電子メール送受信部28、スタッフ状況更新部29、設定変更部30が含まれる。
【0026】
(データ構成)
スタッフ情報データベース31には、図3に例示すように、スタッフ基本データ311とスタッフ予定データ312が含まれる。
【0027】
スタッフ基本データ311には、全スタッフについて、スタッフ識別情報となるスタッフ番号Mと、スタッフメールアドレスSaと、スタッフ電話番号Dが登録され、さらに、本コールシステムによって呼び出した時に各スタッフに聞かせるメッセージを、呼出し時音声応答情報Cm及び再呼出し時音声応答情報Rmとして登録できる。
【0028】
また、必要時に管理者に電子メールで通知できるように、各スタッフの管理者のメールアドレス(管理者メールアドレスKa)をスタッフ基本データ311に登録しておく。
【0029】
スタッフ予定データ312には、各スタッフの一定期間(一週間や一ヶ月など)の勤務予定に従い、呼出し日付ddと呼出し時刻Tp及び再呼出し時刻Tqを登録する。
【0030】
スタッフ毎に作成されるスタッフ予定データ312は、スタッフ番号Mをテーブル名に付与するなどして、各スタッフのスタッフ基本データ311にリンクさせておく。
【0031】
なお、再呼出し時刻Tqは、呼出し時刻Tpに近過ぎたり、呼出し時刻Tpから離れ過ぎたりすると効果がないので、呼出し時刻Tpを登録する際に、呼出し時刻Tpから一定時間(例えば15分)後になるように、システムが自動設定するのが好ましい。
【0032】
運行テーブル32には、図4に例示すように、スタッフ情報データベース31に登録された情報のうち、スタッフ番号Mと、スタッフメールアドレスSaと、スタッフ電話番号Dと、呼出し時音声応答情報Cmと、再呼出し時音声応答情報Rmと、管理者メールアドレスKaと、呼出し当日の呼出し時刻Tp及び再呼出し時刻Tqが設定される。
【0033】
さらに、運行テーブル32には、スタッフの状況を示すスタッフ状況フラグ欄Fが設けられ、呼出しフラグF1、呼出し応答フラグF2、再呼出しフラグF3、再呼出し応答フラグF4、自己申告フラグF5が含まれる。
【0034】
自己申告フラグF5は、スタッフが起床したことを自ら連絡してきたときに1が設定される。呼出しフラグF1は、システムが呼出し時刻Tpにスタッフに発呼したときに1が設定され、呼出し応答フラグF2は、その呼出しにスタッフが応答したときに1が設定される。
【0035】
再呼出しフラグF3は、システムが再呼出し時刻Tqにスタッフに発呼したときに1が設定され、再呼出し応答フラグF4は、その再呼出しにスタッフが応答したときに1が設定される。
【0036】
回線毎プロセスカウンタ33には、図2に例示するように、回線番号とその回線に割当てられている発呼処理部24のプロセスの数を示す回線毎のデータが設定されている。
【0037】
プロセス管理テーブル34は、図2に例示するように、回線毎に作成される。プロセス管理テーブル34には、生成された発呼処理部24のプロセスを識別するプロセス識別子(PID)が登録される。
【0038】
プロセス識別子には、呼出しプロセスの呼出しプロセス識別子と、再呼出しプロセスの再呼出しプロセス識別子があり、各プロセスがどのスタッフのためのプロセスであるかが識別できるように、プロセス識別子を生成する。
【0039】
具体的には、スタッフのスタッフ番号Mを利用すると同時に、呼出し用か再呼出し用かを区別できるように、例えばプロセス識別子の最後に、呼出しプロセスには“C”、また再呼出しプロセスには“R”を付与する。この作成方法に従って、スタッフ番号01のスタッフの呼出しプロセス識別子は“01C”、再呼出しプロセス識別子は“01R”となる。
【0040】
回線使用状況テーブル35には、図2に例示するように、回線番号とその回線が空きか使用中かを示す回線毎のデータが設定されている。これは、同一の回線を使用しようとしている複数のプロセス間で排他制御を行うために用いられる。
【0041】
(各処理部の機能)
スタッフ情報管理部20は、作業者端末14からスタッフ情報データベース31の情報を二次メモリに登録する処理を行う。
【0042】
運行テーブル作成部21は、カレンダー16から現日時を取得し、呼出し日付ddと呼出し時刻Tpが現日時から所定期間内(例えば24時間)に該当するスタッフの情報をスタッフ情報データベース31から抽出し、一次メモリに運行テーブル32を作成する処理を行う。
【0043】
回線割当部22は、所定周期(例えば1分)毎に、カレンダー16から現時刻を取得し、現時刻と比較して、呼出し時刻Tpに達するスタッフ情報を検出するとともに、回線毎プロセスカウンタ33を参照しカウンタ数が最少の回線を選択し、発呼処理部24のプロセスとして、呼出しプロセス識別子と再呼出しプロセス識別子を当該回線用のプロセス管理テーブル34に同時に登録し、回線毎プロセスカウンタ33の当該回線用のカウンタに2を加算する処理を繰り返し行う。
【0044】
プロセス管理部23は、プロセス管理テーブル34に登録された発呼処理部24のプロセスを並列して起動する一方、プロセスが終了する際に、プロセスから送信されるイベントの種類に従い、プロセス管理テーブル34から該当するプロセスを削除するとともに、削除したプロセスの数だけ回線毎プロセスカウンタ33のカウンタから減算する処理を行う。
【0045】
発呼処理部24は、プロセス管理部23から起動されたプロセスのプロセス識別子に含まれるスタッフ番号Mにより、運行テーブル32から該当するスタッフ情報を読み出し、自己申告フラグF5が1の場合はプロセスを終了し、自己申告フラグF5が0の場合は、回線使用状況テーブル35を参照し、指定回線が空きならば、スタッフ情報に設定されたスタッフ電話番号Dに回線通信制御部25から所定回数(例えば3回)発呼を繰り返し、所定回数に達した時または応答時にプロセスを終了する処理を行う。
【0046】
発呼処理部24は、プロセスを終了する際に、「待ち状態」、「呼出し前自己申告あり」、「呼出し終了」、「再呼出し前自己申告あり」、及び「再呼出し終了」の終了要因を示すイベントをプロセス管理部23に送信する処理を行う。
【0047】
また、発呼処理部24は、プロセスの処理に伴って、スタッフの状況が変化する際に、「呼出し中」、「呼出し応答」、「呼出し応答なし」、「再呼出し中」、「再呼出し応答」、及び「再呼出し応答なし」のスタッフ状況更新要求を、スタッフ識別情報としてのスタッフ番号Mとともにスタッフ状況更新部29に通知する処理も行う。
【0048】
自己申告受信部27は、着信回線通信制御部26から着信呼情報を受信し、着信呼情報内の発信者電話番号をスタッフ識別情報としてスタッフ状況更新部29に送信する処理を行う。
【0049】
電子メール送受信部28は、インターネット10経由で受信した電子メールの発信元メールアドレスをスタッフ識別情報としてスタッフ状況更新部29に送信するとともに、スタッフ状況更新部29からの要求により管理者携帯電話機11に督促メールを送信する処理を行う。
【0050】
スタッフ状況更新部29は、発呼処理部24、自己申告受信部27、及び電子メール送受信部28からスタッフ識別情報とともに送信させたスタッフ状況更新要求により、当該スタッフ識別情報に該当する運行テーブル32のスタッフ情報を更新する処理と、更新時に更新したスタッフ情報を作業者端末14に通知する処理を行う。
【0051】
また、スタッフ状況更新部29は、発呼処理部24から「呼出し応答なし」及び「再呼出し応答なし」のスタッフ状況更新要求を受信した場合は、管理者携帯電話機11への督促メール送信を電子メール送受信部28に要求する処理を行う。
【0052】
設定変更部30は、作業者端末14から運行テーブル32のスタッフ情報を変更する処理を行う。
【0053】
(システム全体のシーケンス)
図5に示すように、まず、作業者は、作業者端末14からサーバ15にアクセスし(d1)、スタッフ情報管理部20によりスタッフ情報をスタッフ情報データベース31に登録しておく(d2)。
【0054】
サーバ15の運行テーブル作成部21は、所定時刻(例えば毎日0時)になると、カレンダー16から現日付を取得し、登録させている呼出し日時と現日付と比較して、該当するスタッフ情報をスタッフ情報データベース31から抽出する(d3)。
【0055】
サーバ15の運行テーブル作成部21は、抽出したスタッフ情報にスタッフ状況フラグ欄Fを付加して運行テーブル32を作成する(d4)。
【0056】
サーバ15の回線割当部22は、所定周期(例えば1分)毎に、カレンダー16から現時刻を取得し、登録させている呼出し時刻Tpと現時刻と比較して、運行テーブル32から呼出し時刻Tpになるスタッフを検出する(d5)。
【0057】
つづいて、サーバ15の回線割当部22は、回線毎プロセスカウンタ33を参照して、プロセス数が最少の回線を選択し、当該回線のカウンタに2を加算する(d6)。
【0058】
サーバ15の回線割当部22は、発呼処理部24のプロセスとして、呼出しプロセス識別子と再呼出しプロセス識別子を当該回線用のプロセス管理テーブル34に同時に登録する(d7)。
【0059】
サーバ15の回線割当部22は、検出したスタッフ全員についてプロセスの登録処理を繰返す(d8)。
【0060】
さらに、サーバ15の回線割当部22は、上記の処理を所定周期(例えば1分)毎に繰返し行う(d9)。
【0061】
ここで、サーバ15のプロセス管理部23は、呼出しプロセスと再呼出しプロセスを区別せずに実行する。しかし、プロセス内で発呼処理を行う時刻に達したか判定するので、同一のスタッフの呼出しプロセスと再呼出しプロセスでは、呼出し時刻Tpが再呼出し時刻Tqより早いため、まず呼出しプロセスが発呼することになる。
【0062】
一方、再呼出しプロセスは、サーバ15のプロセス管理部23によりいったん実行状態に移行されても、再呼出し時刻Tqになっていないため実行待ち状態に戻る。
【0063】
したがって、同一のスタッフについて、時系列に従って、まず呼出しプロセスが実行され、その後に再呼出しプロセスが実行されるシーケンスを、場合分けしながら説明する。
【0064】
(ケース1:応答なし)
まず、呼出し及び再呼出しに応答がない場合のシーケンスについて、図6と図7を参照しながら説明する。スタッフから全く応答がない場合の流れのイメージを図11に例示し、また、作業者端末14に表示される画面イメージを図12に例示する。
【0065】
図12に例示した作業者端末14に表示される初期情報は、サーバ15の運行テーブル作成部21が、運行テーブル32の作成が完了した時点で作業者端末14に送信するなど、運行テーブル32に従って当日の呼出しが開始される前に作業者端末14に送信しておく。
【0066】
図6に示すように、サーバ15のプロセス管理部23は、サーバ15のCPUが新たなプロセスを実行できる状態となる毎に、プロセス管理テーブル34に登録されたプロセスを順次実行していく(d10)。
【0067】
サーバ15の発呼処理部24は、呼出しプロセス識別子に含まれるスタッフ番号Mによって、運行テーブル32から該当するスタッフ情報を読み出す(d11)。
【0068】
サーバ15の発呼処理部24は、読み出したスタッフ情報のスタッフ状況フラグ欄Fの自己申告フラグF5により、既に自己申告があったかどうかを判定する(d12)。
【0069】
サーバ15の発呼処理部24は、もし自己申告がなければ、スタッフ情報に登録させたスタッフ電話番号Dに回線通信制御部25によって呼出しを行い(d13)、スタッフ電話機13は、電話網12を介して呼び出される(d13a)。
【0070】
サーバ15の発呼処理部24は、スタッフ状況更新部29により運行テーブル32のスタッフ状況を「呼出し」に更新させ、作業者端末14に通知させる(d14)。作業者端末14では、該当スタッフの状況に「呼出し」が表示される(d14a)。
【0071】
サーバ15の発呼処理部24は、一定時間(例えば20秒)呼出し続け、一定時間がタイムアウトするまでスタッフからの応答を待つ(d15)。
【0072】
サーバ15の発呼処理部24は、もし応答がなければ、所定間隔(例えば30秒)後に、スタッフ電話番号Dに回線通信制御部25によって再度発呼し(d16)、スタッフ電話機13は、電話網12を介して呼び出される(d16a)。
【0073】
サーバ15の発呼処理部24は、また一定時間(例えば20秒)呼出し続け、一定時間がタイムアウトするまでスタッフからの応答を待ち(d17)、もし応答がなければ、上記の呼出しを所定回数(例えば3回)まで繰り返す(d18)。
【0074】
サーバ15の発呼処理部24は、所定回数呼出しても応答がない場合、スタッフ状況更新部29に「呼出し応答なし」を通知し、作業者端末14に通知させると同時に、電子メール送受信部28を介して、管理者携帯電話機11に督促メールを送信させる(d19)。作業者端末14では、該当スタッフの状況に「呼出し応答なし」が表示される(d19a)。
【0075】
サーバ15の発呼処理部24は、「呼出し終了」イベントをプロセス管理部23に送信し、プロセス管理部23では、回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34からプロセス登録を削除する(d20)。
【0076】
以上の呼出しの流れは、図11の(a)に例示したようになり、管理者は、送信されてきた督促メールに記載されたスタッフ電話番号Dに発呼し(d19b)、スタッフを呼出し(d19c)、起床を確認した場合は、自己申告させるか、督促メールに記載されたURLにアクセスする。
【0077】
つぎに、図7に示すように、サーバ15のプロセス管理部23は、サーバ15のCPUが新たなプロセスを実行できる状態となる毎に、プロセス管理テーブル34に登録されたプロセスを順次実行していく(d21)。
【0078】
サーバ15の発呼処理部24は、再呼出しプロセス識別子に含まれるスタッフ番号Mによって、運行テーブル32から該当するスタッフ情報を読み出す(d22)。
【0079】
サーバ15の発呼処理部24は、読み出したスタッフ情報のスタッフ状況フラグ欄Fの自己申告フラグF5から既に自己申告があったかどうかを判定する(d23)。
【0080】
サーバ15の発呼処理部24は、もし自己申告がなければ、スタッフ情報に登録させたスタッフ電話番号Dに回線通信制御部25によって呼出しを行い(d24)、スタッフ電話機13は、電話網12を介して呼び出される(d24a)。
【0081】
サーバ15の発呼処理部24は、スタッフ状況更新部29により運行テーブル32のスタッフ状況を「再呼出し」に更新させ、作業者端末14に通知させる(d25)。作業者端末14では、該当スタッフの状況に「再呼出し」が表示される(d25a)。
【0082】
サーバ15の発呼処理部24は、一定時間(例えば20秒)呼出し続け、一定時間がタイムアウトするまでスタッフからの応答を待つ(d26)。
【0083】
サーバ15の発呼処理部24は、もし応答がなければ、所定間隔(例えば30秒)後に、スタッフ電話番号Dに回線通信制御部25によって再度発呼し(d27)、スタッフ電話機13は、電話網12を介して呼び出される(d27a)。
【0084】
サーバ15の発呼処理部24は、また一定時間(例えば20秒)呼出し続け、一定時間がタイムアウトするまでスタッフからの応答を待ち(d28)、もし応答がなければ、上記の呼出しを所定回数(例えば3回)まで繰り返す(d29)。
【0085】
サーバ15の発呼処理部24は、所定回数呼出しても応答がない場合、スタッフ状況更新部29に「再呼出し応答なし」を通知し、作業者端末14に通知させると同時に、電子メール送受信部28を介して、管理者携帯電話機11に督促メールを送信させる(d30)。作業者端末14では、該当スタッフの状況に「再呼出し応答なし」が表示される(d30a)。
【0086】
サーバ15の発呼処理部24は、「再呼出し終了」イベントをプロセス管理部23に送信し、プロセス管理部23では、回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34からプロセス登録を削除する(d31)。
【0087】
以上の再呼出しの流れは、図11の(b)に示したようになり、管理者は、送信されてきた督促メールに記載されたスタッフ電話番号Dに発呼し(d30b)、スタッフを呼出し(d30c)、起床を確認し、自己申告させる。
【0088】
なお、督促メールの送信先を管理者携帯電話機11として説明したが、サーバ15にインターネットやLANによって接続できる管理者端末に送信しても構わない。
【0089】
(ケース2:応答後の自己申告なし)
次に、スタッフから応答がある場合のシーケンスについて、図8と図9を参照しながら説明する。
【0090】
図8に示すように、サーバ15のプロセス管理部23は、サーバ15のCPUが新たなプロセスを実行できる状態となる毎に、プロセス管理テーブル34に登録されたプロセスを順次実行していく(d40)。
【0091】
サーバ15の発呼処理部24は、呼出しプロセス識別子に含まれるスタッフ番号Mによって、運行テーブル32から該当するスタッフ情報を読み出す(d41)。
【0092】
サーバ15の発呼処理部24は、読み出したスタッフ情報のスタッフ状況フラグ欄Fの自己申告フラグF5から既に自己申告があったかどうかを判定する(d42)。
【0093】
サーバ15の発呼処理部24は、もし自己申告がなければ、スタッフ情報に登録させたスタッフ電話番号Dに回線通信制御部25によって呼出しを行い(d43)、スタッフ電話機13は、電話網12を介して呼び出される(d43a)。
【0094】
サーバ15の発呼処理部24は、スタッフ状況更新部29により運行テーブル32のスタッフ状況を「呼出し」に更新させ、作業者端末14に通知させる(d44)。作業者端末14では、該当スタッフの状況に「呼出し」が表示される(d44a)。
【0095】
サーバ15の発呼処理部24は、一定時間呼出し続けている間に(d45)、スタッフから応答があると(d45a)、スタッフ状況更新部29により運行テーブル32のスタッフ状況を「呼出し応答」に更新させ、作業者端末14に通知させる(d46)。作業者端末14では、該当スタッフの状況に「呼出し応答」が表示される(d46a)。
【0096】
サーバ15の発呼処理部24は、スタッフの予め登録しておいた呼出し時音声応答情報Cmを音声ボード17に再生させて、スタッフに聞かせた後、回線を切断し、「呼出し終了」イベントをプロセス管理部23に送信し、プロセス管理部23では、回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34からプロセス登録を削除する(d47)。
【0097】
つづいて、図9に示すように、サーバ15のプロセス管理部23は、サーバ15のCPUが新たなプロセスを実行できる状態となる毎に、プロセス管理テーブル34に登録されたプロセスを順次実行していく(d48)。
【0098】
サーバ15の発呼処理部24は、再呼出しプロセス識別子に含まれるスタッフ番号Mによって、運行テーブル32から該当するスタッフ情報を読み出す(d49)。
【0099】
サーバ15の発呼処理部24は、読み出したスタッフ情報のスタッフ状況フラグ欄Fの自己申告フラグF5から既に自己申告があったかどうかを判定する(d50)。
【0100】
サーバ15の発呼処理部24は、もし自己申告がなければ、スタッフ情報に登録させたスタッフ電話番号Dに回線通信制御部25によって呼出しを行い(d51)、スタッフ電話機13は、電話網12を介して呼び出される(d51a)。
【0101】
サーバ15の発呼処理部24は、スタッフ状況更新部29により運行テーブル32のスタッフ状況を「再呼出し」に更新させ、作業者端末14に通知させる(d52)。作業者端末14では、該当スタッフの状況に「再呼出し」が表示される(d52a)。
【0102】
サーバ15の発呼処理部24は、一定時間呼出し続けている間に(d53)、スタッフから応答があると(d53a)、スタッフ状況更新部29により運行テーブル32のスタッフ状況を「再呼出し応答」に更新させ、作業者端末14に通知させる(d54)。作業者端末14では、該当スタッフの状況に「再呼出し応答」が表示される(d54a)。
【0103】
サーバ15の発呼処理部24は、スタッフの予め登録しておいた再呼出し時音声応答情報Rmを音声ボード17に再生させて、スタッフに聞かせた後、回線を切断し、「再呼出し終了」イベントをプロセス管理部23に送信し、プロセス管理部23では、回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34からプロセス登録を削除する(d55)。
【0104】
一定時間後に、サーバ15のスタッフ状況更新部29は、運行テーブル32のスタッフ状況を「再呼出し応答」に更新したスタッフ情報について、スタッフ状況フラグ欄Fの自己申告フラグF5から既に自己申告があったかどうかを判定する(d56)。
【0105】
サーバ15のスタッフ状況更新部29は、もし自己申告がなければ、作業者端末14にアラームを通知し(d57)、作業者端末14では、アラームが表示される(d57a)。
【0106】
(ケース3:呼出し前自己申告あり)
最後に、スタッフから自己申告がある場合のシーケンスについて、図10を参照しながら説明する。
【0107】
図10に示すように、まず、スタッフはスタッフ電話機13からサーバ15に接続された着信回線用の電話番号に電話するか、スタッフ電話機13がEメール機能を有する携帯電話機であるときは、サーバ15に割り当てられたメールアドレスにEメールを送信することで、起床済みであることを自己申告する(d60)。
【0108】
サーバ15のスタッフ状況更新部29は、電話の場合、着信回線通信制御部26から自己申告受信部27に通知された発信者電話番号を受信し、Eメールの場合、電子メール送受信部28から発信元メールアドレスを受信し、該当のスタッフの運行テーブル32のスタッフ状況を「自己申告」に更新し、作業者端末14に通知する(d61)。作業者端末14では、該当スタッフの状況に「自己申告」が表示される(d61a)。
【0109】
サーバ15のプロセス管理部23は、サーバ15のCPUが新たなプロセスを実行できる状態となる毎に、プロセス管理テーブル34に登録されたプロセスを順次実行していく(d62)。
【0110】
サーバ15の発呼処理部24は、呼出しプロセス識別子に含まれるスタッフ番号Mによって、運行テーブル32から該当するスタッフ情報を読み出す(d63)。
【0111】
サーバ15の発呼処理部24は、読み出したスタッフ情報のスタッフ状況フラグ欄Fの自己申告フラグF5から既に自己申告があったかどうかを判定する(d64)。
【0112】
サーバ15の発呼処理部24は、もし自己申告があれば、「呼出し前自己申告」イベントをプロセス管理部23に送信し、プロセス管理部23では、回線毎プロセスカウンタ33から2を減算し、プロセス管理テーブル34から呼出しプロセスと再呼出しロセスの両方の登録を削除する(d65)。
【0113】
なお、再呼出しプロセスで自己申告があったことを検出した場合は、「再呼出し前自己申告」イベントをプロセス管理部23に送信し、プロセス管理部23では、回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から再呼出しプロセス登録を削除する。
【0114】
図12に例示した作業者端末14の表示画面では、各スタッフの氏名やスタッフ電話番号Dの情報とともに、状態を示す丸いサイン(k1、k2、k3、k4、k5、k6、・・・)が表示される。
【0115】
例えば、丸いサインは、初期状態では色は付いていないが、スタッフ状況更新部29から「呼出し」表示の通知を受信すると青色に点滅し始める。このあとスタッフ状況更新部29から「呼出し応答」表示の通知を受信すると青色に点灯した状態に変わり、もし「呼出し応答なし」表示の通知を受信すると黄色に点灯した状態に変わる。
【0116】
さらに、丸いサインは、スタッフ状況更新部29から「再呼出し」表示の通知を受信すると緑色に点滅し始める。このあとスタッフ状況更新部29から「再呼出し応答」表示の通知を受信すると緑色に点灯した状態に変わり、もし「再呼出し応答なし」表示の通知を受信するとオレンジ色に点灯した状態に変わる。
【0117】
また、丸いサインは、スタッフ状況更新部29から「自己申告」表示の通知を受信すると黒色に点灯し、アラームを受信すると赤色に点滅する。さらに、作業者端末14は、アラームを受信した場合は、警告音を鳴らして作業者に注意を促すようにしてもよい。
(サーバ15内シーケンス)
次に、上記のシステム全体のシーケンスのうち、図6から図10を参照して説明した発呼処理に関して、サーバ15内のプロセス管理部23、発呼処理部24、及びスタッフ状況更新部29の間でのシーケンスについて詳細に説明する。
【0118】
(ケース1:応答なし)
まず、図6と図7を用いて説明したスタッフが呼出しにも再呼出しにも全く応答しない場合について、図13を参照しながら、回線1を使用して、スタッフ01に対する呼出しプロセス識別子が“01C”のプロセス(以下、呼出しプロセス01Cという)と、再呼出しプロセス識別子が“01R”のプロセス(以下、再呼出しプロセス01Rという)を実行する例を説明する。
【0119】
プロセス管理部23は、プロセス管理テーブル34に登録されている呼出しプロセス01Cを実行する(S1)。
【0120】
実行された発呼処理部24の呼出しプロセス01Cは、スタッフ01のスタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S2a)、自己申告の有無を判定する(S2)。
【0121】
呼出しプロセス01Cは、自己申告がなく、また回線1を捕捉できれば、スタッフ状況更新部29に「呼出し」更新要求を送信し(S3)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの呼出しフラグF1に1を設定すると同時に(S3a)、作業者端末14に通知する。
【0122】
呼出しプロセス01Cは、つづいて、スタッフ01に対して1回目の発呼を行い、呼出し継続タイマーTa(例えば20秒)の間呼出しを継続する(S4)。さらに呼出し間隔タイマーTb(例えば30秒)の間、呼出しをやめ、その後2回目の発呼を行う(S5)。同様にして、3回目の発呼までを行う(S6)。
【0123】
3回目の発呼によっても、スタッフ01が応答しないため、呼出しプロセス01Cは、スタッフ状況更新部29に「呼出し応答なし」を通知し(S7)、スタッフ状況更新部29は、作業者端末14に通知すると同時に、電子メール送受信部28を介して、管理者携帯電話機11に督促メールを送信する(S7a)。
【0124】
最後に呼出しプロセス01Cは、プロセス管理部23に「呼出し終了」イベントを送信し(S8)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から呼出しプロセス01Cを削除する(S8a)。
【0125】
つづいて、プロセス管理部23は、プロセス管理テーブル34に登録されている再呼出しプロセス01Rを実行する(S9)。
【0126】
実行された発呼処理部24の再呼出しプロセス01Rは、スタッフ01のスタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S10a)、自己申告の有無を判定する(S10)。
【0127】
再呼出しプロセス01Rは、自己申告がなく、また回線1を捕捉できれば、スタッフ状況更新部29に「再呼出し」更新要求を送信し(S11)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの再呼出しフラグF3に1を設定すると同時に(S11a)、作業者端末14に通知する。
【0128】
再呼出しプロセス01Rは、つづいて、スタッフ01に対して1回目の発呼を行い、呼出し継続タイマーTaの間呼出しを継続する(S12)。さらに呼出し間隔タイマーTbの間、呼出しをやめ、その後2回目の発呼を行う(S13)。同様にして、3回目の発呼までを行う(S14)。
【0129】
3回目の発呼によっても、スタッフ01が応答しないため、再呼出しプロセス01Rは、スタッフ状況更新部29に「再呼出し応答なし」を通知し(S15)、スタッフ状況更新部29は、作業者端末14に通知すると同時に、電子メール送受信部28を介して、管理者携帯電話機11に督促メールを送信する(s15a)。
【0130】
最後に再呼出しプロセス01Rは、プロセス管理部23に「再呼出し終了」イベントを送信し(S16)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から再呼出しプロセス01Rを削除する(S16a)。
【0131】
(ケース2:応答後の自己申告なし)
次に、図8と図9を用いて説明した場合であり、スタッフ01が呼出しに応答したが自己申告がないため、再呼出しが行われ、再呼出しに応答したあとも自己申告がないため、作業者端末14にアラーム表示される場合について、図14を参照しながら説明する。
【0132】
プロセス管理部23は、プロセス管理テーブル34に登録されている呼出しプロセス01Cを実行する(S1)。
【0133】
実行された発呼処理部24の呼出しプロセス01Cは、スタッフ01のスタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S2a)、自己申告の有無を判定する(S2)。
【0134】
呼出しプロセス01Cは、自己申告がなく、また回線1を捕捉できれば、スタッフ状況更新部29に「呼出し」更新要求を送信し(S3)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの呼出しフラグF1に1を設定すると同時に(S3a)、作業者端末14に通知する。
【0135】
呼出しプロセス01Cは、つづいて、スタッフ01に対して1回目の発呼を行い、呼出し継続タイマーTaの間呼出しを継続する(S4)。
【0136】
呼出しプロセス01Cは、呼出しを継続している間にスタッフ01が応答すると、回線1通信制御部から応答信号を受信し(S20)、スタッフ状況更新部29に「呼出し応答」更新要求を送信し(S21)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの呼出し応答フラグF2に1を設定すると同時に(S21a)、作業者端末14に通知する。
【0137】
最後に呼出しプロセス01Cは、プロセス管理部23に「呼出し終了」イベントを送信し(S22)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から呼出しプロセス01Cを削除する(S22a)。
【0138】
プロセス管理部23は、スタッフ01が応答したかどうかにかかわらず、プロセス管理テーブル34に登録されている再呼出しプロセス01Rを実行する(S9)。
【0139】
本発明では、呼出しに応答したスタッフに、電話かEメールでサーバ15に自己申告させることで、起床したことを確認する仕組みを採用している。なぜなら、呼出しにいったん応答しても、その後再び眠ってしまうこともあるし、たまたまスタッフ電話機13が留守番電話モードとなっていて、自動応答してしまっていることも考えられるため、本人に自己申告されることとしている。
【0140】
そのため、呼出しに応答があった場合でも、自己申告の有無を確認させるために、再呼出しプロセス01Rを実行させている。
【0141】
実行された発呼処理部24の再呼出しプロセス01Rは、スタッフ01のスタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S10a)、自己申告の有無を判定する(S10)。
【0142】
再呼出しプロセス01Rは、自己申告がなく、また回線1を捕捉できれば、スタッフ状況更新部29に「再呼出し」更新要求を送信し(S11)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの再呼出しフラグF3に1を設定すると同時に(S11a)、作業者端末14に通知する。
【0143】
再呼出しプロセス01Rは、つづいて、スタッフ01に対して1回目の発呼を行い、呼出し継続タイマーTaの間呼出しを継続する(S12)。
【0144】
再呼出しプロセス01Rは、呼出しを継続している間にスタッフ01が応答すると、回線1通信制御部から応答信号を受信し(S23)、スタッフ状況更新部29に「再呼出し応答」更新要求を送信し(S24)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの再呼出し応答フラグF4に1を設定すると同時に(S24a)、作業者端末14に通知する。
【0145】
この時、スタッフ状況更新部29は、再呼出しに応答した後に、スタッフ01から自己申告があったかを確認する必要があるために、自己申告確認タイマーTc(例えば10分)を開始させる。
【0146】
再呼出しプロセス01Rは、プロセス管理部23に「再呼出し終了」イベントを送信し(S25)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から再呼出しプロセス01Rを削除する(S25a)。
【0147】
スタッフ状況更新部29は、自己申告確認タイマーTcがタイムアウトすると、スタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S26a)自己申告の有無を判定し(S26)、もし自己申告がなければ、作業者端末14にアラームを通知する(S27)。
【0148】
(ケース3:呼出し前自己申告あり)
次に、図10に示したように、呼出しが行われる前にスタッフから自己申告がある場合について、図15を参照しながら説明する。
【0149】
スタッフ状況更新部29は、自己申告があった旨の通知を、スタッフ識別情報として発信者電話番号または発信元メールアドレスとともに受信し(S30)、スタッフ状況フラグ欄Fの自己申告フラグF5に1を設定すると同時に(S30a)、作業者端末14に通知する。
【0150】
プロセス管理部23は、プロセス管理テーブル34に登録されている呼出しプロセス01Cを実行する(S1)。
【0151】
実行された発呼処理部24の呼出しプロセス01Cは、スタッフ01のスタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S2a)、自己申告の有無を判定する(S2)。
【0152】
呼出しプロセス01Cは、自己申告があったならば、プロセス管理部23に「呼出し前自己申告あり」イベントを送信し(S31)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から2を減算し、プロセス管理テーブル34から呼出しプロセス01Cと再呼出しプロセス01Rの両方を削除する(S31a)。
【0153】
なぜならば、スタッフ01からの自己申告が確認できたので、呼出しも再呼出しも不要であるため、この時点で、両方のプロセスを削除してしまう。このように不要となったプロセスを早く削除することで、無駄な回線の捕捉がなくなり、回線を効率的に使用し、遅延を最小限にして多くの呼出しができる。
【0154】
(ケース4:呼出し後自己申告あり)
また、スタッフ01から呼出しに応答した後に自己申告がある場合について、図16を参照しながら説明する。
【0155】
プロセス管理部23は、プロセス管理テーブル34に登録されている呼出しプロセス01Cを実行する(S1)。
【0156】
実行された発呼処理部24の呼出しプロセス01Cは、スタッフ01のスタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S2a)、自己申告の有無を判定する(S2)。
【0157】
呼出しプロセス01Cは、自己申告がなく、また回線1を捕捉できれば、スタッフ状況更新部29に「呼出し」更新要求を送信し(S3)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの呼出しフラグF1に1を設定すると同時に(S3a)、作業者端末14に通知する。
【0158】
呼出しプロセス01Cは、つづいて、スタッフ01に対して1回目の発呼を行い、呼出し継続タイマーTaの間呼出しを継続する(S4)。
【0159】
呼出しプロセス01Cは、呼出しを継続している間にスタッフ01が応答すると、回線1通信制御部から応答信号を受信し(S20)、スタッフ状況更新部29に「呼出し応答」更新要求を送信し(S21)、スタッフ状況更新部29は、スタッフ01のスタッフ状況フラグ欄Fの呼出し応答フラグF2に1を設定すると同時に(S21a)、作業者端末14に通知する。
【0160】
最後に、呼出しプロセス01Cは、プロセス管理部23に「呼出し終了」イベントを送信し(S22)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から呼出しプロセス01Cを削除する(S22a)。
【0161】
スタッフ状況更新部29は、自己申告があった旨の通知を、スタッフ識別情報として発信者電話番号または発信元メールアドレスとともに受信し(S30)、スタッフ状況フラグ欄Fの自己申告フラグF5に1を設定すると同時に(S30a)、作業者端末14に通知する。
【0162】
プロセス管理部23は、プロセス管理テーブル34に登録されている再呼出しプロセス01Rを実行する(S9)。
【0163】
実行された発呼処理部24の再呼出しプロセス01Rは、スタッフ01のスタッフ状況フラグ欄Fの自己申告フラグF5を参照し(S10a)、自己申告の有無を判定する(S10)。
【0164】
再呼出しプロセス01Rは、自己申告があったならば、プロセス管理部23に「再呼出し前自己申告あり」イベントを送信し(S40)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から再呼出しプロセス01Rを削除する(S40a)。
【0165】
(プロセス間制御シーケンス)
本発明では、プロセス管理テーブル34に登録された呼出しプロセスも再呼出しプロセスも、プロセス管理部23により、順次実行状態に移行させるため、複数の呼出しプロセスと再呼出しプロセスが同時に進行することになる。
【0166】
そこで、複数の呼出しプロセスと再呼出しプロセス間で、どのように実行制御されるかについて、図17を参照しながら、例として、同じ呼出し時刻Tpの呼出しプロセス01Cと呼出しプロセス05C、同じ再呼出し時刻Tqとなる再呼出しプロセス01Rと再呼出しプロセス05Rが回線1用のプロセス管理テーブル34に登録されている場合について説明する。
【0167】
まず、プロセス管理部23は、発呼処理部24の呼出しプロセス01C、呼出しプロセス05C、再呼出しプロセス01R、及び再呼出しプロセス05Rを順次実行させる。
【0168】
呼出しプロセス01Cは、呼出し時刻Tpになっているか判定し(S50)、呼出し時刻Tpになっている場合は、回線使用状況テーブル35の回線1のデータを参照し(S51a)、回線が空きかどうか判定する(S51)。
【0169】
回線が空いている場合、呼出しプロセス01Cは、回線使用状況テーブル35の回線1のデータを1(使用)に変更し(S52)、発呼処理を続行する(S53)。
【0170】
一方、呼出しプロセス05Cも、同様に、呼出し時刻Tpになっているか判定するが(S50)、呼出しプロセス01Cと同じ呼出し時刻Tpであるので、当然呼出し時刻Tpになっているため、回線使用状況テーブル35の回線1のデータを参照し(S51a)、回線が空きかどうか判定する(S51)。
【0171】
しかし、既に呼出しプロセス01Cによって、回線使用状況テーブル35の回線1のデータは1に変更されているので、呼出しプロセス05Cは回線を使用することができないため、呼出しプロセス05Cの状態を待ち状態に戻す。
【0172】
再呼出しプロセス01Rと再呼出しプロセス05Rは、再呼出し時刻Tqになっているか判定し(S60)、再呼出し時刻Tqになっていないため、それぞれの状態を待ち状態に戻す。
【0173】
プロセス管理部23は、呼出しプロセス05C、再呼出しプロセス01R、及び再呼出しプロセス05Rを、再び実行させることを繰り返す。
【0174】
この間、呼出しプロセス01Cは、発呼処理を終了し、回線使用状況テーブル35の回線1のデータを0(空)に変更し(S54)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から呼出しプロセス01Cを削除する。
【0175】
この後に、再び実行された呼出しプロセス05Cは、呼出し時刻Tpになっているか判定し(S50)、呼出し時刻Tpになっているため、回線使用状況テーブル35の回線1のデータを参照し(S51a)、回線が空きかどうか判定する(S51)。
【0176】
既に終了した呼出しプロセス01Cによって、回線使用状況テーブル35の回線1のデータは0に変更されているので、呼出しプロセス05Cは回線を使用することができるようになり、発呼処理を行う(S53)。
【0177】
呼出しプロセス05Cは、発呼処理を終了し、回線使用状況テーブル35の回線1のデータを0(空)に変更し(S54)、プロセス管理部23は、回線1の回線毎プロセスカウンタ33から1を減算し、プロセス管理テーブル34から呼出しプロセス05Cを削除する。
【0178】
残っている再呼出しプロセス01Rと再呼出しプロセス05Rは、再び再呼出し時刻Tqになっているか判定し(S60)、再呼出し時刻Tqになるまで、実行状態と待ち状態を繰り返し、再呼出し時刻Tqになった時点で、上記の呼出しプロセス01Cと呼出しプロセス05Cと同様に排他制御を行いながら、それぞれ発呼処理を実行することになる。
【0179】
(各部の詳細処理フロー)
以下に、サーバ15に含まれるスタッフ情報管理部20、運行テーブル作成部21、回線割当部22、プロセス管理部23、発呼処理部24、自己申告受信部27、電子メール送受信部28、スタッフ状況更新部29、設定変更部30の詳細処理について説明する。
【0180】
スタッフ情報管理部20は、作業者端末14から入力されるスタッフ情報を、図3に例示したスタッフ情報データベース31に登録する。また、スタッフ情報データベース31内のデータの変更、表示も作業者端末14からの要求により行う。
【0181】
図18に示すように、運行テーブル作成部21は、サーバ15に内蔵されたカレンダー16により、当日の日付を取得する(S100)。
【0182】
運行テーブル作成部21は、スタッフ情報データベース31から、取得した日付と一致する呼出し日付ddを有するスタッフ情報を抽出する(S101)。
【0183】
運行テーブル作成部21は、抽出したスタッフ情報から、図4に例示した運行テーブル32を作成する(S102)。
【0184】
運行テーブル作成部21は、1日1回、日付が変わる直前に実行することが望ましいが、日付をまたいだ期間(例えば、1月20日04時00分から1月21日03時59分まで)の情報を抽出する場合は、カレンダー16により日付だけではなく日時を取得し、呼出し時刻Tpが現日時から所定期間内(例えば24時間)と比較するようにすることで対応できる。
【0185】
図19に示すように、回線割当部22は、スキャン周期α(例えば1分)毎に実行され、カレンダー16により、現在の時刻(t)を取得する(S200)。
【0186】
回線割当部22は、取得した時刻(t)から次回のスキャン時刻(t+α)までの間に当てはまる呼出し時刻Tpが設定されているスタッフ情報を運行テーブル32内で検出し、そのスタッフ情報のスタッフ番号Mを抽出する(S201)。
【0187】
次に、回線割当部22は、回線毎プロセスカウンタ33を参照して、割当てられたプロセス数が最少の回線の回線番号L(以下、回線Lという)を取得する(S202)。
【0188】
回線割当部22は、取得した回線L用の回線毎プロセスカウンタ33に2を加算し(S203)、発呼処理部24の呼出しプロセスと再呼出しプロセスとして、呼出しプロセス識別子(例えば01C、03C、04C、・・)と再呼出しプロセス識別子(例えば01R、03R、04R、・・)を当該回線用のプロセス管理テーブル34に同時に登録する(S204)。
【0189】
回線割当部22は、検索が運行テーブル32の最後に達したかを判定し、最後に達するまで検索を繰り返す(S205)。
【0190】
回線割当部22は、上記の処理をスキャン周期α毎に繰り返し行う(S206)。
【0191】
図20に示すように、プロセス管理部23は、プロセス管理テーブル34に登録された発呼処理部24の呼出しプロセスと再呼出しプロセスを、各プロセスの識別子と回線Lを通知して、並列して起動する(S300)。
【0192】
例えば、プロセス管理部23は、プロセス管理テーブル34の登録に従って、(プロセス01C、 回線1)、(プロセス03C、 回線2)、(プロセス01R、 回線1)という情報を、プロセスを生成する際にプロセスに割り当てられる一次メモリ内のワークエリア(プロセス制御ブロックPCBなど)に設定するとともに、発呼処理部24のプロセスを実行に移す。
【0193】
また、プロセス管理部23は、プロセスが終了する際に、プロセス識別子と回線Lとともに、プロセスから送信されてくるイベントを受信し、そのイベントの種類を判定し、次の処理を行う(S301)。
【0194】
待ち状態の場合:
プロセス管理部23は、現状を維持したまま、該当プロセスを再度実行できるまで待つ(S302)。
【0195】
呼出し前自己申告ありの場合:
プロセス管理部23は、まず、該当呼出しプロセス識別子を回線L用のプロセス管理テーブル34から削除し(S303)、さらに対応する再呼出しプロセス識別子を回線L用のプロセス管理テーブル34から削除する(S304)。
【0196】
例えば、該当呼出しプロセス識別子呼出しがプロセス01Cであったとき、対応する再呼出しプロセス識別子は、同じスタッフ番号01を含むプロセス01Rとなる。
【0197】
プロセス管理部23は、回線毎プロセスカウンタ33の回線Lのカウンタから2を減算する(S305)。
【0198】
呼出し終了の場合:
図21に示すように、プロセス管理部23は、該当呼出しプロセス識別子を回線L用のプロセス管理テーブル34から削除し(S306)、回線毎プロセスカウンタ33の回線Lのカウンタから1を減算する(S307)。
【0199】
再呼出し前自己申告あり、再呼出し終了の場合:
図21に示すように、プロセス管理部23は、該当再呼出しプロセス識別子を回線L用のプロセス管理テーブル34から削除し(S308)、回線毎プロセスカウンタ33の回線Lのカウンタから1を減算する(S309)。
【0200】
図22に示すように、発呼処理部24は、プロセス管理部23から起動時に通知されるプロセス識別子と回線Lを受信し、プロセス識別子に含まれるスタッフ番号Mを取得し(S400)、運行テーブル32からスタッフ番号Mのスタッフ情報を読み出す(S401)。
【0201】
発呼処理部24は、プロセス識別子から呼出しプロセスか再呼出しプロセスかを判定し、呼出しルートと再呼出しルートに分かれる(S402)。
【0202】
発呼処理部24は、呼出しルートでは、スタッフ情報の自己申告フラグを判定し(S403)、1(自己申告あり)の場合は、「呼出し前自己申告あり」イベントをプロセス管理部23に送信し、プロセスを終了する(S404)。0(自己申告なし)の場合は、スタッフ情報から呼出し時刻Tpを取得する(S405)。
【0203】
発呼処理部24は、再呼出しルートでは、スタッフ情報の自己申告フラグを判定し、1(自己申告あり)の場合は、「再呼出し前自己申告あり」イベントをプロセス管理部23に送信し、プロセスを終了する(S407)。0(自己申告なし)の場合は、スタッフ情報から再呼出し時刻Tqを取得する(S408)。
【0204】
発呼処理部24は、カレンダー16により、現在の時刻(t)を取得し(S409)、現在の時刻(t)が、呼出し時刻Tpか再呼出し時刻Tq以降かを判定する(S410)。つまり実行しようとしているプロセスが実行時間になっているかを判断する。
【0205】
発呼処理部24は、実行時間になっていないと判定した場合、「待ち状態」イベントをプロセス管理部23に送信して、実行待ち状態に遷移する(S411)。
【0206】
一方、図23に示すように、発呼処理部24は、実行時間になっていると判定した場合、回線使用状況テーブル35から回線Lの状況を取得し(S412)、0(空)か判定する(S413)。
【0207】
発呼処理部24は、回線Lが使用中である場合、「待ち状態」イベントをプロセス管理部23に送信して、実行待ち状態に遷移する(S414)。
【0208】
発呼処理部24は、回線Lが空いている場合、回線使用状況テーブル35の回線Lの状況を1(使用)に変更し(S415)、スタッフ情報からスタッフ電話番号Dを取得する(S416)。
【0209】
発呼処理部24は、プロセス識別子から呼出しプロセスか再呼出しプロセスかを判定し、呼出しルートと再呼出しルートに分かれる(S417)。
【0210】
発呼処理部24は、呼出しルートでは、スタッフ状況更新部29にスタッフ状況を「呼出し中」に更新するように要求し(S418)、再呼出しルートでは、スタッフ状況更新部29にスタッフ状況を「再呼出し中」に更新するように要求する(S419)。
【0211】
つづいて、図24に示すように、発呼処理部24は、回線L通信制御部25にスタッフ電話番号Dを送信して発呼させるとともに(S420)、呼出しカウンタに1を加算し(S421)、呼出し継続タイマーTa(例えば20秒)を起動し(S422)、応答待ち状態で待機する(S423)。
【0212】
ここで、呼出しカウンタは、プロセスを生成する際にプロセスに割り当てられる一次メモリ内のワークエリア(プロセス制御ブロックPCBなど)を使ってカウントするため、図2の構成図には特に明示していない。同様にプロセス中で使用する呼出し継続タイマーTa等の各種タイマーも、サーバ15に内蔵されたソフトウェアタイマーを利用するため、図2の構成図には特に明示していない。
【0213】
発呼処理部24は、呼出し継続タイマーTaがタイムアウトすると(S424)、呼出しカウンタが所定回数(例えば3回)になったかを判定し(S425)、まだ所定回数に達していない場合、呼出し間隔タイマーTb(例えば30秒)を起動し(S426)、再発呼を待ち、呼出し間隔タイマーTbがタイムアウトした時点で、再び発呼処理を繰り返す(S427)。
【0214】
発呼処理部24は、呼出しカウンタが所定回数に達した場合、回線使用状況テーブル35の回線Lの状況を0に変更する(S428)。
【0215】
発呼処理部24は、プロセス識別子から呼出しプロセスか再呼出しプロセスかを判定し、呼出しルートと再呼出しルートに分かれる(S429)。
【0216】
発呼処理部24は、呼出しルートでは、スタッフ状況更新部29に「呼出し応答なし」を通知し(S430)、「呼出し終了」イベントをプロセス管理部23に送信する(S431)。再呼出しルートでは、スタッフ状況更新部29に「再呼出し応答なし」を通知し(S432)、「再呼出し終了」イベントをプロセス管理部23に送信する(S433)。
【0217】
一方、図25に示すように、発呼処理部24は、応答待ち状態で待機しているときに(S423)、スタッフ電話機13から回線L通信制御部25を経由して応答を受信すると(S434)、スタッフ情報から音声応答情報を取得し、音声ボード17により音声再生し、スタッフに聞かせる(S435)。
【0218】
発呼処理部24は、その後、回線を切断するように回線L通信制御部に通知し(S436)、回線使用状況テーブル35の回線Lの状況を0に変更する(S437)。
【0219】
発呼処理部24は、プロセス識別子から呼出しプロセスか再呼出しプロセスかを判定し、呼出しルートと再呼出しルートに分かれる(S438)。
【0220】
発呼処理部24は、呼出しルートでは、スタッフ状況更新部29にスタッフ状況を「呼出し応答」に更新するように要求し(S439)、「呼出し終了」イベントをプロセス管理部23に送信する(S440)。再呼出しルートでは、スタッフ状況更新部29にスタッフ状況を「再呼出し応答」に更新するように要求し(S441)、「再呼出し終了」イベントをプロセス管理部23に送信する(S442)。
【0221】
ここで図示した発呼処理部24は、呼出しプロセスと再呼出しプロセスを1つの処理ルーチンで実行する構成として説明している。しかし、処理中でプロセス識別子から呼出しプロセスか再呼出しプロセスかを判定している箇所を省き、呼出しルートの処理のみを含む呼出しルーチン部と、再呼出しルートの処理のみを含む再呼出しルーチン部の2つの処理ルーチンを、別々に発呼処理部24に設ける構成であってもよい。
【0222】
自己申告受信部27は、着信回線通信制御部26から着信呼情報を受信し、着信呼情報内の発信者電話番号をスタッフ識別情報として、スタッフ状況を「自己申告あり」に更新するようにスタッフ状況更新部29に要求する。
【0223】
電子メール送受信部28は、インターネット10経由で受信した電子メールの発信元メールアドレスをスタッフ識別情報として、スタッフ状況を「自己申告あり」に更新するようにスタッフ状況更新部29に要求する一方、スタッフ状況更新部29からの要求により管理者携帯電話機11に督促メールを送信する。
【0224】
図26に示すように、スタッフ状況更新部29は、上記したように、発呼処理部24、自己申告受信部27、及び電子メール送受信部28からスタッフ識別情報とともに送信されてくる各種のスタッフ状況更新要求を受信する(S500)。
【0225】
スタッフ状況更新部29は、受信したスタッフ識別情報を判定し(S501)、発呼処理部24から送信されてきたスタッフ番号Mであれば、スタッフ番号Mで運行テーブル32を検索し(S502)、自己申告受信部27から送信されてきた発信者電話番号であれば、発信者電話番号で運行テーブル32を検索し(S503)、電子メール送受信部28から送信されてきた発信元Eメールアドレスであれば、発信元Eメールアドレスで運行テーブル32を検索し(S504)、該当するスタッフのスタッフ情報を読み出す(S505)。
【0226】
次に、スタッフ状況更新部29は、要求されている更新情報を判定し(S506)、「自己申告あり」なら、スタッフ状況フラグ欄Fの自己申告フラグに1を設定し(S507)、「呼出し中」なら、スタッフ状況フラグ欄Fの呼出しフラグF1に1を設定し(S508)、「再呼出し中」なら、スタッフ状況フラグ欄Fの再呼出しフラグF3に1を設定し(S509)、「呼出し応答」なら、スタッフ状況フラグ欄Fの呼出し応答フラグF2に1を設定し(S510)、「再呼出し応答」なら、スタッフ状況フラグ欄Fの再呼出し応答フラグF4に1を設定し(S511)、自己申告確認タイマーTc(例えば10分)を起動する(S512)。
【0227】
スタッフ状況更新部29は、更新したスタッフ状況を含むスタッフ情報を運行テーブル32に記録するとともに(S513)、作業者端末14に通知する(S514)。
【0228】
また、図27に示すように、スタッフ状況更新部29は、要求されている更新情報が「呼出し応答なし」なら、スタッフ情報から管理者Eメールアドレスを取得し(S515)、取得した管理者Eメールアドレス宛てに呼出し無応答時の督促メールを送信するように電子メール送受信部28に要求する(S516)。
【0229】
同様に、スタッフ状況更新部29は、要求されている更新情報が「再呼出し応答なし」なら、スタッフ情報から管理者Eメールアドレスを取得し(S517)、取得した管理者Eメールアドレス宛てに再呼出し無応答時の督促メールを送信するように電子メール送受信部28に要求する(S518)。
【0230】
スタッフ状況更新部29は、要求されている更新情報が「再呼出し応答」のときに起動した自己申告確認タイマーTcがタイムアウトすると(S519)、要求のあったスタッフ番号Mで運行テーブル32を検索し(S520)、該当スタッフのスタッフ情報を読み出す(S521)。
【0231】
スタッフ状況更新部29は、スタッフ状況フラグ欄Fの自己申告フラグF5が1か判定し(S522)、もし1でない場合、すなわちスタッフが再呼出しに応答したにもかかわらず、未だに自己申告をしてこないときは、アラームを作業者端末14に通知し警告する(S523)。
【0232】
設定変更部30は、作業者端末14から入力された情報により、運行テーブル32のスタッフ情報を変更する。
【0233】
また、設定変更部30は、管理者Eメールアドレス宛てに送信した督促メールに従って、管理者がスタッフを呼出して、起床を確認した場合に、管理者携帯電話機11からのインターネット10経由アクセスを受信し、スタッフ状況フラグ欄Fの自己申告フラグF5に1を設定することもできる。
【0234】
さらに、設定変更部30は、作業者端末14からの入力により、各種タイマーの値を変更するようにしてもよい。
【0235】
<発明の第2の実施の形態>
本発明の第2の実施の形態のコールシステムは、図1に示したサーバ15に以下に説明する機能を追加したメインサーバ15aと、スタッフ情報管理部20と運行テーブル作成部21を除いた機能を実装した複数のサブサーバ15b、15cとを、インターネット10により接続する構成となる。
【0236】
第2の実施の形態のコールシステムは、旅行ツアー参加者に対して、ツアー当日に通知する場合や、バスツアーなどの集合時間に遅れないように、集合時間前に呼出しを行う場合に利用できる。
【0237】
旅行ツアーの場合は、全国各地で企画される複数の旅行ツアーの参加者情報を一元管理するため、参加者数が多くなる上に、同じ集合時間となる旅行ツアーも複数あるため、同時に呼出し時刻Tpになる参加者数も増えることになり、図1のような1台のサーバ15では回線数が十分実装できず、呼出し遅延が発生しやすくなる。
【0238】
そこで、メインサーバ15aで参加者情報を一元管理する一方で、呼出し処理は各地に配置したサブサーバ15b、15cに分散して行わせることにより、呼出し遅延を防ぐことが可能となる。
【0239】
図1に示したサーバ15と図28に示したメインサーバ15aの相違点について、以下に説明する。
【0240】
(データ構成)
メインサーバ15aのスタッフ情報データベース31aは、図3に例示したスタッフ情報データベース31の各スタッフのスタッフ基本データ311に地域識別情報を追加したものとする。
【0241】
地域識別情報とは、各スタッフの住所や郵便番号であったり、旅行ツアーの集合場所であったりする。
【0242】
(第2の運行テーブル作成部21a)
図29に示すように、第2の運行テーブル作成部21aは、メインサーバ15aに内蔵されたカレンダー16により、当日の日付を取得する(S600)。
【0243】
第2の運行テーブル作成部21aは、スタッフ情報データベース31aから、取得した日付と一致する呼出し日付ddを有するスタッフ情報を抽出する(S601)。
【0244】
第2の運行テーブル作成部21aは、抽出したスタッフ情報の地域識別情報により、どのサブサーバ15b、15cに転送するかを決定する(S602)。
【0245】
第2の運行テーブル作成部21aは、決定したサブサーバに抽出したスタッフ情報を転送して第2の運行テーブル32aを作成する(S603)。
【0246】
なお、メインサーバ15aも発呼処理を行うことができるので、第2の運行テーブル作成部21aは、メインサーバ15aが担当する地域については、メインサーバ15a内に第2の運行テーブル32aを作成する。
【0247】
本発明の第2の実施の形態のコールシステムでは、第2の運行テーブル32aが作成されたあとは、メインサーバ15a及びサブサーバ15b、15cが、各々に作成された第2の運行テーブル32aに従って、図19から図27に示した処理をそれぞれ独立して実行し、接続した電話網12a、12b、12cを介して、スタッフ電話機13a、13b、13cと管理者携帯電話機11a、11b、11cにアクセスする。
【0248】
<発明の第3の実施の形態>
人間の習性として、すぐに起床できる人となかなか起床できない人がいる。さらに、なかなか起床できない人は、毎回寝過してしまう傾向にある。
【0249】
そこで、本発明の第3の実施の形態のコールシステムでは、こうした傾向を考慮して、起床できなかったスタッフを特定し、回線割当時に通常のスタッフの呼出しプロセスと区別して割り当てることで、回線を効率よく使用する機能をさらに追加する。
【0250】
発明の第3の実施の形態では、図1に示した最良の形態のコールシステムと構成は同じであるが、サーバ15に接続した複数の回線を、再呼出し可能性の高いスタッフ用と通常のスタッフ用にあらかじめ分配しておく。
【0251】
例えば、20回線が接続されている場合、再呼出し可能性の高いスタッフ用には15回線を割り付け、通常のスタッフ用には残りの5回線を割り付ける。この割り付け回線数の比率は、再呼出し可能性の高いスタッフ数により変更できるものとする。
【0252】
前述した最良の形態と第3の実施の形態との相違点に絞って、以下に説明する。その他の部分につては、両者とも同じである。
【0253】
(データ構成)
スタッフ情報データベース31bは、図3に例示したスタッフ情報データベース31の各スタッフのスタッフ基本データ311に監視対象フラグを追加したものとする。
【0254】
第3の運行テーブル32bには、スタッフ情報データベース31bと同様に、図4に例示した運行テーブル32に監視対象フラグを追加したものとする。
【0255】
(第3の運行テーブル作成部21b)
図30に示すように、第3の運行テーブル作成部21bは、当日の第3の運行テーブル32bの作成にかかる前に、前日の第3の運行テーブル32bにスタッフ状況更新部29によって設定された各スタッフのスタッフ状況を読み出す(S700)。
【0256】
第3の運行テーブル作成部21bは、スタッフ状況フラグ欄Fの再呼出しフラグF3の値をスタッフ情報データベース31bの各スタッフの監視対象フラグに設定する(S701)。
【0257】
つまり、再呼出しされたスタッフは、再呼出しフラグF3が1になっているため、スタッフ情報データベース31bの監視対象フラグに1が設定され、再呼出しされずに自己申告したスタッフは、再呼出しフラグF3が0になので、スタッフ情報データベース31bの監視対象フラグに0が設定される。
【0258】
第3の運行テーブル作成部21bは、サーバ15に内蔵されたカレンダー16により、当日の日付を取得する(S702)。
【0259】
第3の運行テーブル作成部21bは、スタッフ情報データベース31bから、取得した日付と一致する呼出し日付ddを有するスタッフ情報を抽出する(S703)。
【0260】
したがって、抽出されたスタッフ情報には、先ほど設定した監視対象フラグの値が含まれることになる。
【0261】
第3の運行テーブル作成部21bは、抽出したスタッフ情報から当日の第3の運行テーブル32bを作成する(S704)。
【0262】
(第2の回線割当部22a)
図31に示すように、第2の回線割当部22aは、スキャン周期α(例えば1分)毎に実行され、カレンダー16により、現在の時刻(t)を取得する(S800)。
【0263】
第2の回線割当部22aは、取得した時刻(t)から次回のスキャン時刻(t+α)までの間に当てはまる呼出し時刻Tpが設定されているスタッフ情報を第3の運行テーブル32b内で検出し、そのスタッフ情報のスタッフ番号Mを抽出する(S801)。
【0264】
次に、第2の回線割当部22aは、スタッフ情報の監視対象フラグを判定し(S802)、監視対象フラグが1ならば、回線毎プロセスカウンタ33を参照して、再呼出し可能性の高いスタッフ用に割り付けられた複数の回線のうちで、割当てられたプロセス数が最少の回線の回線Lを取得する(S803)。
【0265】
一方、第2の回線割当部22aは、スタッフ情報の監視対象フラグが0ならば、回線毎プロセスカウンタ33を参照して、通常のスタッフ用に割り付けられた残りの回線のうちで、割当てられたプロセス数が最少の回線の回線Lを取得する(S804)。
【0266】
第2の回線割当部22aは、取得した回線L用の回線毎プロセスカウンタ33に2を加算するとともに(S805)、発呼処理部24の呼出しプロセスと再呼出しプロセスとして、呼出しプロセス識別子(例えば01C、03C、04C、・・)と再呼出しプロセス識別子(例えば01R、03R、04R、・・)を当該回線用のプロセス管理テーブル34に同時に登録する(S806)。
【0267】
第2の回線割当部22aは、検索が第3の運行テーブル32bの最後に達したかを判定し、最後に達するまで検索を繰り返す(S807)。
【0268】
第2の回線割当部22aは、上記の処理をスキャン周期α毎に繰り返し行う(S808)。
【0269】
本発明の第3の実施の形態のコールシステムでは、プロセス管理テーブル34が作成されたあとは、図20から図27に示した処理を実行する。
【0270】
通常のスタッフの場合は、すぐに応答するため、回線が使用中となった状態は短く、プロセスが素早く実行されていく。その上、通常のスタッフの再呼出しプロセスは、既に自己申告されている可能性が高いので、実際に再呼出し処理を行わずに終了する確率が高い。
【0271】
一方、再呼出し可能性の高いスタッフの場合は、呼出しを3回行わなければならない可能性が高く、回線が使用中となった状態が長くなり、多くのプロセスが待ち状態になってしまう。その上、再呼出しプロセスは、実際に再呼出し処理を行うことになるため、ますます回線が使用中となった状態が長くなってしまう。
【0272】
そこで、本発明の第3の実施の形態では、再呼出し可能性の高いスタッフ用の回線と通常のスタッフ用の回線とに分けることで、通常のスタッフの場合は、割当てられたプロセス数が多くなっていたとしても、通常のスタッフ用の回線を割当てられるようにしている。
【0273】
また、再呼出し可能性の高いスタッフ用の回線を多くすることで、再呼出し可能性の高いスタッフのプロセスが待ち状態になるのを防いでいる。
【符号の説明】
【0274】
10 インターネット
11 11a、11b、11c 管理者携帯電話機
12、12a、12b、12c 電話網
13、13a、13b、13c スタッフ電話機
14 作業者端末
15 サーバ
15a メインサーバ
15b、15c サブサーバ
16 カレンダー
17 音声ボード
20 スタッフ情報管理部
21 運行テーブル作成部
21a 第2の運行テーブル作成部
21b 第3の運行テーブル作成部
22 回線割当部
22a 第2の回線割当部
23 プロセス管理部
24 発呼処理部
25 回線通信制御部
26 着信回線通信制御部
27 自己申告受信部
28 電子メール送受信部
29 スタッフ状況更新部
30 設定変更部
31、31a、31b スタッフ情報データベース
311 スタッフ基本データ
312 スタッフ予定データ
32 運行テーブル
32a 第2の運行テーブル
32b 第3の運行テーブル
33 回線毎プロセスカウンタ
34 プロセス管理テーブル
35 回線使用状況テーブル

【特許請求の範囲】
【請求項1】
スタッフ電話機及び管理者携帯電話機と通信を行うために、電話網に接続された複数の回線通信制御部と着信回線通信制御部を実装した音声ボード、カレンダー、一次メモリ及び二次メモリを具備したサーバと、前記サーバに接続された作業者端末とを備えたコールシステムであって、
前記サーバは、
前記作業者端末から、呼出し日付と呼出し時刻を含むスタッフ情報をスタッフ情報ベータベースとして前記二次メモリに登録するためのスタッフ情報管理部と、
前記カレンダーから日時を取得し、当該日時から所定期間内に該当する前記呼出し日付と前記呼出し時刻を含む前記スタッフ情報を前記スタッフ情報ベータベースから抽出し、前記一次メモリに運行テーブルを作成する運行テーブル作成部と、
所定間隔で前記カレンダーから現時刻を取得し、当該現時刻から前記呼出し時刻に達する前記スタッフ情報を検出するとともに、前記一次メモリの回線毎プロセスカウンタを参照しカウンタ数が最少の回線を選択し、発呼処理部の呼出しプロセスを再呼出しプロセスとして、それぞれのプロセス識別子を当該回線用のプロセス管理テーブルに同時に登録し、前記回線毎プロセスカウンタの当該回線用のカウンタ数に2を加算する回線割当部と、
前記プロセス管理テーブルに登録された前記呼出しプロセスと前記再呼出しプロセスを並列して起動し、起動した前記呼出しプロセスと前記再呼出しプロセスから受信するイベントが、
呼出し前自己申告ありの場合、前記呼出しプロセスのプロセス識別子と、当該呼出しプロセスに対応する再呼出しプロセスのプロセス識別子を前記プロセス管理テーブルから削除し、前記回線毎プロセスカウンタのカウンタ数から2を減算し、
呼出し終了の場合、前記呼出しプロセスのプロセス識別子を前記プロセス管理テーブルから削除し、前記回線毎プロセスカウンタのカウンタ数から1を減算し、
再呼出し前自己申告あり及び再呼出し終了の場合、前記再呼出しプロセスのプロセス識別子を前記プロセス管理テーブルから削除し、前記回線毎プロセスカウンタのカウンタ数から1を減算するプロセス管理部と、
前記プロセス管理部から起動された前記呼出しプロセスと前記再呼出しプロセスのそれぞれのプロセス識別子に含まれるスタッフ番号に該当する前記スタッフ情報を前記運行テーブルから読み出し、当該スタッフ情報のスタッフ状況が自己申告ありの場合、前記呼出し前自己申告ありイベントまたは前記再呼出し前自己申告ありイベントを前記プロセス管理部に送信し、
当該スタッフ情報のスタッフ状況が自己申告なしの場合、前記一次メモリの回線使用状況テーブルを参照し、指定回線が空きならば、前記回線使用状況テーブルを使用に変更し、当該スタッフ情報に設定されたスタッフ電話番号に前記回線通信制御部から所定回数発呼を繰り返し、前記所定回数に達した時または応答時に呼出し終了イベントまたは再呼出し終了イベントを前記プロセス管理部に送信し、
処理によりスタッフ状況に変化が生じると、前記スタッフ番号とともにスタッフ状況更新要求をスタッフ状況更新部に送信する発呼処理部と、
前記着信回線通信制御部から着信呼情報を受信すると、当該着信呼情報内の発信者電話番号とともに前記スタッフ状況更新要求を前記スタッフ状況更新部に送信する自己申告受信部と、
前記発呼処理部、及び前記自己申告受信部から、それぞれスタッフ識別情報として前記スタッフ番号及び前記発信者電話番号とともに送信された前記スタッフ状況更新要求により、当該スタッフ識別情報に該当する前記運行テーブルのスタッフ情報のスタッフ状況を更新するとともに、前記作業者端末に当該スタッフ状況を通知する前記スタッフ状況更新部
とを含むことを特徴とするコールシステム。
【請求項2】
前記発呼処理部は、前記呼出しプロセスのための呼出しルーチン部と、前記再呼出しプロセスのための再呼出しルーチン部とを含む請求項1に記載のコールシステム。
【請求項3】
前記発呼処理部が、前記スタッフ電話番号に前記回線通信制御部から前記所定回数発呼をしても応答がない場合、前記スタッフ情報に設定された管理者メールアドレス宛てに督促メールを送信する電子メール送受信部をさらに含む請求項1または2に記載のコールシステム。
【請求項4】
前記電子メール送受信部は、インターネット経由で受信した電子メールの発信元メールアドレスとともに前記スタッフ状況更新要求を前記スタッフ状況更新部に送信し、
前記スタッフ状況更新部は、前記電子メール送受信部から送信された前記スタッフ状況更新要求により、前記発信元メールアドレスに該当する前記運行テーブルのスタッフ情報のスタッフ状況を更新するとともに、前記作業者端末に当該スタッフ状況を通知する請求項3に記載のコールシステム。
【請求項5】
前記作業者端末から前記運行テーブルのスタッフ情報を変更する設定変更部をさらに含む請求項1ないし4のいずれか1項に記載のコールシステム。
【請求項6】
前記サーバとインターネットを介して接続した前記回線割当部と、前記プロセス管理部と、前記発呼処理部と、前記自己申告受信部と、前記スタッフ状況更新部とを具備した複数のサブサーバをさらに含み、
前記スタッフ情報管理部は、地域識別情報をさらに含む前記スタッフ情報を前記スタッフ情報ベータベースに登録し、
前記運行テーブル作成部は、前記スタッフ情報ベータベースから抽出した前記スタッフ情報に含まれる前記地域識別情報により、該当する前記サブサーバに前記スタッフ情報を転送して前記運行テーブルを作成することを特徴とする請求項1に記載のコールシステム。
【請求項7】
前記発呼処理部は、前記呼出しプロセスのための呼出しルーチン部と、前記再呼出しプロセスのための再呼出しルーチン部とを含む請求項6に記載のコールシステム。
【請求項8】
前記サーバ及び前記サブサーバは、前記発呼処理部が、前記スタッフ電話番号に前記回線通信制御部から前記所定回数発呼をしても応答がない場合、前記スタッフ情報に設定された管理者メールアドレス宛てに督促メールを送信する電子メール送受信部をさらに含む請求項6または7に記載のコールシステム。
【請求項9】
前記電子メール送受信部は、前記インターネット経由で受信した電子メールの発信元メールアドレスとともに前記スタッフ状況更新要求を前記スタッフ状況更新部に送信し、
前記スタッフ状況更新部は、前記電子メール送受信部から送信された前記スタッフ状況更新要求により、前記発信元メールアドレスに該当する前記運行テーブルのスタッフ情報のスタッフ状況を更新するとともに、前記作業者端末に当該スタッフ状況を通知する請求項8に記載のコールシステム。
【請求項10】
前記サーバは、前記作業者端末から前記運行テーブルのスタッフ情報を変更する設定変更部をさらに含む請求項6ないし9のいずれか1項に記載のコールシステム。
【請求項11】
前記運行テーブル作成部は、前日の前記運行テーブルのスタッフ情報のスタッフ状況フラグ欄に含まれる再呼出しフラグの値を、前記スタッフ情報ベータベースの前記スタッフ情報の監視対象フラグに設定し、前記監視対象フラグを含む前記スタッフ情報の当日の前記運行テーブルを作成し、
前記回線割当部は、前記回線毎プロセスカウンタを参照しカウンタ数が最少の回線を選択する際に、前記スタッフ情報の前記監視対象フラグが0の場合、通常のスタッフ用に割り付けられた複数の回線のうちから選択し、前記スタッフ情報の前記監視対象フラグが1の場合、再呼出し可能性の高いスタッフ用に割り付けられた複数の回線のうちから選択することを特徴とする請求項1に記載のコールシステム。
【請求項12】
前記発呼処理部は、前記呼出しプロセスのための呼出しルーチン部と、前記再呼出しプロセスのための再呼出しルーチン部とを含む請求項11に記載のコールシステム。
【請求項13】
前記発呼処理部が、前記スタッフ電話番号に前記回線通信制御部から前記所定回数発呼をしても応答がない場合、前記スタッフ情報に設定された管理者メールアドレス宛てに督促メールを送信する電子メール送受信部をさらに含む請求項11または12に記載のコールシステム。
【請求項14】
前記電子メール送受信部は、インターネット経由で受信した電子メールの発信元メールアドレスとともに前記スタッフ状況更新要求を前記スタッフ状況更新部に送信し、
前記スタッフ状況更新部は、前記電子メール送受信部から送信された前記スタッフ状況更新要求により、前記発信元メールアドレスに該当する前記運行テーブルのスタッフ情報のスタッフ状況を更新するとともに、前記作業者端末に当該スタッフ状況を通知する請求項13に記載のコールシステム。
【請求項15】
前記作業者端末から前記運行テーブルのスタッフ情報を変更する設定変更部をさらに含む請求項11ないし14のいずれか1項に記載のコールシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2011−172087(P2011−172087A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2010−35004(P2010−35004)
【出願日】平成22年2月19日(2010.2.19)
【特許番号】特許第4688959号(P4688959)
【特許公報発行日】平成23年5月25日(2011.5.25)
【出願人】(508259319)進栄電気工業株式会社 (2)
【出願人】(508308581)ブロードバンドジャパン株式会社 (3)
【Fターム(参考)】