Nexmo Voice API - соедините двух пользователей и играйте разные разговоры с каждым пользователем - PullRequest
0 голосов
/ 01 апреля 2020

Я делаю исходящий звонок клиенту, используя POST https://api.nexmo.com/v1/calls/.

Я передаю этот NCCO, который воспроизводит разговор Hello customer, please wait while we connect you для клиента и подключается к продавцу (SALESPERSON_PHONE_NUMBER).

Что я хочу сделать, так это сыграть другой разговор с продавцом только тогда, когда он ответит, что-то вроде outbound call to customer for Example Company

[
    {
        "action": "talk",
        "text": "Hello customer, please wait while we connect you."
    },
    {
        "action": "connect",
        "timeout": 20,
        "from": "MY_NEXMO_PHONE_NUMBER",
        "endpoint": [
            {
                "type": "phone",
                "number": "SALESPERSON_PHONE_NUMBER"
            }
        ]
    }
]

Как я могу воспроизвести другое сообщение разговора только с продавцом? Я ничего не видел в документации.

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Действие connect NCCO имеет опцию onAnswer. Из документации:

onAnswer - A JSON object containing a required url key. The URL serves an NCCO to execute in the number being connected to, before that call is joined to your existing conversation. Optionally, the ringbackTone key can be specified with a URL value that points to a ringbackTone to be played back on repeat to the caller, so they do not hear just silence. The ringbackTone will automatically stop playing when the call is fully connected. Example: {"url":"https://example.com/answer", "ringbackTone":"http://example.com/ringbackTone.wav" }. Please note, the key ringback is still supported.

Таким образом, если вы измените свой NCCO, чтобы он выглядел примерно так, продавец услышит разговорное действие во втором NCCO, в то время как вызывающий абонент услышит musi c.

[
    {
        "action": "talk",
        "text": "Hello customer, please wait while we connect you."
    },
    {
        "action": "connect",
        "timeout": 20,
        "from": "MY_NEXMO_PHONE_NUMBER",
        "endpoint": [
            {
                "type": "phone",
                "number": "SALESPERSON_PHONE_NUMBER",
                "onAnswer": {
                   "url":"https://example.com/answer",
                   "ringbackTone":"http://example.com/ringbackTone.wav"
                }
            }
        ]
    }
]

https://example.com/answer должно быть

 [{
        "action": "talk",
        "text": "Hello salesperson, please wait while we connect you."
    }]
1 голос
/ 01 апреля 2020

Похоже, вы хотите использовать функцию onAnswer в действии connect

https://developer.nexmo.com/voice/voice-api/ncco-reference#connect

A JSON содержит необходимый URL-ключ. URL служит NCCO для выполнения на номере, к которому подключен, до того, как этот вызов присоединится к существующему разговору.

[
    {
        "action": "talk",
        "text": "Hello customer, please wait while we connect you."
    },
    {
        "action": "connect",
        "timeout": 20,
        "from": "MY_NEXMO_PHONE_NUMBER",
        "endpoint": [
            {
                "type": "phone",
                "number": "SALESPERSON_PHONE_NUMBER",
                "onAnswer": {"url": "https://example.com/my-on-answer-ncco"}
            }
        ]
    }
]

Затем на https://example.com/my-on-answer-ncco, вы вернетесь NCCO, содержащий talk действие

...