Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4093008B2 - Network telephone system and program - Google Patents
[go: Go Back, main page]

JP4093008B2 - Network telephone system and program - Google Patents

Network telephone system and program Download PDF

Info

Publication number
JP4093008B2
JP4093008B2 JP2002288609A JP2002288609A JP4093008B2 JP 4093008 B2 JP4093008 B2 JP 4093008B2 JP 2002288609 A JP2002288609 A JP 2002288609A JP 2002288609 A JP2002288609 A JP 2002288609A JP 4093008 B2 JP4093008 B2 JP 4093008B2
Authority
JP
Japan
Prior art keywords
user name
call
address
telephone
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002288609A
Other languages
Japanese (ja)
Other versions
JP2004128793A (en
Inventor
孝夫 仙波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2002288609A priority Critical patent/JP4093008B2/en
Publication of JP2004128793A publication Critical patent/JP2004128793A/en
Application granted granted Critical
Publication of JP4093008B2 publication Critical patent/JP4093008B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、入力された音声情報をパケット変換してネットワーク上に送信する複数台の電話端末を備えたネットワーク電話システムおよびプログラムに関する。
【0002】
【従来の技術】
近年、入力された音声情報をパケット変換してインターネット上に送信するVoIP端末(インターネット電話端末)が普及し始めているが、従来においては、インターネット上に接続された電話端末に対して動的にそのIP(インターネット・プロトコル)アドレスを割当てる為のDHCP(ダイナミック・ホスト・コンフィグレーション・プロトコル:動的ホスト構成プロトコル)対応のインターネット電話システムが知られている(特許文献1参照)。
【0003】
【特許文献1】
特開2001−203806号公報
【0004】
ところで、システム内をグループ分けした複数のサブネット(ローカルネット)のうち、何れかのサブネットへ任意に移動可能なノート型あるいはモバイル型のVoIP端末にあっては、それが接続されている普段の設置場所のサブネットから他の場所のサブネットへ移動することがある為、その端末の位置情報を管理するようにしている。
この場合、RFC(Request for Comments)2543で定義されているように、VoIP端末のアドレスやそれが接続されている場所の位置情報の管理は、VoIP用のサーバであるSIP(Session Initiation Protocol:セッション開始プロトコル)サーバによって行われている。
【0005】
図19は、一般的なSIPサーバを概略的に説明する為の図である。
SIPサーバ100は、システム内をグループ分けした各サブネット毎に配置されているもので、後述するレジスタ機能、プロキシ機能、リダイレクト機能を有する構成となっている。
なお、図中、▲1▼〜▲7▼は、動作の流れを示した動作手順であり、▲1▼および▲2▼(登録)は、非同期で実行され、▲3▼(発呼)の実行前に完了し、それ以降の▲3▼(発呼)、▲4▼(問い合わせ)、▲5▼(発呼)、▲6▼および▲7▼(応答)の動作は、連続して実行されることを示している。
【0006】
このSIPサーバ100内のレジスタ機能は、各VoIP端末101、102から送信されて来た登録要求を受け付けると、端末毎にその仮想的SIPアドレスと実SIPアドレスとの対応関係をロケーション・サーバ103に対して登録する為の機能である。なお、仮想的SIPアドレス、実SIPアドレスは、各VoIP端末101、102が移動する可能性があることを考慮して端末毎に割当てられたアドレスであり、実際の移動先のアドレスは、実SIPアドレスによって示される。
【0007】
この状態において、発信側の端末101は、通話相手先の仮想的SIPアドレスを指定して発呼を行うと、SIPサーバ100内のプロキシ機能は、ロケーション・サーバ103に対して問い合わせを行い、通話相手先の仮想的SIPアドレスに対応付けられている実SIPアドレスを取得して、着信側の端末102に対して発呼し、その応答を発信側の端末101へ返信する為の機能である。
この場合、SIPサーバ100内のリダイレクト機能は、着信側の端末102が別のSIPサーバ100が管理している他のサブネット側に移動した場合に、発信側の端末101に対しては、移動先の実SIPアドレスを返信するようにしている。なお、SIPサーバ100とロケーション・サーバ103との間には、LDAP(Lightweight Directory Access Protocol:簡易・軽量化のディレクトリ・アクセス・プロトコル)が介在している。
【0008】
【発明が解決しようとする課題】
しかしながら、上述のように各VoIP端末101、102のアドレスや位置情報の管理は、サブネット毎に設けられているSIPサーバ100によって行うようにしているが、高価なSIPサーバ100を導入することは、初期導入コストが高額となると共に、運用コストも嵩む等の問題があった。
【0009】
この発明の課題は、音声情報をパケット変換してネットワーク上に送信する電話端末を利用して通話相手先を呼び出す場合、その相手先がどの場所(サブネット)に移動しても、SIP(Session Initiation Protocol:セッション開始プロトコル)サーバを導入せずに、各電話端末側に備えられている電話帳機能を活用して呼び出すことが可能なネットワーク電話システムを提供できるようにすることである。
【0010】
【課題を解決するための手段】
請求項1記載の発明は、入力された音声情報をパケット変換してネットワーク上に送信する複数台の電話端末を備えたネットワーク電話システムであって、前記電話端末は、 現在使用している使用ユーザ名を一時保存するユーザ名保存手段と、複数のサブネットに対応して各電話端末毎に割当てられている全てのネットワーク用アドレスを相手先別に電話帳データとして記憶管理すると共に、そのユーザ名も合わせて記憶管理する電話帳記憶手段と、前記電話帳の中から通話相手先が選択指定された場合に、その通話相手先に対応付けられている前記電話帳データから全てのネットワーク用アドレスを順次読み出すと共に、前記電話帳内に登録されているユーザ名を読み出すアドレス読出手段と、このアドレス読出手段によって読み出された各ネットワーク用アドレスにユーザ名を結合して前記通話相手先の電話端末を呼び出す発呼手段と、発信側の電話端末から着信があった場合は、前記ユーザ名保存手段内に一時保存されている現在使用のユーザ名と、発信側の電話端末からネットワーク用アドレスに結合して送信されて来たユーザ名とを比較し、両者が異なる場合にはエラー応答を行う着信手段と、を具備したことを特徴とする。
更に、コンピュータを、上述した請求項1記載の発明に示した主要手段として機能させるためのプログラムを提供する(請求項2記載の発明)。
【0017】
【発明の実施の形態】
(第1実施形態)
以下、図1〜図6を参照してこの発明の第1実施形態を説明する。
図1は、この実施形態におけるネットワーク電話システムの全体構成を示したブロック図である。
このネットワーク電話システムは、無線LANシステムであり、このシステム全体として複数(この実施形態においては2つ)のサブネット(ローカルネット)▲1▼、▲2▼に区分されており、複数台のVoIP端末1のうち、VoIP端末「A」、「B」は、サブネット▲1▼側に接続され、VoIP端末「C」、「D」は、サブネット▲2▼側に接続されている。なお、説明の簡素化を図る為に、図1では、サブネット数を“2”、VoIP端末1の台数を“4”とした場合を例示している。
【0018】
各VoIP端末1は、インターネット電話ソフト等がインストールされ、音声情報をパケット変換してインターネット上に送信するノート型、モバイル型のパーソナルコンピュータ等であり、インターネットの標準プロトコルであるTCP/IPプロトコルを使用して通話相手先を呼び出すようにしている為、発呼時には、通話相手先のIPアドレスを入力指定する。なお、この実施形態では、ネットワークとしてインターネットを例に説明しているが、ネットワークの形態はインターネットに限定されるものではなく、その他のネットワークシステムに広く適用できることは勿論である。
DHCP(ダイナミック・ホスト・コンフィグレーション・プロトコル:動的ホスト構成プロトコル)サーバ2は、各VoIP端末1に対して動的にIPアドレスを割当てるもので、この実施形態においては、一台のDHCPサーバ2によって各サブネット▲1▼、▲2▼側のVoIP端末1に対してIPアドレスを割当てるようにしている。このDHCPサーバ2は、中継動作を行うルータ3に接続されていると共に、アクセスポイント4を含む無線LANを介して各VoIP端末1に接続されている。
【0019】
図2は、DHCPサーバ2側で管理している各VoIP端末1の接続場所と、その場所に対応して各端末に割当てられたIPアドレスとの関係を示した図である。この場合、DHCPサーバ2側では、VoIP端末1毎に、そのMACアドレス(ハードウェアアドレス)の他、サブネット▲1▼、▲2▼に対応して各VoIP端末1にそれぞれ割当てたIPアドレスを記憶管理する。つまり、この実施形態においては、VoIP端末1毎に、全てのサブネットに対応してそのIPアドレスを記憶管理するようにしている。なお、IPアドレスを構成するデータのうち、図中、「128.1.1」は、サブネット▲1▼のアドレスを示し、「128.1.2」は、サブネット▲2▼のアドレスを示し、更に、サブネットアドレスに続く、「100」〜「103」は、対応するVoIP端末「A」〜「D」のアドレスを示している。
【0020】
図3は、各VoIP端末1側で管理されている電話帳ファイル10の構成を示した図である。
各VoIP端末1に対応して設けられている電話帳ファイル10は、着信者名(相手先名)“A”〜“X”毎に、全てのサブネットに対応付けられているIPアドレス“1”〜“n”を記憶する構成となっている。つまり、着信者名別のIPアドレスは、サブネット数に相当する数だけ記憶されており、上述の例では、着信者名A〜D別に、サブネット▲1▼、▲2▼対応して2種類のIPアドレスが電話帳データとして記憶されている。なお、この第1実施形態において、個々の着信者名に対応付けられている複数のIPアドレスは、サブネット▲1▼、▲2▼の並び順となっている。
このように構成された電話帳ファイル10は、何れかのVoIP端末1によって作成されたものであり、その作成元のVoIP端末1が他の全てのVoIP端末1に対して電話帳データを配信すると、他の各VoIP端末1は、電話帳データを受信取得して自己の電話帳ファイル10内に登録するようにしている。
【0021】
また、各VoIP端末1は、所望のVoIP端末1を指定して通話を開始する際に、自己の電話帳ファイル10の内容を読み出して、その相手先名の一覧を表示出力させる。この状態において、相手先名一覧画面の中から所望の相手先が通話先として選択指定されると、VoIP端末1は、電話帳ファイル10をアクセスし、その通話相手先に対応付けられている電話帳レコードを読出対象として指定し、この指定レコード内に格納されている全てのIPアドレスを1つずつ順次読み出して、通話相手先であるVoIP端末1を順次呼び出すようにしている。これによって、各IPアドレスによって全てのサブネット▲1▼、▲2▼側の各VoIP端末1が呼び出されることになる。
【0022】
図4は、VoIP端末1の基本的構成要素を示したブロック図である。
CPU11は、記憶装置12内のオペレーティングシステムや各種アプリケーションソフトにしたがってこのVoIP端末1の全体動作を制御する中央演算処理装置である。記憶装置12は、プログラム記憶領域とデータ記憶領域とを有し、このプログラム記憶領域内には、オペレーティングシステムの他に、各種アプリケーションプログラム等が格納され、また、データ記憶領域には、上述した電話帳ファイル10等が格納され、磁気的、光学的、半導体メモリ等やその駆動系によって構成されている。
【0023】
この記録装置12はハードディスク等の固定的なメモリの他、CD−ROM、DVD等の着脱自在な記憶媒体を装着可能な構成であってもよい。この記憶装置12内のプログラムやデータは、必要に応じてRAM(例えば、スタティックRAM)13にロードされたり、RAM13内のデータが記憶装置12にセーブされる。なお、RAM13内には、プログラム実行領域と作業領域とを有している。
更に、CPU11は無線LAN装置14を介して他の電子機器側のプログラム/データを直接アクセスして使用したり、無線LAN装置14を介してダウンロード受信することもできる。一方、CPU11にはその入出力周辺デバイスである入力装置15、表示装置16、マイクロホーン17、スピーカ18がバスラインを介して接続されており、入出力プログラムにしたがってCPU11はそれらの動作を制御する。
【0024】
次に、この第1実施形態におけるネットワーク電話システムの動作アルゴリズムを図5および図6に示すフローチャートを参照して説明する。ここで、これらのフローチャートに記述されている各機能は、読み取り可能なプログラムコードの形態で格納されており、このプログラムコードにしたがった動作を逐次実行する。また、伝送媒体を介して伝送されてきた上述のプログラムコードにしたがった動作を逐次実行することもできる。このことは後述する他の実施形態においても同様であり、記録媒体の他、伝送媒体を介して外部供給されたプログラム/データを利用してこの実施形態特有の動作を実行することもできる。
【0025】
図5は、VoIP端末1側が実行する電話帳データ作成登録処理を示したフローチャートである。
先ず、VoIP端末1は、作業メニュー画面の中から「新規作成/編集」のメニュー項目が選択指定されると(ステップA1)、電話帳作成/編集画面を表示すると共に、この画面内に電話帳データが入力されると、入力データに基づいて電話帳データを作成/編集する(ステップA2)。ここで、作成/編集の終了が指示されると、この電話帳データを自己の電話帳ファイル10内に新規保存/上書き保存する(ステップA3)。
【0026】
ここで、電話帳データの作成/編集元であるVoIP端末1において、作業メニュー画面の中から「送信」のメニュー項目が選択指定されると(ステップA1)、電話帳ファイル10を読み出し、この電話帳ファイル10をメールの添付ファイルとして、他の全てのVoIP端末1へメール送信する(ステップA4)。いま、電話帳データの作成/編集元であるVoIP端末1からメールを受信した他の全てのVoIP端末1は(ステップA5)、そのメールから添付ファイル(電話帳データ)を受信取得し(ステップA6)、自己の電話帳ファイル10内に新規保存/上書き保存する(ステップA3)。
【0027】
図6は、各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャートである。
先ず、VoIP端末1は、自己の電話帳ファイル10をアクセスして各着信者名(相手先名)を読み出し、相手先名の一覧画面を表示させる(ステップB1)。この相手先一覧画面の中から所望の通話相手先が選択指定されると(ステップB2)、選択相手対応の電話帳レコードを読出対象として指定する(ステップB3)。この状態において、指定レコード内の各IPアドレスのうち、その1つをその並び順にしたがって読み出し(ステップB4)、このIPアドレス宛てにRFC(Request for Comments)3261にしたがって発呼する(ステップB5)。そして、発呼後から所定時間を経過しても相手先からの応答が無ければ(ステップB6でYES)、タイムアウトと判断してステップB7に移り、選択相手対応の電話帳レコードから全てのIPアドレスを取得し終わったかを判別する。
【0028】
いま、先頭のIPアドレス(サブネット▲1▼対応のアドレス)を取得した場合であるからステップB4に戻り、選択相手対応の電話帳レコードから次のIPアドレス(サブネット▲2▼対応のアドレス)を取得し、以下、上述の発呼動作を繰り返す(ステップB4〜B7)。
この結果、全てのIPアドレスを取得して発呼動作を行っても、相手先から応答が無ければ(ステップB7でYES)、呼び出しエラーとしてダイヤル処理を終了するが、タイムアウト前に何れの相手先から応答が有れば(ステップB6でNO)、正常にダイヤル処理が完了したものとして終了する。
【0029】
以上のように、この第1実施形態においては、複数のサブネットに対応して各VoIP端末1毎に割当てられている全てのIPアドレスを相手先別に電話帳ファイル10内に記憶管理している状態において、発信側のVoIP端末1は、電話帳ファイル10の中から通話相手先が選択指定された場合に、その通話相手先に対応付けられている電話帳レコードから全てのIPアドレスを順次読み出して発呼するようにしたから、通話相手先がどの場所(サブネット)に移動していても、システム上の各サブネット毎に全ての端末呼び出しを行うことができ、確実に通話相手先を呼び出すことが可能となる。したがって、従来のようなSIPサーバを導入することなく、電話端末側に備えられている電話帳機能を活用するという簡単な手法によって実現可能となる為、システム全体が大幅に簡素化され、初期導入コストや運用コストの低減化も可能となる等、実用効果の高いネットワーク電話システムを提供することができる。
【0030】
また、複数台のVoIP端末1のうち、何れからのVoIP端末1によって新規作成/編集された電話帳データを他の全てのVoIP端末1へ配信すると、各VoIP端末1は、この電話帳データを受信取得して自己の電話帳ファイル10内に登録するようにしたから、同一内容の電話帳ファイル10を個別に作成/編集する必要がなくなり、システム全体として電話帳データの作成/編集作業を効率良く行うことが可能となる。
【0031】
なお、上述した第1実施形態においては、システム上に2つのサブネット▲1▼、▲2▼を構築した場合を例示したが、勿論、サブネット数は任意であり、3以上のサブネットを構築してもよい。この場合、上述した如く、電話帳ファイルにはサブネット数分のIPアドレスを相手先別に記憶管理すればよい。
また、複数のサブネットに共通使用されるDHCPサーバ2を設ける場合の他、サブネット毎にDHCPサーバ2を設けるようにしてもよい。
【0032】
(第2実施形態)
以下、この発明の第2実施形態について図7および図8を参照して説明する。なお、上述した第1実施形態は、通話相手先に対応付けられている全てのIPアドレスを電話帳レコードの中からその並び順にしたがって1つずつ順次読み出して、通話相手先のVoIP端末1を呼び出すようにしたが、この第2実施形態は、予め設定しておいた優先順位にしたがって全てのIPアドレスを電話帳レコードの中から1つずつ順次読み出して、通話相手先のVoIP端末1を呼び出すようにしたものである。
ここで、両実施形態において基本的に同一のものは、同一符号を付して示し、その説明を省略する他、以下、第2実施形態の特徴部分を中心に説明するものとする。
【0033】
図7は、この第2実施形態における電話帳ファイル10の構造を示した図である。
この電話帳ファイル10は、上述した第1実施形態と同様に、着信者名“A”〜“X”毎に、全てのサブネットに対応付けられているIPアドレス“1”〜“n”を記憶する他、この第2実施形態においては、着信者名別の各IPアドレスに対応してその読出順を示す「優先順位」を記憶する構成となっている。
この場合、電話帳データの新規作成/編集時に、その作成/編集画面には、優先順位を入力する新たな入力フィールドを設け、例えば、普段勤務している場所を最優先し、次に優先する場所として、移動する可能性が高い場所となるように、各IPアドレス対応の入力フィールドにその優先順位を入力するようにしている。
【0034】
図8は、この第2実施形態において、各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャートである。
先ず、VoIP端末1は、自己の電話帳ファイル10をアクセスして相手先名の一覧画面を表示させた状態において(ステップC1)、この相手先一覧画面の中から所望の通話相手先が選択指定されると(ステップC1)、選択相手対応の電話帳レコードを読出対象として指定する(ステップC3)。そして、指定レコード内の各IPアドレスに対応付けられている「優先順位」を参照して、その読出順を決定する(ステップC4)。
以下、この「優先順位」で示される読出順にしたがって各IPアドレスを1つずつ読み出し(ステップC5)、上述した第1実施形態と同様の発呼動作を繰り返す(ステップC5〜C8)。
【0035】
以上のように、この第2実施形態においては、通話相手先に対応付けられている各IPアドレスを順次読み出す為の優先順位を任意に設定可能としたから、例えば、普段勤務している場所を最優先すると共に、日常的に移動する可能性の高い場所を次の優先場所とする等、各IPアドレスに対応して優先順位を設定しておけば、その順序にしたがって各IPアドレスを1つずつ読み出すことができ、通話相手先を迅速に呼び出すことが可能となる。
【0036】
なお、上述した第2実施形態においては、各IPアドレスの読出順を示す「優先順位」を設定する際に、電話帳データの新規作成/編集時において、その作成/編集画面内に「優先順位」を入力設定するようにしたが、この「優先順位」の設定を自動的に行うようにしてもよい。
図9および図10は、優先順位の自動設定を行う場合を例示したもので、図9は、各人の行動スケジュールを管理するスケジュールファイルSFを示した図である。
このスケジュールファイルSFは、スケジュールサーバ(図示せず)側に記憶管理されているもので、各VoIP端末1に対応して時間帯別にどの場所に居るかを示す場所情報(サブネット)を記憶する構成となっている。例えば、VoIP端末「A」は、“9:00〜15:00”の間は、普段勤務している場所(サブネット▲1▼)に居るが、“15:00以降”は、他の場所(サブネット▲2▼)に移動することを示している。
【0037】
図10は、スケジュールファイルSFを参照して優先順位の自動設定を行う場合におけるVoIP端末1の動作を示したフローチャートである。
先ず、VoIP端末1は、システム日時をアクセスして現在時刻を取得すると共に(ステップD1)、スケジュールファイルSFを取得する(ステップD2)。そして、現在時刻に基づいてスケジュールファイルSFをアクセスし、現在時刻に該当する時間帯の場所情報を読み出し、その場所に対応付けられているIPアドレスの優先順位を最優先として設定する(ステップD3)。いま、VoIP端末「A」において、現在時刻が“11:30”であれば、時間帯“9:00〜15:00”に該当し、普段勤務している場所(サブネット▲1▼)対応のIPアドレスの優先順位が最優先として設定される。そして、現在時刻を基準として、他の各時間帯に該当するIPアドレスの優先順位を時間の進行に応じて順次設定する(ステップD4)。この場合、VoIP端末「A」において、次の時間帯“15:00以降”は、サブネット▲2▼対応のIPアドレスの優先順位が次に高い優先順位として設定される。
【0038】
このようにスケジュールファイルSFを参照して優先順位の自動設定を行うようにすれば、優先順位を手作業で設定する必要はなく、また、相手先の行動を事前に知っておく必要もなく、システム全体としての効率アップが可能となる。
なお、スケジュールファイルSFの管理場所として、スケジュールサーバ(図示せず)としたが、勿論、VoIP端末1がスケジュールファイルSFを記憶管理するようにしてもよい。
【0039】
(第3実施形態)
以下、この発明の第3実施形態について図11〜図14を参照して説明する。なお、上述した第1実施形態は、VoIP端末1が移動する可能性があるサブネット▲1▼、▲2▼に適用した場合を示したが、この第3実施形態においては、通常移動することがない他の場所(サブネット▲3▼)にVoIP端末1が移動した場合にも対応可能とする為に、このサブネット▲3▼へのアクセスは、SIP(Session Initiation Protocol:セッション開始プロトコル)サーバを経由して行うようにしたものである。
ここで、両実施形態において基本的に同一のものは、同一符号を付して示し、その説明は省略するものとする。
【0040】
図11は、この第3実施形態におけるネットワーク電話システムを示したブロック図である。
このネットワーク電話システムには、サブネット▲1▼側のVoIP端末「A」、「B」と、サブネット▲2▼側のVoIP端末「C」、「D」の他に、サブネット▲3▼側のVoIP端末「E」、「F」が設けられている。そして、DHCPサーバ2は、ルータ3に接続されていると共に、アクセスポイント4を含む無線LANを介して各VoIP端末1に接続されている。また、SIPサーバ5は、ルータ3、無線LANを介してサブネット▲3▼側のVoIP端末「E」、「F」に接続されている。なお、DHCPサーバ2、SIPサーバ5は、DHCPサーバ機能、SIPサーバ機能を備えた1台のサーバ装置によって構成するようにしてもよい。
【0041】
図12は、この第3実施形態における電話帳ファイル10の構造を示した図である。
この電話帳ファイル10は、上述した第1実施形態と同様、着信者名別にサブネット▲1▼、▲2▼対応して2種類のIPアドレスを記憶する他、特に、この第3実施形態においては、SIPサーバ5経由での発呼を可能とする為、その「SIPアドレス」を追加記憶した構成となっている。
【0042】
図13は、VoIP端末1がSIPサーバ5側に対してアドレス登録を行う場合の登録処理を示したフローチャートである。
先ず、VoIP端末1は、自己のIPアドレスの中からサブネットのアドレスを取得し(ステップE1)、このアドレスに基づいて電話帳をアクセスし、普段自分が居る場所と比較する(ステップE2)。つまり、自己のIPアドレスの中から取得したサブネットアドレスが電話帳ファイル10内に登録されているか否かに基づいて普段自分が居る場所か否かを判別する。いま、サブネットアドレスが電話帳ファイル10内に登録されていれば、普段自分が居る場所であると判断し、この登録処理の終了となるが、電話帳ファイル10内に登録されていなければ、普段自分が居ない場所であると判断してステップE3に移り、RFC3261/3263にしたがってSIPサーバ5側に対してアドレス登録を行う。
【0043】
図14は、第3実施形態において、各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャートである。
先ず、VoIP端末1は、自己の電話帳ファイル10をアクセスして相手先名一覧画面を表示させた状態において、この相手先一覧画面の中から所望の通話相手先が選択指定されると(ステップF1)、選択相手対応の電話帳レコードを読出対象として指定する(ステップF2)。そして、上述した第2実施形態と同様に、指定レコード内の各IPアドレスに対応付けられている「優先順位」を参照して、その読出順を決定する(ステップF3)。
【0044】
以下、この「優先順位」で示される読出順にしたがって各IPアドレスを1つずつ読み出し、上述した第1実施形態と同様の発呼動作を繰り返す(ステップF4〜F7)。この結果、何れの相手先から応答が有れば(ステップF6でNO)、正常にダイヤル処理が完了したものとして終了するが、何れの相手先から応答が無ければ(ステップF6、F7でYES)次のステップF8に移り、選択相手対応の電話帳レコードから「SIPアドレス」を取得した後、RFC3261にしたがってSIPサーバ5経由で発呼する(ステップF9)。
【0045】
以上のように、この第3実施形態においては、普段居ない場所(サブネット▲3▼)に移動した時のみそのVoIP端末1がSIPサーバ5側に対してアドレス登録を行い、他のVoIP端末1は、サブネット▲3▼へ移動したVoIP端末1を呼び出す際に、上述の第1実施形態と同様、電話帳データからその通話相手先に対応付けられている各IPアドレスを順次読み出して発呼を試みるが、その通話相手が見つからなかった場合には、SIPサーバ5経由で発呼を行うようにしたから、通話相手先が普段居ない場所に移動した場合でも、その通話相手先を呼び出すことができ、システム全体としての柔軟性を増大させることが可能となる。
【0046】
なお、上述した第4実施形態においては、自己のIPアドレスの中から取得したサブネットアドレスが電話帳に登録されているか否かに基づいて普段自分が居る場所か否かを判別するようにしたが、その他の判定方法としては、現在使用しているアクセスポイントを識別し、このアクセスポイントに基づいて普段自分が使用しているアクセスポイントかを比較するようにしてもよい。
【0047】
(第4実施形態)
以下、この発明の第4実施形態について図15〜図18を参照して説明する。なお、上述した第1〜第3実施形態は、VoIP端末1を一人のユーザが専有使用する場合を想定したが、この第4実施形態においては、1台のVoIP端末1を複数ユーザで共用使用する場合に適用したものである。
ここで、両実施形態において基本的に同一のものは、同一符号を付して示し、その説明は省略するものとする。
【0048】
図15は、この第4実施形態における電話帳ファイル10の構造を示した図である。
この電話帳ファイル10は、上述した第1実施形態と同様、着信者名別に各サブネットに対応したIPアドレスを記憶するものであるが、特に、この第4実施形態においては、着信者名毎に「SIPユーザ名」を追加記憶する構成となっている。この例では、着信者「B」と「C」は、同じVoIP端末1を共用している場合を示し、着信者「B」、「C」に対応付けられている各IPアドレスは同一内容となっている。
【0049】
図16は、この第4実施形態の動作概要を説明する為の図である。
先ず、各VoIP端末1においては、その端末使用時に自己のユーザ名を一時保存するログイン処理を行う。
図17は、端末使用時に自己のユーザ名を一時保存するログイン処理を示したフローチャートであり、各VoIP端末1は、端末使用時に自己のユーザ名が入力されると(ステップG1)、このユーザ名をログインユーザとして一時保存する処理を行う(ステップG2)。
【0050】
いま、VoIP端末「A」には、ユーザ名として「UseraA」が登録され、他のVoIP端末「B」には、ユーザ名として「UseraB」が登録されている状態において、VoIP端末「A」がVoIP端末「B」をダイヤルする場合には、電話帳内の「ユーザ名」にIPアドレスを結合して発呼する。すると、着信側のVoIP端末「B」においては、現在使用の「ユーザ名」とIPアドレスに結合された「ユーザ名」とを比較する。ここで、現在使用のユーザ名が「UseraB」であり、IPアドレスに結合されたユーザ名が「UseraC」であれば、両者が異なる為、ユーザが存在していない旨のエラー応答を行う。これによって、発信側のVoIP端末「A」は、ユーザ名として「UseraB」として発呼すると、VoIP端末「B」では現在使用のユーザ名と一致する為、肯定応答を返し、通話が可能となる。
【0051】
図18は、第4実施形態において、各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャートである。
先ず、VoIP端末1は、自己の電話帳ファイル10をアクセスして相手先名一覧画面を表示させた状態において、この相手先一覧画面の中から所望の通話相手先が選択指定されると、選択相手対応の電話帳レコードを読出対象として指定する(ステップH1)。この状態において、指定レコード内の各IPアドレスのうち、その1つをその並び順にしたがって読み出すと共に(ステップH2)、電話帳ファイル10内に登録されている通話相手の「ユーザ名」を読み出し、このユーザ名とIPアドレスとを結合した後(ステップH3)、このIPアドレス宛てにRFC3261にしたがって発呼する(ステップH4)。
【0052】
そして、発呼後において、タイムアウトあるいはユーザが存在していない旨のエラー応答が返信されて来たかを判別し(ステップH5)、その何れにも該当しなければ(ステップH5でNO)、正常終了となるが、その何れかに該当する場合には、選択相手対応の電話帳レコードから全てのIPアドレスを取得し終わったかを判別し(ステップH6)、全てのIPアドレスを取得して発呼動作を行っても、相手先からの応答が無ければ(ステップH5、H6でYES)、呼び出しエラーとしてダイヤル処理を終了する。
【0053】
以上のように、この第4実施形態においては、各VoIP端末1毎に、現在使用している使用ユーザ名を一時保存すると共に、電話帳ファイル10内に相手先別にそのユーザ名を記憶管理している状態において、発信側のVoIP端末1は、電話帳ファイル10の中から任意に選択指定された通話相手先に対応付けられている全てのIPアドレスを順次読み出す際に、この電話帳ファイル10内のユーザ名とIPアドレスとを結合して発呼し、着信側のVoIP端末1は、一時保存されている現在使用のユーザ名と、発信側のVoIP端末1からIPアドレスに結合して送信されて来たユーザ名とを比較し、両者が異なる場合にはエラー応答を行うようにしたから、1台のVoIP端末1を複数のユーザが共有して使用可能としている場合でも、所望のユーザを通話相手先として確実に呼び出すことができる。
【0054】
なお、上述した各実施形態におけるネットワーク電話システムは、会社等のように極く限られた構内に適用する場合に限らず、地域等のように広域な構内にも適用可能である他に、全国規模の広域通信システムにも適用可能であることは勿論である。
【0055】
また、コンピュータに対して、上述した各手段を実行させるためのプログラムコードをそれぞれ記録した記録媒体(例えば、CD−ROM、フロッピィデスク、RAMカード等)を提供するようにしてもよい。
すなわち、コンピュータが読み取り可能なプログラムコードを有する記録媒体であって、入力された音声情報をパケット変換してネットワーク上に送信する各電話端末毎に、複数のサブネットに対応して割当てられている全てのネットワーク用アドレスを相手先別に電話帳データに記憶管理する機能と、前記電話帳から通話相手が選択された場合に、その通話相手先に対応付けられている前記電話帳データから全てのネットワーク用アドレスを順次読み出す機能と、読み出された各ネットワーク用アドレスに基づいて前記通話相手先の電話端末を呼び出す機能とを実現させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体を提供するようにしてもよい。
【0056】
【発明の効果】
この発明によれば、各電話端末毎に、現在使用している使用ユーザ名を一時保存すると共に、電話帳内に相手先別にそのユーザ名を記憶管理している状態において、発信側の電話端末は、電話帳の中から任意に選択指定された通話相手先に対応付けられている全てのネットワーク用アドレスを順次読み出す際に、この電話帳内のユーザ名とネットワーク用アドレスとを結合して発呼し、着信側の電話端末は、一時保存されている現在使用のユーザ名と、発信側の電話端末からネットワーク用アドレスに結合して送信されて来たユーザ名とを比較し、両者が異なる場合にはエラー応答を行うようにしたから、1台の電話端末を複数のユーザが共有して使用可能としている場合でも、所望のユーザを通話相手先として確実に呼び出すことができる。
【図面の簡単な説明】
【図1】ネットワーク電話システムの全体構成を示したブロック図。
【図2】DHCPサーバ2側で管理している各VoIP端末1の接続場所と、その場所に対応して各端末に割当てられたIPアドレスとの関係を示した図。
【図3】各VoIP端末1側で管理されている電話帳ファイル10の構成を示した図。
【図4】VoIP端末1の基本的構成要素を示したブロック図。
【図5】VoIP端末1側が実行する電話帳データ作成登録処理を示したフローチャート。
【図6】各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャート。
【図7】第2実施形態における電話帳ファイル10の構造を示した図。
【図8】第2実施形態において、各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャート。
【図9】第2実施形態の変形応用例を説明する為の図で、優先順位の自動設定を行う為に使用され、各人の行動スケジュールを管理するスケジュールファイルSFの内容を示した図。
【図10】第2実施形態の変形応用例を説明する為の図で、スケジュールファイルSFを参照して優先順位の自動設定を行う場合におけるVoIP端末1の動作を示したフローチャート。
【図11】第3実施形態におけるネットワーク電話システムを示したブロック図。
【図12】第3実施形態における電話帳ファイル10の構造を示した図。
【図13】第3実施形態において、VoIP端末1がSIPサーバ5側に対してアドレス登録を行う場合の登録処理を示したフローチャート。
【図14】第3実施形態において、各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャート。
【図15】第4実施形態における電話帳ファイル10の構造を示した図。
【図16】第4実施形態の動作概要を説明する為の図。
【図17】第4実施形態において、端末使用時に自己のユーザ名を一時保存するログイン処理を示したフローチャート。
【図18】第4実施形態において、各VoIP端末1側が実行する通話呼び出し処理(ダイヤル処理)を示したフローチャート。
【図19】一般的なSIPサーバを概略的に説明する為の図。
【符号の説明】
1 VoIP端末
2 DHCPサーバ
3 ルータ
4 アクセスポイント
5 SIPサーバ
10 電話帳ファイル
11 CPU
12 記憶装置
14 無線LAN装置
15 入力装置
16 表示装置
17 マイクロホーン
18 スピーカ
SF スケジュールファイル
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a network telephone system and a program including a plurality of telephone terminals for packet-converting input voice information and transmitting it on a network.
[0002]
[Prior art]
In recent years, VoIP terminals (Internet telephone terminals) that convert input voice information into packets and transmit them to the Internet have begun to spread. Conventionally, however, the VoIP terminals that are connected to the Internet dynamically There is known an Internet telephone system that supports DHCP (Dynamic Host Configuration Protocol) for assigning an IP (Internet Protocol) address (see Patent Document 1).
[0003]
[Patent Document 1]
JP 2001-203806 A
[0004]
By the way, in the case of a notebook type or mobile type VoIP terminal that can be arbitrarily moved to any one of a plurality of subnets (local nets) divided into groups in the system, it is usually installed. Since there is a case of moving from a location subnet to another location subnet, the location information of the terminal is managed.
In this case, as defined in RFC (Request for Comments) 2543, the management of the address of the VoIP terminal and the location information of the location where the VoIP terminal is connected is performed by a SIP (Session Initiation Protocol: Session) that is a VoIP server. Starting protocol) is done by the server.
[0005]
FIG. 19 is a diagram for schematically explaining a general SIP server.
The SIP server 100 is arranged for each subnet in which the system is grouped, and has a configuration having a register function, a proxy function, and a redirect function, which will be described later.
In the figure, (1) to (7) are operation procedures showing the flow of operation, (1) and (2) (registration) are executed asynchronously, and (3) (calling) It is completed before execution, and subsequent operations (3) (call), (4) (inquiry), (5) (call), (6), and (7) (response) are continuously executed. It is shown that.
[0006]
When the register function in the SIP server 100 accepts a registration request transmitted from each VoIP terminal 101, 102, the correspondence function between the virtual SIP address and the actual SIP address is given to the location server 103 for each terminal. It is a function for registering. Note that the virtual SIP address and the real SIP address are addresses assigned to each terminal in consideration of the possibility that each of the VoIP terminals 101 and 102 may move, and the actual destination address is the real SIP address. Indicated by the address.
[0007]
In this state, when the caller terminal 101 makes a call by designating the virtual SIP address of the call partner, the proxy function in the SIP server 100 makes an inquiry to the location server 103 and makes a call. This is a function for acquiring a real SIP address associated with the virtual SIP address of the other party, making a call to the terminal 102 on the incoming side, and returning a response to the terminal 101 on the outgoing side.
In this case, the redirect function in the SIP server 100 is such that when the terminal 102 on the receiving side moves to another subnet managed by another SIP server 100, The real SIP address is returned. Note that LDAP (Lightweight Directory Access Protocol) is interposed between the SIP server 100 and the location server 103.
[0008]
[Problems to be solved by the invention]
However, as described above, the address and location information of each VoIP terminal 101, 102 is managed by the SIP server 100 provided for each subnet. However, introducing an expensive SIP server 100 There were problems such as high initial introduction costs and increased operational costs.
[0009]
An object of the present invention is to call a call partner using a telephone terminal that converts voice information into packets and transmits it over a network. Protocol: Session initiation protocol) A network telephone system that can be called by utilizing a telephone directory function provided on each telephone terminal side without introducing a server.
[0010]
[Means for Solving the Problems]
The invention according to claim 1 is a network telephone system comprising a plurality of telephone terminals for packet-converting input voice information and transmitting it on the network, wherein the telephone terminal is a currently used user. User name storage means for temporarily storing names, and all network addresses assigned to each telephone terminal corresponding to a plurality of subnets are stored and managed as telephone directory data for each destination, and the user names are also matched. Phone book storage means for storing and managing, and when a call partner is selected and specified from the phone book, all network addresses are sequentially read from the phone book data associated with the call partner And an address reading means for reading the user name registered in the telephone directory, and the address reading means Calling means for connecting the user name to each network address and calling the telephone terminal of the other party, and when there is an incoming call from the calling telephone terminal, it is temporarily stored in the user name saving means Comparing the user name currently in use with the user name sent from the calling telephone terminal combined with the network address, and if the two are different, there is provided an incoming means for performing an error response. It is characterized by.
Furthermore, a program for causing a computer to function as the main means shown in the above-described invention according to claim 1 is provided (the invention according to claim 2).
[0017]
DETAILED DESCRIPTION OF THE INVENTION
(First embodiment)
A first embodiment of the present invention will be described below with reference to FIGS.
FIG. 1 is a block diagram showing the overall configuration of the network telephone system in this embodiment.
This network telephone system is a wireless LAN system, and is divided into a plurality of (in this embodiment, two) subnets (local nets) (1) and (2) as a whole, and a plurality of VoIP terminals. 1, the VoIP terminals “A” and “B” are connected to the subnet {circle around (1)} side, and the VoIP terminals “C” and “D” are connected to the subnet {circle around (2)} side. In order to simplify the description, FIG. 1 illustrates a case where the number of subnets is “2” and the number of VoIP terminals 1 is “4”.
[0018]
Each VoIP terminal 1 is a notebook-type or mobile-type personal computer that has Internet telephone software installed therein, converts voice information into packets and transmits it over the Internet, and uses the standard TCP / IP protocol of the Internet. Since the call partner is called, the IP address of the call partner is input and designated at the time of calling. In this embodiment, the Internet is described as an example of the network. However, the network form is not limited to the Internet, and it is needless to say that the network can be widely applied to other network systems.
A DHCP (Dynamic Host Configuration Protocol) server 2 dynamically assigns an IP address to each VoIP terminal 1, and in this embodiment, a single DHCP server 2 is used. Thus, an IP address is assigned to the VoIP terminal 1 on each of the subnets (1) and (2). The DHCP server 2 is connected to a router 3 that performs a relay operation, and is connected to each VoIP terminal 1 via a wireless LAN including an access point 4.
[0019]
FIG. 2 is a diagram showing the relationship between the connection location of each VoIP terminal 1 managed on the DHCP server 2 side and the IP address assigned to each terminal corresponding to that location. In this case, on the DHCP server 2 side, for each VoIP terminal 1, in addition to its MAC address (hardware address), an IP address assigned to each VoIP terminal 1 corresponding to the subnets (1) and (2) is stored. to manage. That is, in this embodiment, each VoIP terminal 1 stores and manages its IP address corresponding to all subnets. Of the data constituting the IP address, in the figure, “128.1.1” indicates the address of subnet (1), “128.1.2” indicates the address of subnet (2), Further, “100” to “103” subsequent to the subnet address indicate addresses of the corresponding VoIP terminals “A” to “D”.
[0020]
FIG. 3 is a diagram showing the configuration of the telephone directory file 10 managed on each VoIP terminal 1 side.
The telephone directory file 10 provided corresponding to each VoIP terminal 1 has an IP address “1” that is associated with all subnets for each recipient name (destination name) “A” to “X”. To “n”. In other words, as many IP addresses as the number of subnets are stored, and in the above example, there are two types of IP addresses corresponding to the subnets (1) and (2), according to the names of the recipients A to D. An IP address is stored as telephone directory data. In the first embodiment, the plurality of IP addresses associated with individual callee names are arranged in the order of subnets (1) and (2).
The phone book file 10 configured in this way is created by one of the VoIP terminals 1, and when the VoIP terminal 1 of the creation source delivers the phone book data to all other VoIP terminals 1. Each of the other VoIP terminals 1 receives and acquires the phone book data and registers it in its own phone book file 10.
[0021]
Each VoIP terminal 1 reads the contents of its own phone book file 10 and displays a list of the names of the other parties when starting a call by designating a desired VoIP terminal 1. In this state, when a desired destination is selected and designated as a call destination from the destination name list screen, the VoIP terminal 1 accesses the phone book file 10 and makes a call associated with the call destination. A book record is designated as a reading target, all IP addresses stored in the designated record are sequentially read out one by one, and the VoIP terminal 1 that is a call partner is sequentially called. As a result, all the VoIP terminals 1 on the subnets {1}, {2} side are called by the respective IP addresses.
[0022]
FIG. 4 is a block diagram showing basic components of the VoIP terminal 1.
The CPU 11 is a central processing unit that controls the overall operation of the VoIP terminal 1 according to the operating system and various application software in the storage device 12. The storage device 12 has a program storage area and a data storage area. In the program storage area, various application programs and the like are stored in addition to the operating system. A book file 10 and the like are stored, and are constituted by a magnetic, optical, semiconductor memory, and the like and a drive system thereof.
[0023]
The recording device 12 may have a configuration in which a removable storage medium such as a CD-ROM or DVD can be mounted in addition to a fixed memory such as a hard disk. The programs and data in the storage device 12 are loaded into a RAM (for example, static RAM) 13 as needed, or the data in the RAM 13 is saved in the storage device 12. The RAM 13 has a program execution area and a work area.
Further, the CPU 11 can directly access and use programs / data on the other electronic device side via the wireless LAN device 14 or can receive and download via the wireless LAN device 14. On the other hand, an input device 15, a display device 16, a microphone 17, and a speaker 18 which are input / output peripheral devices are connected to the CPU 11 via a bus line, and the CPU 11 controls their operations according to an input / output program. .
[0024]
Next, the operation algorithm of the network telephone system in the first embodiment will be described with reference to the flowcharts shown in FIGS. Here, each function described in these flowcharts is stored in the form of a readable program code, and operations according to the program code are sequentially executed. It is also possible to sequentially execute operations according to the program code transmitted via the transmission medium. The same applies to other embodiments to be described later. In addition to a recording medium, an operation peculiar to this embodiment can be executed using a program / data supplied externally via a transmission medium.
[0025]
FIG. 5 is a flowchart showing telephone directory data creation / registration processing executed by the VoIP terminal 1 side.
First, when the menu item “New creation / edit” is selected and designated from the work menu screen (step A1), the VoIP terminal 1 displays a phone book creation / edit screen and the phone book in this screen. When data is input, phone book data is created / edited based on the input data (step A2). Here, when the end of creation / editing is instructed, this phone book data is newly saved / overwritten in its own phone book file 10 (step A3).
[0026]
Here, in the VoIP terminal 1 which is the creation / editing source of the phone book data, when the “Send” menu item is selected and designated from the work menu screen (step A1), the phone book file 10 is read out and this phone call is read out. The book file 10 is sent as an email attachment to all other VoIP terminals 1 (step A4). Now, all the other VoIP terminals 1 that have received the mail from the VoIP terminal 1 that is the creation / editing source of the telephone book data (step A5) receive and acquire the attached file (phone book data) from the mail (step A6). ) Newly saved / overwritten in its own phone book file 10 (step A3).
[0027]
FIG. 6 is a flowchart showing a call calling process (dial process) executed by each VoIP terminal 1 side.
First, the VoIP terminal 1 accesses its own telephone directory file 10 to read each called party name (destination name) and display a list screen of the called party name (step B1). When a desired communication partner is selected from the partner list screen (step B2), a telephone directory record corresponding to the selected partner is specified as a reading target (step B3). In this state, one of the IP addresses in the designated record is read according to the arrangement order (step B4), and a call is made to this IP address according to RFC (Request for Comments) 3261 (step B5). If there is no response from the other party even after a predetermined time has elapsed since the call was made (YES in step B6), it is determined that a time-out has occurred, and the process proceeds to step B7, and all IP addresses are selected from the telephone book record corresponding to the selected party. It is determined whether or not it has been acquired.
[0028]
Since it is a case where the first IP address (subnet (1) compatible address) is acquired, the process returns to step B4, and the next IP address (subnet (2) compatible address) is acquired from the telephone book record corresponding to the selected partner. Thereafter, the above calling operation is repeated (steps B4 to B7).
As a result, even if all the IP addresses are acquired and the calling operation is performed, if there is no response from the other party (YES in step B7), the dialing process is terminated as a calling error. If there is a response from (NO in step B6), it is determined that the dial processing has been completed normally and the process ends.
[0029]
As described above, in the first embodiment, all the IP addresses assigned to each VoIP terminal 1 corresponding to a plurality of subnets are stored and managed in the telephone directory file 10 for each destination. When the call partner is selected and specified from the phone book file 10, the calling VoIP terminal 1 sequentially reads all IP addresses from the phone book record associated with the call partner. Since the call is made, no matter what location (subnet) the call partner moves to, all the terminal calls can be made for each subnet on the system, and the call partner can be called reliably. It becomes possible. Therefore, since it can be realized by a simple method of utilizing the telephone directory function provided on the telephone terminal side without introducing a conventional SIP server, the entire system is greatly simplified, and the initial introduction It is possible to provide a network telephone system having a high practical effect, such as reduction in cost and operation cost.
[0030]
Further, when the phone book data newly created / edited by any VoIP terminal 1 among a plurality of VoIP terminals 1 is distributed to all other VoIP terminals 1, each VoIP terminal 1 transmits the phone book data. Since it is received and registered in its own phone book file 10, it is no longer necessary to individually create / edit the phone book file 10 having the same contents, and the entire system can efficiently create / edit phone book data. It is possible to perform well.
[0031]
In the above-described first embodiment, the case where two subnets (1) and (2) are constructed on the system is illustrated, but of course, the number of subnets is arbitrary, and three or more subnets are constructed. Also good. In this case, as described above, IP addresses corresponding to the number of subnets may be stored and managed in the telephone directory file for each destination.
In addition to providing the DHCP server 2 commonly used for a plurality of subnets, the DHCP server 2 may be provided for each subnet.
[0032]
(Second Embodiment)
The second embodiment of the present invention will be described below with reference to FIGS. In the first embodiment described above, all the IP addresses associated with the call partner are sequentially read out from the phone book record one by one according to the arrangement order, and the VoIP terminal 1 of the call partner is called. However, in the second embodiment, all the IP addresses are sequentially read out one by one from the phone book record in accordance with the preset priority order, and the call destination VoIP terminal 1 is called. It is a thing.
Here, components that are basically the same in both embodiments are denoted by the same reference numerals, description thereof will be omitted, and the following description will focus on the features of the second embodiment.
[0033]
FIG. 7 is a diagram showing the structure of the phone book file 10 in the second embodiment.
As in the first embodiment described above, the telephone directory file 10 stores IP addresses “1” to “n” associated with all subnets for each of the recipient names “A” to “X”. In addition, the second embodiment is configured to store “priority” indicating the reading order corresponding to each IP address for each callee name.
In this case, when newly creating / editing phone book data, a new input field for inputting the priority order is provided on the creation / editing screen. For example, the place where the user normally works is given the highest priority, and then given the next priority. The priority is entered in the input field corresponding to each IP address so that the place is likely to move.
[0034]
FIG. 8 is a flowchart showing call call processing (dial processing) executed by each VoIP terminal 1 side in the second embodiment.
First, in a state where the VoIP terminal 1 has accessed the telephone directory file 10 and displayed a destination name list screen (step C1), a desired call destination is selected and designated from the destination list screen. If so (step C1), the telephone directory record corresponding to the selected party is designated as a reading target (step C3). Then, with reference to the “priority order” associated with each IP address in the designated record, the reading order is determined (step C4).
Thereafter, each IP address is read one by one in accordance with the reading order indicated by the “priority order” (step C5), and the same calling operation as in the first embodiment is repeated (steps C5 to C8).
[0035]
As described above, in the second embodiment, since it is possible to arbitrarily set the priority order for sequentially reading out each IP address associated with the call partner, for example, the place where you normally work is If priority is set corresponding to each IP address, such as setting the highest priority and the place where there is a high possibility of moving on a daily basis as the next priority place, one IP address is assigned according to the order. It can be read out one by one, and it is possible to quickly call the other party.
[0036]
In the second embodiment described above, when “priority order” indicating the reading order of each IP address is set, “priority order” is displayed in the creation / editing screen when newly creating / editing phone book data. However, it is also possible to automatically set the “priority order”.
9 and 10 exemplify the case where the priority order is automatically set, and FIG. 9 is a diagram showing a schedule file SF for managing each person's action schedule.
The schedule file SF is stored and managed on the side of a schedule server (not shown), and stores location information (subnet) indicating where each time zone corresponds to each VoIP terminal 1. It has become. For example, the VoIP terminal “A” is in a place where he / she usually works (subnet (1)) between “9:00 and 15:00”, but “after 15:00” It shows moving to the subnet (2)).
[0037]
FIG. 10 is a flowchart showing the operation of the VoIP terminal 1 when the priority order is automatically set with reference to the schedule file SF.
First, the VoIP terminal 1 accesses the system date and time to acquire the current time (step D1) and acquires the schedule file SF (step D2). Then, the schedule file SF is accessed based on the current time, the location information of the time zone corresponding to the current time is read, and the priority of the IP address associated with the location is set as the highest priority (step D3). . Now, in the VoIP terminal “A”, if the current time is “11:30”, it corresponds to the time zone “9:00 to 15:00” and corresponds to the place where he / she usually works (subnet (1)). The priority order of IP addresses is set as the highest priority. Then, with the current time as a reference, the priorities of IP addresses corresponding to other time zones are sequentially set according to the progress of time (step D4). In this case, in the VoIP terminal “A”, the next time zone “after 15:00” is set as the next highest priority for the IP address corresponding to the subnet (2).
[0038]
If the priority order is automatically set with reference to the schedule file SF in this way, it is not necessary to set the priority order manually, and it is not necessary to know the actions of the other party in advance. The efficiency of the entire system can be increased.
Although the schedule server (not shown) is used as the management location of the schedule file SF, of course, the VoIP terminal 1 may store and manage the schedule file SF.
[0039]
(Third embodiment)
Hereinafter, a third embodiment of the present invention will be described with reference to FIGS. The first embodiment described above shows the case where the VoIP terminal 1 is applied to the subnets (1) and (2) where the VoIP terminal 1 may move. In the third embodiment, the VoIP terminal 1 may move normally. In order to be able to cope with the case where the VoIP terminal 1 moves to another location (subnet 3), access to the subnet 3 is via a SIP (Session Initiation Protocol) server. This is what I did.
Here, basically the same components in both embodiments are denoted by the same reference numerals, and the description thereof is omitted.
[0040]
FIG. 11 is a block diagram showing a network telephone system in the third embodiment.
This network telephone system includes VoIP terminals “A” and “B” on the subnet {circle around (1)} side, VoIP terminals “C” and “D” on the subnet {circle around (2)} side, and VoIP on the subnet {circle around (3)} side. Terminals “E” and “F” are provided. The DHCP server 2 is connected to the router 3 and is connected to each VoIP terminal 1 via a wireless LAN including the access point 4. The SIP server 5 is connected to the VoIP terminals “E” and “F” on the subnet (3) side via the router 3 and the wireless LAN. Note that the DHCP server 2 and the SIP server 5 may be configured by a single server device having a DHCP server function and a SIP server function.
[0041]
FIG. 12 is a diagram showing the structure of the telephone directory file 10 in the third embodiment.
Similar to the first embodiment described above, this telephone directory file 10 stores two types of IP addresses corresponding to the subnets {1} and {2} for each recipient name. In particular, in this third embodiment, In order to make a call via the SIP server 5, the “SIP address” is additionally stored.
[0042]
FIG. 13 is a flowchart showing registration processing when the VoIP terminal 1 performs address registration with the SIP server 5 side.
First, the VoIP terminal 1 obtains a subnet address from its own IP address (step E1), accesses the telephone directory based on this address, and compares it with the place where it is usually located (step E2). That is, based on whether or not the subnet address acquired from its own IP address is registered in the telephone directory file 10, it is determined whether or not the place where the user is usually located. If the subnet address is registered in the phone book file 10, it is determined that the user is usually present and the registration process ends. If the subnet address is not registered in the phone book file 10, It is determined that the place is not present, and the process proceeds to step E3, where address registration is performed on the SIP server 5 side in accordance with RFC3261 / 3263.
[0043]
FIG. 14 is a flowchart showing call call processing (dial processing) executed by each VoIP terminal 1 side in the third embodiment.
First, when the VoIP terminal 1 accesses its own phone book file 10 and displays the destination name list screen, when a desired call destination is selected from the destination list screen (step) F1), a telephone directory record corresponding to the selected party is designated as a reading target (step F2). Then, as in the second embodiment described above, the “priority order” associated with each IP address in the designated record is referred to and the reading order is determined (step F3).
[0044]
Thereafter, each IP address is read one by one in accordance with the reading order indicated by the “priority order”, and the same calling operation as in the first embodiment is repeated (steps F4 to F7). As a result, if there is a response from any destination (NO in step F6), the dial processing is terminated normally, but the process ends. However, if no response is received from any destination (YES in steps F6 and F7). The process proceeds to the next step F8, where the “SIP address” is acquired from the telephone directory record corresponding to the selected party, and then a call is made via the SIP server 5 in accordance with RFC3261 (step F9).
[0045]
As described above, in the third embodiment, the VoIP terminal 1 registers an address with the SIP server 5 only when moving to a place where it does not normally exist (subnet (3)), and the other VoIP terminal 1 When calling the VoIP terminal 1 that has moved to the subnet {circle over (3)}, as in the first embodiment described above, each IP address associated with the other party is sequentially read from the phone book data and a call is made. If the call partner is not found, the call is made via the SIP server 5, so that the call partner can be called even if the call partner moves to a place where it does not normally exist. It is possible to increase the flexibility of the entire system.
[0046]
In the fourth embodiment described above, it is determined whether or not the user is usually present based on whether or not the subnet address acquired from the own IP address is registered in the telephone directory. As another determination method, an access point that is currently used may be identified, and based on this access point, it may be compared with an access point that is usually used by the user.
[0047]
(Fourth embodiment)
Hereinafter, a fourth embodiment of the present invention will be described with reference to FIGS. In the first to third embodiments described above, it is assumed that one user uses the VoIP terminal 1 exclusively, but in this fourth embodiment, one VoIP terminal 1 is shared by a plurality of users. It is applied when doing.
Here, basically the same components in both embodiments are denoted by the same reference numerals, and the description thereof is omitted.
[0048]
FIG. 15 is a diagram showing the structure of the phone book file 10 in the fourth embodiment.
This telephone directory file 10 stores IP addresses corresponding to each subnet for each recipient name, as in the first embodiment described above. In particular, in this fourth embodiment, for each recipient name. The “SIP user name” is additionally stored. In this example, the recipients “B” and “C” share the same VoIP terminal 1, and the IP addresses associated with the recipients “B” and “C” have the same contents. It has become.
[0049]
FIG. 16 is a diagram for explaining the outline of the operation of the fourth embodiment.
First, each VoIP terminal 1 performs a login process for temporarily storing its own user name when the terminal is used.
FIG. 17 is a flowchart showing login processing for temporarily storing the user name when the terminal is used. Each VoIP terminal 1 receives the user name when the user name is input when the terminal is used (step G1). Is temporarily stored as a login user (step G2).
[0050]
Now, in the state where “UserA” is registered as the user name in the VoIP terminal “A” and “UserB” is registered as the user name in the other VoIP terminal “B”, the VoIP terminal “A” is registered. When the VoIP terminal “B” is dialed, the IP address is combined with the “user name” in the telephone directory to make a call. Then, in the incoming VoIP terminal “B”, the “user name” currently used is compared with the “user name” combined with the IP address. Here, if the currently used user name is “UseraB” and the user name combined with the IP address is “UseraC”, an error response indicating that the user does not exist is sent because they are different. As a result, when the calling side VoIP terminal “A” calls as “UserB” as the user name, the VoIP terminal “B” matches the currently used user name, so an affirmative response is returned and a call can be made. .
[0051]
FIG. 18 is a flowchart showing call call processing (dial processing) executed by each VoIP terminal 1 side in the fourth embodiment.
First, when the VoIP terminal 1 accesses its own phone book file 10 and displays the destination name list screen, when a desired call destination is selected from the destination list screen, the selection is made. The telephone directory record corresponding to the other party is designated as a reading target (step H1). In this state, one of the IP addresses in the designated record is read according to the order of arrangement (step H2), and the “user name” of the call partner registered in the phone book file 10 is read. After combining the user name and the IP address (step H3), a call is made to this IP address according to RFC3261 (step H4).
[0052]
After the call is made, it is determined whether a time-out or an error response indicating that the user does not exist is returned (step H5). If neither of them is satisfied (NO in step H5), the process ends normally. However, if any one of them is satisfied, it is determined whether all IP addresses have been acquired from the telephone directory record corresponding to the selected party (step H6), and all IP addresses are acquired to make a call operation. If there is no response from the other party (YES in steps H5 and H6), the dialing process is terminated as a calling error.
[0053]
As described above, in the fourth embodiment, the currently used user name is temporarily stored for each VoIP terminal 1, and the user name is stored and managed for each destination in the phone book file 10. When the VoIP terminal 1 on the calling side sequentially reads out all the IP addresses associated with the call destination arbitrarily selected and designated from the telephone book file 10, the telephone book file 10 The VoIP terminal 1 on the receiving side joins the temporarily stored user name and the IP address from the VoIP terminal 1 on the sending side and transmits the call. The user name is compared with each other, and if the two are different, an error response is made, so that one VoIP terminal 1 can be shared and used by a plurality of users. It can be invoked to ensure the desired user as the call destination.
[0054]
The network telephone system in each embodiment described above is not limited to being applied to a very limited premises such as a company, but can be applied to a wide premises such as a region. Of course, the present invention can also be applied to a wide-area communication system.
[0055]
In addition, a recording medium (for example, a CD-ROM, a floppy disk, a RAM card, etc.) on which program codes for executing the above-described units are recorded may be provided to the computer.
That is, a recording medium having a program code that can be read by a computer, all assigned corresponding to a plurality of subnets for each telephone terminal that packet-converts input voice information and transmits it on the network. Function for storing and managing network addresses for each destination in the phone book data, and when a call partner is selected from the phone book, all network addresses are selected from the phone book data associated with the call partner. A computer-readable recording medium recording a program for realizing a function of sequentially reading addresses and a function of calling a telephone terminal of the other party on the basis of each read network address is provided. May be.
[0056]
【The invention's effect】
According to the present invention, in the state where the currently used user name is temporarily stored for each telephone terminal, and the user name is stored and managed by destination in the telephone directory, the calling telephone terminal When reading all the network addresses associated with the call destination arbitrarily selected and specified from the phone book, the user name in the phone book and the network address are combined and issued. The calling and called phone terminals compare the user name currently stored temporarily and the user name sent from the calling phone terminal combined with the network address, and they are different. In some cases, an error response is made, so that even when one telephone terminal is shared and usable by a plurality of users, a desired user can be reliably called as a call partner.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the overall configuration of a network telephone system.
FIG. 2 is a diagram showing a relationship between a connection location of each VoIP terminal 1 managed on the DHCP server 2 side and an IP address assigned to each terminal corresponding to the location.
FIG. 3 is a diagram showing a configuration of a telephone directory file 10 managed on each VoIP terminal 1 side.
4 is a block diagram showing basic components of the VoIP terminal 1. FIG.
FIG. 5 is a flowchart showing telephone directory data creation / registration processing executed by the VoIP terminal 1 side;
FIG. 6 is a flowchart showing call calling processing (dial processing) executed by each VoIP terminal 1 side.
FIG. 7 is a view showing the structure of a phone book file 10 in the second embodiment.
FIG. 8 is a flowchart showing call call processing (dial processing) executed by each VoIP terminal 1 side in the second embodiment.
FIG. 9 is a diagram for explaining a modified application example of the second embodiment, and is a diagram showing contents of a schedule file SF used for automatically setting priorities and managing each person's action schedule;
FIG. 10 is a diagram for explaining a modified application example of the second embodiment, and is a flowchart showing an operation of the VoIP terminal 1 when automatic priority setting is performed with reference to a schedule file SF.
FIG. 11 is a block diagram showing a network telephone system in a third embodiment.
FIG. 12 is a diagram showing the structure of a phone book file 10 in the third embodiment.
FIG. 13 is a flowchart showing registration processing when the VoIP terminal 1 performs address registration with the SIP server 5 in the third embodiment.
FIG. 14 is a flowchart showing call call processing (dial processing) executed by each VoIP terminal 1 side in the third embodiment.
FIG. 15 is a view showing the structure of a telephone directory file 10 according to the fourth embodiment.
FIG. 16 is a diagram for explaining an operation outline of the fourth embodiment;
FIG. 17 is a flowchart showing login processing for temporarily storing a user name when using a terminal in the fourth embodiment.
FIG. 18 is a flowchart showing call call processing (dial processing) executed by each VoIP terminal 1 side in the fourth embodiment.
FIG. 19 is a diagram for schematically explaining a general SIP server;
[Explanation of symbols]
1 VoIP terminal
2 DHCP server
3 routers
4 access points
5 SIP server
10 Phonebook file
11 CPU
12 Storage device
14 Wireless LAN device
15 Input device
16 Display device
17 Microphone
18 Speaker
SF schedule file

