光CTIスマートコネクトサービスは、以下のRESTful APIを提供します。
【RESTful API インターフェース仕様 (例.収容回線)】
| 処理 | HTTPメソッド | URI |
|---|---|---|
| 全レコードを取得 | GET | /CTI_SmartConnectService/RestService/ContainmentLine |
| 1レコードを取得 | GET | /CTI_SmartConnectService/RestService/ContainmentLine/(回線No) |
| 1レコードを新規登録 | POST | /CTI_SmartConnectService/RestService/ContainmentLine |
| 1レコードを更新 | PUT | /CTI_SmartConnectService/RestService/ContainmentLine/(回線No) |
| 1レコードを削除 | DELETE | /CTI_SmartConnectService/RestService/ContainmentLine/(回線No) |
【RESTful API 呼出方法】
以下のアドレスにHTTPメソッド(GET、POST、PUT、DELETE)でアクセスすると、データの取得やレコード単位での新規登録・更新・削除を行うことができます。データはJSON形式でやり取り(リクエスト&レスポンス)します。
http://(サービスを実行中のパソコンのIPアドレス):55963/CTI_SmartConnectService/RestService/(URI)
◆GETの例
・収容回線の全情報を取得する
GET http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine
・回線No.1の情報を取得する
GET http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/1
◆POSTの例
・回線の情報を新規登録する
POST http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine
◆PUTの例
・回線No.2の情報を更新する
PUT http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/2
◆DELETEの例
・回線No.3の情報を削除する
DELETE http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/3
◆リクエストデータ(JSON形式)の例
{ “回線No” : “1”, “着信TEL” : “0731235678”, “代表TEL” : “0731237777”, “種別” : “電話”, “代理内線番号” : “30” }
※POST、PUTする際のリクエストデータのフォーマットは、1レコードGET時のフォーマットと同じです。
(但し、先頭と末尾の中括弧 [ ] は必要ありません。)
※POSTする際のリクエストデータのキー項目(ID、顧客ID、回線Noなど)には 0をセットしてください。
(どのような数値をセットしても自動的に最大番号で新規登録されます。)
※PUTする際のリクエストデータのキー項目(ID、顧客ID、回線Noなど)にどのような数値をセットしても、URI末尾の数字(数値)をキーにして更新されます。
◆レスポンスデータ(JSON形式)の例
{ “result” : “True”, “msg” : “正常終了” }
※POST、PUT、DELETE の戻り値は、全てこの形となります。
※GETの戻り値は [{ データ },{ データ }, ・・・] の形です。データが空の時は [ ] です。
次に、サンプルプログラムの説明をします。
【サンプルプログラムの利用方法】
-
- サーバーにするパソコンに「光CTIスマートコネクトサービス」をインストールします。
- 以下の【クライアントプログラム(JavaScript)のサンプルソース】を参考にプログラムを作成します。
- 作成したクライアントプログラム(JavaScript)をクライアント上で実行します。(ブラウザで開く)
【使用するポート】
- 55963ポート(サービス側のパソコンでオープンが必要です。)
【クライアントプログラム(JavaScript)のサンプルソース① GETの例】
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine", true);
xhr.setRequestHeader('Content-type','application/json; charset=utf-8');
xhr.setRequestHeader('DataType', 'json');
xhr.setRequestHeader('Accept', '*/*');
xhr.setRequestHeader('Accept-Language','ja,en-US;q=0.9,en;q=0.8');
xhr.onload = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
console.log(xhr.responseText);
} else {
console.error(xhr.statusText);
}
}
};
xhr.onerror = function (e) {
console.error(xhr.statusText);
};
xhr.send(null);
</script>
</head>
<body>
</body>
</html>
【クライアントプログラム(JavaScript)のサンプルソース② POSTの例】
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
var data = {};
data.回線No = "1";
data.着信TEL = "0731235678";
data.代表TEL = "0731237777";
data.種別 = "電話";
data.代理内線番号 = "30";
var json = JSON.stringify(data);
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine", true);
xhr.setRequestHeader('Content-type','application/json; charset=utf-8');
xhr.setRequestHeader('DataType', 'json');
xhr.setRequestHeader('Accept', '*/*');
xhr.setRequestHeader('Accept-Language','ja,en-US;q=0.9,en;q=0.8');
xhr.onload = function () {
var lines = JSON.parse(xhr.responseText);
if (xhr.readyState === 4) {
if(xhr.status === 201) {
console.table(lines);
} else {
console.error(lines);
}
}
};
xhr.send(json);
</script>
</head>
<body>
</body>
</html>
【クライアントプログラム(JavaScript)のサンプルソース③ PUTの例】
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
var data = {};
data.回線No = "1";
data.着信TEL = "0731231111";
data.代表TEL = "0731238888";
data.種別 = "FAX";
data.代理内線番号 = "50";
var json = JSON.stringify(data);
var xhr = new XMLHttpRequest();
xhr.open("PUT", "http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/3", true);
xhr.setRequestHeader('Content-type','application/json; charset=utf-8');
xhr.setRequestHeader('DataType', 'json');
xhr.setRequestHeader('Accept', '*/*');
xhr.setRequestHeader('Accept-Language','ja,en-US;q=0.9,en;q=0.8');
xhr.onload = function () {
var lines = JSON.parse(xhr.responseText);
if (xhr.readyState === 4) {
if(xhr.status === 200) {
console.table(lines);
} else {
console.error(lines);
}
}
};
xhr.send(json);
</script>
</head>
<body>
</body>
</html>
【クライアントプログラム(JavaScript)のサンプルソース④ DELETEの例】
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open("DELETE", "http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/4", true);
xhr.setRequestHeader('Content-type','application/json; charset=utf-8');
xhr.setRequestHeader('DataType', 'json');
xhr.setRequestHeader('Accept', '*/*');
xhr.setRequestHeader('Accept-Language','ja,en-US;q=0.9,en;q=0.8');
xhr.onload = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
console.log(xhr.responseText);
} else {
console.error(xhr.statusText);
}
}
};
xhr.onerror = function (e) {
console.error(xhr.statusText);
};
xhr.send(null);
</script>
</head>
<body>
</body>
</html>
【実行画面サンプル】
①GETの例
②POSTの例
③PUTの例
④DELETEの例
【光CTIスマートコネクトサービスRESTful API仕様】
| データ名称 | データの要求・応答のタイプ | URI |
|---|---|---|
| 収容回線 | データ要求・応答ともにJSON | /ContainmentLine
/ContainmentLine/(回線No) |
| SIPサーバー接続設定 | データ要求・応答ともにJSON | /SIP-ServerConnection
/SIP-ServerConnection/(ID) ※ID は2以上 |
| 接続中クライアント
※GETのみ |
データ応答のみJSON | /ConnectedClient
/ConnectedClient/(ID) |
| 顧客アドレス帳 | データ要求・応答ともにJSON | /CustomerAddress
/CustomerAddress/(顧客ID) |
| 着信記録
※GET、PUTのみ |
データ要求・応答ともにJSON | /ReceivedCall-Record
/ReceivedCall-Record/(ID)
※以下は、GETのみ有効 /ReceivedCall-Record/(TOP)/(DESCENDING)/(K_ID)/(FROM)
|
| 着信時URL呼出 | データ要求・応答ともにJSON | /IncomingCall-URL
/IncomingCall-URL/(ID) |
| 着信時コマンド呼出 | データ要求・応答ともにJSON | /IncomingCall-Command
/IncomingCall-Command/(ID) |
| 通知先LINEアクセストークン | データ要求・応答ともにJSON | /Notification-LINE-AccessToken
/Notification-LINE-AccessToken/(ID) |
| 通知先メールアドレス | データ要求・応答ともにJSON | /Notification-Email-Address
/Notification-Email-Address/(ID) |
| 電話番号検索サイト | データ要求・応答ともにJSON | /PhoneNumber-SearchSite
/PhoneNumber-SearchSite/(ID) |
| メッセージ定義_メール用
※GET、POST、PUTのみ |
データ要求・応答ともにJSON | /MessDef-Mail
/MessDef-Mail/(ID) |
| メッセージ定義_LINE用
※GET、POST、PUTのみ |
データ要求・応答ともにJSON | /MessDef-Line
/MessDef-Line/(ID) |
| メッセージ定義_トースト用
※GET、POST、PUTのみ |
データ要求・応答ともにJSON | /MessDef-Toast
/MessDef-Toast/(ID) |
| メールアカウント
※GET、POST、PUTのみ |
データ要求・応答ともにJSON | /Mail-Account
/Mail-Account/(ID) |
| オンラインアクティベーション | データ要求・応答ともにJSON | /Online-Activation
/Online-Activation/(ID) ※ID は2以上 |
| データバックアップ
※GET、POST、PUTのみ |
データ要求・応答ともにJSON | /DataBackup
/DataBackup/(ID) |
| ユーザー管理 | データ要求・応答ともにJSON | /UserManagement
/UserManagement/(ID) |
| CSVデータ出力
※GET、POST、PUTのみ |
データ要求・応答ともにJSON | /Output-CSV
/Output-CSV/(ID) |
| EXCELデータ出力
※GET、POST、PUTのみ |
データ要求・応答ともにJSON | /Output-EXCEL
/Output-EXCEL/(ID) |




