简体   繁体   中英

How to make Twilio Queue Automation Forward

Can someone tell me please: how to take callers, from enqueue to dial(forwarding). In one app, with automation this???

i have something like that and it wont work:

    <Say>hello</Say>
    <Enqueue waitUrl="https://brass-dragonfly-1957.twil.io/assets/poczekalnia.xml">support</Enqueue>
    <Dial url="/ivr/agent/screencall">
    +000000000
    <Queue>support</Queue>
    </Dial>
    <Redirect>/ivr/welcome/</Redirect>
    </Response>

in python look like this:

    twiml_response.say('hello')
    twiml_response.enqueue('support', wait_url='https://brass-dragonfly-1957.twil.io/assets/poczekalnia.xml')
    twiml_response.dial('+000000000', url=reverse('ivr:agents_screencall')).queue('support')

It looks like you are trying to perform actions for both your caller and an agent within the one TwiML response, and that will not work.

When you <Enqueue> a caller, no following TwiML will execute until you dequeue the caller with a <Leave> .

It looks like you want to dial an agent, allow them to screen the call and then connect them to the caller in the queue. To do this, you would start by creating a call to your agent using the REST API . With that call you would provide a URL that will be requested when that agent connects. In the response to that URL you should say the message to them, then <Dial> the <Queue> . Something like this:

import os
from twilio.rest import Client

account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)

def call(request):
  twiml_response = VoiceResponse()
  twiml_response.say('hello')
  twiml_response.enqueue('support', wait_url='https://brass-dragonfly-1957.twil.io/assets/poczekalnia.xml')
  call = client.calls.create(
    url = '/agent'.
    to = agent_phone_number,
    from = your_twilio_number
  )
  return HttpResponse(twiml_response, content_type='text/xml')

Then, in response to the webhook to the /agent endpoint, you should return your response for screening, which might look like this:

def agent(request):
  twiml_response = VoiceResponse()
  gather = Gather(action='/agent_queue', method='POST', numDigits=1)
  gather.say('You are receiving an incoming call, press 1 to accept')
  twiml_response.append(gather)
  return HttpResponse(twiml_response, content_type='text/xml')

And finally in /agent_queue you determine the result of screening the call and if the agent accepts, then you connect them to the queue.

def agent_queue(request):
  twiml_response = VoiceResponse()
  digits = request.POST.get("Digits", "")
  if digits == "1":
    dial = Dial()
    dial.queue('support')
    twiml_response.append(dial)
  else:
    twiml_response.hangup()
  return HttpResponse(twiml_response, content_type='text/xml')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM