JP2008546325A - テレフォニーサービスアプリケーションのための呼制御エレメント、ダイアログエレメント、及びセッション開始プロトコルメッセージの生成、及び変換 - Google Patents
テレフォニーサービスアプリケーションのための呼制御エレメント、ダイアログエレメント、及びセッション開始プロトコルメッセージの生成、及び変換 Download PDFInfo
- Publication number
- JP2008546325A JP2008546325A JP2008514941A JP2008514941A JP2008546325A JP 2008546325 A JP2008546325 A JP 2008546325A JP 2008514941 A JP2008514941 A JP 2008514941A JP 2008514941 A JP2008514941 A JP 2008514941A JP 2008546325 A JP2008546325 A JP 2008546325A
- Authority
- JP
- Japan
- Prior art keywords
- dialog
- session initiation
- initiation protocol
- call control
- call
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/487—Arrangements for providing information services, e.g. recorded voice services or time announcements
- H04M3/493—Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
- H04M3/4938—Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals comprising a voice browser which renders and interprets, e.g. VoiceXML
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1043—Gateway controllers, e.g. media gateway control protocol [MGCP] controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1096—Supplementary features, e.g. call forwarding or call holding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/0016—Arrangements providing connection between exchanges
- H04Q3/0029—Provisions for intelligent networking
- H04Q3/0054—Service creation techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2203/00—Aspects of automatic or semi-automatic exchanges
- H04M2203/35—Aspects of automatic or semi-automatic exchanges related to information services provided via a voice call
- H04M2203/355—Interactive dialogue design tools, features or methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13034—A/D conversion, code compression/expansion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13389—LAN, internet
Abstract
Description
図4は、SCE111を使用してテレフォニーサービスの開発、アセンブリ、テスト、及び配備を示すプロセスフロー400である。SCE111は、ユーザ401、例えば、サービスプロバイダ、がアプリケーションサーバ110、及び/又はメディアサーバ120に対してテレフォニーサービスアプリケーションを開発、編集、構成、テスト、デバッグ、及び/又は配備できる開発環境である。テレフォニーサービスアプリケーションの生成は、アプリケーション開発(410)、アプリケーションアセンブリ(420)、アプリケーションテスト(430)、及び/又はアプリケーション配備(440)を含む。アプリケーション開発(410)、アプリケーションアセンブリ(420)、及び/又はアプリケーションテスト(430)は、不特定の順番で実行される反復プロセスであり得る。SCE111はグラフィカルユーザーインターフェース(GUI)を提供して、呼制御エレメント、及びダイアログエレメントを含むテレフォニーサービスアプリケーションの生成を容易にする。テレフォニーサービスアプリケーションは、ユーザ401によってグラフィカルユーザーインターフェースを使用して開発される(410)。グラフィカルユーザーインターフェースは、呼制御アプリケーションをビルドするためのドラッグ・アンド・ドロップ・インターフェースを提供し得て、呼制御アプリケーションは呼フロー、及び呼フローに関連する音声ダイアログを定める。加えて、SCE111は、グラフィカルユーザエディタと関連して使用されるテレフォニーサービスアプリケーションの編集のためのテキストユーザエディタを提供し得る。アプリケーション開発の間、呼制御エレメント、及びダイアログエレメントのパレットを提供するデータベース405は、ユーザ401に対して利用可能にされ得る。データベース405は、アプリケーション開発を開始するのに用いる1組の基本エレメント、又はビルディングブロックを提供し得る。これらのエレメントは、ユーザ401によってカスタマイズ、編集、及び/又は新しいビルディングブロックと一体化され得て、並びに新しいアプリケーション呼フローで使用するための新しいエレメントとしてデータベース405に記憶され得る。また、データベース405は、アプリケーション開発をブートストラップするための予めバンドルされた、予め構成された、及び/又はテンプレート呼アプリケーション(即ち、「スタータキット」)も提供し得る。スタータキットは、種々の基本機能に対して呼制御、及びダイアログアプリケーションが如何にして実施され得るかを実演し得る。スタータキット中のファイルは、アプリケーション開発者によって直接的に使用され得るか、及び/又は新しい呼制御、及びダイアログアプリケーションを生成するための起点として機能し得る。データベース405によって提供された呼制御エレメント、及びダイアログエレメントは、1又は複数の特定の言語、例えば、CCXML、及び/又はVXML基づき得るか、又は汎用言語、例えば、汎用サービス作成マークアップ言語(GSCML)、若しくはXML図に基づく言語に基づき得て、それらは技術にとらわれない。産業の中には、SCMLと呼ばれることもある、サービス作成マークアップ言語を使用してきたものもある。ここでのサービス作成マークアップ言語の使用は、産業が定めたサービス作成マークアップ言語との関係を暗示しない。また、データベース405は、開発された呼制御ダイアログアプリケーション、及び/又はダイアログアプリケーションをカプセル化するための1組の Java Server Page (JSP)テンプレートを提供できる。JSPページは、ダイナミックコンテンツ生成を可能にする。また、データベース405は、データ検索のためのバックエンドシステムに接続するための呼制御アプリケーション、及び/又はダイアログアプリケーションによって使用される1組のデータベース記憶域クラスを提供し得る。データベース記憶域クラスは、その種の機能、例えば、カスタムプロンプト検索、口座確認、部門ディレクトリ・ルックアップ、 find-me/follow me 構成、及び/又は類似の構成を実行するためのアプリケーションによって使用される。SCE111は、開発されたアプリケーションを1又は複数の設計ファイルとしてデータベース415に記憶する。設計ファイルは、1又は複数の特定の言語、例えば、CCXML及び/又はVXMLに基づき得るか、又は汎用言語(例えば、GSCML)、若しくはXML図に基づく言語に基づき得て、それらは技術にとらわれない。
<?xml version="1.0" encoding="UTF-8" ?>
<design xmlns="http://www.sonusnet.com/sce" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="playmusic" type="dialog" version="V01.01.00R005">
<prolog>
<decls/>
</prolog>
<components>
<comp xsi:type="Start" id="Start8">
<extension>
<graphic xsi:type="anyType" x="153" y="92"/>
</extension>
<outputs/>
<exits>
<exit name="next" target="music"/>
</exits>
</comp>
<comp xsi:type="Prompt" id="music">
<extension>
<graphic xsi:type="anyType" x="179" y="276"/>
</extension>
<outputs/>
<exits>
<exit name="next" target="End10"/>
</exits>
<prompts>
<audio src="prompt" file="static" scope="param">TTS prompt text</audio>
</prompts>
</comp>
<comp xsi:type="End" id="End10">
<extension>
<graphic xsi:type="anyType" x="177" y="413"/>
</extension>
<outputs/>
</comp>
</components>
<epilog/>
</design>
図7は、図1の例示的なネットワーク100で示されるアプリケーションサーバ110のコンポーネントを示すブロック図700である。アプリケーションサーバ110は、サービスロジック実行エンジン(SLEE)710、呼セッションマネージャ(CSM)720、ダイアログマネージャ(DM)730、SIPアダプタ740、及びSIPアクセス層750を含む。SLEE710は呼のセッションコントローラであり、テレフォニーサービスアプリケーションの呼フローを制御するためのスクリプト可能な環境(例えば、CCXML)を提供するように適合される。CSM720は、呼状態情報を維持することによってテレフォニーサービスに参加している個別の呼セッションを管理する。テレフォニーサービスは、任意の時点の呼に参加している1又は複数のセッションを有し得る。CSM720は、各セッションに対する状態変化に従事している有限状態機械を有し得る。また、CSM720は、 call leg を結合し、呼を切断し、呼をキャンセルするためのサポート、及び/又は他の呼セッション関数も提供し得る。CSM720は、SLEE710とSLEEアプリケーションプログラムインターフェース(SAPI)712を介してインターフェースする。DM730は、SLEE710によって実行されるテレフォニーサービスアプリケーションに含まれ得るダイアログ要求を処理する。DM730は、適用可能なダイアログアプリケーションがロケート、及び/又は実行され得るメディアサーバ120を決定し得る。また、DM730は、フローの処理のためのサポートに関連するダイアログを提供することを担い得る。DM730は、SLEE710とSAPI711を介してインターフェースする。SAPI711,712は、SLEE710が呼フロー、及びダイアログを容易にすることを要求する1組のプリミティブを提供し得る。ダイアログを開始するためのメディアサーバ120を用いてセッションを設定するために、DM730はCSM720とアプリケーションプログラムインターフェース(API)713を介してインターフェースする。
着信 送出
規則 基準 スクリプト 基準 スクリプト
10.1.1.1 InCr_IP1.pl InSc_IP1.pl OutCr_IP1.pl OutSc_IP1.pl
10.1.1.2 InCr_IP2.pl InSc_IP2.pl OutCr_IP2.pl OutSc_IP2.pl
10.1.1.3 INVITE InSc_IP3.pl INVITE OutSc_IP3.pl
この実施例では、予め構成された規則、及びスクリプトは、 10.1.1.1, 10.1.1.2, 及び 10.1.1.3 のIPアドレスを有するエンドエージェントとの相互運用を容易にするように創出されてきた。例えば、サービスプロバイダは、これらのエージェントが、それらのSIPメッセージに対して異なるフォーマットを実施するSIPベンダを使用することを認識する。規則は、SIPメッセージに関連する着信、及び/又は送出IPアドレスに基づいて定められる。例えば、SIPメッセージがIPアドレス 10.1.1.1 を有するエンドエージェントから着信するとき、SIPカスタマイザ910は、着信基準ファイル InCr_IP1.pl を用いてSIPメッセージを処理する。基準ファイルは、例えば、SIPメソッドのような他の規則であり得るか、又はPERLに基づくスクリプトでもあり得る。着信基準ファイルは、SIPメッセージに関連する他のパラメータに基づいて、どのスクリプトがメッセージ・カスタマイズに対して適用可能であるかを決定し得る。この実施例では、着信スクリプトファイル InSc_IP1.pl が検索され、このファイルを使用してSIPメッセージがカスタマイズされる。SIPアダプタ740によって認識可能なフォーマットにSIPメッセージが変換された後、着信SIPメッセージはSIPアダプタ740まで通過する。同様に、 10.1.1.1 に向けられる送出SIPメッセージは、 10.1.1.1 におけるSIPエージェントによって使用されるフォーマットにSIPカスタマイザ910によって変換され得て、トランスポート層920まで通過し得る。
欄 定義
名前 メッセージ・カスタマイズ・オブジェクトに対する名前
記述 オブジェクトを記述するテキスト欄
IPアドレス 着信、又は送出メッセージに対するソース、
又はデスティネーションIPアドレス/ネットマスクを定める。
ポート番号 着信、又は送出メッセージに対するソース、
又はデスティネーション・ポートを定める。
ポート番号を0と指定することによって、
ポートとの整合が開始され得る。
SIPメソッド このメッセージ・カスタマイズが適用される
SIPメソッドを選択する。
可能な選択は、次のようである。
INVITE SIP/2.0
INFO CANCEL
OPTIONS BYE
ACK SUBSCRIBE
NOTIFY REFER
SIP ALL
メッセージ方向 これが着信、又は送出メッセージ・カスタマイズの
何れであるかを定める。
スクリプト名 メッセージ・カスタマイズ・スクリプトの名前
この実施例では、カスタマイズ・オブジェクトが定められ、名前欄、オプション記述欄、1又は複数の規則(例えば、IPアドレス)、及びSIPメッセージをカスタマイズするための対応スクリプトの名前を含む。
INVITE sip:9788461032@208.45.178.195:5060 SIP/2.0
Via: SIP/2.0/UDP 208.45.178.155:5060;branch=z9hG4bK008f42648f4cc33f
From: <sip:imx@208.45.178.155:5060>;tag=gK0000324b
To: "SipClient" <sip:9788461032@208.45.178.195:5060>;tag=gK0a8038c7
Call-ID: b855bb74-ffff-ffff-8000-000e0c9f6001_136880601@208.45.178.155
CSeq: 1441885107 INVITE
Max-Forwards: 70
Allow: INVITE,ACK,CANCEL,BYE,INFO
Accept: multipart/mixed, application/sdp, application/isup, application/dtmf, application/dtmf-relay
Contact: <sip:imx@208.45.178.155:5060>
Content-Length: 183
Content-Disposition: session; handling=optional
Content-Type: application/sdp
v=0
o=Sonus_UAC 25893 19024 IN IP4 208.45.178.195
s=SIP Media Capabilities
c=IN IP4 208.45.178.163
t=0 0
m=audio 5430 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=inactive
a=maxptime:20
INVITE sip:9788461032@208.45.178.195:5060 SIP/2.0
Via: SIP/2.0/UDP 208.45.178.155:5060;branch=z9hG4bK008f42648f4cc33f
From: <sip:imx@208.45.178.155:5060>;tag=gK0000324b
To: "SipClient" <sip:9788461032@208.45.178.195:5060>;tag=gK0a8038c7
Call-ID: b855bb74-ffff-ffff-8000-000e0c9f6001_136880601@208.45.178.155
CSeq: 1441885107 INVITE
Max-Forwards: 70
Allow: INVITE,ACK,CANCEL,BYE,INFO
Accept: multipart/mixed, application/sdp, application/isup, application/dtmf, application/dtmf-relay
Contact: <sip:imx@208.45.178.155:5060>
Content-Length: 183
Content-Disposition: session; handling=optional
Content-Type: application/sdp
v=0
o=Sonus_UAC 25893 19024 IN IP4 208.45.178.195
s=SIP Media Capabilities
c=IN IP4 208.45.178.163
t=0 0
m=audio 5430 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv
a=maxptime:20
#!/usr/bin/perl
# this simple example changes the string "inactive" to the string "sendrecv"
# when the input line is of the form 'string1=inactive'
sub Embed::Persistent::manipBuffer {
my $outbuf="";
my @lines = split( '\n', $_[0] );
foreach ( @lines ) {
if ( $_ =~ /(\w+)(=)(.*)(inactive)(.*)/ ) {
$outbuf = $outbuf. "$1$2$3sendrecv$5\n";
} else {
$outbuf = $outbuf."$_\n";
}
}
return $outbuf;
}
<?xml version="1.0" encoding="UTF-8" ?>
<design xmlns="http://www.sonusnet.com/sce" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="ringback" type="callcontrol" version="V01.01.00R006">
<prolog>
<decls>
<decl expr="'http://10.6.35.63:8080'" id="webServerUrl"/>
<decl expr="'/ringback'" id="appName"/>
<decl expr="'ringback'" id="logLabel"/>
</decls>
</prolog>
<components>
<comp xsi:type="Start" id="start">
<extension>
<graphic xsi:type="anyType" x="17" y="10"/>
</extension>
<outputs/>
<exits>
<exit name="ringing" target="fetchPromptId"/>
</exits>
</comp>
<comp xsi:type="Action" id="fetchPromptId">
<extension>
<graphic xsi:type="anyType" x="230" y="25"/>
</extension>
<outputs>
<output expr="session.connections[evt.connectionid].remote" id="incallingnum"/>
<output expr="evt.connectionid" id="ingressid"/>
<output expr="session.connections[evt.connectionid].local" id="incallednum"/>
</outputs>
<exits>
<exit name="response" target="fetchmusic"/>
</exits>
<logbefore category="logLabel" msg="'Calling web server to get prompt id...'"/>
<invocation>
<uri targetexpr="webServerUrl+appName+'/dynapromptid.jsp'"/>
<parameters>
<param expr="incallednum" name="callednumber"/>
<param expr="incallingnum" name="callingnumber"/>
</parameters>
</invocation>
</comp>
<comp xsi:type="DialogFetch" id="fetchmusic" fetchid="ringbackdialogid">
<extension>
<graphic xsi:type="anyType" x="273" y="114"/>
</extension>
<outputs>
<output expr="evt.prompt" id="prompt"/>
<output expr="evt.url" id="callednum"/>
</outputs>
<exits>
<exit name="failure" target="fetchFailed"/>
<exit name="success" target="sendsig"/>
</exits>
<logbefore category="logLabel" msg="'Fetching prompt...'"/>
<connectionref ref="ingressid"/>
<invocation>
<uri targetexpr="webServerUrl+appName+'/playPrompt.do'"/>
<parameters>
<param expr="evt.prompt" name="prompt"/>
</parameters>
</invocation>
</comp>
<comp xsi:type="Log" id="fetchFailed" category="logLabel" msg="'Dialog fetch failed'">
<extension>
<graphic xsi:type="anyType" x="596" y="228"/>
</extension>
<outputs/>
<exits>
<exit name="next" target="endFetchFailed"/>
</exits>
</comp>
<comp xsi:type="Abort" id="endFetchFailed">
<extension>
<graphic xsi:type="anyType" x="577" y="349"/>
</extension>
<outputs/>
</comp>
<comp xsi:type="Signal" id="sendsig" hints="mediaid=ringbackdialogid" signal="progress">
<extension>
<graphic xsi:type="anyType" x="253" y="222"/>
</extension>
<outputs/>
<exits>
<exit name="next" target="playmusic"/>
</exits>
<connectionref ref="ingressid"/>
</comp>
<comp xsi:type="Dialog" id="playmusic" fetchid="ringbackdialogid">
<extension>
<graphic xsi:type="anyType" x="183" y="318"/>
</extension>
<outputs/>
<exits>
<exit name="started" target="egresscall"/>
</exits>
<logbefore category="logLabel" msg="'Playing prompt...'"/>
<connectionref ref="ingressid"/>
</comp>
<comp xsi:type="CreateCall" id="egresscall" dest="callednum">
<extension>
<graphic xsi:type="anyType" x="33" y="413"/>
</extension>
<outputs>
<output expr="evt.connectionid" id="failedid"/>
</outputs>
<exits>
<exit name="success" target="endmusic"/>
<exit name="failure" target="stopms"/>
</exits>
<logbefore category="logLabel" msg="'Creating call...'"/>
<connection ref="egressid"/>
</comp>
<comp xsi:type="DialogEnd" id="endmusic" dialogid="ringbackdialogid">
<extension>
<graphic xsi:type="anyType" x="317" y="408"/>
</extension>
<outputs/>
<exits>
<exit name="success" target="accept"/>
</exits>
<logbefore category="logLabel" msg="'End music...'"/>
</comp>
<comp xsi:type="Answer" id="accept">
<extension>
<graphic xsi:type="anyType" x="567" y="458"/>
</extension>
<outputs/>
<exits>
<exit name="success" target="connectparties"/>
</exits>
<logbefore category="logLabel" msg="'Answer ingress call...'"/>
<connectionref ref="ingressid"/>
</comp>
<comp xsi:type="Join" id="connectparties">
<extension>
<graphic xsi:type="anyType" x="526" y="544"/>
</extension>
<outputs/>
<exits>
<exit name="hangup" target="hangup"/>
</exits>
<logbefore category="logLabel" msg="'Join ingress and egress call legs...'"/>
<connectionref ref="ingressid"/>
<connectionref2 ref="egressid"/>
</comp>
<comp xsi:type="Decision" id="hangup">
<extension>
<graphic xsi:type="anyType" x="279" y="541"/>
</extension>
<inputs>
<input expr="evt.connectionid"/>
</inputs>
<outputs>
<output expr="evt.reason" id="reason"/>
</outputs>
<exits>
<exit name="done" target="egressdisconnect">
<cond>evt.connectionid == ingressid</cond>
</exit>
<exit name="otherwise" target="ingressdisconnect"/>
</exits>
</comp>
<comp xsi:type="Disconnect" id="egressdisconnect">
<extension>
<graphic xsi:type="anyType" x="144" y="724"/>
</extension>
<outputs/>
<exits>
<exit name="success" target="endringback"/>
</exits>
<logbefore category="logLabel" msg="'Disconnect egress...'"/>
<connectionref ref="egressid"/>
</comp>
<comp xsi:type="End" id="endringback">
<extension>
<graphic xsi:type="anyType" x="374" y="818"/>
</extension>
<outputs/>
<logbefore category="logLabel" msg="'Exiting...'"/>
</comp>
<comp xsi:type="Disconnect" id="ingressdisconnect">
<extension>
<graphic xsi:type="anyType" x="488" y="721"/>
</extension>
<outputs/>
<exits>
<exit name="success" target="endringback"/>
</exits>
<logbefore category="logLabel" msg="'Disconnect ingress...'"/>
<connectionref ref="ingressid"/>
</comp>
<comp xsi:type="DialogEnd" id="stopms" dialogid="ringbackdialogid">
<extension>
<graphic xsi:type="anyType" x="46" y="512"/>
</extension>
<outputs/>
<exits>
<exit name="success" target="stoppedms"/>
</exits>
</comp>
<comp xsi:type="Decision" id="stoppedms">
<extension>
<graphic xsi:type="anyType" x="24" y="629"/>
</extension>
<outputs/>
<exits>
<exit name="done" target="egressdisconnect">
<cond>failedid == ingressid</cond>
</exit>
<exit name="otherwise" target="ingressdisconnect"/>
</exits>
</comp>
</components>
<epilog/>
</design>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Generated by Sonus Networks Service Creation Environment.
Script ID: ringback
GSCML Version: V01.01.00R006
-->
<ccxml xmlns="http://www.w3.org/2002/09/ccxml" version="1.0">
<script>
var ingressCall=new Object();
ingressCall.connId=null;
ingressCall.localNumber=null;
ingressCall.remoteNumber=null;
</script>
<var name="webServerUrl" expr="'http://10.6.35.63:8080'"/><!--Prolog Decl-->
<var name="appName" expr="'/ringback'"/><!--Prolog Decl-->
<var name="logLabel" expr="'ringback'"/><!--Prolog Decl-->
<var name="ringbackdialogid"/><!--Dialog Fetch ID: fetchmusic.ringbackdialogid-->
<var name="egressid"/><!--Connection ID: egresscall.egressid-->
<var name="incallingnum"/><!--Output: fetchPromptId.incallingnum-->
<var name="ingressid"/><!--Output: fetchPromptId.ingressid-->
<var name="incallednum"/><!--Output: fetchPromptId.incallednum-->
<var name="prompt"/><!--Output: fetchmusic.prompt-->
<var name="callednum"/><!--Output: fetchmusic.callednum-->
<var name="failedid"/><!--Output: egresscall.failedid-->
<var name="reason"/><!--Output: hangup.reason-->
<var name="currentstate" expr="'start'"/>
<eventprocessor statevariable="currentstate">
<transition state="start" event="connection.alerting" name="evt"><!--Exit "ringing" from component "start"-->
<assign name="currentstate" expr="'fetchPromptId'"/>
<!--Component "fetchPromptId", type="Action"-->
<assign name="incallingnum" expr="session.connections[evt.connectionid].remote"/>
<assign name="ingressid" expr="evt.connectionid"/>
<assign name="incallednum" expr="session.connections[evt.connectionid].local"/>
<script>
ingressCall.connId=evt.connectionid;
ingressCall.localNumber=evt.connection.local;
ingressCall.remoteNumber=evt.connection.remote;
</script>
<log label="logLabel" expr="'Calling web server to get prompt id...'"/>
<var name="callednumber" expr="incallednum"/>
<var name="callingnumber" expr="incallingnum"/>
<send target="webServerUrl+appName+'/dynapromptid.jsp'" targettype="'x-http'" data="'fetchPromptId.response'" delay="'0s'" namelist="callednumber callingnumber"/>
</transition>
<transition state="fetchPromptId" event="fetchPromptId.response" name="evt"><!--Exit "response" from component "fetchPromptId"-->
<assign name="currentstate" expr="'fetchmusic'"/>
<!--Component "fetchmusic", type="DialogFetch"-->
<assign name="prompt" expr="evt.prompt"/>
<assign name="callednum" expr="evt.url"/>
<log label="logLabel" expr="'Fetching prompt...'"/>
<dialogprepare type="'application/voicexml+xml'" dialogid="ringbackdialogid" connectionid="ingressid" src="webServerUrl+appName+'/playPrompt.do'+'?'+'prompt='+evt.prompt"/>
</transition>
<transition state="fetchmusic" event="error.dialog.notprepared" name="evt"><!--Exit "failure" from component "fetchmusic"-->
<!--Component "fetchFailed", type="Log"-->
<log label="logLabel" expr="'Dialog fetch failed'"/><!--Exit "next" from component "fetchFailed"-->
<!--Component "endFetchFailed" (recursive), type="Abort"-->
<exit/>
</transition>
<transition state="fetchmusic" event="dialog.prepared" name="evt"><!--Exit "success" from component "fetchmusic"-->
<!--Component "sendsig", type="Signal"-->
<sendsig connectionid="ingressid" type="'progress'" hints="mediaid=ringbackdialogid"/><!--Exit "next" from component "sendsig"-->
<assign name="currentstate" expr="'playmusic'"/>
<!--Component "playmusic" (recursive), type="Dialog"-->
<log label="logLabel" expr="'Playing prompt...'"/>
<dialogstart type="'application/voicexml+xml'" prepareddialogid="ringbackdialogid" connectionid="ingressid"/>
</transition>
<transition state="playmusic" event="dialog.started" name="evt"><!--Exit "started" from component "playmusic"-->
<assign name="currentstate" expr="'egresscall'"/>
<!--Component "egresscall", type="CreateCall"-->
<assign name="failedid" expr="evt.connectionid"/>
<log label="logLabel" expr="'Creating call...'"/>
<createcall dest="callednum" connectionid="egressid"/>
</transition>
<transition state="egresscall" event="connection.connected" name="evt"><!--Exit "success" from component "egresscall"-->
<assign name="currentstate" expr="'endmusic'"/>
<!--Component "endmusic", type="DialogEnd"-->
<log label="logLabel" expr="'End music...'"/>
<dialogterminate dialogid="ringbackdialogid"/>
</transition>
<transition state="endmusic" event="dialog.exit" name="evt"><!--Exit "success" from component "endmusic"-->
<assign name="currentstate" expr="'accept'"/>
<!--Component "accept", type="Answer"-->
<log label="logLabel" expr="'Answer ingress call...'"/>
<accept connectionid="ingressid"/>
</transition>
<transition state="accept" event="connection.connected" name="evt"><!--Exit "success" from component "accept"-->
<assign name="currentstate" expr="'connectparties'"/>
<!--Component "connectparties", type="Join"-->
<log label="logLabel" expr="'Join ingress and egress call legs...'"/>
<join id1="ingressid" id2="egressid"/>
</transition>
<transition state="connectparties" event="connection.disconnected" name="evt"><!--Exit "hangup" from component "connectparties"-->
<!--Component "hangup", type="Decision"-->
<assign name="reason" expr="evt.reason"/>
<if cond="evt.connectionid == ingressid"><!--Exit "done" from component "hangup"-->
<assign name="currentstate" expr="'egressdisconnect'"/>
<!--Component "egressdisconnect" (recursive), type="Disconnect"-->
<log label="logLabel" expr="'Disconnect egress...'"/>
<disconnect connectionid="egressid"/>
<else/><!--Exit "otherwise" from component "hangup"-->
<assign name="currentstate" expr="'ingressdisconnect'"/>
<!--Component "ingressdisconnect" (recursive), type="Disconnect"-->
<log label="logLabel" expr="'Disconnect ingress...'"/>
<disconnect connectionid="ingressid"/>
</if>
</transition>
<transition state="egressdisconnect" event="connection.disconnected" name="evt"><!--Exit "success" from component "egressdisconnect"-->
<!--Component "endringback", type="End"-->
<log label="logLabel" expr="'Exiting...'"/>
<exit/>
</transition>
<transition state="ingressdisconnect" event="connection.disconnected" name="evt"><!--Exit "success" from component "ingressdisconnect"-->
<!--Component "endringback", type="End"-->
<log label="logLabel" expr="'Exiting...'"/>
<exit/>
</transition>
<transition state="egresscall" event="connection.failed" name="evt"><!--Exit "failure" from component "egresscall"-->
<assign name="currentstate" expr="'stopms'"/>
<!--Component "stopms", type="DialogEnd"-->
<dialogterminate dialogid="ringbackdialogid"/>
</transition>
<transition state="stopms" event="dialog.exit" name="evt"><!--Exit "success" from component "stopms"-->
<!--Component "stoppedms", type="Decision"-->
<if cond="failedid == ingressid"><!--Exit "done" from component "stoppedms"-->
<assign name="currentstate" expr="'egressdisconnect'"/>
<!--Component "egressdisconnect" (recursive), type="Disconnect"-->
<log label="logLabel" expr="'Disconnect egress...'"/>
<disconnect connectionid="egressid"/>
<else/><!--Exit "otherwise" from component "stoppedms"-->
<assign name="currentstate" expr="'ingressdisconnect'"/>
<!--Component "ingressdisconnect" (recursive), type="Disconnect"-->
<log label="logLabel" expr="'Disconnect ingress...'"/>
<disconnect connectionid="ingressid"/>
</if>
</transition>
<transition event="error.*" name="evt">
<log label="'ringback'" expr="'Unhandled error event: '+evt.name+', current state='+currentstate+', reason='+evt.reason"/>
<exit/>
</transition>
</eventprocessor>
</ccxml>
<?xml version="1.0" encoding="UTF-8"?>
<%@ page language="java" import="java.util.*" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean"%>
<%@ taglib uri="/tags/jstl-core" prefix="c"%>
<%@ taglib uri="/tags/jstl-functions" prefix="fn"%>
<c:choose>
<c:when test="${!empty sessionScope.promptLoc}">
<c:set var="promptBase" value="${sessionScope.promptLoc}"/>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${fn:startsWith(initParam.promptURLRoot,\"/\")}">
<c:if test="${initParam.promptsRelative=='true'}">
<c:set var="promptBase" value="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}${initParam.promptURLRoot}"/>
</c:if>
<c:if test="${initParam.promptsRelative=='false'}">
<c:set var="promptBase" value="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${initParam.promptURLRoot}"/>
</c:if>
</c:when>
<c:otherwise>
<c:set var="promptBase" value="${initParam.promptURLRoot}"/>
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${!empty requestScope.modelbean}">
<c:set var="modelBean" value="${requestScope.modelbean}"/>
</c:when>
<c:otherwise>
<c:set var="modelBean" value="''"/>
</c:otherwise>
</c:choose>
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.0">
<property name="inputmodes" value="dtmf"/>
<!--global dialog result variable-->
<var name="result_" expr="'false'"/>
<catch event="connection.disconnect.hangup">
<submit next="<%=response.encodeURL(request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/exit.do")%>" namelist=" result_"/>
</catch>
<!--prolog-->
<!--local declarations-->
<!--Outputs of all design elements-->
<!--Beginning of form/menu elements-->
<form id="music">
<block>
<prompt>
<audio src="<c:out value="${promptBase}"/>${param["prompt"]}"/></prompt>
<goto next="#End10"/>
</block>
</form>
<form id="End10">
<block>
<assign name="result_" expr="'true'"/>
<submit next="<%=response.encodeURL(request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/exit.do")%>" namelist=" result_"/>
</block>
</form>
</vxml>
101 パケットベースのネットワーク
110 アプリケーションサーバ
111 サービス作成環境(SCE)
120 メディアサーバ
130 ルーティングサーバ
140,150 アクセスネットワーク
141,151 ゲートウェイ
145,155 ユーザ装置
165 ユーザ
401 ユーザ
405,415,425 データベース
Claims (53)
- 統合された呼制御、及びダイアログアプリケーションを生成するための方法であって、
グラフィカルユーザーインターフェースを提供すること、
ユーザに、前記グラフィカルユーザーインターフェースを使用して、複数のエレメントから1つのエレメントを選択させ、前記複数のエレメントが少なくとも1つの呼制御エレメント、及び少なくとも1つのダイアログエレメントを含み、前記少なくとも1つの呼制御エレメントが前記少なくとも1つのダイアログエレメントに関連する少なくとも1つの発呼イベントの制御を定めること、並びに
テレフォニーアプリケーションのためのモジュールを前記グラフィカルユーザーインターフェースを使用して生成することの諸ステップを含むことを特徴とする方法。 - 前記グラフィカルユーザーインターフェースを使用して、前記ダイアログエレメントを前記呼制御エレメントと結合させることを更に含む、請求項1に記載の方法。
- 前記ダイアログエレメントを前記呼制御エレメントと結合させることが、前記呼制御エレメント中の前記ダイアログエレメントにリファレンスを挿入することを含む、請求項2に記載の方法。
- 前記ダイアログエレメントを前記呼制御エレメントと結合させることが、前記ダイアログエレメントを前記呼制御エレメントに埋め込むことを含む、請求項2に記載の方法。
- 前記複数のエレメントが、設計ファイル、ソースコード、実行可能ファイル、又はそれらの組み合わせの1つ又は2つ以上を含む、請求項1に記載の方法。
- 前記呼制御エレメントが、呼制御XML(CCXML)、呼処理言語(CPL)、又はそれらの組み合わせに基づき得る、請求項1に記載の方法。
- 前記呼制御エレメントが Java Server Page (JSP)の内部に埋め込まれる、請求項6に記載の方法。
- 1又は複数の予め定められた呼制御エレメントの組を提供することを更に含み、前記呼制御エレメントが前記組に含まれる、請求項1に記載の方法。
- 前記ダイアログエレメントが、音声XML(VXML)、メディアサーバ制御マークアップ言語(MSCML)、メディアサーバマークアップ言語(MSML)、メディアオブジェクトマークアップ言語(MOML)、又はそれらの組み合わせに基づく、請求項1に記載の方法。
- 前記ダイアログエレメントが、 Java Server Page (JSP)の内部に埋め込まれる、請求項9に記載の方法。
- 1又は複数の予め定められたダイアログエレメントの組を提供することを更に含み、前記ダイアログエレメントが前記組に含まれる、請求項1に記載の方法。
- 前記呼制御エレメント、又は前記ダイアログエレメントが、ECMAスクリプトに基づくエレメントを含む、請求項1に記載の方法。
- 前記モジュールを生成することが、前記呼制御エレメント、又は前記ダイアログエレメントを構成することを含む、請求項1に記載の方法。
- 前記モジュールを生成することが呼フローを定めることを含み、前記呼フローが前記呼制御エレメント、又は前記ダイアログエレメントを含む、請求項1に記載の方法。
- 文字ユーザインターフェースを提供すること、及び
前記モジュールを前記文字ユーザインターフェースを使用して構成することを更に含む、請求項1に記載の方法。 - 情報担体中で実体的に実施されるコンピュータプログラムプロダクトであって、データ処理装置に以下のこと、即ち、
グラフィカルユーザーインターフェースを提供すること、
ユーザに、前記グラフィカルユーザーインターフェースを使用して、複数のエレメントから1つのエレメントを選択させ、前記複数のエレメントが少なくとも1つの呼制御エレメント、及び少なくとも1つのダイアログエレメントを含み、前記少なくとも1つの呼制御エレメントが前記少なくとも1つのダイアログエレメントに関連する少なくとも1つの発呼イベントの制御を定めること、並びに
テレフォニーアプリケーションのためのモジュールを前記グラフィカルユーザーインターフェースを使用して生成することを可能にするように動作可能な命令を前記コンピュータプログラムプロダクトが含むことを特徴とする、コンピュータプログラムプロダクト。 - サービス作成ツールを含むシステムであって、以下のこと、即ち、
グラフィカルユーザーインターフェースを提供すること、
ユーザに、前記グラフィカルユーザーインターフェースを使用して、複数のエレメントから1つのエレメントを選択させ、前記複数のエレメントが少なくとも1つの呼制御エレメント、及び少なくとも1つのダイアログエレメントを含み、前記少なくとも1つの呼制御エレメントが前記少なくとも1つのダイアログエレメントに関連する少なくとも1つの発呼イベントの制御を定めること、並びに
テレフォニーアプリケーションのためのモジュールを前記グラフィカルユーザーインターフェースを使用して生成することに適合されることを特徴とするシステム。 - テレフォニーアプリケーションのためのモジュールを生成することであって、前記モジュールが複数のエレメントを含み、前記複数のエレメントの少なくとも第1のエレメントが呼制御エレメントであり、前記複数のエレメントの少なくとも第2のエレメントがダイアログエレメントであり、前記呼制御エレメントが前記ダイアログエレメントに関連する少なくとも1つの発呼イベントの制御を定め、
前記モジュールを中間設計ファイルに記憶することであって、前記中間設計ファイルは1又は複数の中間言語に基づき、及び
変換規則を使用して、前記中間設計ファイルの少なくとも一部を1又は複数の目的設計ファイルに変換することであって、前記1又は複数の目的設計ファイルが1又は複数の目的言語に基づき、前記1又は複数の目的言語が前記1又は複数の中間言語とは異なる諸ステップを含むことを特徴とする方法。 - 前記1又は複数の中間言語が、呼制御XML(CCXML)、呼処理言語(CPL)、音声XML(VXML)、メディアサーバ制御マークアップ言語(MSCML)、メディアサーバマークアップ言語(MSML)、メディアオブジェクトマークアップ言語(MOML)、又はそれらの組み合わせを含む、請求項18に記載の方法。
- 前記1又は複数の中間言語が、拡張可能マークアップ言語(XML)を含む、請求項18に記載の方法。
- 前記1又は複数の中間言語が汎用言語を含む、請求項18に記載の方法。
- 前記1又は複数の目的言語が、呼制御XML(CCXML)、呼処理言語(CPL)、音声XML(VXML)、メディアサーバ制御マークアップ言語(MSCML)、メディアサーバマークアップ言語(MSML)、メディアオブジェクトマークアップ言語(MOML)、又はそれらの組み合わせを含む、請求項18に記載の方法。
- Java Server Page (JSP)の内部の前記1又は複数の目的設計ファイルの少なくとも1つをカプセル化することを更に含む、請求項22に記載の方法。
- 前記中間言語は1つのモデルに基づき、前記モデルが、前記呼制御エレメントに関連する呼制御コンポーネント、及び前記ダイアログエレメントに関連するダイアログコンポーネントを含む、請求項18に記載の方法。
- 前記呼制御コンポーネントが発呼イベント関数を定める、請求項24に記載の方法。
- 前記発呼イベント関数が、 start 関数、 end 関数、 log 関数、 action 関数、 call action 関数、 dialog 関数、又はそれらの組み合わせを含む、請求項25に記載の方法。
- 前記 call action 関数が、 answer 関数、 connect 関数、 disconnect 関数、 redirect 関数、 remove 関数、 create call 関数、 create conference 関数、又はそれらの組み合わせを含む、請求項26に記載の方法。
- 前記ダイアログコンポーネントが dialog 関数を定める、請求項24に記載の方法。
- 前記 dialog 関数が、 start 関数、 end 関数、 log 関数、 action 関数、 play action 関数、 form 関数、 menu 関数、又はそれらの組み合わせを含む、請求項28に記載の方法。
- 前記 play action 関数が、 prompt 関数、 record 関数、又はそれらの組み合わせを含む、請求項29に記載の方法。
- 前記変換規則が、拡張スタイルシート言語変換(XSLT)に基づく、請求項18に記載の方法。
- 前記1又は複数の目的設計ファイルを1又は複数のウェブアプリケーションにアセンブルすることを更に含む、請求項18に記載の方法。
- 前記1又は複数のウェブアプリケーションの少なくとも1つが、
1又は複数の呼制御アプリケーション、又は
1又は複数のダイアログアプリケーションの少なくとも1つを含む、請求項32に記載の方法。 - 情報担体中で実体的に実施されるコンピュータプログラムプロダクトであって、データ処理装置に以下のこと、即ち、
テレフォニーアプリケーションのためのモジュールを生成することであって、前記モジュールが複数のエレメントを含み、前記複数のエレメントの少なくとも第1のエレメントが呼制御エレメントであり、前記複数のエレメントの少なくとも第2のエレメントがダイアログエレメントであり、前記呼制御エレメントが前記ダイアログエレメントに関連する少なくとも1つの発呼イベントの制御を定め、
前記モジュールを中間設計ファイルに記憶することであって、前記中間設計ファイルは1又は複数の中間言語に基づき、及び
変換規則を使用して、前記中間設計ファイルの少なくとも一部を1又は複数の目的設計ファイルに変換することであって、前記1又は複数の目的設計ファイルが1又は複数の目的言語に基づき、前記1又は複数の目的言語が前記1又は複数の中間言語とは異なることを可能にするように動作可能な命令を前記コンピュータプログラムプロダクトが含むことを特徴とする、コンピュータプログラムプロダクト。 - サービス作成ツールを含むシステムであって、以下のこと、即ち、
テレフォニーアプリケーションのためのモジュールを生成することであって、前記モジュールが複数のエレメントを含み、前記複数のエレメントの少なくとも第1のエレメントが呼制御エレメントであり、前記複数のエレメントの少なくとも第2のエレメントがダイアログエレメントであり、前記呼制御エレメントが前記ダイアログエレメントに関連する少なくとも1つの発呼イベントの制御を定め、
前記モジュールを中間設計ファイルに記憶することであって、前記中間設計ファイルは1又は複数の中間言語に基づき、及び
変換規則を使用して、前記中間設計ファイルの少なくとも一部を1又は複数の目的設計ファイルに変換することであって、前記1又は複数の目的設計ファイルが1又は複数の目的言語に基づき、前記1又は複数の目的言語が前記1又は複数の中間言語とは異なることに適合されることを特徴とするシステム。 - セッション開始プロトコルに基づいてメッセージを相互作用させるための方法であって、
1又は複数の命令の第1の組を規則に関連付けること、
第1のフォーマットに基づくセッション開始プロトコルメッセージを受信すること、
前記規則を使用して、1又は複数の命令の前記第1の組が前記セッション開始プロトコルメッセージに適用可能であるか否かを決定すること、及び
1又は複数の命令の前記第1の組が前記セッション開始プロトコルメッセージに適用可能であるとき、命令の前記第1の組を使用して、前記セッション開始プロトコルメッセージを目的のセッション開始プロトコルメッセージに変換し、前記目的のセッション開始プロトコルメッセージは、前記第1フォーマットとは異なる第2フォーマットに基づく諸ステップを含むことを特徴とする方法。 - 前記セッション開始プロトコルメッセージは、開放型システム間相互接続(OSI)参照モデルによって定められるトランスポート層から受信される、請求項36に記載の方法。
- 目的の前記セッション開始プロトコルメッセージをOSI参照モデルによって定められるアプリケーション層に転送することを更に含む、請求項37に記載の方法。
- 目的のセッション開始プロトコルメッセージが、正規化されたセッション開始プロトコルメッセージを含む、請求項38に記載の方法。
- 前記セッション開始プロトコルメッセージが、開放型システム間相互接続(OSI)参照モデルによって定められるアプリケーション層から受信される、請求項36に記載の方法。
- 前記目的のセッション開始プロトコルメッセージをOSI参照モデルによって定められるトランスポート層に転送することを更に含む、請求項40に記載の方法。
- 前記セッション開始プロトコルメッセージ中のパラメータを識別することを更に含み、前記パラメータは、予め定められたアドレス、予め定められたTCP又はUDPポート、伝送制御プロトコル(TCP)ID、セッション開始プロトコル方法、又はそれらの組み合わせを含む、請求項36に記載の方法。
- 前記予め定められたアドレスが、ソースIPアドレス、デスティネーションIPアドレス、又はそれらの組み合わせを含む、請求項42に記載の方法。
- 前記セッション開始プロトコル方法が、 INVITE, RE-INVITE, REGISTER, ACK, CANCEL, BYE, OPTIONS, INFO, NOTIFY, SUBSCRIBE, UNSUBSCRIBE, UPDATE, MESSAGE, REFER, PRACK, PUBLISH 又はそれらの組み合わせを含む、請求項42に記載の方法。
- 1又は複数の命令の前記第1の組が前記セッション開始プロトコルメッセージに適用可能であるか否かを決定することが、前記パラメータを対応する規則パラメータに合致させることを含み、前記規則は規則パラメータを含む、請求項42に記載の方法。
- 1又は複数の命令の前記第1の組が、 Practical Extraction and Report 言語(PERL)、 Tool Command 言語(TCL)、C言語、C++言語、又はそれらの組み合わせに基づく、請求項36に記載の方法。
- 前記セッション開始プロトコルメッセージを前記目的のセッション開始プロトコルメッセージに変換することが、前記セッション開始プロトコルメッセージの内部の1又は複数のSIPヘッダを操作すること、追加すること、又は除去することを含む、請求項36に記載の方法。
- 前記セッション開始プロトコルメッセージを前記目的のセッション開始プロトコルメッセージに変換することが、前記セッション開始プロトコルメッセージの内部のスタートラインを操作することを含む、請求項36に記載の方法。
- 前記セッション開始プロトコルメッセージを前記目的のセッション開始プロトコルメッセージに変換することが、前記セッション開始プロトコルメッセージの内部の本体部分を操作することを含む、請求項36に記載の方法。
- オブジェクトが前記規則を含み、前記オブジェクトがデータベースに記憶される、請求項36に記載の方法。
- 前記オブジェクトが、名前、記述、1又は複数の命令の前記第1の組の名前、又はそれらの組み合わせを更に含む、請求項50に記載の方法。
- 情報担体中で実体的に実施されるコンピュータプログラムプロダクトであって、データ処理装置に以下のこと、即ち、
1又は複数の命令の第1の組を規則に関連付けること、
第1のフォーマットに基づくセッション開始プロトコルメッセージを受信すること、
前記規則を使用して、1又は複数の命令の前記第1の組が前記セッション開始プロトコルメッセージに適用可能であるか否かを決定すること、及び
1又は複数の命令の前記第1の組が前記セッション開始プロトコルメッセージに適用可能であるとき、命令の前記第1の組を使用して、前記セッション開始プロトコルメッセージを目的のセッション開始プロトコルメッセージに変換し、前記目的のセッション開始プロトコルメッセージは、前記第1フォーマットとは異なる第2フォーマットに基づくことを可能にするように動作可能な命令を前記コンピュータプログラムプロダクトが含むことを特徴とする、コンピュータプログラムプロダクト。 - セッション開始プロトコルに基づいてメッセージを相互作用させるためのシステムであって、以下のこと、即ち、
1又は複数の命令の第1の組を規則に関連付けること、
第1のフォーマットに基づくセッション開始プロトコルメッセージを受信すること、
前記規則を使用して、1又は複数の命令の前記第1の組が前記セッション開始プロトコルメッセージに適用可能であるか否かを決定すること、及び
1又は複数の命令の前記第1の組が前記セッション開始プロトコルメッセージに適用可能であるとき、命令の前記第1の組を使用して、前記セッション開始プロトコルメッセージを目的のセッション開始プロトコルメッセージに変換し、前記目的のセッション開始プロトコルメッセージは、前記第1フォーマットとは異なる第2フォーマットに基づくことに適合されるネットワーク装置を含むことを特徴とするシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68713505P | 2005-06-03 | 2005-06-03 | |
PCT/US2006/021634 WO2006133033A2 (en) | 2005-06-03 | 2006-06-05 | Generating and transforming call control elements, dialog elements and session initiation protocol messages |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008546325A true JP2008546325A (ja) | 2008-12-18 |
JP2008546325A5 JP2008546325A5 (ja) | 2009-07-23 |
Family
ID=37000116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008514941A Pending JP2008546325A (ja) | 2005-06-03 | 2006-06-05 | テレフォニーサービスアプリケーションのための呼制御エレメント、ダイアログエレメント、及びセッション開始プロトコルメッセージの生成、及び変換 |
Country Status (7)
Country | Link |
---|---|
US (3) | US20070041369A1 (ja) |
EP (1) | EP1886467B1 (ja) |
JP (1) | JP2008546325A (ja) |
AT (1) | ATE476822T1 (ja) |
CA (1) | CA2610700A1 (ja) |
DE (1) | DE602006015946D1 (ja) |
WO (1) | WO2006133033A2 (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104802A (en) | 1997-02-10 | 2000-08-15 | Genesys Telecommunications Laboratories, Inc. | In-band signaling for routing |
US7031442B1 (en) | 1997-02-10 | 2006-04-18 | Genesys Telecommunications Laboratories, Inc. | Methods and apparatus for personal routing in computer-simulated telephony |
US6480600B1 (en) | 1997-02-10 | 2002-11-12 | Genesys Telecommunications Laboratories, Inc. | Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality |
US6711611B2 (en) | 1998-09-11 | 2004-03-23 | Genesis Telecommunications Laboratories, Inc. | Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure |
US6985943B2 (en) | 1998-09-11 | 2006-01-10 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center |
USRE46528E1 (en) | 1997-11-14 | 2017-08-29 | Genesys Telecommunications Laboratories, Inc. | Implementation of call-center outbound dialing capability at a telephony network level |
US7907598B2 (en) * | 1998-02-17 | 2011-03-15 | Genesys Telecommunication Laboratories, Inc. | Method for implementing and executing communication center routing strategies represented in extensible markup language |
US6332154B2 (en) | 1998-09-11 | 2001-12-18 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface |
USRE46153E1 (en) | 1998-09-11 | 2016-09-20 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment |
US7929978B2 (en) | 1999-12-01 | 2011-04-19 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network |
US20050190706A1 (en) * | 2004-02-26 | 2005-09-01 | Henderson Eric A. | Automatic conferencing service |
EP1886467B1 (en) * | 2005-06-03 | 2010-08-04 | Sonus Networks, Inc. | Generating and transforming call control elements, dialog elements, and session initiation protocol messages for telephony service applications |
EP1943801A1 (en) * | 2005-10-31 | 2008-07-16 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Transfer of part of a push to talk session |
US20070150442A1 (en) * | 2005-12-20 | 2007-06-28 | Chin Frances M | Library services in communication networks |
US9008075B2 (en) | 2005-12-22 | 2015-04-14 | Genesys Telecommunications Laboratories, Inc. | System and methods for improving interaction routing performance |
CN100428755C (zh) * | 2006-01-24 | 2008-10-22 | 华为技术有限公司 | 一种电路域终端实现业务自助的方法及实体 |
WO2007140812A1 (en) * | 2006-06-02 | 2007-12-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatuses for establishing a session between a client terminal and a media supply system to transport a unicast media stream over an ip network |
US20080016181A1 (en) * | 2006-07-13 | 2008-01-17 | Erik John Burckart | Method and system for providing remote media |
WO2008019045A2 (en) * | 2006-08-03 | 2008-02-14 | Bluenote Networks, Inc. | Unified session detail records |
US20080155492A1 (en) * | 2006-12-22 | 2008-06-26 | International Business Machines Corporation | Development tool for creating converged applications that include sip and web components |
US8027446B2 (en) * | 2007-01-23 | 2011-09-27 | Ubiquity Software Corporation Limited | System and method for providing service mediation and orchestration for external telephony applications |
KR100908192B1 (ko) * | 2007-04-12 | 2009-07-16 | 현재봉 | 사용자 정의 소프트 폰을 이용한 인터넷 전화 시스템 및 인터넷 전화 서비스 방법 |
US8301757B2 (en) | 2007-06-11 | 2012-10-30 | Enghouse Interactive Inc. | System and method for obtaining in-use statistics for voice applications in interactive voice response systems |
US8423635B2 (en) * | 2007-06-11 | 2013-04-16 | Enghouse Interactive Inc. | System and method for automatic call flow detection |
EP2007105A1 (en) * | 2007-06-22 | 2008-12-24 | Accenture Global Services GmbH | Session initiation protocol adaptor |
JP2009033258A (ja) * | 2007-07-24 | 2009-02-12 | Nippon Telegr & Teleph Corp <Ntt> | 通信装置、通信方法および通信プログラム |
US20090147932A1 (en) * | 2007-09-19 | 2009-06-11 | Genesis Financial Solutions, Inc. | Enhanced programming model and controller for ivr |
US9003049B1 (en) * | 2008-01-28 | 2015-04-07 | Avaya Inc. | Interactive voice response object |
EP2134058B1 (en) * | 2008-06-12 | 2012-11-21 | Alcatel Lucent | Method for protecting a packet based network and border node protection system |
US9736207B1 (en) * | 2008-06-13 | 2017-08-15 | West Corporation | Passive outdial support for mobile devices via WAP push of an MVSS URL |
EP2150067B1 (en) * | 2008-07-31 | 2013-06-26 | Accenture Global Services Limited | Trigger mediation system |
US10015267B2 (en) * | 2008-09-02 | 2018-07-03 | Constantin Staykoff | Generic multichannel center for network applications and services |
EP2350865A4 (en) * | 2008-09-30 | 2014-12-31 | Avfinity Llc | COMPUTER-READABLE MEDIUM FOR TRANSLATING PROTOCOLS |
US8117538B2 (en) * | 2008-12-19 | 2012-02-14 | Genesys Telecommunications Laboratories, Inc. | Method for dynamically converting voice XML scripts into other compatible markup language scripts based on required modality |
EP2209283A1 (en) * | 2009-01-20 | 2010-07-21 | Vodafone Group PLC | Node failure detection system and method for SIP sessions in communication networks. |
JP4920052B2 (ja) * | 2009-03-11 | 2012-04-18 | 株式会社日立製作所 | 通信システム及びサーバ |
US8219683B2 (en) * | 2009-03-31 | 2012-07-10 | International Business Machines Corporation | Enabling creation of converged internet protocol multimedia subsystem services by third-party application developers using session initiation protocol support |
US9172803B2 (en) * | 2009-08-23 | 2015-10-27 | Aspect Software, Inc. | System and method for integrating runtime usage statistics with developing environment |
US8416780B2 (en) * | 2009-11-03 | 2013-04-09 | Research In Motion Limited | System and method for session initiation protocol header modification |
US8416781B2 (en) * | 2009-11-03 | 2013-04-09 | Research In Motion Limited | System and method for session initiation protocol header modification |
FR2971658A1 (fr) * | 2011-02-14 | 2012-08-17 | Altervoice | Systeme de controle de mise en œuvre d'un service multimedia |
US9767195B2 (en) * | 2011-04-21 | 2017-09-19 | Touchstream Technologies, Inc. | Virtualized hosting and displaying of content using a swappable media player |
CN103795958B (zh) * | 2012-10-30 | 2017-10-13 | 中国电信股份有限公司 | 多媒体呼叫协商方法、系统及视频互通网关、多媒体终端 |
US10348778B2 (en) * | 2013-02-08 | 2019-07-09 | Avaya Inc. | Dynamic device pairing with media server audio substitution |
US10320972B2 (en) * | 2015-07-23 | 2019-06-11 | Avaya Inc. | Enhanced session initiation protocol recording |
US10599402B2 (en) * | 2017-07-13 | 2020-03-24 | Facebook, Inc. | Techniques to configure a web-based application for bot configuration |
US11700526B2 (en) * | 2018-06-12 | 2023-07-11 | Samsung Electronics Co., Ltd. | Method and apparatus for identifying in-call capability features |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001268229A (ja) * | 2000-03-17 | 2001-09-28 | Ntt Comware Corp | 電話サービス装置、電話サービス方法及びその記録媒体 |
US20020169776A1 (en) * | 2000-09-01 | 2002-11-14 | Nokia Corporation | Network architecture and methods for service script execution and management |
EP1343287A2 (en) * | 2002-03-06 | 2003-09-10 | Alcatel | System providing a graphical user interface to telephones |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5463682A (en) * | 1992-08-25 | 1995-10-31 | Bell Communications Research, Inc. | Method of creating user-defined call processing procedures |
US5455853A (en) * | 1992-08-25 | 1995-10-03 | Bell Communications Research, Inc. | Method of creating a telecommunication service template |
US6778651B1 (en) * | 1997-04-03 | 2004-08-17 | Southwestern Bell Telephone Company | Apparatus and method for facilitating service management of communications services in a communications network |
US6002941A (en) * | 1997-12-17 | 1999-12-14 | Motorola, Inc. | Method and apparatus for implementing a service in a wireless communication system |
US6678735B1 (en) * | 2000-01-26 | 2004-01-13 | Nortel Networks Limited | Method and apparatus for a sip client manager |
US6763104B1 (en) * | 2000-02-24 | 2004-07-13 | Teltronics, Inc. | Call center IVR and ACD scripting method and graphical user interface |
US6944150B1 (en) * | 2000-02-28 | 2005-09-13 | Sprint Communications Company L.P. | Method and system for providing services in communications networks |
US20020120746A1 (en) * | 2001-02-23 | 2002-08-29 | Basavaraj Patil | Method and system for providing a service |
US7283519B2 (en) * | 2001-04-13 | 2007-10-16 | Esn, Llc | Distributed edge switching system for voice-over-packet multiservice network |
US20040042593A1 (en) * | 2002-05-17 | 2004-03-04 | Suren Gulrajani | Web-based telephony services creation, deployment and maintenance method and system |
US20030236892A1 (en) * | 2002-05-31 | 2003-12-25 | Stephane Coulombe | System for adaptation of SIP messages based on recipient's terminal capabilities and preferences |
US7103156B2 (en) * | 2002-12-04 | 2006-09-05 | International Business Machines Corporation | Telephony voice server |
US20050027536A1 (en) * | 2003-07-31 | 2005-02-03 | Paulo Matos | System and method for enabling automated dialogs |
US20050080628A1 (en) * | 2003-10-10 | 2005-04-14 | Metaphor Solutions, Inc. | System, method, and programming language for developing and running dialogs between a user and a virtual agent |
US7593980B2 (en) * | 2004-11-30 | 2009-09-22 | Cisco Technology, Inc. | Application server system and method |
EP1886467B1 (en) * | 2005-06-03 | 2010-08-04 | Sonus Networks, Inc. | Generating and transforming call control elements, dialog elements, and session initiation protocol messages for telephony service applications |
-
2006
- 2006-06-05 EP EP06772080A patent/EP1886467B1/en active Active
- 2006-06-05 US US11/446,616 patent/US20070041369A1/en not_active Abandoned
- 2006-06-05 DE DE602006015946T patent/DE602006015946D1/de active Active
- 2006-06-05 CA CA002610700A patent/CA2610700A1/en not_active Abandoned
- 2006-06-05 US US11/446,665 patent/US20070041525A1/en not_active Abandoned
- 2006-06-05 US US11/446,926 patent/US20070041528A1/en not_active Abandoned
- 2006-06-05 JP JP2008514941A patent/JP2008546325A/ja active Pending
- 2006-06-05 AT AT06772080T patent/ATE476822T1/de not_active IP Right Cessation
- 2006-06-05 WO PCT/US2006/021634 patent/WO2006133033A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001268229A (ja) * | 2000-03-17 | 2001-09-28 | Ntt Comware Corp | 電話サービス装置、電話サービス方法及びその記録媒体 |
US20020169776A1 (en) * | 2000-09-01 | 2002-11-14 | Nokia Corporation | Network architecture and methods for service script execution and management |
EP1343287A2 (en) * | 2002-03-06 | 2003-09-10 | Alcatel | System providing a graphical user interface to telephones |
Also Published As
Publication number | Publication date |
---|---|
WO2006133033A3 (en) | 2007-05-10 |
EP1886467A2 (en) | 2008-02-13 |
ATE476822T1 (de) | 2010-08-15 |
CA2610700A1 (en) | 2006-12-14 |
WO2006133033A2 (en) | 2006-12-14 |
US20070041528A1 (en) | 2007-02-22 |
DE602006015946D1 (de) | 2010-09-16 |
US20070041525A1 (en) | 2007-02-22 |
US20070041369A1 (en) | 2007-02-22 |
EP1886467B1 (en) | 2010-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1886467B1 (en) | Generating and transforming call control elements, dialog elements, and session initiation protocol messages for telephony service applications | |
US10154118B2 (en) | System and method for telephony and communication services with message-based API | |
JP6348926B2 (ja) | 電話通信アプリケーションサービス | |
US8467354B1 (en) | Systems and methods for software-implemented telephony devices in a voice over internet protocol (VoIP) system | |
US7184534B2 (en) | Using a telephony application server for call control with a voice server | |
US8139730B2 (en) | Integrating an IVR application within a standards based application server | |
US8214503B2 (en) | Factoring out dialog control and call control | |
US10127020B2 (en) | Paradigm in multimedia services creation methodology, and new service creation and service execution environments | |
EP2561439B1 (en) | Unified framework and method for call control and media control | |
EP1808004B1 (en) | Providing a service framework at an endpoint | |
Glitho et al. | Creating value added services in Internet telephony: an overview and a case study on a high-level service creation environment | |
Bond et al. | An open architecture for next-generation telecommunication services | |
JP2008523730A (ja) | ローカルノードで実行される集中的に提供される電話通信サービス | |
WO2006047111A2 (en) | Providing a proxy server feature at an endpoint | |
Cisco | Cisco VoiceXML Features | |
Appari | Customized IVR Implementation Using Voicexml on SIP (Voip) Communication Platform | |
Chan et al. | Modeling IETF Session Initiation Protocol and its services in SDL | |
Amyot et al. | Combining VoiceXML with CCXML: A Comparative Study | |
Cheung et al. | Experience with modularity in an advanced teleconferencing service deployment | |
EP1552672B1 (en) | Providing telephony services using intelligent end points | |
WO2001035594A2 (en) | Telecommunications control protocol processing | |
Back et al. | Voice Mail System for IP Multimedia Sub-system | |
Bond | ClickToDial with ECharts for SIP Servlets: A Case Study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081017 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20081017 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090521 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090521 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110927 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111227 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120110 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120127 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120203 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120522 |