<通話連携API仕様:共通_認証関連>

1.API認証情報

各APIを実行するあたりに、API認証が求められます。

API認証を行うために以下の項目が必須になります。

 ・会社アカウントID

 ・会社アカウント名

 ・会社アカウントパスワード

 

※API認証用項目はSimpleConnectアカウント発行時に別途お伝えします。

※これらの項目はAPI利用するための認証情報であり、SimpleConnect画面のログイン情報ではないのでご注意ください。

API認証は、動的な電子署名をAPIエンドポイントURLのQuery Parameterに追加し、加えてリクエストヘッダーのAuthorizationプロパティを設定する必要があります。「3.電子署名の作成方法」および「4.ヘッダー認証」をご参照ください。

2.API Secretの取得方法

API Secretの有効期限は原則無期限です。

URL

https://api.simpleconnect.jp/dingzhi/register/webSiteQueryAccountInfo/{会社アカウント名}/{会社アカウントパスワード}

 

Request Method

GET

Query Parameter

なし

Response

データが正常に返された場合、accountDataからAPISecretを取得できます。

{

    "success":true,    

    "accountData":{    

        "accountPassword":"abcde12345",  

        "account":"N00000099106",  

        "accountName":"......",  

        "pbxArr":[......],  

        "APISecret":"74798d00-b009-11ec-b944-af4a2cb89a94"  

    },      

    "registerUrl":"https://www.simpleconnect.jp"        

}

 

3.電子署名の作成方法

会社アカウントID + API Secret + yyyyMMddHHmmssフォーマットの現時刻文字列で結合した文字列のMD5ハッシュ(全大文字に変換)

サンプルコード(Node.js)

const crypto = require('crypto');

const accountId = 'N00000099106';

const apiSecret = '74798d00-b009-11ec-b944-af4a2cb89a94';

const now = new Date();

const timeStr = now.getFullYear().toString() +

    (now.getMonth() + 1).toString().padStart(2, '0') +

    now.getDate().toString().padStart(2, '0') +

    now.getHours().toString().padStart(2, '0') +

    now.getMinutes().toString().padStart(2, '0') +

    now.getSeconds().toString().padStart(2, '0');

const source = `${accountId}${apiSecret}${timeStr}`;

const hash = crypto.createHash('md5');

hash.update(source);

const hexVal = hash.digest('hex').toUpperCase();

console.log(hexVal);

 

電子署名は、各APIエンドポイントURLのQuery Parameterに加える必要があります:

https://api.simpleconnect.jp/v20220801/{routeName}/{actionName}/会社アカウントID?sig={電子署名}

4.ヘッダー認証

Header Key

Authorization

Header Value

会社アカウントID + ':' + yyyyMMddHHmmssフォーマットの現時刻文字列で結合した文字列のBase64エンコード値

 

※'Bearer'、'Basic'などのプレフィックスは不要

サンプルコード(Node.js)

const accountId = 'N00000099106';

const apiSecret = '74798d00-b009-11ec-b944-af4a2cb89a94';

const now = new Date();

const timeStr = now.getFullYear().toString() +

    (now.getMonth() + 1).toString().padStart(2, '0') +

    now.getDate().toString().padStart(2, '0') +

    now.getHours().toString().padStart(2, '0') +

    now.getMinutes().toString().padStart(2, '0') +

    now.getSeconds().toString().padStart(2, '0');

const source = `${accountId}:${time}`;

const authorizationValue = Buffer.from(source).toString('base64');

console.log(authorizationValue);

 

<通話連携API仕様:API一覧>

APIエンドポイントURLフォーマット

https://api.simpleconnect.jp/v20220801/{routeName}/{actionName}/{会社アカウントID}?sig={電子署名}

 

API一覧

種別      機能 routeName actionName

備考

通話 発信 call dialout  
通話 切電 call hangup  
通話 保留 call hold ※最新版のCTIにアップグレードする必要がある
通話 保留解除 call unhold ※最新版のCTIにアップグレードする必要がある
通話 転送 call transfer ※最新版のCTIにアップグレードする必要がある
通話 転送取消 call cancelTransfer ※最新版のCTIにアップグレードする必要がある
通話履歴 通話履歴照会 cdr getCCCdr  
アカウント サービス番号照会 account getCCServiceNoByAcc  
SMS SMSテンプレート照会 sms getSmsTemplate  
SMS SMS送信 sms sendInterfaceTemplateSms ※予約送信は現時点未対応

 

<通話連携API仕様:発信(call/dialout)>

URL

