Ruby

Routen erstellen

Wir fügen drei HTTP-Routen zu der server.rb Datei, zwei GET Routen und eine POST Route.

Die erste GET Route wird ein neuer Anruf gestartet, sobald sie aufgerufen wird. Die zweite GET Route den Empfänger mit einer Grußbotschaft begrüßen. Die POST Route sendet die Streaming-Audioanweisungen an die Voice API, sobald der Anruf entgegengenommen wurde:

get '/new' do
  response = client.voice.create(
    to: [{ type: 'phone', number: ENV['VONAGE_NUMBER'] }],
    from: { type: 'phone', number: ENV['TO_NUMBER'] },
    answer_url: ["#{BASE_URL}/answer"],
    event_url: ["#{BASE_URL}/event"]
  )

  puts response.inspect
end

get '/answer' do
  content_type :json
  [
    {
      :action => 'stream',
      :streamUrl => ['https://raw.githubusercontent.com/nexmo-community/ncco-examples/gh-pages/assets/welcome_to_nexmo.mp3'],
      :loop => 0
    }
  ].to_json
end

post '/event' do
  data = JSON.parse(request.body.read)
  response = client.voice.stream.start(data['uuid'], stream_url: [AUDIO_URL]) if data['status'] == 'answered'
  puts response.inspect
end