通知 - グローバル

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:26分
  • Notify API を使用すると、スクリプトを使用して Notify コールと SMS メッセージを操作できます。

    SNC 名前空間内でグローバルの Notify クラスとその関連メソッドにアクセスします。

    Notify - call(文字列 notifyPhoneNumber, 文字列 toPhoneNumber, GlideRecord conferenceCall, GlideRecord conferenceCallRecord, 文字列 userSysId, 文字列 groupSysId, GlideRecord sourceRecord)

    指定された E.164 準拠の電話番号に電話をかけます。

    さらにこのメソッドを使用すると、指定された電話番号を指定された電話会議に自動的に追加できます。

    表 : 1. パラメーター
    名前 タイプ 説明
    notifyPhoneNumber 文字列または NotifyPhoneNumber コールの発信元の Notify 電話番号。コールを開始すると、この番号に関連付けられた番号グループの発信コールワークフローが実行されます。このワークフローに、ユーザーを電話会議に接続するための電話会議に参加アクティビティが含まれていることを確認します。
    toPhoneNumber 文字列 コールする電話番号。コール先の番号が電話会議に追加されます。
    conferenceCall GlideRecord オプション。このパラメーターが渡されると、toPhoneNumber パラメーターで識別された発信者が、このレコードで識別された電話会議に自動的に参加します。

    電話会議レコードを識別する Notify コール [notify_call] テーブルの GlideRecord。このレコードは、workflow.scratchpad.conference_call 変数として発信コールワークフローのスクラッチパッドに自動的に追加されます。

    userSysId 文字列 オプション。コールに関連付けられたユーザーの一意の識別子 (sys_id)。
    groupSysId 文字列 オプション。コールに関連付けられたグループの一意の識別子 (sys_id)。
    sourceRecord GlideRecord オプション。このコールを要求したソースレコード。
    表 : 2. 返される内容
    タイプ 説明
    なし

    この例は、別の電話番号へのコールを開始する方法を示しています。

    var from = '+14048007337';
    var to = '+31646810495';
    
    // set up call
    new SNC.Notify().call(from, to);

    この例は、電話番号のリストへのコールを開始し、リスト内の番号を新しい電話会議に自動的に参加させる方法を示しています。

    var notify = new SNC.Notify();
    var from = '+14041234567';
    var participants = ['+31612345678', '+31623456789', '+31687654321'];
    
    // set up a conference call
    var conferenceCall = notify.conferenceCall();
    
    // set up the outbound calls for all conference call participants
    for (var i in participants) {
        var to = participants[i];
        notify.call(from, to, conferenceCall);
    }

    この例は、新しい電話会議を開始する方法を示しています。

    SNC.Notify.call('+15413970605', '+91406XXXXXXX', SNC.Notify.conferenceCall(), null, null, null);

    この例は、ユーザーレコードを使用して新しい電話会議を開始する方法を示しています。

    var sysUserGr = new GlideRecord('sys_user');
    sysUserGr.get('active conference sys id');
     
    if (conferenceGr.isValid) {
        SNC.Notify.call('+15413970605', '+91406XXXXXXX', SNC.Notify.conferenceCall(), sysUserGr.getUniqueValue(), null, null);
    }

    この例は、ユーザー、グループおよびソースレコードを使用して新しい電話会議を開始する方法を示しています。

    var sysUserGr = new GlideRecord('sys_user');
    sysUserGr.get('active sys user sys id');
     
    var sysUserGroupGr = new GlideRecord('sys_user_group');
    sysUserGroupGr.get('active sys user group sys id');
     
    var incidentGr = new GlideRecord('incident');
    incidentGr.get('incident sys_id');
     
    if (conferenceGr.isValid) {
        SNC.Notify.call('+15413970605', '+91406XXXXXXX',
            SNC.Notify.conferenceCall(),
            sysUserGr.getUniqueValue(),
            sysUserGroupGr.getUniqueValue(),
            incidentGr.getUniqueValue());
    }

    スコープ対応

    call() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - call()

    Notify - conferenceCall(GlideRecord sourceRecord)

    新しい電話会議の GlideRecord を作成します。

    表 : 3. パラメーター
    名前 タイプ 説明
    sourceRecord GlideRecord オプション。電話会議の作成要求を開始したレコード。notify_conference_call レコードのソースとテーブルのフィールドに入力するために使用されます。
    表 : 4. 返される内容
    タイプ 説明
    GlideRecord 新しい Notify 電話会議 [notify_conference_call] レコード。
    var notify = new SNC.Notify();
    var from = '+14041234567';
    var participants = ['+31612345678', '+31623456789', '+31687654321'];
    
    // set up a conference call
    var conferenceCall = notify.conferenceCall();
    
    // set up the outbound calls for all conference call participants
    for (var i in participants) {
        var to = participants[i];
        notify.call(from, to, conferenceCall);
    }

    スコープ対応

    conferenceCall() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - conferenceCall()

    Notify - dequeueCall(GlideRecord callRecord)

    コールがキュー (保留中) に入れられた後に再開します。

    このメソッドを使用して、queueCall() メソッドでキューに入れられたコールを再開します。

    表 : 5. パラメーター
    名前 タイプ 説明
    callRecord GlideRecord 再開する保留中のコールを含む Notify コール [notify_call] テーブルの GlideRecord オブジェクト。
    表 : 6. 返される内容
    タイプ 説明
    なし

    次の例は、保留中のコールを再アクティブ化する方法を示しています。

    var notifyCallGr = new GlideRecord('notify_call');
    notifyCallGr.get('active participant sys id');
     
    if (notifyCallGr.isValid) {
        SNC.Notify.dequeueCall(notifyCallGr);
    }

    スコープ対応

    dequeueCall() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - dequeueCall()

    Notify - forwardCall(GlideRecord call, 文字列 destination, 文字列 dtmf)

    指定されたコールを別のコール受信者に転送します。

    表 : 7. パラメーター
    名前 タイプ 説明
    call GlideRecord または文字列 転送するコールの Notify コールレコードまたは電話通信プロバイダーのコール ID。
    destination GlideRecord または文字列 コールの転送先となる発信者の Notify 電話番号レコードまたは E.164 準拠の電話番号。
    dtmf 文字列 Dual Tone - コール接続時に送信する Multi-Frequency (DTMF) コード。
    表 : 8. 返される内容
    タイプ 説明
    なし

    次の例は、コールを別の電話番号に転送する方法を示しています。

    var callID = 'CA92374b5aa561dab476a7001db6026edc'; // Twilio Call ID
    var phoneNumber = '+91406xxxxxxx';
    var dtmfTones = null;
     
    var notifyCallGr = new GlideRecord('notify_call');
    notifyCallGr.get('active participant sys id');
     
    if (notifyCallGr.isValid) {
        SNC.Notify.forwardCall(notifyCallGr(or) callID, phoneNumber, dtmfTones)
    }

    スコープ対応

    forwardCall() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - forwardCall()

    Notify - getAvailableClients(文字列 notifyNumber)

    コールを受信できるクライアントセッションのリストを返します。

    表 : 9. パラメーター
    名前 タイプ 説明
    notifyNumber 文字列 有効な Notify 電話番号。
    表 : 10. 返される内容
    タイプ 説明
    GlideRecord 指定された電話番号の notify_client_session テーブルから取得された GlideRecord。

    利用可能なクライアントセッションがない場合は「0」を返します。

    次の例は、getAvailableClients() メソッドを使用して notify_client_session テーブルにインデックスを付け、利用可能なすべての Notify クライアントで反復処理する方法を示しています。

    var clientSessionGr = SNC.Notify.getAvailableClients('+185xxxxxxxx'); 
    // Here clientSessionGr is of type GlideRecord on 'notify_client_session' table.
     
    var isLoggedInUserAvailable = false;
    while (clientSessionGr.next()) {
      if (clientSessionGr.user == gs.getUserID())
        isLoggedInUserAvailable = clientSessionGr.available;
    }
    gs.info('isLoggedInUserAvailable - ' + isLoggedInUserAvailable);

    スコープ対応

    getAvailableClients() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - getAvailableClients()

    Notify - getParentCallID(GlideRecord callRecord)

    指定されたコールの親コールの sys_id を返します。

    [転送] ワークフローアクティビティなど、別のコールを転送することによって開始されたコールは、元のコールの子と見なされます。元のコールは親コールです。

    表 : 11. パラメーター
    名前 タイプ 説明
    callRecord GlideRecord コールステータスを返す Notify コール [notify_call] テーブルのレコード。
    表 : 12. 返される内容
    タイプ 説明
    文字列 親コールレコードの一意の sys_id。

    この例は、指定されたコールの親コールを取得する方法を示しています。

    var callRecord = new GlideRecord('notify_call');
    callRecord.get("0f4f5863ff13310014ecffffffffff28");
    
    var notify = new SNC.Notify();
    var parentCallID = notify.getParentCallID(callRecord);

    Notify - getPhoneNumbers()

    Notify で利用可能なすべての電話番号と短縮コードを返します。

    表 : 13. パラメーター
    名前 タイプ 説明
    なし
    表 : 14. 返される内容
    タイプ 説明
    リスト NotifyPhoneNumber オブジェクトのリスト。各オブジェクトが、Notify で利用可能な 1 つの電話番号を表します。
    var list = SNC.Notify.getPhoneNumbers();
    for (var i = 0; i < list.size(); i++) {
        var num = list.get(i);
        gs.info(num.getNumber())
    }

    スコープ対応

    getPhoneNumbers() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - getPhoneNumbers()

    Notify - getTokens(GlideRecord, record)

    WebRTC またはモバイルクライアントで使用するアクティブな電話ドライバーのクライアントトークンを返します。

    表 : 15. パラメーター
    名前 タイプ 説明
    record GlideRecord Notify クライアントを識別するために使用する GlideRecord (グループレコードやユーザーレコードなど)。
    表 : 16. 返される内容
    タイプ 説明
    文字列 サポートされているドライバーの Web RTC トークン ({driverName1: "token1", driverName2: "token2"} 形式の JSON 文字列 ("TwilioDirect":"eyJhxxxx.eyJleHAiOiIxxxx.7fejxxx_mbLxxx" など)

    この例は、現在ログインしているユーザーのクライアントトークンを取得する方法を示しています。

    // get Notify client Tokens per active Notify driver for the currently logged in user
    var json = new SNC.Notify().getTokens();
     
    // Parse the JSON that was return into a tokens object
    var tokens = JSON.parse(json);
    
    // Log line
    gs.log('Notify client tokens for the currently logged in user');
    
     // iterate over the driver tokens
    for (var driver in tokens) {
     	gs.log(driver + ' Driver token: ' + tokens[driver]);
    }

    この例は、すべての Notify グループのクライアントトークンを取得する方法を示しています。

    // instantiate Notify
    var notify = new SNC.Notify();
     
    // get all Notify Groups
    var notifyGroup = new GlideRecord("notify_group");
    notifyGroup.query();
     
    // iterate over all notify groups
    while (notifyGroup.next()) {
      // generate Notify Client tokens per active Notify Driver for this group
      var json = notify.getTokens(notifyGroup);
      var tokens = JSON.parse(json);
     
      for (var driver in tokens) {
        gs.log(gs.getMessage("Notify Client token for {0} driver and Notify Group '{1}': {2}", [driver, notifyGroup.getValue('name'), tokens[driver]]));
      }
    }

    スコープ対応

    getTokens() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - getTokens()

    Notify - getTokenTTL(文字列 owner)

    指定された電話ドライバーに対してクライアントセッションがアクティブな状態を維持する、自動タイムアウトまでの最大時間を返します。

    表 : 17. パラメーター
    名前 タイプ 説明
    owner 文字列 セッションの長さを取得する対象の電話ドライバーの名前。

    有効な値:

    • Twilio:古いドライバーの場合
    • TwilioDirect:新しいドライバーの場合
    表 : 18. 返される内容
    タイプ 説明
    整数 セッションの最長時間 (単位:秒)。デフォルト:1800 秒

    次の例は、このメソッドと関連する応答を正しく呼び出す方法を示しています。また、無効なドライバーが渡された場合に返されるものも示します。

    var owner = "TwilioDirect";  // Valid driver
    var ttl = SNC.Notify.getTokenTTL(owner);
    gs.info("Token TTL for " + owner + " --> " + ttl);
     
    owner = "Abcxyz";  // Invalid driver
    ttl = SNC.Notify.getTokenTTL(owner);
    // For an invalid driver, we throw NoSuchNotifyDriverException saying that Abcxyzdriver is not available
    // and return the default value of TTL
    gs.info("Token TTL for " + owner + " --> " + ttl); 

    スコープ対応

    getTokenTTL() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - getAvailableClients()

    Notify - hasCapability(文字列 notifyPhoneNumber, 文字列 capability)

    指定された電話番号に指定された機能があるかどうかを判断します。

    電話番号に関連付けられた電話ドライバーに、電話のすべての機能のリストが含まれています。
    注:
    ベースシステムでは、Notify JS ドライバーの機能としては「show_speakers」しかありませんが、これは変更可能です。
    表 : 19. パラメーター
    名前 タイプ 説明
    notifyPhoneNumber 文字列 指定された機能を確認する電話番号。
    capability 文字列 検出対象の機能。文字列テキストが電話内のテキストと完全に一致する必要があります。
    表 : 20. 返される内容
    タイプ 説明
    ブーリアン 指定された電話に指定された機能があるかどうかを示すフラグ。
    • true:電話に機能がある
    • false:電話に機能がない

    この例では、電話に特定の機能があるかどうかを確認する方法を示します。

    // Each driver has a defined set of capabilities.
    
    var capability = 'show_speakers';
    gs.info(SNC.Notify.hasCapability('+185xxxxxxxx', capability)); // true
     
    capability = 'send_sms';
    gs.info(SNC.Notify.hasCapability('+185xxxxxxxx', capability)); // false

    スコープ対応

    hasCapability() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - hasCapability()

    Notify - kick(GlideRecord participant)

    指定された発信者を現在の Notify 電話会議から除外します。

    表 : 21. パラメーター
    名前 タイプ 説明
    participant GlideRecord 電話会議から除外する発信者の Notify 参加者 [notify_participant] レコードを含む GlideRecord オブジェクト。
    表 : 22. 返される内容
    タイプ 説明
    なし

    次の例は、電話会議から参加者を削除する方法を示しています。

    var notifyParticipantGr = new GlideRecord('notify_participant');
    notifyParticipantGr.get('active participant sys id');
     
    if (notifyParticipantGr.isValid) {
        SNC.Notify.kick(notifyParticipantGr);
    }

    スコープ対応

    kick() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - kick()

    Notify - modifyCall(GlideRecord callRecord, NotifyAction notifyAction)

    アクティブな Notify 電話のコールで 1 つ以上のアクションを実行します。

    コールに対して実行できるアクションには、コールのキューへの格納や取り出し、テキストの読み上げ、音声の再生、コールの転送などがあります。カスタムアクションを作成することもできます。指定したコールに適用するすべてのアクションを指定した後、modifyCall() メソッドを呼び出します。利用可能なアクションの詳細については、NotifyAction API のドキュメントを参照してください。

    表 : 23. パラメーター
    名前 タイプ 説明
    callRecord GlideRecord アクションを適用するコールの Notify コール [notify_call] レコード。
    notifyAction NotifyAction コールで実行する 1 つ以上のアクションを記述する NotifyAction オブジェクト。このオブジェクトは、1 つ以上の NotifyAction() メソッドを呼び出して作成します。
    表 : 24. 返される内容
    タイプ 説明
    なし

    この例では、コールを変更する方法を示します。

    // get the most recent call record
    var callRecord = new GlideRecord('notify_call');
    callRecord.orderByDesc('sys_created_on');
    callRecord.query();
     
    if (callRecord.next()) {
        // instantiate notify action container class
        var notifyAction = new SNC.NotifyAction();
        // The call is already in progress. Now, we want to modify the call behavior by putting this call in a queue.
        // So, we add a queue action to queue the call
        notifyAction.addQueue('my fancy queue');
       
        // modify the call by passing in the above action, putting the call in a queue
        new SNC.Notify().modifyCall(callRecord, notifyAction);
    } else {
        gs.log('no such call record');
    }

    スコープ対応

    modifyCall() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - modifyCall()

    Notify - mute(GlideRecord participantRecord)

    指定した電話会議の参加者をミュートします。

    表 : 25. パラメーター
    名前 タイプ 説明
    participantRecord GlideRecord notify_participant テーブルの、ミュート対象の参加者に対する GlideRecord。
    表 : 26. 返される内容
    タイプ 説明
    なし

    次の例は、発信者をミュートする方法を示しています。

    var notifyParticipantGr = new GlideRecord('notify_participant');
    notifyParticipantGr.get('active participant sys id');
     
    if (notifyParticipantGr.isValid) {
        SNC.Notify.mute(notifyParticipantGr);
    }

    スコープ対応

    mute() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - mute()

    Notify - queueCall(GlideRecord callRecord)

    指定したコールをキューに格納します (保留)。

    dequeueCall() メソッドを使用して、キューに格納されたコールを再開します。

    表 : 27. パラメーター
    名前 タイプ 説明
    callRecord GlideRecord 保留する Notify コールレコード (notify_call テーブル) の GlideRecord オブジェクト。
    表 : 28. 返される内容
    タイプ 説明
    なし

    次の例は、コールを (キュー内で) 保留する方法を示しています。

    var notifyCallGr = new GlideRecord('notify_call');
    notifyCallGr.get('active participant sys id');
     
    if (notifyCallGr.isValid) {
        SNC.Notify.queueCall(notifyCallGr);
    }

    スコープ対応

    queueCall() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - queueCall()

    通知 - sendBulkSMS(文字列 notifyPhoneNumber, 配列 toPhoneNumbers, 文字列 messageBody, GlideRecord source)

    指定した SMS メッセージを、Notify クライアント (電話番号) の指定されたリストに送信します。

    表 : 29. パラメーター
    名前 タイプ 説明
    notifyPhoneNumber 文字列 SMS メッセージの送信元となっている Notify 電話番号。
    toPhoneNumbers 文字列のアレイ SMS メッセージの送信先の電話番号のリスト (カンマ区切り)。

    フォーマット:E.164

    messageBody 文字列 送信する SMS テキスト。
    source GlideRecord インシデントなど、この SMS メッセージを要求したソースレコード。
    表 : 30. 返される内容
    タイプ 説明
    文字列 Null

    次の例は、一括 SMS メッセージを送信する方法を示しています。

    var incidentGr = new GlideRecord('incident');
    incidentGr.get(active incident sys_id');
    if (incidentGr.isValid()) {
        SNC.Notify.sendBulkSMS('+15413970605', ['+919885XXXXXX', '+919775XXXXXX'], 'Test automation message', incidentGr);
    }

    スコープ対応

    sendBulkSMS() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - sendBulkSMS()

    通知 - sendSMS(文字列 notifyPhoneNumber, 文字列 toPhoneNumber, 文字列 messageBody, GlideRecord source)

    SMS テキストメッセージを E.164 に準拠した電話番号に送信します。

    このメソッドは、Notify メッセージ [notify_message] テーブルに新しいレコードを作成し、それをソースレコードに関連付けます。

    表 : 31. パラメーター
    名前 タイプ 説明
    notifyPhoneNumber 文字列 SMS メッセージの送信元となっている Notify 電話番号。
    toPhoneNumber 文字列 SMS メッセージの送信先となる E.164 に準拠した電話番号。
    messageBody 文字列 SMS テキストメッセージの本文。
    source GlideRecord インシデントなど、この SMS メッセージを要求したソースレコード。
    表 : 32. 返される内容
    タイプ 説明
    文字列 一意のメッセージ SID。Notify メッセージ [notify_message] レコードに message_id として格納されます。

    次の例は、SMS メッセージを送信する方法を示しています。

    var incidentGr = new GlideRecord('incident');
    incidentGr.get('active incident sys_id');
    if (incidentGr.isValid()) {
        SNC.Notify.sendSMS('+15413970605', '+919885XXXXXX', 'Test automation message', incidentGr);
    }

    スコープ対応

    sendSMS() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - sendSMS()

    Notify - unmute(GlideRecord participantRecord)

    指定した電話会議の参加者のミュート状態を解除します。

    表 : 33. パラメーター
    名前 タイプ 説明
    participantRecord GlideRecord notify_participant テーブルの、ミュート解除の対象の参加者に対する GlideRecord。
    表 : 34. 返される内容
    タイプ 説明
    なし

    次の例は、発信者をミュート解除する方法を示しています。

    var notifyParticipantGr = new GlideRecord('notify_participant');
    notifyParticipantGr.get('active participant sys id');
     
    if (notifyParticipantGr.isValid) {
        SNC.Notify.unmute(notifyParticipantGr);
    }

    スコープ対応

    unmute() メソッドをスコープ対象のアプリケーションで使用するには、対応するスコープ指定メソッドを使用します:NotifyScoped - unmute()