Claims (2)

入力された音声情報をパケット変換してネットワーク上に送信する複数台の電話端末を備えたネットワーク電話システムであって、
前記電話端末は、
現在使用している使用ユーザ名を一時保存するユーザ名保存手段と、
複数のサブネットに対応して各電話端末毎に割当てられている全てのネットワーク用アドレスを相手先別に電話帳データとして記憶管理すると共に、そのユーザ名も合わせて記憶管理する電話帳記憶手段と、
前記電話帳の中から通話相手先が選択指定された場合に、その通話相手先に対応付けられている前記電話帳データから全てのネットワーク用アドレスを順次読み出すと共に、前記電話帳内に登録されているユーザ名を読み出すアドレス読出手段と、
このアドレス読出手段によって読み出された各ネットワーク用アドレスにユーザ名を結合して前記通話相手先の電話端末を呼び出す発呼手段と、
発信側の電話端末から着信があった場合は、前記ユーザ名保存手段内に一時保存されている現在使用のユーザ名と、発信側の電話端末からネットワーク用アドレスに結合して送信されて来たユーザ名とを比較し、両者が異なる場合にはエラー応答を行う着信手段と、
を具備したことを特徴とするネットワーク電話システム。
A network telephone system comprising a plurality of telephone terminals for packet-converting input voice information and transmitting it over a network,
The telephone terminal
A user name storage means for temporarily storing the user name currently used;
A telephone directory storage means for storing and managing all network addresses assigned to each telephone terminal corresponding to a plurality of subnets as telephone directory data for each destination, and storing and managing the user name together with the telephone directory data;
When a call destination is selected and specified from the phone book, all network addresses are sequentially read out from the phone book data associated with the call destination and registered in the phone book. Address reading means for reading out a user name,
Calling means for combining the user name with each network address read by the address reading means to call the telephone terminal of the call partner,
When there is an incoming call from the caller's phone terminal, the user name temporarily stored in the user name storage means is connected to the network address from the caller's phone terminal. An incoming means that compares the user name and responds with an error response if they are different,
A network telephone system comprising:
コンピュータを、
現在使用している使用ユーザ名を一時保存するユーザ名保存手段、
複数のサブネットに対応して各電話端末毎に割当てられている全てのネットワーク用アドレスを相手先別に電話帳データとして記憶管理すると共に、そのユーザ名も合わせて記憶管理する電話帳記憶手段、
前記電話帳の中から通話相手先が選択指定された場合に、その通話相手先に対応付けられている前記電話帳データから全てのネットワーク用アドレスを順次読み出すと共に、前記電話帳内に登録されているユーザ名を読み出すアドレス読出手段、
このアドレス読出手段によって読み出された各ネットワーク用アドレスにユーザ名を結合して前記通話相手先の電話端末を呼び出す発呼手段、
発信側の電話端末から着信があった場合は、前記ユーザ名保存手段内に一時保存されている現在使用のユーザ名と、発信側の電話端末からネットワーク用アドレスに結合して送信されて来たユーザ名とを比較し、両者が異なる場合にはエラー応答を行う着信手段、
として機能させるためのプログラム。
Computer
User name storage means for temporarily storing the user name currently used,
A telephone book storage means for storing and managing all network addresses assigned to each telephone terminal corresponding to a plurality of subnets as telephone book data for each destination, and storing and managing the user names together;
When a call destination is selected and specified from the phone book, all network addresses are sequentially read out from the phone book data associated with the call destination and registered in the phone book. Address reading means for reading out a user name,
Calling means for combining the user name with each network address read by the address reading means to call the telephone terminal of the call partner,
When there is an incoming call from the caller's phone terminal, the user name temporarily stored in the user name storage means is connected to the network address from the caller's phone terminal. Incoming means that compares user names and responds with an error response if they are different,
Program to function as.
JP2002288609A 2002-10-01 2002-10-01 Network telephone system and program Expired - Fee Related JP4093008B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002288609A JP4093008B2 (en) 2002-10-01 2002-10-01 Network telephone system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002288609A JP4093008B2 (en) 2002-10-01 2002-10-01 Network telephone system and program

