Как использовать Twilio Conversations API вместе с Taskrouter

#twilio #twilio-taskrouter #twilio-javascript #twilio-conversations

#твилио #twilio-taskrouter #twilio-javascript #twilio-беседы

Вопрос:

Как следует из названия, у меня возникли проблемы с интеграцией API Conversations с возможностями Taskrouter.

Подход, который я использую, по сути, является тем, что предлагается для интеграции SMS и Taskrouter здесь с использованием SMS и Taskrouter вместе

Идея заключается в том, что когда SMS попадает на ваш номер twilio, вы вызываете webhook, который создает переписку и добавляет входящий номер в качестве участника MMS, а затем ставит задачу в очередь с SID беседы в качестве атрибута. Затем на стороне клиента вы принимаете бронирование и присоединяетесь к разговору. За исключением того, что это не работает, потому что диалог был создан на стороне сервера, и поэтому вызов getConversationBySid на стороне клиента не позволяет увидеть диалог.

Я здесь немного в растерянности. Если я создам задачу на стороне сервера, а затем попытаюсь создать диалог на стороне клиента и добавить обоих участников, я потеряю все сообщения, которые они отправили участникам входящих MMS, пока задача ожидала в очереди.

Я уверен, что для этого есть более элегантный дизайн, но я его не вижу. Любые советы будут оценены.

Комментарии:

1. Я не понимаю, почему вы не можете присоединиться к разговору, потому что он был создан на сервере? Вам нужно инициировать запрос на ваш сервер, чтобы добавить вашего работника в беседу, когда он примет задачу, а затем присоединится к ней со стороны клиента?

2. @philnash извиняюсь, я был недостаточно конкретен. Я не могу присоединиться к разговору, используя клиентский SDK. JS-метод getConversationBySid завершается с ошибкой. Я думаю, это связано с тем, что диалог был создан на стороне сервера, и поэтому клиент не может его видеть. Я отредактирую вопрос, чтобы он был более конкретным.

3. @philnash Когда я снова читаю ваш комментарий, я задаюсь вопросом. Вы хотите сказать, что я должен добавить работника в беседу в качестве участника на стороне сервера после того, как они примут резервирование? Я не пробовал это, но если да, то какова цель метода соединения на стороне клиента, если не для того, чтобы присоединиться к разговору?

4. Да, это то, что я говорю. Поскольку в API бесед нет общедоступных каналов, вы не можете просто join общаться как обычный пользователь. Есть пользователи с правами администратора службы, которые могут присоединиться к любому разговору, поэтому, если бы вы создавали представление администратора, вы бы использовали этот join метод. Для обычных пользователей вы должны добавить их в качестве участника на сервере и на стороне клиента подписаться на conversationJoined событие.

5. (Кстати, мне пришлось внутренне спросить себя, почему существует join метод, так что я не виню вас за то, что вы задаетесь этим вопросом!)