Создайте собственный IVR, который будет иметь доступ к базе данных.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Создайте собственный IVR, который будет иметь доступ к базе данных.

Сообщение Anonymous »

В настоящее время я прохожу стажировку в компании, и мне было поручено изучить некоторые методы использования телефонии. Цель состоит в том, чтобы предоставить нашим клиентам возможность звонить и с помощью вопросов, заданных в IVR, получать информацию обратно. Информация будет из нашей базы данных.

Я успешно сделал это с помощью Twilio и небольшого приложения на Python. Он делает именно то, что мне нужно, за исключением того, что фактор стоимости может быть немного высоким, особенно если у нас более 30 000 клиентов, звонящих в течение нескольких минут подряд.

Мой Цель — найти способ повторить то, что я сделал с Twilio, но на нашем собственном сервере. Я нашел такие варианты, как Asterisk и IncrediblePBX, но из-за моих ограниченных знаний Linux каждая ошибка, с которой я сталкиваюсь, приводит к поиску ответов в Интернете. В конечном счете, я не уверен, что иду в правильном направлении.

Это пример того, чего я хотел бы достичь:
Клиент звонит на номер. Им предлагается предоставить номер счета (возможно, номер телефона). На этом этапе он возьмет эту информацию и обратится к базе данных. Собрав эту информацию, он передаст клиенту статус его учетной записи и т. д.

Вопросы:
Я надеялся использовать Google Voice для маршрутизации вызовов, подобных Твилио, это возможно? Альтернативно, может ли моя компания перейти на VoIP и сделать то же самое?

Если я отойду от Twilio, сможет ли Asterisk выполнять необходимые задачи? Прием звонков и запуск приложения для сбора информации из базы данных.

Текущий код Twilio на Python:

< div class="snippet">

Код: Выделить всё

from flask import Flask, request, redirect
import twilio.twiml
import json
from urllib.request import urlopen

app = Flask(__name__)
callers = {
"+": "Nicholas",
}

@app.route("/", methods=['GET', 'POST'])
def initial():
# Get the caller's phone number from the incoming Twilio request
from_number = request.values.get('From', None)
resp = twilio.twiml.Response()

# if the caller is someone we know:
if from_number in callers:
# Greet the caller by name
caller = callers[from_number]
else:
caller = ""

resp = twilio.twiml.Response()
resp.say("Hello " + caller)
resp.say("Thank you for calling.")
your_number = list(from_number)
del your_number[0]
del your_number[0]
resp.say("You are calling from: ")
x = 0
while x < len(your_number):
resp.say(your_number[x])
x += 1

print("Please enter the neighborhood I.D. you're looking for.")
with resp.gather(numDigits=1, action="/handle-first", method="POST") as g:
g.say("Please enter the neighborhood I.D. you're looking for.")

return str(resp)

@app.route("/handle-first", methods=['GET', 'POST'])
def handle_key():
digit_pressed = request.values.get('Digits', '')
resp = twilio.twiml.Response()
url = 'http://localhost/...'
response = urlopen(url)
data = json.loads(response.readall().decode('utf-8'))
current = data['rows'][0]['Neighborhood']
print(current)
resp.say("You have chosen " + current + "as your neighborhood.")
with resp.gather(numDigits=1, action="/handle-second", method="POST") as h:
h.say("Press 1 to choose another Neighborhood?")

return str(resp)

@app.route("/handle-second", methods=['GET', 'POST'])
def handle_key2():
digit_pressed = request.values.get('Digits', '')
resp = twilio.twiml.Response()
if digit_pressed == "1":
return redirect("/")

else:
resp.say("Thank you for calling. Good-bye.")
return str(resp)

if __name__ == "__main__":
app.run(debug=True)



Подробнее здесь: https://stackoverflow.com/questions/298 ... s-database
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»