https://api.simpleconnect.jp/v20220801/call/dialout/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名                必須    説明 備考
Exten 相手電話番号(数字のみ、ハイフン・スペース等抜き)  
ExtenType 通話タイプ: ・Local:外部転送(スマートフォン) ・gateway:電話ソフト(Zoiper等)または電話機 ・sip:WEBフォン sipを指定した場合、事前にSimpleConnectにログインしてページを開いたままにする必要があります。 Localまたはgatewayを指定した場合、オフライン応答モードでも発信できます。
FromExten 座席番号  
Outshow   発信通知番号(電話相手に表示する番号) 未設定の場合SimpleConnect画面に設定された発信番号が適用される  

 

Payloadサンプル

{

    "ExtenType": "sip",

    "FromExten": "8001",

    "Exten": "09012345678",

    "Outshow": "05050509999"

}

 

Response

データが正常に返された場合:

{  

    "Response": "Dialout",  

    "ActionID": "Dialout0.999587317153624",

    "Succeed": true

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。

<通話連携API仕様:切電(call/hangup)>

APIエンドポイントURLフォーマット

https://api.simpleconnect.jp/v20220801/call/dialout/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名 必須 説明 備考       
Agent 座席番号  

 

Payloadサンプル

{

    "Agent": "8001"

}

 

Response

データが正常に返された場合:

{

    "Response": "Hangup",

    "ActionID": "Hangup0.4047332767562146",

    "Succeed": true

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。

<通話連携API仕様:保留(call/hold)>

URL

https://api.simpleconnect.jp/v20220801/call/hold/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名 必須 説明 備考       
Agent 座席番号  

 

Payloadサンプル

{

    "Agent": "8001"

}

 

Response

データが正常に返された場合:

{  

    "Response": "Hold",  

    "Succeed": true

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。

<通話連携API仕様:保留解除API(call/unhold)>

URL

https://api.simpleconnect.jp/v20220801/call/unhold/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名 必須 説明 備考       
Agent 座席番号  

 

Payloadサンプル

{

    "Agent": "8001"

}

 

Response

データが正常に返された場合:

{  

    "Response": "Unhold",  

    "Succeed": true

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。

<通話連携API仕様:転送API(call/transfer)>

URL

https://api.simpleconnect.jp/v20220801/call/transfer/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名 必須 説明 備考       
FromExten 座席番号  
Exten 転送先電話番号(外線/内線) 外線:05012345678 内線:8009
Mode 転送モード。文字列"number"固定。  

 

Payloadサンプル

{

    "FromExten": "8001"

    "Exten": "05012345678"

    "Mode": "number"

}

 

Response

データが正常に返された場合:

{  

    "Response": "Transfer",  

    "Succeed": true

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。

<通話連携API仕様:転送取消API(call/cancelTransfer)>

URL

https://api.simpleconnect.jp/v20220801/call/cancelTransfer/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名 必須 説明 備考       
FromExten 座席番号  

 

Payloadサンプル

{

    "FromExten": "8001"

}

 

Response

データが正常に返された場合:

{  

    "Response": "CancelTransfer",  

    "Succeed": true

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。

<通話連携API仕様:通話履歴照会API(cdr/getCCCdr)>

利用制限

一回あたり取得できる最大件数: 1万件
API呼び出し頻度: 最大20回/分
検索条件指定: オファリングタイムの開始時間~終了時間最大7日間指定可能

 

URL

https://api.simpleconnect.jp/v20220801/cdr/getCCCdr/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名 必須 説明 備考       
beginTime 検索条件:オファリングタイム開始時間 最大7日間指定可能
endTime 検索条件:オファリングタイム終了時間 最大7日間指定可能
callNo   検索条件:発信側電話番号  
calledNo   検索条件:受信側電話番号  
connectType  

検索条件:通話タイプ
・dialout:アウトバウンド
・normal:インバウンド
・transfer:インバウンド転送
・dialTransfer:アウトバウンド転送

 
status   検索条件:通話応答ステータス
・dealing:応答済み
・notDeal:不在
・leak:アナウンス
・queueLeak:放棄呼
・blackList:ブラックリスト
・voicemail:留守番 ・limit:同時制限
 
page   ページ目(データ件数が多いの時にページング処理で使用可能)  
pageSize   ページごとの取得件数(データ件数が多いの時にページング処理で使用可能)  

 

Payloadサンプル

{

    "beginTime": "2023-04-03 00:00:00",

    "endTime": "2023-04-07 23:59:59",

    "exten": "8001",

    "status": "dealing"

}

 

レスポンスデータ

データが正常に返された場合:

{

    "success":true,

    "data": [

        {}, {}, {}

    ],

    "count":150

}

 

dataプロパティは通話履歴データの配列になります。

通話履歴データの
項目定義

項目名

説明 備考
CALL_SHEET_ID 通話履歴一意キー  
CALL_NO 発信側電話番号  
CALLED_NO 受信側電話番号  
STATUS 通話応答ステータス dealing:応答済み
notDeal:不在
leak:アナウンス
queueLeak:放棄呼
blackList:ブラックリスト
voicemail:留守番
limit:同時制限
BEGIN_TIME 通話開始時間 未応答通話の場合は空
END_TIME 通話終了時間  
OFFERING_TIME オファリングタイム  
CONNECT_TYPE 通話タイプ dialout:アウトバウンド
normal:インバウンド
transfer:インバウンド転送
dialTransfer:アウトバウンド転送
EXTEN 座席番号  
AGENT_NAME 座席氏名  
FILE_SERVER 録音ファイルの保存先サーバー 録音ファイルURL: {FILE_SERVER}/{RECORD_FILE_NAME}
RECORD_FILE_NAME 録音ファイル名 録音ファイルURL: {FILE_SERVER}/{RECORD_FILE_NAME}
REF_CALL_SHEET_ID 転送電話の場合、転送前通話の通話履歴の一意キー 転送通話(アウトバウンド転送、インバウンド転送)の場合のみ設定される
CALL_TIME_LENGTH 通話時間(秒単位) 未応答通話の場合は0
QUEUE_NAME インバウンド通話のみ
着信スキルグループ名
 
QUEUE_TIME インバウンド通話のみ
スキルグループへの着信時間(秒まで)
 
LABELS 通話タグ(配列)  
COMMENTS 備考  
CUSTOMER_NAME 顧客名  

 

<通話連携API仕様:サービス番号照会API(account/getCCServiceNoByAcc)>

URL

https://api.simpleconnect.jp/v20220801/account/getCCServiceNoByAcc/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

なし

Response

データが正常に返された場合:

{

    "success": true,

    "data": [

        {

            "_id": "f64dcad0-5f27-11ed-88cc-ad9e7a305317",

            "Exten": "05050509991",

            "DisplayName": "Phone Number A"

        },

        {

            "_id": "f9c8c0c0-5f27-11ed-b0d7-4919babf5290",

            "Exten": "05050509992",

            "DisplayName": "Phone Number B"

        },

        {

            "_id": "297fd150-79fe-11ed-a157-f9f4d11beac4",

            "Exten": "05050509993",

            "DisplayName": "Number for SMS"

        }

    ]

}

 

<通話連携API仕様:SMSテンプレート照会API(sms/getSmsTemplate)>

URL

https://api.simpleconnect.jp/v20220801/sms/getSmsTemplate/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

なし

Response

"_id":テンプレート一意キー

"num":テンプレート識別番号

"name":テンプレート表示名

"content": テンプレート内容

"vars": テンプレート変数の数

"sign": "テンプレート署名

データが正常に返された場合:

{

  "success": true,

  "data": [

      {

          "_id": " N00000000556_1",

          "num": "1",

          "name": "SMSテンプレート1",

          "content": "この度はご連絡頂き有難うございます。次回のご予約は{1}月{2}日{3}時{4}分からとなっております。詳細は下記URL{5}よりご確認ください。",

          "vars": 5,

          "sign": "【署名】"

      },

      {

          "_id": " N00000000556_2",

          "num": "2",

          "name": "SMSテンプレート2",

          "content": "※本メールは配信専用になります※本メールは弊社からの商品が未受け取りのお客様に送信をしております。",

          "vars": 0,

          "sign": "【署名】"

      }

  ]

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。

<通話連携API仕様:SMS送信API(sms/sendInterfaceTemplateSms)>

URL

https://api.simpleconnect.jp/v20220801/sms/sendInterfaceTemplateSms/{会社アカウントID}?sig={電子署名}

 

※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。

Request Method

POST

Request Header

Key        Value       備考
Authorization ヘッダ認証情報 ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。
Content-Type application/json  

 

Request Body

パラメータ名                 必須    説明 備考       
num 送信先電話番号(複数の番号をカンマで区切り) 09012345678,09012345678,09012345677,09012345676
templateNum SMSテンプレート識別番号 (SMSテンプレート照会APIより取得できる)  
var1
var2

varn
変数値(該当するSMSテンプレートに変数が設定された場合、その変数の値) 例:テンプレート内容が「これは{1}ですが、それは{2}です、あれは{3}です」になっている場合、{1}の内容はvar1で設定し、{2}の内容はvar2で設定し…{n}の内容はvarnで設定する形になります。

 

Payloadサンプル

{

    "num": "09012345678,09012345677,09012345676",

    "templateNum": "1",

    "var1": "3",

    "var2": "22",

    "var3": "11",

    "var4": "30",

    "var5": "https://www.example.com"

}

 

テンプレート内容:
この度はご連絡頂き有難うございます。次回のご予約は{1}月{2}日{3}時{4}分からとなっております。
詳細は下記URL{5}よりご確認ください。

Response

データが正常に返された場合:

{

    "success": true,

    "msgid": "045de080-13df-11ee-9e19-adc8787851f8",

    "message": "sms sent successfully."

}

 

Succeed = trueの場合、API実行が成功にしたことを示す。