Позвоните и получите звонок с somleng
Мне очень интересно начать работать над проектом IVR. После некоторых исследований я обнаружил проект somleng ( https://medium.com/@dwilkie_34546/somleng-an-open-source-twilio-clone-a297062b340d). Я попытался установить полные пакеты на Ubuntu 14.04, используя docker, но freeswitch не работал, и adhearsion не смог подключиться к нему. Тогда я решил установить все компоненты индивидуально: adhearsion-twilio, freeswitch, twilreapi. Я настроил mod-rayo, и каждый отдельный тест работает нормально. Я запустил twilreapi и инициализировал следующий вызов:
curl -XPOST http://localhost:3000/api/2010-04-01/Accounts/35af2347-5656-44fb-ba83-2d1bdd9c593b/Calls.json -d "Method = GET" -d "Url = http://demo.twilio.com/docs/voice.xml"-d" Кому =+85510202101" -d " От =1234" -u '35af2347-5656-44fb-ba83-2d1bdd9c593b:0c5388fa8fafaa8f73c62ee13e57030c2436f4e4f3
и у меня есть этот ответ:
{ "К":"+85510202101","с":"1234","статус": "очередь", "Sid":"fcfcbd36-3186-4e78-8099-91956ebb2fc5","account_sid":"35af2347-5656-44fb-ba83-2d1bdd9c593b","URI": "/ апи / 2010-04-01 / Счета / 35af2347-5656-44fb-ba83-2d1bdd9c593b / Звонки /fcfcbd36-3186-4e78-8099-91956ebb2fc5","date_created":"Вторник, 19 декабря 2017 г. 10:12:13 +0000","date_updated":"Вторник, 19 декабря 2017 г. 10:12:13 +0000","api_version":"2010-04-01","annotation": нулевой,"answered_by": NULL,"caller_name": NULL, "направление": "исходящий-апи", "длительность": NULL,"end_time": NULL,"forwarded_from": NULL,"from_formatted":"+1 (234) ","group_sid":null,"parent_call_sid":null,"phone_number_sid":null,"price":null,"price_unit":null,"start_time":null,"subresource_uris":{},"to_formatted":"+855 10 202 101"}
Но я не вижу каких-либо журналов активности на стороне присоединения или свободного переключения. Это нормально?
Другой мой вопрос заключается в следующем: как я могу инициировать вызов и получить ответ из этой табличной формы, используя quickpro или любой программный телефон (я установил X-lite и проверил его с помощью freeswitch, он работал нормально).
Привет @dwilkie, спасибо за вашу помощь. После установки первого проекта somleng я смог установить и протестировать все пять компонентов с помощью Docker. Сейчас я пытаюсь подключиться к rapidpro. Я пошел к этим шагам: 1. Получить IP-адрес контейнера настройки twilreapi, чтобы можно было создать URL-адрес API. Я использовал команду docker ps 2. добавить канал API twiML с номером: 1234 Хост API TwiML REST: http://172.18.0.6:3000/ Роль: озвучить sid и токен учетной записи Но после проверки на quickpro у меня есть это сообщение
"Чтобы завершить настройку канала TwiML REST API, вам необходимо добавить следующий URL в экземпляр TwiML REST API.
Хост API TwiML REST Конечная точка, которая будет получать запросы API Twilio для этого канала http://172.18.0.6:3000/ Запрос URL-адреса Входящие сообщения для этого канала будут отправляться на эту конечную точку. https://temba.ngrok.io/handlers/twiml_api/ff560773-3421-48a3-a241-c492c78dbcc4"Я проигнорировал это сообщение и создал голосовой поток в rapidpro. Но когда я запускаю поток в rapidpro, я не вижу никакого журнала информация на стороне twilreapi_1 / somleng, но когда я использую симулятор quickpro для проверки потока, у меня появляется это сообщение "
twilreapi_1 | Началось POST "/2010-04-01/Accounts/8461e585-9d4f-4f6e-9847-dddc9594f190/Calls.json" для 172.18.0.1 в 2017-12-28 14:13:03 +0000 twilreapi_1 |
twilreapi_1 | ActionController:: RoutingError (Нет совпадений с маршрутом [POST] "/2010-04-01/Accounts/8461e585-9d4f-4f6e-9847-dddc9594f190/Calls.json"): twilreapi_1 |
twilreapi_1 | actionpack (5.1.3) lib / action_dispatch / middleware / debug_exceptions.rb: 63: in call'
twilreapi_1 | actionpack (5.1.3) lib/action_dispatch/middleware/show_exceptions.rb:31:in
назвать '
twilreapi_1 | railties (5.1.3) lib/rails/rack/logger.rb:36: в call_app'
twilreapi_1 | railties (5.1.3) lib/rails/rack/logger.rb:24:in
блок в вызове '
twilreapi_1 | activesupport (5.1.3) lib/active_support/tagged_logging.rb:69: в block in tagged'
twilreapi_1 | activesupport (5.1.3) lib/active_support/tagged_logging.rb:26:in
с тегом '
twilreapi_1 | activesupport (5.1.3) lib/active_support/tagged_logging.rb:69: в tagged'
twilreapi_1 | railties (5.1.3) lib/rails/rack/logger.rb:24:in
назвать '
twilreapi_1 | actionpack (5.1.3) lib/action_dispatch/middleware/remote_ip.rb:79:in call'
twilreapi_1 | actionpack (5.1.3) lib/action_dispatch/middleware/request_id.rb:25:in
назвать '
twilreapi_1 | rack (2.0.3) lib/rack/method_override.rb:22: в call'
twilreapi_1 | rack (2.0.3) lib/rack/runtime.rb:22:in
назвать '
twilreapi_1 | activesupport (5.1.3) lib/active_support/cache/ стратегии /local_cache_middleware.rb:27: в call'
twilreapi_1 | actionpack (5.1.3) lib/action_dispatch/middleware/executor.rb:12:in
назвать '
twilreapi_1 | actionpack (5.1.3) lib/action_dispatch/middleware/static.rb:125: в call'
twilreapi_1 | rack (2.0.3) lib/rack/sendfile.rb:111:in
назвать '
twilreapi_1 | railties (5.1.3) lib/rails/engine.rb:522: в call'
twilreapi_1 | puma (3.9.1) lib/puma/configuration.rb:224:in
назвать 'twilreapi_1 | puma (3.9.1) lib / puma / server.rb: 602: in handle_request'
twilreapi_1 | puma (3.9.1) lib/puma/server.rb:435:in
process_client 'twilreapi_1 | puma (3.9.1) lib / puma / server.rb: 299: in block in run'
twilreapi_1 | puma (3.9.1) lib/puma/thread_pool.rb:120:in
блок в spawn_thread'
"
1 ответ
Руководство по началу работы для Somleng описывает, как начать работу с docker и docker-compose. Файл конфигурации docker-compose содержит 5 сервисов: Twilreapi (реализация с открытым исходным кодом REST API Twilio), Somleng-Adhearsion (приложение Adhearsion, сконфигурированное для Somleng), конфигурация FreeSWITCH (файлы конфигурации для FreeSWITCH, оптимизированной для Somleng), Linphone (образ докера для Линфон - это софтфон) и CURL.
Инструкции в руководстве НАЧАЛО РАБОТЫ показывают, как вызвать службы и выполнить тестовый вызов через REST API. Есть также инструкции о том, как проверить входящий звонок.
Как только вы загрузите сервисы с помощью Docker, вы сможете настроить канал RapidPro и указать его в качестве конечной точки REST API.