0

我对开始从事 IVR 项目非常感兴趣。经过一些研究,我发现了 somleng 项目(https://medium.com/@dwilkie_34546/somleng-an-open-source-twilio-clone-a297062b340d)。我尝试使用 docker 在 ubuntu 14.04 上安装完整的软件包,但 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 "To=+85510202101" -d "From=1234" -u '35af2347-5656-44fb-ba83-2d1bdd9c593b:0c5388fa8fafaa8f73c62ee13e57030c1d4e3c01361f5f21419e'48465

我有这个回应:

{"to":"+85510202101","from":"1234","status":"queued","sid":"fcfcbd36-3186-4e78-8099-91956ebb2fc5","account_sid":"35af2347-5656 -44fb-ba83-2d1bdd9c593b","uri":"/api/2010-04-01/Accounts/35af2347-5656-44fb-ba83-2d1bdd9c593b/Calls/fcfcbd36-3186-4e78-8099-91956ebb2fc5","date_created" :"2017 年 12 月 19 日星期二 10:12:13 +0000","date_updated":"2017 年 12 月 19 日星期二 10:12:13 +0000","api_version":"2010-04-01","注释" :null,"answered_by":null,"caller_name":null,"direction":"outbound-api","duration":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"}

但我没有在 adhearsion 或 freeswitch 看到任何日志活动。正常吗?

我的另一个问题是:实际上,我如何使用 rapidpro 或任何软件电话发起呼叫并从该板表中获得响应(我已经安装了 X-lite 并使用 freeswitch 对其进行了测试,它运行良好)。


嗨@dwilkie,感谢您的帮助。卸载第一个 somleng 项目后,我已经能够使用 docker 安装和测试所有五个组件。现在我尝试连接到 rapidpro。我去了这些步骤: 1. 获取 twilreapi docker 容器的 ip 地址,以便能够构建 API url。我使用了 docker ps 命令 2. 添加一个 twiML api 通道,编号:1234 TwiML REST API 主机: http ://172.18.0.6:3000 角色:语音帐户 sid 和帐户令牌但是在 rapidpro 上验证后我有这条信息

" 要完成 TwiML REST API 通道的配置,您需要在 TwiML REST API 实例中添加以下 URL。

TwiML REST API 主机 将接收此通道的 Twilio API 请求的端点 http://172.18.0.6:3000 请求 URL 此通道的传入消息将发送到此端点。 https://temba.ngrok.io/handlers/twiml_api/ff560773-3421-48a3-a241-c492c78dbcc4 “我忽略了这条消息并在rapidpro中建立了一个语音流。但是当我在rapidpro中启动流时我没有看到任何日志twilreapi_1/somleng 方面的信息,但是当我使用 rapidpro 模拟器测试流程时,我收到此消息“ twilreapi_1 | 在 2017-12-28 14:13:03 +0000 twilreapi_1 | 为 172.18.0.1 开始 POST "/2010-04-01/Accounts/8461e585-9d4f-4f6e-9847-dddc9594f190/Calls.json"
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:incall' twilreapi_1 | railties (5.1.3) lib/rails/rack/logger.rb:36:in call_app' twilreapi_1 | railties (5.1.3) lib/rails/rack/logger.rb:24:inblock in call' twilreapi_1 | activesupport (5.1.3) lib/active_support/tagged_logging.rb:69:in block in tagged' twilreapi_1 | activesupport (5.1.3) lib/active_support/tagged_logging.rb:26:intagged' twilreapi_1 | activesupport (5.1.3) lib/active_support/tagged_logging.rb:69:in tagged' twilreapi_1 | railties (5.1.3) lib/rails/rack/logger.rb:24:incall' 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:incall' twilreapi_1 | 机架 (2.0.3) lib/rack/method_override.rb:22:incall' twilreapi_1 | rack (2.0.3) lib/rack/runtime.rb:22:in调用'twireapi_1 | activesupport (5.1.3) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in call' twilreapi_1 | actionpack (5.1.3) lib/action_dispatch/middleware/executor.rb:12:incall' twilreapi_1 | actionpack (5.1.3) lib/action_dispatch/middleware/static.rb:125:in call' twilreapi_1 | rack (2.0.3) lib/rack/sendfile.rb:111:incall' twilreapi_1 | railties (5.1.3) lib/rails/engine.rb:522:in call' twilreapi_1 | puma (3.9.1) lib/puma/configuration.rb:224:incall' 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:inprocess_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:inblock in spawn_thread' "

4

1 回答 1

0

Somleng的入门指南描述了如何开始使用 docker 和 docker-compose。docker -compose 配置文件包含 5 个服务,Twilreapi(Twilio 的 REST API 的开源实现)、Somleng-Adhearsion(为 Somleng 配置的 Adhearsion 应用程序)、FreeSWITCH 配置(为 FreeSWITCH 优化的配置文件)、Linphone(为Linphone - 软件电话)和CURL

入门指南中的说明向您展示了如何启动服务并通过 REST API 进行测试调用。还有关于如何测试来电的说明。

使用 Docker 启动服务后,您应该能够设置 RapidPro 通道并将其指向 REST API 端点。

于 2017-12-20T02:27:33.800 回答