NotifyClient - クライアント
NotifyClient API には、Web ブラウザからのコールの発信や受信など、通知テレフォニー機能を使用できるようにするメソッドが用意されています。
いくつかの NotifyClient メソッドは、コールバック関数をパラメーターとして受け取ります。NotifyClient メソッドの呼び出しは非同期的に行われるため、これらのメソッドは値を直接返すことができません。コールバック関数を使用し、変数の割り当てや他の API 呼び出しなどを行うことで、返されたデータを解析します。
NotifyClient - Client(オブジェクト notifyConfig, ブーリアン initializeVendorClientLazily)
新しい Notify WebRTC クライアントオブジェクトをインスタンス化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| initializeVendorClientLazily | ブーリアン | setCallerId() メソッドで渡された autoSelectVendorCallback 関数を使用して、発信者の関連ベンダーを自動的に設定するかどうかを示すフラグ (notifyConfig.vendor をコンストラクターで定義する必要なし)。
|
| notifyConfig | オブジェクト | Notify WebRTC クライアントの構成設定を含む JSON オブジェクト。 |
| notifyConfig.autoLoadScriptResource | ブーリアン | ベンダークライアントが必要とするコア JS ライブラリーのロード方法を示すフラグ。
|
| notifyConfig.callerId | 数字 | 使用する登録済みの Notify の番号。この値を直接設定しないでください。この値を設定するには、メソッド notifyClient.setCallerID() を使用します。 |
| notifyConfig.forceRefreshToken | ブーリアン | 期限切れのクライアントトークンを自動更新するかどうかを示すフラグ。
|
| notifyConfig.skipParentId | ブーリアン | 着信コールの onIncoming 発信者をすぐに呼び出すかどうかを示すフラグ。
|
| notifyConfig.vendor | 定数 | 発信者が属するベンダー。
|
次の例では、NotifyClient コンストラクターを作成し、さまざまなイベントリスナーを登録して、クライアントドライバーを初期化する方法を示します。
jQuery(function () {
var notifyConfig = {
autoLoadScriptResources: true // This will take care of auto loading the JS resources needed by the client (if any)
};
var client = new SNC.Notify.Client(notifyConfig, true); // The second argument ensures that the proper vendor for the given number is auto determined
client.setCallerId('valid_notify_long_number', function () {
// This is called after the vendor has been determined.
if (!notifyConfig.vendor) // Means this number has no compatible vendor
return;
client.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
// Ability to call is available
});
client.addEventListener(SNC.Notify.STD_EVENTS.OFFLINE, function () {
// Ability to call is _not_ available right now
});
client.addEventListener(SNC.Notify.STD_EVENTS.ERROR, function (msg, code) {
// Some error happened
});
//... register other event handlers here
//Show UI elements which can be used to invoke client.call() and other APIs
client.init(); // This is important to call this.
});
});
NotifyClient - addEventListener(文字列 event, 関数 fn)
Notify クライアントで変更をリスンするイベントハンドラーを登録します。
このメソッドを使用すると、複数のリスナーを登録できます。各リスナーは個別のメソッド呼び出しである必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| イベント | 文字列 | リスンするイベントの名前。 文字列を渡す代わりに、
|
| タイプ | 説明 |
|---|---|
| 関数 | リスナーを登録解除するために使用する関数。 |
この例では、複数のリスナーを登録する方法を示します。
jQuery(function () {
var notifyConfig = {
autoLoadScriptResources: true // This will take care of auto loading the JS resources needed by the client (if any)
};
var client = new SNC.Notify.Client(notifyConfig, true); // The second argument ensures that the proper client for the given number is auto determined
client.setCallerId('valid_notify_long_number', function () {
// This is called after the client has been determined.
if (!notifyConfig.vendor) // Means this number has no compatible client
return;
client.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
// Ability to call is available
});
client.addEventListener(SNC.Notify.STD_EVENTS.OFFLINE, function () {
// Ability to call is _not_ available right now
});
client.addEventListener(SNC.Notify.STD_EVENTS.ERROR, function (msg, code) {
// Some error happened
});
//... register other event handlers here
client.init(); // This is important to call this.
});
});
この例では、リスナーを登録解除する方法を示します。
var dereg = notifyClient.addEventListener(SNC.Notify.STD_EVENTS.ONLINE, function () {
...
});
dereg();
// The event listener function is no longer triggered.
NotifyClient - call(オブジェクト identifier)
指定された電話番号、または指定されたユーザーに関連付けられた電話番号に電話をかけます。
SNC.Notify.Status によって提供される定数と比較してください。| 名前 | タイプ | 説明 |
|---|---|---|
| identifier | オブジェクト | 発信先の電話番号と WebRTC ユーザーの sys_id のいずれかを含む JSON オブジェクト。ユーザーの sys_id を渡すと、ブラウザー間通信を介してコールが行われます。 ユーザーの sys_id は、Notify WebRTC セッションテーブルから取得できます。 注: 電話番号とユーザーの sys_id の両方を指定すると、メソッドでは電話番号のみが使用されます。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、関数のパラメーターとして電話番号を渡す方法を示します。
notifyClient.call({
phoneNumber: "+18001112223"
});
この例では、関数のパラメーターとしてユーザーレコードの sys_id を渡す方法を示します。
notifyClient.call({
userId: "6816f79cc0a8016401c5a33be04be441"
});
この例では、ボタンクリックのハンドラーを示します。
$j("#pickupCallBtn").on("click", function() {
notifyClient.hangupCall();
});
この例では、イベントハンドラーを示します。
onConnect: function(status) {
// webRTC receives a call connection event (incoming or outgoing).
if (status == SNC.Notify.Status.OPEN) {
setStatus(getTimeStamp() + " -- Successfully established call");
showHangupButton();
}
},
NotifyClient - destroy()
現在の Notify クライアントを強制終了して使用不可にします。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
NotifyClient - forwardCall(オブジェクト argument)
進行中の着信または発信電話を別の電話番号または別の WebRTC クライアントに転送します。
| 名前 | タイプ | 説明 |
|---|---|---|
| argument | オブジェクト | コールを電話番号または WebRTC クライアント (ユーザーの sys_id) に転送するために必要な情報を含む JSON オブジェクト。この sys_id は、Notify WebRTC セッションテーブルから取得できます。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、コールを別の電話番号に転送する方法を示します。dtmf 属性を使用すると、DTMF ダイヤルトーンを受信番号に送信できます。
var arg = {
type: "number",
id: "+17012345678",
dtmf: "1234"
}
client.forwardCall(arg);
この例では、コールを別の Notify クライアントに転送する方法を示します。
var arg = {
type: "userId",
id: "6816f79cc0a8016401c5a33be04be441"
}
client.forwardCall(arg);
NotifyClient - getAvailableClients(関数 callback)
コールを受けられるクライアントのリストを返します。
このメソッドは、現在のクライアントをリストから除外します。同等の Notify-getAvailableClients() メソッドではユーザーをフィルタリングしません。
| 名前 | タイプ | 説明 |
|---|---|---|
| callback | 関数 | クライアントのリストの解析に使用する関数。この関数は、次の形式の JSON オブジェクトのアレイであるパラメーターを 1 つだけ受け入れます。 |
| タイプ | 説明 |
|---|---|
| なし |
NotifyClient - getParentId(文字列 callId, 関数 callback)
指定されたコール識別子の親コール識別子を返します (存在する場合)。
電話通信プロバイダーによっては、親コール識別子が返されるまでに遅延が発生する場合があります。そのため、コールバック関数を提供する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| callId | 文字列 | 親コール識別子を返す対象となるコールの一意の識別子。 |
| callback | 関数 | 数回試行しても識別子を取得できなかった場合に、親コール識別子またはエラーメッセージのいずれかを含む JSON オブジェクトを取得する関数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 親コール識別子。 |
この例では、このメソッドを使用して親コール識別子を取得する方法を示します。
notifyClient.getParentId( callId, function(jsonObj) {} );
この例は、jsonObj パラメーターの内容を示します。
{
parentId: "xyz",
error: "msg"
}
NotifyClient - getStatus()
現在のコールの正規化されたステータスを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | コールの現在のステータス。電話通信プロバイダーの API によって返された値は、返されたドライバー値を SNC.Notify.Status で定義されている同等の値に置き換えることで正規化されます。 |
この例では、現在の Notify クライアントのステータスを取得する方法を示します。
clientStatus = notifyClient.getStatus();
NotifyClient - hangupCall()
現在のコールを終了します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
この例では、コールを終了する方法を示します。
$j("#pickupCallBtn").on("click", function() {
notifyClient.hangupCall();
});
NotifyClient - init()
クライアントドライバーを初期化します。
たとえば、Twilio クライアントを使用すると、Twilio.Device.setup() メソッドが呼び出されます。このメソッドはユーザーがページを操作した後に呼び出します。この初期化プロセスは非同期であるため、ONLINE イベントハンドラーを提供する必要があります。このハンドラーは、セットアッププロセスが完了し、システムがコールを行う準備ができると呼び出されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
この例では、Notify クライアントを初期化する方法を示します。
$j(function() {
notifyClient = new SNC.Notify.Client( notifyConfig );
notifyClient.setCallerId( '+31858889170' );
notifyClient.init();
});
NotifyClient - mute(ブーリアン muted)
現在のクライアントをミュートまたはミュート解除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| muted | ブーリアン | 現在のコールをミュートまたはミュート解除します。
|
| タイプ | 説明 |
|---|---|
| なし |
この例では、現在のコールをミュート状態にする方法を示します。
notifyClient.mute( "true" );
NotifyClient - pickupCall()
WebRTC クライアントからの着信コールに応答して接続します。
着信コールが通知されたら、このメソッドを呼び出します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
この例では、コールに応答して接続する方法を示します。
$j("#pickupCallBtn").on("click", function() {
notifyClient.pickupCall();
});
NotifyClient - sendDtmf(文字列 digits)
現在のコールで、1 桁以上の DTMF に対応した数字を送信します。
| 名前 | タイプ | 説明 |
|---|---|---|
| digits | 文字列 | DTMF に対応した 1 桁以上の数字。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、現在のコールに DTMF シグナルを送信する方法を示します。
notifyClient.SendDtmf( "1246AF" ) {} );
NotifyClient - setCallerId(文字列 value, 関数 autoSelectVendorCallback)
現在のクライアントセッションの発信者 ID を設定します。
発信者 ID はいつでも変更または更新できますが、発信者 ID は同じベンダーに属している必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| value | 文字列 | コールの発信と受信に使用する電話番号。 |
| autoSelectVendorCallback | 関数 | 随意。 initializeVendorClientLazily この関数を使用するには、コンストラクタで "true" に設定する必要があります。設定しないと、エラーがスローされます。 指定された電話番号にベンダーが自動的に設定されたときに呼び出すコールバック関数の名前。このオプションでは、コンストラクター (notifyConfig.vendor) でベンダーを指定する必要はありません。ベンダーの自動選択は非同期操作です。したがって、このメソッドを呼び出す前にベンダーを設定する必要があるため、notifyConfig.init() をいつ安全に呼び出せるかをこのコールバックで示す必要があります。さらに、ベンダーが指定されていることを確認するために notifyConfig.vendor がコールバックに設定されているかどうかも確認する必要があります。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、発信者 ID を設定する方法を示します。この例では、ベンダーがコンストラクターで設定されていることを前提としています。
$j(function() {
notifyClient = new SNC.Notify.Client( notifyConfig );
notifyClient.setCallerId( '+31858889170' );
notifyClient.init();
});
NotifyClient - setClientAvailable(ブーリアン available)
アクティブな WebRTC クライアントのエージェントの空き状況を設定します。
このタイプの空き状況は、コール中のエージェントのものとは異なります。この場合、アクティブな WebRTC クライアントは、コールの接続の有無にかかわらずコールの受信を望んでいない可能性があります。
このメソッドを呼び出すと、このクライアントセッションに関連付けられた Notify Client 接続済みセッション [notify_client_session] レコードの [利用可能] フィールドの値が更新されます。getAvailableClients() メソッドを使用して、利用可能なクライアントのリストを取得できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| available | ブーリアン | アクティブな WebRTC クライアントにコール受信の意思があるかどうかを示すフラグ。
|
| タイプ | 説明 |
|---|---|
| なし |