Publications (2)

Publication Number Publication Date
JP2004128793A JP2004128793A (en) 2004-04-22
JP4093008B2 true JP4093008B2 (en) 2008-05-28

Family

ID=32281058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002288609A Expired - Fee Related JP4093008B2 (en) 2002-10-01 2002-10-01 Network telephone system and program

Country Status (1)

Country Link
JP (1) JP4093008B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101042063B1 (en) * 2004-03-08 2011-06-16 엘지에릭슨 주식회사 Session Initiation Protocol Register and Its Management Method for Extinction Interval
JP2006067400A (en) * 2004-08-30 2006-03-09 Canon Inc COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND COMMUNICATION DEVICE CONTROL PROGRAM
JP5664086B2 (en) * 2010-09-30 2015-02-04 カシオ計算機株式会社 Information processing apparatus, communication system, and program

Also Published As

Publication number Publication date
JP2004128793A (en) 2004-04-22

Similar Documents

Publication Publication Date Title
US20110292930A1 (en) Method And System For Communicating Across Telephone And Data Networks
JP2001223802A (en) Management of customer based on network source address of requesting source in call center
JP2006254411A (en) IP communication system, communication control method and client terminal in IP network, and client server
EP2030455B1 (en) Apparatuses and methods for presenting caller identities for communications originating and terminating in different communication domains
US20070206566A1 (en) Adaptive phonebook database supporting communications between multiple users and devices
US7673010B2 (en) Multi user client terminals operable to support network communications
JP4949403B2 (en) Mobile enterprise applications on telephony systems and methods
JP4093008B2 (en) Network telephone system and program
US8089957B2 (en) Secure IP address exchange in central and distributed server environments
US7881455B2 (en) Apparatus and method for finding a called party over a telecommunication network
JP2024014663A (en) Server equipment, web call system
CN101543013A (en) Communication system
JP2008187224A (en) IP extension telephone system and server device
JP2007336569A (en) IP communication system, communication control method and client terminal in IP network, and client server
JP5423659B2 (en) Management server and its control method and program.
JP4670344B2 (en) COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
JP7733957B1 (en) Telephone Systems and Programs
JP3937346B2 (en) Terminal, answering machine system and program
JP3737720B2 (en) Call system and call system program
US9148508B2 (en) Systems and methods of intercepting telephony communications to provide information to communicants
JP3664718B2 (en) IP phone gateway device outgoing and incoming call processing, recording medium recording the program, and IP phone system
WO2009107494A1 (en) Callback system, calling terminal, telephone relay server, callback method, and callback program
US20160171105A1 (en) Systems and methods for locating user and account information
US20220321696A1 (en) Presence based presentation of call identification information
JP4936412B2 (en) Telephone number processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050421

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060208

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080225

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4093008

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120314

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130314

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130314

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140314

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees